MCP server

Give your AI agent email.

sendhustle-mcp is the official Model Context Protocol server for the SendHustle API. Claude, Cursor, and any MCP client can send and manage email in natural language — every endpoint of the HTTP API, exposed as tools your agent calls natively.

TypeScript, zero runtime dependencies, stdio and Streamable HTTP transports. Runs with npx — nothing to install.

Quick start

You need an API key — create a free account, verify a domain, and generate one under API Keys (keys look like sh_…).

Claude Code — one command:

claude mcp add sendhustle \
  -e SENDHUSTLE_API_KEY=sh_YOUR_API_KEY \
  -- npx -y sendhustle-mcp

Cursor, Claude Desktop, Windsurf, or any client that takes a JSON server config:

{
  "mcpServers": {
    "sendhustle": {
      "command": "npx",
      "args": ["-y", "sendhustle-mcp"],
      "env": { "SENDHUSTLE_API_KEY": "sh_YOUR_API_KEY" }
    }
  }
}

Then just ask: “Send our launch announcement to the newsletter audience, A/B test the subject line, and follow up in three days with everyone who didn't open it.”

What your agent can do

111 tools mirroring the full API surface — if the dashboard can do it, your agent can too.

EmailsSend one-off or batch email, retrieve delivery + engagement events, reschedule or cancel scheduled sends, fetch attachments.
Received emailList and read inbound mail, download raw MIME and attachments, forward, or reply in-thread.
DomainsAdd sending domains, fetch the DNS records to publish, re-verify, and even apply DNS automatically on Cloudflare or GoDaddy.
Audiences & contactsCreate audiences, add and update contacts one at a time or in bulk, manage per-contact topics.
Contact propertiesDefine custom merge-tag fields. Creation is an idempotent ensure — asking for an existing key returns it instead of erroring.
Segments & topicsSlice audiences into segments and manage subscription topics contacts can opt out of.
CampaignsCreate and send campaigns with merge tags, A/B tests, follow-up stages, scheduling, and per-campaign stats.
TemplatesCreate and render reusable templates.
WebhooksRegister endpoints, list event deliveries, and verify signatures locally without an API call.

API keys & safety

The server holds no credentials of its own — it acts with exactly the key you give it, so the guardrails you set on the key are the guardrails on the agent:

  • Scope a key to sending_access for send-only agents, or restrict it to a single verified domain.
  • Sends accept an Idempotency-Key, so an agent retry can never double-send.
  • Suppression lists are enforced server-side — an agent cannot email someone who bounced, complained, or unsubscribed.

HTTP transport

Beyond stdio, the server runs as a shared Streamable HTTP endpoint — useful for hosted agents or one server instance backing a whole team. Each client authenticates with its own SendHustle key as the Bearer token.

npx -y sendhustle-mcp --http --port 3000
# Streamable HTTP at POST /mcp — clients pass their own
# SendHustle API key as the Bearer token.