sendseven-mcp-server (SendSeven-GmbH/sendseven-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 68 out of 100, grade C. It declares 16 tools. No publisher has claimed this listing.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
SendSeven-GmbH
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
upload_attachmentUpload a file from a public URL so it can be reused as an attachment across multiple sends. Returns an attachment id you can pass as {"id": "..."} to send_reply, send_email, or send_message_to_contact's attachments parameter, instead of passing the URL each time. Note: if the same URL was already u…
create_and_send_campaignCreate a messaging campaign and optionally send it immediately. Supports multiple channels. Channels and their specific fields: - **whatsapp**: Regular text or WhatsApp template messages. For templates, set message_type="whatsapp_template" and provide template_name + template_language. - **telegram…
list_channelsList all connected messaging channels (WhatsApp, Telegram, Email, etc.) with their health status. Shows which channels are active and if any have issues. Health monitoring currently only covers email, messenger, and instagram channels. WhatsApp, Telegram, SMS, live chat, and RCS channels report hea…
list_email_mailboxesList email mailboxes (sender identities) configured for your account. Each mailbox has an email address and display name used as the 'From' field when sending emails. Use the mailbox ID with the send_email tool's mailbox_id parameter to send from a specific mailbox. Examples: - "What email address…
list_verified_email_domainsList email sender domains that are verified with your email provider(s). A send_email using a "from_email"/mailbox whose domain is NOT in this list will typically fail to send or be marked unauthenticated by the recipient's mail server. Use this before send_email if you're unsure whether a given fro…
list_whatsapp_templatesList approved WhatsApp message templates. Use these templates to send messages to contacts outside the 24-hour messaging window. Shows template name, language, status, and content, including buttons, header type/media, and whether it's a carousel template. Use get_whatsapp_template for a single temp…
get_whatsapp_templateGet full details for a single WhatsApp message template by ID, including carousel cards, quick-reply button captions, default header media, and parameter format. Use list_whatsapp_templates first to find the template's id. Examples: - "Show me everything about the order_confirmation template" - "Wh…
list_email_campaignsList email campaigns with their status, subject line, and delivery statistics. Shows draft, scheduled, sending, and completed email campaigns. Examples: - "Show me our email campaigns" - "What email campaigns have been sent?" - "List all draft email campaigns"
get_email_campaign_analyticsGet detailed analytics for a specific email campaign, including open rates, click rates, bounce rates, and engagement metrics. list_email_campaigns rows carry two different IDs: "id" (this campaign's own identifier — pass this) and "campaign_id" (an internal reference to a related base campaign rec…
send_emailSend an email to a contact. Finds the contact by email address or name, resolves the email channel, and sends with proper email fields (subject, body, CC, BCC). This is the ONLY tool for sending emails. Do NOT use send_message_to_contact for email — it lacks email-specific fields like subject lines…
query_knowledge_baseSearch the knowledge base using AI. Queries across FAQ documents, website content, uploaded files, and past ticket summaries. Returns an AI-generated answer with source citations. Examples: - "What's our refund policy?" → query="refund policy" - "How do I set up WhatsApp integration?" → query="What…
list_knowledge_base_foldersList the knowledge base's folder structure (a tree of folders, e.g. "General", "Websites", "Ticket Summaries", and any custom folders). Each folder shows its document count and id — use a folder's id as the folder_id parameter on query_knowledge_base to search within just that folder. Examples: - "…
send_message_to_contactSend a message to a contact on the best available channel (WhatsApp, Telegram, SMS, Messenger, Instagram). Finds the contact by phone number or name. If no open conversation exists, one is created automatically. For sending EMAILS, use the send_email tool instead — it supports subject lines, HTML b…
send_whatsapp_templateSend an approved WhatsApp template message. Templates are required to reach contacts OUTSIDE the 24-hour messaging window. Use list_whatsapp_templates to see available templates and their variables. Identify the recipient with ANY ONE of: - contact_id — a SendSeven contact - contact_method_id — a s…
send_team_chat_channel_messagePost a message to a SendSeven Team Chat channel as a bot. The channel must have "Allow Bots to send messages" enabled in its Team Chat settings; archived channels always reject bot messages, and the AI Knowledge Base channel (#knowledgebase) permanently rejects them too (allow_bots is forced off the…
send_team_chat_direct_messageSend a SendSeven Team Chat direct message to a user as a bot. Always allowed once authenticated - unlike channel messages, there is no "Allow Bots" setting or archived-channel restriction for DMs. Bot messages always render with a bot avatar. Attachments: provide EITHER attachment_ids (previously u…
list_contact_listsbehind configList all contact lists and newsletter lists. Shows list name, type (static/dynamic/newsletter), subscriber count, and ID. Use the list IDs when creating campaigns to target specific audiences. Examples: - "Show me all our lists" - "Which newsletter lists do we have?" - "How many subscribers are in …
list_campaignsbehind configList messaging campaigns (WhatsApp, Telegram, SMS, browser push) with their status and delivery counts. For EMAIL campaigns use list_email_campaigns. Note: "total" in the response reflects only the number of campaigns returned in this call (bounded by "limit"), NOT the true total number of matching…
get_campaign_statusbehind configGet delivery statistics for a messaging campaign: sent, delivered, and failed counts. For email campaign analytics use get_email_campaign_analytics.
search_contactsbehind configSearch contacts by name, phone number, or email, and/or filter by tag membership. Returns matching contacts with their available channels, tags, and full contact_methods list (each with its own id, type, value, and is_primary flag). `query` is free-text over name/email/phone/contact-id only — it do…
create_contactbehind configCreate a new contact. Provide at least one identifier (name, phone, or email). The contact can then be messaged on any available channel. Examples: - "Add contact Lisa Mueller, +49 170 5551234, lisa@example.com" - "Create a contact for +49 160 9876543"
update_contactbehind configUpdate an existing contact. Only the fields you provide are changed. Use search_contacts first to find the contact ID. Examples: - "Update Lisa's phone number to +49 170 9999999" - "Set the contact's email to new@example.com" - "The contact speaks German and English" → languages="de,en"
list_conversationsbehind configList and filter customer conversations. Use this to check open conversations, find conversations needing attention, or search for specific conversations. Examples: - "Show my open conversations" → status="open", assigned_to="me" - "Any conversations needing reply?" → needs_reply=true - "Find conver…
get_conversationbehind configGet a conversation with its recent messages. Shows the full chat history, contact details, tags, and status. Each message includes its delivery status, any error_message, attachments, and any per-message metadata (e.g. reactions under meta.reactions). For email conversations, also returns the full e…
send_replybehind configReply to an existing conversation. Use this when you already have a conversation_id (e.g., from list_conversations or get_conversation). Much simpler than send_message_to_contact — just provide the conversation ID and your reply text. Attachments (images, video, audio, documents): pass the attachme…
close_conversationbehind configClose a conversation. Optionally add notes and enable AI summarization to generate a knowledge base summary.
assign_conversationbehind configAssign a conversation to a team member. Requires the agent's real user ID (name lookup is not supported server-side) — use list_team_members to find it. The assigned agent will be notified.
reopen_conversationbehind configReopen a closed conversation, returning it to the Open tab.
snooze_conversationbehind configSnooze (postpone) a conversation until a given time, or clear an active snooze. Snoozed conversations stay open but move off the Open tab until the snooze expires. Examples: - "Snooze this until tomorrow 9am" → snooze_until="2026-07-18T09:00:00Z" - "Unsnooze the conversation" → unsnooze=true
email_conversation_transcriptbehind configEmail the full conversation transcript to any email address as a branded HTML email. Useful after closing a ticket ("send the customer a copy of this conversation"). If multiple mailboxes are configured and none is specified, the default mailbox is used.
add_internal_notebehind configAdd an internal note to a conversation. Internal notes are visible only to agents — they are NEVER sent to the customer. They appear in the conversation timeline. Optionally @mention team members (they get notified) or assign the conversation to someone in the same step. Use list_team_members to fi…
list_tagsbehind configList all tags in your workspace. Tags are color-coded labels you can apply to conversations and contacts for organization and filtering. Examples: - "Show all tags" → list_tags() - "Search for VIP tag" → search="VIP"
create_tagbehind configCreate a new tag. Tags can be applied to conversations and contacts for organization. Examples: - "Create a VIP tag in red" → name="VIP", color="#EF4444" - "Add an Urgent tag" → name="Urgent"
tag_conversationbehind configAdd a tag to a conversation. Use list_tags first to find available tag IDs.
untag_conversationbehind configRemove a tag from a conversation.
tag_contactbehind configAdd a tag to a contact. Use list_tags first to find available tag IDs.
untag_contactbehind configRemove a tag from a contact.
list_team_chat_channelsbehind configList SendSeven Team Chat channels, for discovering a valid channel_ref before calling send_team_chat_channel_message. Read-only - requires team_chat:read (a separate scope from the teamchat:write bot-messaging tools). Two modes: - Default (include_browsable omitted or false): channels the connected…
list_team_membersbehind configList all team members in your workspace. Returns user IDs, names, emails, and roles. Use this to find agent IDs for assign_conversation. Examples: - "Who's on the team?" → list_team_members() - "Find the support agents" → list_team_members()
list_webhooksbehind configList configured webhook endpoints with their subscribed events, health status, and recent failures. Examples: - "Show my webhooks" - "Is my n8n webhook still working?"
create_webhookbehind configCreate a webhook endpoint that receives real-time SendSeven events as HTTPS POST requests. Valid event types (grouped by category — see the events param for the full enum): - message: message.received, message.sent, message.delivered, message.failed, message.read, message.reaction - email: email.re…
delete_webhookbehind configDelete a webhook endpoint. It stops receiving events immediately. This cannot be undone.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
When Vitest UI server is listening, arbitrary file can be read and executed
hono: CORS Middleware reflects any Origin with credentials when `origin` defaults to the wildcard
Hono vulnerable to arbitrary file access via serveStatic vulnerability
Hono missing validation of cookie name on write path in setCookie()
Hono: app.mount() strips mount prefix using undecoded path, causing incorrect routing for percent-encoded paths
All four hints declared on every tool
42/42 tools missing one or more hints — upload_attachment (missing: idempotentHint, openWorldHint); list_contact_lists (missing: idempotentHint, openWorldHint); list_campaigns (missing: idempotentHint, openWorldHint), +39 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool inputs are validated
41/42 tool handlers declare input schemas (98%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Tool test coverage
Only 8/42 tools referenced in tests (19%)
Write tests that reference each tool by name so every tool has at least one test.
Production dependencies are patched
0 critical, 2 high severity in production deps — hono@4.11.9 (high), hono@4.11.9 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Dev dependencies
1 critical/high in dev-only deps (does not ship to users)
Upgrade dev dependencies when convenient.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/sendseven-gmbh/sendseven-mcp-server)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check