MCP Server
Connect AI assistants to SuperSend via Model Context Protocol (MCP)
SuperSend MCP Server connects AI assistants (Cursor, Claude Desktop, VS Code, etc.) to SuperSend's API, enabling you to manage contacts, campaigns, senders, and more directly from your AI assistant.
Prefer a terminal without an AI agent? Use the SuperSend CLI from the same npm package (@super-send/mcp-server).
Authentication Options
API key: Each organization has a single API key (it does not rotate from the UI). Copy it from Admin → System under IDs → API Key → Copy. Use Authorization: Bearer YOUR-API-KEY for Cursor, Claude Code, Desktop mcp-remote, and similar. For directory platforms that reserve the Authorization header (e.g. Smithery), use X-Supersend-Api-Key: YOUR-API-KEY instead.
Installation
https://mcp.supersend.io/mcpList my SuperSend teamsNo API key is required for this path. Full walkthrough: Connect SuperSend MCP to Claude.
Connecting via Claude.ai Connectors or MCP Marketplaces
When adding SuperSend from Claude.ai Connectors or an MCP directory (Smithery, ClawHub, etc.), connect with OAuth instead of an API key:
https://mcp.supersend.io/mcpClaude uses its standard MCP OAuth callback (https://claude.ai/api/mcp/auth_callback). SuperSend validates redirect URIs via the client's Client ID Metadata Document (CIMD).
OAuth tokens are valid for 1 hour; re-authorize when needed. You can always use an API key instead if you prefer manual setup on Desktop, Cursor, or Claude Code.
Server Endpoints
The MCP server (at https://mcp.supersend.io or https://mcp-stage.supersend.io for staging) exposes:
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /mcp | API key or OAuth | Main MCP endpoint. Use Authorization: Bearer YOUR-API-KEY or X-Supersend-Api-Key. OAuth access tokens supported for marketplace flows (Smithery, etc.). |
GET | /health | None | Health check. Returns {"status":"ok","service":"mcp-server"}. |
GET | /.well-known/oauth-protected-resource/mcp | None | OAuth Protected Resource Metadata (RFC 9728) for OAuth discovery. resource is https://mcp.supersend.io/mcp. |
GET | /.well-known/oauth-protected-resource | None | Same metadata at the root well-known path. |
GET | /.well-known/mcp/server-card.json | None | Static server card (optional scan bypass). |
POST | /register | None | Dynamic client registration is not supported (returns 400 invalid_client_metadata). OAuth clients use Client ID Metadata Documents. |
If the credentials are missing or rejected, /mcp returns 401 with a WWW-Authenticate header pointing to the metadata above, which starts the OAuth flow in clients like Claude. If you connect with OAuth and your SuperSend user has no API key, you get a 403: create an API key in Admin → System, then reconnect.
Available Tools
Health
| Tool | Description |
|---|---|
get_health | Check SuperSend API health and connectivity |
get_setup_status | What the account still needs before it can send, with links for the steps you do in a browser. Shows as a checklist card in Claude on the web and desktop |
Teams
| Tool | Description |
|---|---|
list_teams | List teams the user has access to |
get_team | Get a team by ID |
Contacts
| Tool | Description |
|---|---|
list_contacts | List contacts in a team (TeamId required) |
get_contact | Get a contact by ID |
create_contact | Create/upsert contact or profile-only (TeamId + identifier); optional CampaignId; optional contact_profile_id; optional validate_emails (unvalidated/pending profiles only) |
update_contact | Update a contact |
delete_contact | Delete a contact (soft delete) |
bulk_import_contacts | Bulk import contacts (JSON array); optional validate_emails |
verify_email | Standalone email verification (POST /v2/email-validation/verify; consumes credits). See Email validation API. |
Campaigns
| Tool | Description |
|---|---|
create_campaign | Create a new campaign (name, TeamId required). Optionally pass nodes/edges for initial sequence. |
list_campaigns | List campaigns in a team. Filter by status: active or inactive |
get_campaign | Get a campaign by ID |
get_campaign_review | What a campaign will do before it sends, and whether it can launch. Shows as a review card with a launch button in Claude on the web and desktop |
get_campaign_stats | Campaign results matching the dashboard: sent, opens, clicks, replies, bounces with rates; lead outcomes; per-step and A/B variant results with the leading variant |
send_campaign_test | Send test emails of a campaign's email steps to your own inbox before launch (variables filled from a real contact; nothing goes to contacts) |
activate_campaign | Turn a campaign on (start sending) |
deactivate_campaign | Turn a campaign off (pause sending) |
get_campaign_sequence | Get campaign sequence (nodes and edges) |
update_campaign_sequence | Update campaign sequence (nodes and/or edges) |
Senders
| Tool | Description |
|---|---|
list_senders | List email senders (optional domain, domain_match) |
get_sender | Get a sender by ID |
update_sender | Update a sender, including starting or stopping warmup and its sender profile |
create_sender_profile | Create a sender profile (group of inboxes campaigns send from) |
get_inbox_checkout_link | Plan new domains and inboxes; returns a checkout link for you to pay |
get_sender_bounce_insights | AI bounce type breakdown per sender |
Events
| Tool | Description |
|---|---|
list_events | List events (sends, opens, clicks, replies, bounces) |
get_event | Get an event by ID |
Conversations
| Tool | Description |
|---|---|
list_conversations | List conversations. Use channel: email or linkedin. Use last_message_direction: inbound (replies) or outbound (our sent) |
get_conversation | Get a conversation by ID |
update_conversation | Mark a conversation read or unread, or archive it |
add_conversation_label | Label a conversation (label forwarding rules and AI learning apply, as in the inbox) |
remove_conversation_label | Remove a label from a conversation |
get_conversation_messages | Get messages in a conversation |
send_conversation_message | Send a message in a conversation |
Labels
| Tool | Description |
|---|---|
list_labels | List conversation labels |
create_label | Create an inbox or contact label |
Blacklist
| Tool | Description |
|---|---|
list_blacklist | List blacklisted emails/domains |
add_to_blacklist | Add to blacklist |
remove_from_blacklist | Remove from blacklist |
Webhooks
| Tool | Description |
|---|---|
list_webhooks | List webhooks |
create_webhook | Create a webhook |
Intelligence
| Tool | Description |
|---|---|
analyze_capacity_and_schedule | Capacity planning: when campaigns will finish, allocated capacity, whether more infrastructure is needed |
diagnose_deliverability | Deliverability diagnosis: reply rate, bounces, placement tests, target mix (Gmail/Outlook/corporate), recommendations |
analyze_sender_health | Per-sender health: sends, bounces, at-risk flags |
get_outbound_summary | Team outbound metrics: sends, replies, top campaigns |
analyze_domain_health | Per-domain DNS/health: SPF, DKIM, DMARC, MX, at-risk flags |
Domains & Deliverability
| Tool | Description |
|---|---|
list_domains | List managed domains |
get_domain | Get a domain by ID |
purchase_domain | Purchase domains (requires payment method, contact details) |
purchase_mailbox | Purchase mailboxes for existing domains |
purchase_domains_and_mailboxes | Purchase domains and mailboxes in one transaction |
list_placement_tests | List placement tests |
create_placement_test | Run an inbox placement test from one of your inboxes, optionally with a campaign's first email (uses credits) |
get_placement_test | Placement test status, score, and where the email landed at each seed mailbox |
get_domain_bounce_insights | AI bounce breakdown per domain |
Usage Examples
List Your Teams
List my SuperSend teamsThe AI will use list_teams to fetch your teams and display them.
Check API Health
Check if my SuperSend API connection is healthyThe AI will use get_health to verify connectivity.
Create a Campaign
Create a new campaign called "Q4 Outreach" in my Cold teamThe AI will use list_teams to find the team, then create_campaign with the name and TeamId. Optionally, it can pass nodes and edges for an initial sequence, or category_id from list_campaign_categories to assign to a folder.
Manage Campaign Categories (Folders)
List my campaign folders for the Sales team
Create a folder called "Q1 Outreach" in my Sales team
Rename folder "Q1 Outreach" to "Q1 Cold Outreach"
Delete the "Old Campaigns" folderThe AI will use list_campaign_categories, create_campaign_category, update_campaign_category, and delete_campaign_category to manage folders that organize campaigns.
List Campaigns
List my active campaignsThe AI will first fetch your teams using list_teams, then use list_campaigns with status: "active" to show your running campaigns.
Add a Contact
Add john@example.com to my "Outreach Campaign" campaign as a contactThe AI will:
list_teams to get your teamslist_campaigns to find "Outreach Campaign"create_contact with the email and campaign IDView Campaign Sequence
Show me the sequence for my "Product Launch" campaignThe AI will use get_campaign_sequence to display the campaign's nodes (steps) and edges (connections).
List Contacts in a Team
List contacts in my "Sales Team" teamThe AI will:
list_teams to find "Sales Team"list_contacts with the team ID to show contactsCheck Sender Bounce Insights
Show me bounce insights for sender john@example.comThe AI will:
list_senders to find the senderget_sender_bounce_insights to show AI-categorized bounce breakdownList Conversations Needing Response
Show me email conversations that need a responseThe AI will use list_conversations with channel: "email" and last_message_direction: "inbound" to show replies from contacts.
Send a Message in a Conversation
Reply to conversation [conversation-id] with "Thanks for your interest!"The AI will use send_conversation_message to send your reply.
When Will My Campaigns Finish?
When will my campaigns finish? Do I have enough capacity?The AI will use list_teams to get your team, then analyze_capacity_and_schedule to show campaign completion forecasts and whether you need more senders or capacity.
Why Is My Reply Rate Low?
Why is my reply rate so low?The AI will use list_teams to get your team, then diagnose_deliverability to show reply rate, bounce breakdown, placement test results, target mix, and actionable recommendations.
Which Senders Are at Risk?
Which senders are at risk?The AI will use list_teams to get your team, then analyze_sender_health to show per-sender metrics and flag senders with elevated bounce rates.
How's My Outreach Performing?
How's my outreach performing?The AI will use list_teams to get your team, then get_outbound_summary to show sends, replies, bounce rate, reply rate, and top campaigns.
Which Domains Have DNS or Deliverability Issues?
Which domains have DNS issues? / Are any of my domains at risk?The AI will use list_teams to get your team, then analyze_domain_health to show per-domain SPF, DKIM, DMARC, MX status, blacklist info, and at-risk flags.
Tips
analyze_capacity_and_schedule for "when will campaigns finish?"; diagnose_deliverability for reply rate or deliverability; analyze_sender_health for "which senders are at risk?"; get_outbound_summary for "how's my outreach performing?"; analyze_domain_health for "which domains have DNS or deliverability issues?"bulk_import_contacts to add multiple contacts at once instead of creating them one by one.activate_campaign and deactivate_campaign to start or pause campaigns programmatically.