Email tools for every MCP client — no custom bridge required

MultiMail's MCP server connects Claude Desktop, Cursor, Windsurf, and any MCP-compatible client to production email with graduated oversight built in from day one.


Why this matters

MCP clients are good at calling tools, but wiring them to real email requires more than a single tool definition. You need inbox access with proper authentication, send controls, thread tracking so replies land in the right conversation, and a mechanism to prevent the agent from dispatching email that hasn't been reviewed. Building that bridge from scratch — then maintaining it across MCP spec revisions — pulls time away from the actual agent logic.


How MultiMail solves this

MultiMail ships a production-ready MCP server (@multimail/mcp-server) with 50 tools covering the full email lifecycle: read, compose, reply, search, tag, thread, schedule, and approve. Point any MCP client at it with a single config block. The server inherits MultiMail's oversight model, so you can configure gated_send to hold outbound email in an approval queue until a human confirms — no additional code required.

1

Add MultiMail to your MCP client config

Add @multimail/mcp-server to your client's mcpServers block with your API key. Claude Desktop, Cursor, Windsurf, and any MCP 1.x-compatible client discovers the 43 available tools on the next restart.

2

Tools appear in the agent's context automatically

The agent can call check_inbox, read_email, get_thread, manage_contacts, send_email, reply_email, tag_email, list_pending, and more. Tool schemas are self-documenting — no system prompt engineering required.

3

Agent reads and processes inbound email

The agent calls check_inbox to retrieve unread messages, read_email to load full content, and get_thread to reconstruct conversation history before composing a response.

4

Outbound actions queue for human review

With gated_send oversight, calls to send_email or reply_email create a pending action in your approval queue instead of delivering immediately. The agent receives a pending action ID and can continue processing other messages.

5

Human reviews and approves

You receive a webhook notification or poll list_pending via the API or MCP tool. Approve or reject each pending send. Approved messages deliver with original threading headers intact.

6

Adjust oversight as confidence grows

Switch the mailbox to monitored or autonomous once you've validated the agent's judgment on a given workflow. The change takes effect immediately — no redeployment, no code change.


Implementation

Claude Desktop configuration
json
"cm">// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "$MULTIMAIL_API_KEY"
      }
    }
  }
}

Add MultiMail to Claude Desktop's mcpServers block. The server starts automatically when Claude Desktop launches.

Cursor / VS Code project config
json
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "$MULTIMAIL_API_KEY"
      }
    }
  }
}

Project-scoped MCP config for Cursor and VS Code. Place in .cursor/mcp.json or .vscode/mcp.json at the repo root.

Remote MCP server (OAuth, no local process)
json
"cm">// claude_desktop_config.json — remote server variant
{
  "mcpServers": {
    "multimail": {
      "type": "http",
      "url": "https://mcp.multimail.dev/mcp"
    }
  }
}

Use MultiMail's hosted MCP endpoint instead of npx. Supports OAuth token exchange — no API key stored in config files.

Set gated_send oversight on a mailbox
bash
curl -X PATCH https://api.multimail.dev/mailboxes/[email protected] \
  -H "Authorization: Bearer $MULTIMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d &"cm">#039;{"oversight_mode": "gated_send"}'

Configure the mailbox so agent sends queue for human approval before delivery. Run this once via the REST API before connecting your MCP client.

Review and approve pending sends
bash
"cm"># List sends awaiting approval
curl https://api.multimail.dev/pending \
  -H "Authorization: Bearer $MULTIMAIL_API_KEY"

"cm"># Approve a specific pending send
curl -X POST https://api.multimail.dev/emails/msg_01ABCDEF/decide \
  -H "Authorization: Bearer $MULTIMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d &"cm">#039;{"decision": "approve"}'

After the agent queues an outbound email, retrieve pending actions and approve the ones you want delivered.


What you get

No bridge code

MultiMail's MCP server handles authentication, inbox polling, threading, and send controls. Your agent gets a clean 50-tool surface without any custom integration layer to build or maintain.

Approval controls built into every send

gated_send oversight intercepts send_email and reply_email calls before delivery. The agent's tool call succeeds — the message lands in a queue instead of the recipient's inbox until a human confirms.

Works with any MCP 1.x client

The server implements standard MCP tool and resource schemas. Claude Desktop, Cursor, Windsurf, Continue, and any client following the MCP spec discovers the tools automatically — no client-specific customization needed.

Hosted or local — identical tool surface

Run @multimail/mcp-server locally via npx, or point your client at https://mcp.multimail.dev/mcp for OAuth-based access with no local process and no API key in config files.

Thread continuity across sessions

MultiMail tracks message IDs and In-Reply-To headers server-side. When the agent calls reply_email with a message ID, the outbound message threads correctly in the recipient's client regardless of which session composed it.


Recommended oversight mode

Recommended
gated_send
MCP agents composing email on behalf of users have broad discretion over recipients, tone, and content. Starting with gated_send means the agent can process inbound mail and draft responses autonomously, but a human confirms each outbound send before delivery. Once you've reviewed a few dozen sends and trust the agent's judgment on a given mailbox, switch to monitored or autonomous without changing any configuration.

Common questions

Which MCP clients does MultiMail's server support?
Any client implementing MCP 1.x — including Claude Desktop, Cursor, Windsurf, and Continue. The server exposes standard tool schemas, so no client-specific configuration is required beyond adding it to the mcpServers block.
What is the difference between the npx package and the remote MCP server?
Both expose identical tool schemas. The remote server at https://mcp.multimail.dev/mcp uses OAuth 2.0, so no API key is stored in local config files. The npx package (@multimail/mcp-server) runs as a local process and authenticates with a MULTIMAIL_API_KEY environment variable.
Can I connect multiple mailboxes through one MCP server instance?
Yes. MultiMail's MCP tools accept an optional mailbox parameter. If omitted, they operate on your account's default mailbox. Each mailbox can have its own oversight mode — you can run gated_send on one and autonomous on another simultaneously.
What does the agent see when a send is held for approval?
The send_email or reply_email tool call returns a success response with a pending action ID. From the agent's perspective, the tool call completed. The email is held in the approval queue until a human approves or rejects it via the dashboard, REST API, or the decide_email MCP tool.
Does the MCP server support receiving inbound email in real time?
The check_inbox tool polls for new messages synchronously. For event-driven workflows, configure a MultiMail inbound webhook to POST to your server when new email arrives, then trigger a new MCP session from that webhook handler. The two patterns can run in parallel on the same mailbox.
How does thread continuity work across agent sessions?
MultiMail stores original message IDs server-side. When the agent calls reply_email with a message ID, the outbound message includes the correct In-Reply-To and References headers so it threads in the recipient's email client — even if the agent has no memory of the original conversation.
Are there rate limits on MCP tool calls?
Tool call rates mirror REST API limits for your plan. Starter accounts allow 200 emails per month. Builder ($9/mo) allows 5,000. Pro ($29/mo) allows 30,000. Limits apply to send_email and reply_email; read, search, and tag operations do not count against email volume limits.

Explore more use cases

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 50-tool MCP server. Formally verified in Lean 4.