Skip to main content

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:

  1. You'll see a capability picker where you choose which tools to enable
  2. You'll be redirected to SendSeven to sign in and authorize the connection
  3. 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:

CapabilityWhat it enablesEnabled by default
ConversationsView, reply to, snooze, close, reopen, and assign conversations; internal notes; email transcriptsYes
MessagingSend messages and WhatsApp templates via WhatsApp, Telegram, SMS, Messenger, InstagramYes
EmailSend emails with subject, HTML body, CC/BCC, and mailbox selectionYes
ContactsSearch, create, update, and manage contacts and tagsYes
CampaignsCreate, send, and monitor messaging and email campaignsNo
Knowledge BaseAI-powered search across your contentNo
Team Chat BotsList Team Chat channels; send bot messages to channels and direct messagesNo
Webhooks (Developer)List, create, and delete webhook endpointsNo

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

ToolDescription
list_conversationsList and filter conversations by status (open/snoozed/closed), assignment, channel type, or search term
get_conversationView a conversation with its message history
send_replyReply to an existing conversation (auto-detects channel, handles email threading, supports attachments)
close_conversationClose a conversation with optional notes and AI summarization
reopen_conversationReopen a closed conversation
snooze_conversationSnooze a conversation until a given time (or clear an active snooze)
assign_conversationAssign a conversation to a team member
add_internal_noteAdd an agent-only note with optional @mentions — never sent to the customer
email_conversation_transcriptEmail the full conversation transcript as a branded HTML email

Messaging

ToolDescription
send_message_to_contactSend a message via the best available channel (WhatsApp, Telegram, SMS, Messenger, Instagram), with optional attachments
send_whatsapp_templateSend 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_emailSend 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

ToolDescription
upload_attachmentUpload 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

ToolDescription
search_contactsFind contacts by name, phone, email, or tags
create_contactCreate a new contact
update_contactUpdate a contact's name, phone, email, spoken languages, or birthday
list_tagsList workspace tags
create_tagCreate a new tag with optional color
tag_contact / untag_contactAdd or remove a tag on a contact
tag_conversation / untag_conversationAdd or remove a tag on a conversation

Campaigns

ToolDescription
list_contact_listsView contact lists with subscriber counts
list_campaignsView messaging campaigns with status and delivery counts
get_campaign_statusDelivery statistics (sent/delivered/failed) for a messaging campaign
create_and_send_campaignCreate and send multi-channel campaigns (incl. WhatsApp template campaigns and scheduling)
list_email_campaignsView email campaigns with status and analytics
get_email_campaign_analyticsGet detailed email campaign performance data

Channels

ToolDescription
list_channelsView connected channels with health status
list_whatsapp_templatesList approved WhatsApp message templates, with true pagination
get_whatsapp_templateGet full detail for one WhatsApp template by ID — carousel cards, quick-reply captions, default header media, parameter format
list_email_mailboxesView email sender identities (mailboxes)
list_verified_email_domainsList domains verified with your email provider(s), for validating send_email's from_email

Team

ToolDescription
list_team_membersList team members with user IDs and roles (for assignment and @mentions)

Knowledge Base

ToolDescription
query_knowledge_baseAI-powered search across FAQ, website content, uploads, and ticket summaries
list_knowledge_base_foldersList 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

ToolDescription
list_team_chat_channelsRead-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_messagePost 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_messageSend 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)

ToolDescription
list_webhooksList webhook endpoints with health status and recent failures
create_webhookCreate a webhook endpoint (HTTPS URL + event subscriptions) — the full list of subscribable event types is in its description
delete_webhookDelete 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