Connecting
Connect an MCP client (Claude Code, Cursor, claude.ai) over OAuth 2.1. What a session reaches, and the projectId-first flow.
The Send & Retain MCP server is a single HTTP endpoint:
https://sendandretain.com/api/mcpAuthentication is OAuth 2.1 — there is no token to mint, copy, or store. Point a client at that URL and it discovers the authorization server itself, registers, and sends you to a browser to approve.
MCP personal access tokens (aiem_…) were removed. If a client config still sends an Authorization: Bearer aiem_… header, delete the header — it no longer authenticates anything, and OAuth needs nothing in its place. The aem_ keys used by the REST API are a separate credential and are unaffected.
1. Connect a client
claude mcp add --transport http sendandretain \
https://sendandretain.com/api/mcpThen run /mcp and authorize sendandretain in the browser on first use.
Or install the bundled plugin (skills + slash commands + the tool set) from https://sendandretain.com/api/mcp/plugin.zip — it bakes in the same URL and authorizes the same way.
For a client that only speaks stdio, bridge it:
npx mcp-remote https://sendandretain.com/api/mcp2. Know what the session reaches
A connected session is always workspace-scoped with write access: every company in the org, every email_* tool. There is no read-only credential and no single-company credential.
Because the session reaches everything, project-scoped tools need an explicit projectId. Call email_list_projects first and pass the company's projectId on each subsequent call.
Provider API keys can never be set over MCP. email_connect_provider returns the settings-page URL where a human pastes the Resend/SendGrid key.
3. Call a tool
Once connected, the client discovers the email_* tools automatically. Golden path for a new company:
email_create_project → email_connect_provider (human pastes the key) →
email_create_domain → email_verify_domain → email_register_webhooks →
email_create_sender → email_send_test_email → email_create_api_keyEvery tool + its schema is in the domain pages of this reference.
Rate limits
Per-user, in-memory: reads 60/min, writes 10/min. Sends are additionally bounded by each project's daily cap and the kill switch (see Guardrails).