Sendry Docs
Integrations

MCP Server

Use the Sendry MCP server to let Claude, Cursor, Codex, Gemini, and other AI agents manage your Sendry account.

The Sendry MCP server exposes the full email API as Model Context Protocol tools, so any MCP-compatible AI agent can send emails, manage domains, run broadcasts, update contacts, and pull analytics on your behalf.

  • Distribution: npx sendry-mcp — no manual install required.
  • Transport: stdio. Works with Claude Desktop, Claude Code, Cursor, Codex, Gemini, Continue, and any other MCP host.
  • Coverage: 100+ tools across emails, domains, templates, contacts, audiences, campaigns, webhooks, analytics, suppression, unsubscribes, api keys, team, billing, segments, topics, contact properties, deliverability, exports, postmaster, and DLQ.

Quickstart

1. Create a Sendry API key

Go to Settings → API keys and create a key. Pick the scope you want the agent to operate under:

  • full_access — can do anything the dashboard can (domains, billing, team).
  • sending_access — can send, manage templates and contacts, but cannot rotate API keys.
  • read_only — can list and read every resource but cannot make changes.

The MCP server inherits whatever scope you give it — pick the narrowest that still covers what you want the agent to do.

2. Configure your MCP host

Claude Desktop

Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows) and add a sendry entry under mcpServers:

{
  "mcpServers": {
    "sendry": {
      "command": "npx",
      "args": ["-y", "sendry-mcp"],
      "env": {
        "SENDRY_API_KEY": "sn_live_replace_me"
      }
    }
  }
}

Restart Claude Desktop. The hammer icon in the chat composer should now list the Sendry tools.

Cursor / Codex / Gemini / Continue

Same shape — every MCP host accepts the stdio { command, args, env } config. Point command at npx, args at ["-y", "sendry-mcp"], and set SENDRY_API_KEY on env.

3. Talk to the agent

You: Send a welcome email to alice@example.com from hello@acme.com.
Assistant: Sent. The email ID is em_01H9X… and it's currently `queued`.

You: How many emails did I send last week, broken down by domain?
Assistant: (uses sendry_analytics_breakdowns)

Environment variables

VariableRequiredDescription
SENDRY_API_KEYyesThe API key the agent will act under.
SENDRY_BASE_URLnoOverride for self-hosted Sendry. Defaults to https://api.sendry.online.

Tool catalogue

Tool names are prefixed sendry_ and follow <resource>_<action>:

  • sendry_send_email, sendry_list_emails, sendry_cancel_email, …
  • sendry_create_domain, sendry_verify_domain, sendry_update_domain, …
  • sendry_create_campaign, sendry_schedule_campaign, sendry_send_campaign, …
  • sendry_analytics_stats, sendry_analytics_logs, …

See the README for the full table of 100+ tools.

Response sizing

To keep within the model's context window, the MCP server:

  • Truncates HTML email bodies to 2000 characters (the full body is still on the Sendry server — fetch via the SDK if needed).
  • Caps list endpoints at 20 items; the cursor is preserved for pagination.
  • Returns attachment metadata only; binary bytes go through the SDK directly, not the model.

Source

The MCP server lives in packages/sendry-mcp. Issues and contributions are welcome.

On this page