MultiMail enables AI agents to send, receive, and manage emails through the Model Context Protocol (MCP). Key capabilities include:
List mailboxes (
list_mailboxes): Discover all mailboxes available to your API key, including IDs, email addresses, oversight modes, and display names.Send email (
send_email): Send markdown emails (auto-converted to HTML) to one or more recipients with optional CC; supports gated oversight (pending_approvalstatus) and read-only mode detection.Check inbox (
check_inbox): List email summaries filterable by status (unread,read, orarchived).Read email (
read_email): Retrieve full email content (markdown body + attachment metadata) by ID; automatically marks it as read.Reply to email (
reply_email): Reply within an existing thread with automatic threading headers; supports oversight/read-only mode.Search identity (
search_identity): Look up the public identity document for any MultiMail address to verify an agent's operator, oversight mode, and capabilities.Update settings: Modify mailbox settings (display name, oversight mode, signature, webhooks) and account settings (org name, oversight email, physical address).
Delete mailbox: Permanently delete a mailbox (requires admin scope).
Account activation: Resend confirmation emails and activate accounts with confirmation codes.
Works with Claude.ai, Claude Desktop, Cursor, Windsurf, VS Code Copilot, ChatGPT Desktop, and other MCP clients.
Utilizes Markdown for email composition and provides incoming messages in clean Markdown format, enabling AI agents to handle email content without HTML parsing.
@multimail/mcp-server
MCP server for MultiMail. Give any AI agent email capabilities through the Model Context Protocol.
Quick start
npx @multimail/mcp-serverRequires MULTIMAIL_API_KEY environment variable. Get one at multimail.dev.
By using MultiMail you agree to the Terms of Service and Acceptable Use Policy.
Related MCP server: MCP Email Server
Setup
Option A: Remote server (recommended)
No install required. Connect directly to our hosted server. Authenticates via OAuth in the browser.
{
"mcpServers": {
"multimail": {
"type": "url",
"url": "https://mcp.multimail.dev/mcp"
}
}
}Works with Claude.ai, Claude Desktop, Claude Code, and any client that supports remote MCP servers.
Option B: Local server (stdio)
Run the server locally. API key is passed as an environment variable.
{
"mcpServers": {
"multimail": {
"command": "npx",
"args": ["-y", "@multimail/mcp-server"],
"env": {
"MULTIMAIL_API_KEY": "mm_live_...",
"MULTIMAIL_MAILBOX_ID": "01KJ1NHN8J..."
}
}
}
}Where to add this
Client | Config file |
Claude Code |
|
Claude Desktop |
|
Cursor |
|
Windsurf |
|
Copilot (VS Code) |
|
OpenCode |
|
ChatGPT Desktop | Settings > MCP Servers |
Any MCP client | Consult your client's docs for config location |
Environment variables
Variable | Required | Description |
| Yes | Your MultiMail API key ( |
| No | Default mailbox ID. If not set, pass |
| No | API base URL. Defaults to |
Tools
Tool | Description |
| List all mailboxes available to this API key |
| Send an email with a markdown body. Supports |
| List emails with filters: status, sender, subject, date range, direction, attachments, since_id |
| Get full email content including markdown body, attachments, tags, and delivery timestamps |
| Reply to an email in its existing thread. Supports |
| Download an email attachment as base64 with content type |
| Get all emails in a conversation thread with participants and metadata |
| Cancel a pending email awaiting oversight approval |
| Update mailbox settings (display name, oversight mode, signature, webhooks) |
| Update account settings (org name, oversight email, physical address) |
| Permanently delete a mailbox (requires admin scope) |
| Resend the activation email with a new code |
| Activate an account using the code from the confirmation email |
| Set, get, or delete key-value tags on emails (persistent agent memory) |
| Add a contact to your address book with optional tags |
| Search address book by name or email |
How it works
You write email bodies in markdown. MultiMail converts to formatted HTML for delivery.
Incoming email arrives as clean markdown. No HTML parsing or MIME decoding.
Threading is automatic. Reply to an email and headers are set correctly.
If your mailbox uses gated oversight, sends return
pending_approvalstatus. Do not retry.Verify other agents by checking the
X-MultiMail-Identitysigned header on received emails.
Development
npm install
npm run dev # Run with tsx (no build needed)
npm run build # Compile TypeScript
npm start # Run compiled versionTesting
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | MULTIMAIL_API_KEY=mm_live_... node dist/index.jsLicense
MIT