Sendmux Email MCP Server

official

Sendmux is an email inbox API and email API for AI agents.

Documentation

MCP

Connect AI tools to Sendmux documentation and product tools.

Sendmux has two MCP connections. Use Documentation MCP when you want an AI tool to search Sendmux docs. Use Product MCP when you want an agent to work with Sendmux tools you authorise.

ConnectionUse it forServer
Documentation MCPSearch Sendmux guides and API references.https://sendmux.ai/docs/mcp
Product MCPUse Management, Mailbox, and Sending tools.https://mcp.sendmux.ai/mcp or the local sendmux-mcp package
Product MCP exposes a curated agent toolset, not every API endpoint. Use the SDKs, CLI, or API reference when you need full endpoint coverage.

Documentation MCP

Documentation MCP exposes search_sendmux.

```bash theme={null} claude mcp add sendmux-docs --transport http https://sendmux.ai/docs/mcp ``` Add this server to `.cursor/mcp.json` for one project or `~/.cursor/mcp.json` for all projects.
```json theme={null}
{
  "mcpServers": {
    "sendmux-docs": {
      "url": "https://sendmux.ai/docs/mcp"
    }
  }
}
```
Add this server to your user or workspace `mcp.json`.
```json theme={null}
{
  "servers": {
    "sendmux-docs": {
      "type": "http",
      "url": "https://sendmux.ai/docs/mcp"
    }
  }
}
```
Add this server to `~/.codex/config.toml` or a trusted project `.codex/config.toml`.
```toml theme={null}
[mcp_servers.sendmux_docs]
url = "https://sendmux.ai/docs/mcp"
```

Product MCP

Product MCP exposes the product surfaces you grant.

SurfaceUse it forAccess
MailboxSearch, read, organise, and send from granted mailboxes.Hosted grant with Mailbox access, or an smx_mbx_ key locally
ManagementManage team resources such as domains, mailboxes, sending accounts, logs, metrics, billing, and webhooks.Hosted grant with Management access, or an smx_root_ key locally
SendingSend single or batch emails.Hosted grant with Sending access, or an smx_mbx_ key locally

Hosted Product MCP is the default when your client supports remote MCP with browser OAuth. It keeps Sendmux in the authorisation flow, avoids distributing manual API keys to agents, and shows only the tools allowed by the grant.

SettingValue
Server URLhttps://mcp.sendmux.ai/mcp
Authorisation serverhttps://app.sendmux.ai
Health checkhttps://mcp.sendmux.ai/health

When you connect, Sendmux asks you to choose a team, product surfaces, and mailbox access where relevant. Access tokens are short-lived. Refresh tokens rotate on use and can last up to 30 days unless the connection is disconnected or expires.

If you grant more than one mailbox, start mailbox workflows with `mailbox_list_granted_mailboxes` and pass the returned `mailbox_id` to tools that act on one mailbox.

Connection modes

Use when your client can open a browser-based MCP OAuth flow. Use when your coding agent can launch a local command on your machine. Use when a client needs a URL but you run the MCP package yourself.

Local package

Install the local package from PyPI:

pip install sendmux-mcp

Run one surface:

SENDMUX_API_KEY=smx_mbx_... sendmux-mcp-mailbox
SENDMUX_API_KEY=smx_root_... sendmux-mcp-management
SENDMUX_API_KEY=smx_mbx_... sendmux-mcp-sending

Run all product surfaces:

SENDMUX_MCP_SURFACES=mailbox,management,sending \
SENDMUX_MAILBOX_API_KEY=smx_mbx_... \
SENDMUX_MANAGEMENT_API_KEY=smx_root_... \
SENDMUX_SENDING_API_KEY=smx_mbx_... \
sendmux-mcp

The server validates key prefixes before starting. Management requires a root key. Mailbox and Sending require a mailbox-scoped key.

Private HTTP

HTTP mode is useful when your MCP client connects to a server URL but you still want to run the package yourself.

SENDMUX_API_KEY=smx_mbx_... \
SENDMUX_MCP_HTTP_BEARER_TOKEN=local-mcp-token \
sendmux-mcp-mailbox --transport http --host 127.0.0.1 --port 8765

The endpoint defaults to /mcp. /health returns the selected surfaces. HTTP mode requires SENDMUX_MCP_HTTP_BEARER_TOKEN unless you explicitly start it with --allow-unauthenticated-http.

Configuration reference

| Setting | Environment | Default | | ----------------------------------- | ------------------------------- | -------------------------------- | | Tool surfaces | `SENDMUX_MCP_SURFACES` | Required for `sendmux-mcp` | | API key fallback | `SENDMUX_API_KEY` | None | | Mailbox API key | `SENDMUX_MAILBOX_API_KEY` | None | | Management API key | `SENDMUX_MANAGEMENT_API_KEY` | None | | Sending API key | `SENDMUX_SENDING_API_KEY` | None | | Management and Mailbox API base URL | `SENDMUX_APP_BASE_URL` | `https://app.sendmux.ai/api/v1` | | Sending API base URL | `SENDMUX_SENDING_BASE_URL` | `https://smtp.sendmux.ai/api/v1` | | Transport | `SENDMUX_MCP_TRANSPORT` | `stdio` | | HTTP host | `SENDMUX_MCP_HOST` | `127.0.0.1` | | HTTP port | `SENDMUX_MCP_PORT` | `8765` | | HTTP path | `SENDMUX_MCP_PATH` | `/mcp` | | HTTP bearer token | `SENDMUX_MCP_HTTP_BEARER_TOKEN` | Required for HTTP | | Allowed browser origins | `SENDMUX_MCP_ALLOWED_ORIGINS` | No browser origins | ```bash theme={null} sendmux-mcp \ --surfaces mailbox,management,sending \ --mailbox-api-key smx_mbx_... \ --management-api-key smx_root_... \ --sending-api-key smx_mbx_... ```

Tool discovery

Tool names are generated from the current public API surfaces. Open your MCP client's tool picker after authorisation to see the tools available to that connection.

Hosted connections show only the tools allowed by the selected product surfaces, permissions, and mailbox grant. Local servers show the tools for the surfaces and keys you provide at startup.

Troubleshooting

Confirm the selected product surfaces and granted permissions. Hosted connections show only tools allowed by the grant. Check the API key prefix. Management needs `smx_root_`; Mailbox and Sending need `smx_mbx_`. Send `Authorization: Bearer ` to private HTTP, or complete OAuth for hosted MCP. Add the browser client's origin to `SENDMUX_MCP_ALLOWED_ORIGINS` for private HTTP. Connect only the surfaces you need, or disable unused tools in the client.

Next steps

Configure Sendmux MCP in Claude Code, Cursor, Codex, Gemini CLI, Qwen Code, Zed, and more. Use package-managed clients from application code. Install the CLI with Snap, Homebrew, or npm when you need terminal access. Create scoped credentials for local MCP setups.