Odel
send16 mcp

send16 mcp

@spruikcoJavaScriptMITUpdated 1mo ago

Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

send16-mcp

npm version npm downloads MCP license

The email API your AI agent can actually use. A Model Context Protocol server for Send16 that gives Claude, Cursor, and any MCP client 79 tools to send transactional & marketing email, manage contacts, audiences, segments, automations, templates, the inbox, suppressions, and webhooks — from natural language.

It ships a zero-DNS sandbox sender, so an agent can send its first real, delivered email in seconds with no domain setup.

npx send16-mcp

Quick start

You need a Send16 API key (sk_live_…) from your dashboard. Then pick your client:

Claude Desktop / Claude Code

claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "send16": {
      "command": "npx",
      "args": ["-y", "send16-mcp"],
      "env": { "SEND16_API_KEY": "sk_live_..." }
    }
  }
}

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "send16": {
      "command": "npx",
      "args": ["-y", "send16-mcp"],
      "env": { "SEND16_API_KEY": "sk_live_..." }
    }
  }
}

Windsurf, VS Code, and any stdio-capable MCP client work the same way — run the send16-mcp binary with SEND16_API_KEY in the environment.

Hosted (no install)

For clients that only speak remote MCP (Claude web connectors, ChatGPT custom GPTs), point them at the hosted endpoint and authenticate with your key:

https://mcp.send16.com

One connection, your own sk_live_… key — no install, no config file.


First send in seconds — no DNS

Most email APIs make you verify a domain before you can send anything, which blocks an unattended agent on step one. Send16's sandbox sender doesn't:

  1. Ask the agent to call whoami — it returns your workspace and your sandbox_recipient (your account owner's email).
  2. Send from: "onboarding@send16.com" to that address. It delivers with zero DNS setup.
  3. Verify a domain later to send to anyone.

"Send a test email from onboarding@send16.com to my account email with the subject 'It works'."


What it can do

79 tools across the platform, including:

  • Emailsend_email (single/batch/scheduled/attachments), transactional templates, delivery status.
  • Marketing — campaigns, broadcasts, automations, segments, subscription topics.
  • Contacts — create/search/list/import, audiences, tags, custom fields.
  • Deliverability — domains, DNS health (SPF/DKIM/DMARC), IP warming & sending capacity.
  • Inbox — read and manage transactional replies.
  • Webhooks — create/list/rotate outgoing webhook endpoints (HMAC-SHA256 signed).

Every tool also accepts an optional apiKey parameter that overrides SEND16_API_KEY, so you can switch workspaces in one session.

Environment

VariableRequiredDescription
SEND16_API_KEYYesYour Send16 key (sk_live_…)
SEND16_API_URLNoAPI base URL (default: https://api.send16.com)
SEND16_MCP_PORTNoIf set, serves Streamable HTTP (multi-tenant) instead of stdio

Self-hosting the HTTP connector

Presence of SEND16_MCP_PORT flips the server into multi-tenant HTTP mode — each request carries its own Authorization: Bearer sk_live_…, threaded through the whole request, so one process serves many users:

docker build -t send16-mcp . && docker run -p 4242:4242 send16-mcp

Develop

npm install
SEND16_API_KEY=sk_live_... npm run dev   # run from source
npm run build                            # bundle to dist/

Links

License

MIT © Spruik Co