MCP Server
SendSeven provides an MCP (Model Context Protocol) server that lets AI assistants interact with your messaging platform directly. Use it with Claude Desktop, Claude Code, Cursor, or any MCP-compatible client.
What is MCP?
The Model Context Protocol is an open standard for connecting AI assistants to external tools and data sources. SendSeven's MCP server exposes your messaging platform as a set of tools that AI assistants can use to:
- Send and receive messages across all channels
- Send approved WhatsApp templates (outside the 24h window)
- View and manage conversations (reply, close, reopen, snooze, assign)
- Add internal notes and email conversation transcripts
- Search your knowledge base
- Create and send campaigns
- Manage contacts and tags
- Upload and reuse attachments across sends
- Send Team Chat bot messages to channels and users
- Manage webhook endpoints (developer)
The server is open source — see the sendseven-mcp-server repository for the full source, self-hosting instructions, and the complete tool reference.
Quick Start
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"sendseven": {
"url": "https://mcp.sendseven.com/mcp"
}
}
}
When you first use the server, you'll be guided through OAuth login and capability selection automatically.
Claude Code
claude mcp add sendseven --transport streamable-http https://mcp.sendseven.com/mcp
Cursor
Add to your project's .cursor/mcp.json:
{
"mcpServers": {
"sendseven": {
"url": "https://mcp.sendseven.com/mcp"
}
}
}
Authentication
The MCP server uses OAuth 2.0 with automatic token refresh. When you connect for the first time:
- You'll see a capability picker where you choose which tools to enable
- You'll be redirected to SendSeven to sign in and authorize the connection
- Once authorized, you'll see a confirmation screen and be redirected back to your AI client
No manual API token configuration is needed -- the OAuth flow handles everything.
Capability Selection
During the initial connection, you choose which capabilities to enable. Only the permissions required for your selected capabilities are requested:
| Capability | What it enables | Enabled by default |
|---|---|---|
| Conversations | View, reply to, snooze, close, reopen, and assign conversations; internal notes; email transcripts | Yes |
| Messaging | Send messages and WhatsApp templates via WhatsApp, Telegram, SMS, Messenger, Instagram | Yes |
| Send emails with subject, HTML body, CC/BCC, and mailbox selection | Yes | |
| Contacts | Search, create, update, and manage contacts and tags | Yes |
| Campaigns | Create, send, and monitor messaging and email campaigns | No |
| Knowledge Base | AI-powered search across your content | No |
| Team Chat Bots | List Team Chat channels; send bot messages to channels and direct messages | No |
| Webhooks (Developer) | List, create, and delete webhook endpoints | No |
To change your selection, disconnect and reconnect the MCP server -- you'll see the capability picker again.
Available Tools
42 tools, grouped below by function; the OAuth consent screen groups them into the 8 coarser capability groups above (granting a group grants every tool listed under it here). Full parameter reference and required scopes: docs/TOOLS.md in the repository.
Conversations
| Tool | Description |
|---|---|
list_conversations | List and filter conversations by status (open/snoozed/closed), assignment, channel type, or search term |
get_conversation | View a conversation with its message history |
send_reply | Reply to an existing conversation (auto-detects channel, handles email threading, supports attachments) |
close_conversation | Close a conversation with optional notes and AI summarization |
reopen_conversation | Reopen a closed conversation |
snooze_conversation | Snooze a conversation until a given time (or clear an active snooze) |
assign_conversation | Assign a conversation to a team member |
add_internal_note | Add an agent-only note with optional @mentions — never sent to the customer |
email_conversation_transcript | Email the full conversation transcript as a branded HTML email |
Messaging
| Tool | Description |
|---|---|
send_message_to_contact | Send a message via the best available channel (WhatsApp, Telegram, SMS, Messenger, Instagram), with optional attachments |
send_whatsapp_template | Send an approved WhatsApp template — reach contacts outside the 24-hour window. Supports positional and named variables, indexed dynamic URL and OTP buttons, media/document headers, and carousel templates (cards) |
send_email | Send an email with subject, HTML body, CC/BCC, custom sender, and optional attachments |
Attachments on send_message_to_contact, send_reply, and send_email accept either a previously-uploaded attachment {id}, or {url, filename?} for a public URL that SendSeven downloads server-side — both forms can be mixed in the same request.
Attachment Tools
| Tool | Description |
|---|---|
upload_attachment | Upload a file from a public URL so it can be reused as an attachment across multiple sends (send_reply, send_email, send_message_to_contact, Team Chat messages) without re-uploading the URL each time. The same URL uploaded twice for a tenant returns the existing attachment rather than duplicating it. |
There is deliberately no "list attachments" tool — save the returned id if you'll need it again.
Contacts & Tags
| Tool | Description |
|---|---|
search_contacts | Find contacts by name, phone, email, or tags |
create_contact | Create a new contact |
update_contact | Update a contact's name, phone, email, spoken languages, or birthday |
list_tags | List workspace tags |
create_tag | Create a new tag with optional color |
tag_contact / untag_contact | Add or remove a tag on a contact |
tag_conversation / untag_conversation | Add or remove a tag on a conversation |
Campaigns
| Tool | Description |
|---|---|
list_contact_lists | View contact lists with subscriber counts |
list_campaigns | View messaging campaigns with status and delivery counts |
get_campaign_status | Delivery statistics (sent/delivered/failed) for a messaging campaign |
create_and_send_campaign | Create and send multi-channel campaigns (incl. WhatsApp template campaigns and scheduling) |
list_email_campaigns | View email campaigns with status and analytics |
get_email_campaign_analytics | Get detailed email campaign performance data |
Channels
| Tool | Description |
|---|---|
list_channels | View connected channels with health status |
list_whatsapp_templates | List approved WhatsApp message templates, with true pagination |
get_whatsapp_template | Get full detail for one WhatsApp template by ID — carousel cards, quick-reply captions, default header media, parameter format |
list_email_mailboxes | View email sender identities (mailboxes) |
list_verified_email_domains | List domains verified with your email provider(s), for validating send_email's from_email |
Team
| Tool | Description |
|---|---|
list_team_members | List team members with user IDs and roles (for assignment and @mentions) |
Knowledge Base
| Tool | Description |
|---|---|
query_knowledge_base | AI-powered search across FAQ, website content, uploads, and ticket summaries |
list_knowledge_base_folders | List the knowledge base's folder tree (e.g. "General", "Websites", "Ticket Summaries", plus any custom folders), each with its id and document_count — pass a folder's id as query_knowledge_base's folder_id to search within just that folder |
Team Chat Bots
| Tool | Description |
|---|---|
list_team_chat_channels | Read-only. List channels the connected user has joined, or (with include_browsable=true) channels that exist but aren't joined yet — including each channel's channel_ref, allow_bots, and is_archived status, to find a valid target before sending |
send_team_chat_channel_message | Post a message to a Team Chat channel as a bot (channel UUID or #name), with an optional attachment and bot display name |
send_team_chat_direct_message | Send a bot direct message to a Team Chat user by user ID, with the same attachment and bot-name options |
Attach media with either sending tool by passing an existing attachment ID, or a public https:// URL for SendSeven to fetch server-side — both forms are supported. list_team_chat_channels requires the separate, read-only team_chat:read scope; the sending tools require the bot-only teamchat:write scope.
If you plan to react to Team Chat messages rather than send them, note that create_webhook (below) has no channel-filter parameter for any event — a webhook built through MCP receives messages from every bot-enabled channel and must be filtered on your end. See Team Chat Bot Integration Recipes for the equivalent recipes on Zapier, n8n, and Make.com, some of which do support a channel filter.
Webhooks (Developer)
| Tool | Description |
|---|---|
list_webhooks | List webhook endpoints with health status and recent failures |
create_webhook | Create a webhook endpoint (HTTPS URL + event subscriptions) — the full list of subscribable event types is in its description |
delete_webhook | Delete a webhook endpoint |
Examples
Check and reply to conversations
Ask your AI assistant:
"Show me my open conversations that need a reply"
The assistant will use list_conversations with status=open and needs_reply=true, then you can ask:
"Reply to the conversation with John saying we'll process the refund today"
Send a message to a contact
"Send a WhatsApp message to +49 170 1234567: Your order has been shipped!"
The assistant finds (or creates) the contact, resolves the best channel, and sends the message.
Send a WhatsApp template
"Send the order_update template to +49 170 1234567 with order number ORD-98765"
The assistant uses list_whatsapp_templates to check the template's variables, then send_whatsapp_template — this works even outside the 24-hour messaging window.
Snooze and note
"Snooze this conversation until Monday 9am and add a note that we're waiting for the warehouse"
The assistant snoozes the conversation and attaches an internal note that is visible to your team only — never to the customer.
Email a transcript
"Send the customer a copy of this conversation by email"
The assistant uses email_conversation_transcript to deliver a branded HTML transcript from your default mailbox.
Post to a Team Chat channel
"What Team Chat channels can I post bot updates to, and post 'Deploy finished' to #shoutbox"
The assistant calls list_team_chat_channels to confirm #shoutbox exists and has allow_bots=true, then calls send_team_chat_channel_message to post the message.
Set up a webhook
"Create a webhook that sends new incoming messages to my n8n workflow at https://n8n.example.com/webhook/abc"
The assistant picks a valid event name from create_webhook's description and creates the endpoint with it. (Requires the Webhooks capability.)
Search knowledge base
"What does our refund policy say about digital products?"
The assistant queries the knowledge base and returns an AI-generated answer with source citations.
Send an email
"Email [email protected] with subject 'Meeting Tomorrow' about the project status update. CC [email protected]."
The assistant creates the contact if needed, resolves the email channel, and sends with proper HTML formatting. If your account has multiple email mailboxes configured, the assistant will ask which sender identity to use before sending.
Next Steps
- MCP Server Source Code -- open source, self-hostable server implementation and full tool reference
- Authentication -- API token setup
- Send Messages -- messaging API guide
- Knowledge Base -- knowledge base guide
- Webhooks -- receive real-time events
- Team Chat Bot Integration Recipes -- the same bot-sending actions on Zapier, n8n, and Make.com