SendNeo MCP Server

SendNeo MCP server

SendNeo provides a Streamable HTTP MCP server at https://sendneo.yorkermedia.com/mcp. It exposes email, domain, audience, broadcast, and usage operations through tools that an AI client can call with your bearer key.

Available tools are:

  • send_email
  • get_email
  • list_domains
  • add_domain
  • verify_domain
  • list_audiences
  • add_contact
  • create_broadcast
  • test_broadcast
  • send_broadcast
  • get_usage

send_broadcast is marked destructive and asks the human first. Keep that confirmation step enabled.

Claude Code

Set the key in your shell and add the server:

export SENDNEO_API_KEY='sn_live_your_key'
claude mcp add --transport http sendneo \
  https://sendneo.yorkermedia.com/mcp \
  --header "Authorization: Bearer $SENDNEO_API_KEY"

Use an sn_test_ key while developing prompts or tools. The MCP server follows the same review and sending rules as the REST API.

Claude.ai or ChatGPT

In the connector or custom MCP settings, add this URL:

https://sendneo.yorkermedia.com/mcp

Configure an HTTP Authorization header with the value Bearer <your SendNeo key>. Store the key in the client's secret or connector settings rather than in a prompt. Name the connector SendNeo so tool calls are easy to recognize.

Cursor

Open Cursor's MCP settings and add a Streamable HTTP server with the URL and header:

{
  "mcpServers": {
    "sendneo": {
      "url": "https://sendneo.yorkermedia.com/mcp",
      "headers": {
        "Authorization": "Bearer ${SENDNEO_API_KEY}"
      }
    }
  }
}

Use the configuration format supported by your Cursor version. If environment interpolation is unavailable, enter the bearer value in its secure settings instead of committing a key to the project.

Codex

Add the same Streamable HTTP endpoint as a custom MCP server in Codex settings. Use https://sendneo.yorkermedia.com/mcp and an Authorization: Bearer <key> header. Keep the tool enabled only for the workspace or task that needs it.

Safe operating pattern

MCP makes an email action easy to ask for, so make the boundary explicit in your instructions:

  1. Let the assistant list domains and audiences before it changes anything.
  2. Use test_broadcast and inspect the preview before a real send.
  3. Require a human confirmation for send_broadcast, including the audience, subject, and schedule.
  4. Give agents a test key when they are writing or debugging code.
  5. Give the smallest key scope and rotate it if it appears in a log or transcript.

The MCP layer does not bypass domain verification, account review, suppression, rate limits, or the broadcast confirmation. Transactional sends still use send_email; newsletter sends use the broadcast tools. For direct integrations, see Sending and Newsletters.

One-click connect with OAuth (Claude.ai, Claude Desktop, ChatGPT)

You don't need an API key for connector-based apps. Add https://sendneo.yorkermedia.com/mcp as a custom connector and the app sends you to SendNeo to sign in. On the consent screen pick one of two access levels:

Access level What the agent can do
Draft & test — I approve every send (recommended) Send transactional email, add contacts and domains, draft and test broadcasts. A request to send a broadcast to a list becomes an approval in your dashboard, and we email you.
Full access Everything you can do, including sending broadcasts without asking.

SendNeo publishes OAuth 2.1 metadata (/.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server), supports dynamic client registration, requires PKCE (S256), and rotates refresh tokens. Disconnect any app under Connect AI → Connected apps in the dashboard.

Agent keys

Coding agents (Claude Code, Cursor, Codex, VS Code) use an API key. Create an agent key under Connect AI: it works like a live key, except that broadcast sends wait for your approval — the same safety as the OAuth "Draft & test" level.