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.

ℹ️

Authentication Options

API key: Get your API key from Organization Admin Settings. Use Authorization: Bearer YOUR-API-KEY for most clients. For directory platforms that reserve the Authorization header (e.g. Smithery), use X-Supersend-Api-Key: YOUR-API-KEY instead.

OAuth (marketplaces): When adding SuperSend from an MCP directory (Smithery, ClawHub, etc.), you can connect via OAuth. The platform will open a browser for you to log in and authorize—no API key needed.


Installation

Add to ~/.cursor/mcp.json:

json
{
"mcpServers": {
"supersend": {
"url": "https://mcp.supersend.io/mcp",
"headers": {
"Authorization": "Bearer YOUR-API-KEY"
}
}
}
}

Replace YOUR-API-KEY with your SuperSend API key.


Connecting via MCP Marketplaces (Smithery, ClawHub, etc.)

When adding SuperSend from an MCP directory, you can connect with OAuth instead of an API key:

  • Add the SuperSend MCP server URL: https://mcp.supersend.io/mcp

  • When prompted, choose OAuth (if offered) — the platform will open a browser

  • Log in to SuperSend (or create an account) and click Allow to authorize

  • Return to the platform—you're connected
  • OAuth tokens are valid for 1 hour; re-authorize when needed. You can always use an API key instead if you prefer manual setup.


    Server Endpoints

    The MCP server (at https://mcp.supersend.io or https://mcp-stage.supersend.io for staging) exposes:

    MethodPathAuthDescription
    POST/mcpAPI key or OAuthMain MCP endpoint. Use Authorization: Bearer YOUR-API-KEY or X-Supersend-Api-Key. OAuth access tokens supported for marketplace flows (Smithery, etc.).
    GET/healthNoneHealth check. Returns {"status":"ok","service":"mcp-server"}.
    GET/.well-known/oauth-protected-resourceNoneOAuth Protected Resource Metadata (RFC 9728). For OAuth discovery when publishing to MCP marketplaces.
    GET/.well-known/mcp/server-card.jsonNoneStatic server card (optional scan bypass).
    POST/registerNoneDirectory/OAuth compatibility (e.g. Smithery). Returns {"status":"ok","registered":true}.



    Available Tools

    Health

    ToolDescription
    get_healthCheck SuperSend API health and connectivity


    Teams

    ToolDescription
    list_teamsList teams the user has access to
    get_teamGet a team by ID


    Contacts

    ToolDescription
    list_contactsList contacts in a team (TeamId required)
    get_contactGet a contact by ID
    create_contactCreate/upsert a contact (TeamId, CampaignId, email or linkedin_url required)
    update_contactUpdate a contact
    delete_contactDelete a contact (soft delete)
    bulk_import_contactsBulk import contacts (JSON array)


    Campaigns

    ToolDescription
    create_campaignCreate a new campaign (name, TeamId required). Optionally pass nodes/edges for initial sequence.
    list_campaignsList campaigns in a team. Filter by status: active or inactive
    get_campaignGet a campaign by ID
    activate_campaignTurn a campaign on (start sending)
    deactivate_campaignTurn a campaign off (pause sending)
    get_campaign_sequenceGet campaign sequence (nodes and edges)
    update_campaign_sequenceUpdate campaign sequence (nodes and/or edges)


    Senders

    ToolDescription
    list_sendersList email senders
    get_senderGet a sender by ID
    update_senderUpdate a sender
    get_sender_bounce_insightsAI bounce type breakdown per sender


    Events

    ToolDescription
    list_eventsList events (sends, opens, clicks, replies, bounces)
    get_eventGet an event by ID


    Conversations

    ToolDescription
    list_conversationsList conversations. Use channel: email or linkedin. Use last_message_direction: inbound (replies) or outbound (our sent)
    get_conversationGet a conversation by ID
    get_conversation_messagesGet messages in a conversation
    send_conversation_messageSend a message in a conversation


    Labels

    ToolDescription
    list_labelsList conversation labels


    Blacklist

    ToolDescription
    list_blacklistList blacklisted emails/domains
    add_to_blacklistAdd to blacklist
    remove_from_blacklistRemove from blacklist


    Webhooks

    ToolDescription
    list_webhooksList webhooks
    create_webhookCreate a webhook


    Intelligence

    ToolDescription
    analyze_capacity_and_scheduleCapacity planning: when campaigns will finish, allocated capacity, whether more infrastructure is needed
    diagnose_deliverabilityDeliverability diagnosis: reply rate, bounces, placement tests, target mix (Gmail/Outlook/corporate), recommendations
    analyze_sender_healthPer-sender health: sends, bounces, at-risk flags
    get_outbound_summaryTeam outbound metrics: sends, replies, top campaigns
    analyze_domain_healthPer-domain DNS/health: SPF, DKIM, DMARC, MX, at-risk flags


    Domains & Deliverability

    ToolDescription
    list_domainsList managed domains
    get_domainGet a domain by ID
    purchase_domainPurchase domains (requires payment method, contact details)
    purchase_mailboxPurchase mailboxes for existing domains
    purchase_domains_and_mailboxesPurchase domains and mailboxes in one transaction
    list_placement_testsList placement tests
    get_domain_bounce_insightsAI bounce breakdown per domain



    Usage Examples

    List Your Teams

    List my SuperSend teams

    The AI will use list_teams to fetch your teams and display them.

    Check API Health

    Check if my SuperSend API connection is healthy

    The AI will use get_health to verify connectivity.

    Create a Campaign

    Create a new campaign called "Q4 Outreach" in my Cold team

    The 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" folder

    The 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 campaigns

    The 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 contact

    The AI will:

  • Use list_teams to get your teams

  • Use list_campaigns to find "Outreach Campaign"

  • Use create_contact with the email and campaign ID
  • View Campaign Sequence

    Show me the sequence for my "Product Launch" campaign

    The 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" team

    The AI will:

  • Use list_teams to find "Sales Team"

  • Use list_contacts with the team ID to show contacts
  • Check Sender Bounce Insights

    Show me bounce insights for sender john@example.com

    The AI will:

  • Use list_senders to find the sender

  • Use get_sender_bounce_insights to show AI-categorized bounce breakdown
  • List Conversations Needing Response

    Show me email conversations that need a response

    The 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

  • Team and Campaign IDs: If the AI asks for a Team ID or Campaign ID, ask it to "List my SuperSend teams first" — it will fetch the IDs and use them automatically.

  • Intelligence tools: Use 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?"

  • Search by Name: Many tools support searching by name. For example, "List campaigns named 'Outreach'" will search for campaigns matching that name.

  • Bulk Operations: Use bulk_import_contacts to add multiple contacts at once instead of creating them one by one.

  • Campaign Status: Use activate_campaign and deactivate_campaign to start or pause campaigns programmatically.