About dev.multimail/mcp-server
dev.multimail/mcp-server is an MCP server in the Communication category: email for AI agents. Send and receive as markdown with human oversight.
Install
claude mcp add dev-multimail-mcp-server -- npx -y @multimail/mcp-servernpx -y @multimail/mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (60)
**API keys & audit**No description in manifest
Parameters not published.
**Account & billing**No description in manifest
Parameters not published.
**Contacts & spam**No description in manifest
Parameters not published.
**Core email**No description in manifest
Parameters not published.
**Mailbox management**No description in manifest
Parameters not published.
**Meta**No description in manifest
Parameters not published.
**Oversight**No description in manifest
Parameters not published.
**Sending allowlist**No description in manifest
Parameters not published.
**Signup (no API key needed)**No description in manifest
Parameters not published.
**Webhooks**No description in manifest
Parameters not published.
Show all 60 tools
activate_accountActivate account using confirmation code.
Parameters not published.
add_allowlist_entryAdd a recipient to the sending allowlist. Operator approval required.
Parameters not published.
add_contactAdd a contact.
Parameters not published.
cancel_messageCancel a pending or scheduled email.
Parameters not published.
cancel_subscriptionCancel paid subscription, revert to starter at period end.
Parameters not published.
check_inboxList emails with filters: status, sender, subject, date range, direction, attachments, pagination.
Parameters not published.
configure_mailboxFirst-run setup: oversight mode, display name, CC/BCC, scheduling, signature.
Parameters not published.
create_accountCreate account with solved PoW challenge.
Parameters not published.
create_api_keyCreate API key with scopes (admin + operator approval). `send`+`oversight` rejected to prevent self-approval.
Parameters not published.
create_mailboxCreate mailbox (admin scope + operator approval).
Parameters not published.
create_webhookCreate webhook for real-time email event notifications.
Parameters not published.
decide_emailApprove or reject a pending email (requires oversight scope).
Parameters not published.
delete_accountPermanently delete account and all data (admin scope).
Parameters not published.
delete_contactDelete a contact.
Parameters not published.
delete_mailboxPermanently delete a mailbox (admin scope).
Parameters not published.
delete_tagDelete a specific tag key from an email.
Parameters not published.
delete_webhookDelete a webhook.
Parameters not published.
download_attachmentDownload attachment as base64 with content type.
Parameters not published.
edit_scheduled_emailEdit scheduled email before it sends.
Parameters not published.
get_accountAccount status, plan, quota, sending enabled, enforcement tier.
Parameters not published.
get_audit_logAccount audit log (admin scope).
Parameters not published.
get_billing_portalStripe portal URL for self-service billing.
Parameters not published.
get_tagsGet all tags on an email. Persistent key-value agent memory across sessions.
Parameters not published.
get_threadAll emails in a conversation thread with participants and metadata.
Parameters not published.
get_usageQuota and usage stats for the billing period.
Parameters not published.
list_allowlistList sending allowlist entries.
Parameters not published.
list_api_keysList all API keys (admin scope).
Parameters not published.
list_mailboxesAll mailboxes with ID, address, oversight mode, display name.
Parameters not published.
list_pendingEmails awaiting oversight decision (requires oversight scope).
Parameters not published.
list_spamSpam-flagged and quarantined emails.
Parameters not published.
list_suppressionList suppressed recipients with pagination.
Parameters not published.
list_webhooksList all webhooks.
Parameters not published.
manage_spam_statusReport spam or clear spam status (action: report\
Parameters not published.
manage_upgradeRequest or apply oversight mode upgrade (action: request\
Parameters not published.
read_emailFull email content. Trusted metadata and untrusted body returned as separate content blocks.
Parameters not published.
remove_allowlist_entryRemove an allowlist entry.
Parameters not published.
remove_suppressionRemove a recipient from the suppression list.
Parameters not published.
reply_emailReply in-thread. Threading headers set automatically.
Parameters not published.
report_issueReport a bug, site problem, or feature request.
Parameters not published.
request_challengeALTCHA proof-of-work challenge for account creation.
Parameters not published.
resend_confirmationResend activation email with new code.
Parameters not published.
revoke_api_keyRevoke an API key (admin scope).
Parameters not published.
search_contactsSearch contacts by name or email.
Parameters not published.
send_emailSend email as markdown. Supports attachments, `idempotency_key`, scheduled delivery via `send_at`.
Parameters not published.
set_tagsSet tags on an email. Merges with existing tags.
Parameters not published.
setup_multimailGuided onboarding on the public /onboard endpoint.
Parameters not published.
update_accountUpdate org name, oversight email, physical address.
Parameters not published.
update_mailboxUpdate settings (display name, oversight mode, signature, webhooks).
Parameters not published.
upgrade_planUpgrade to paid plan (Builder $9/mo, Pro $29/mo, Scale $99/mo).
Parameters not published.
wait_for_emailBlock until matching email arrives or timeout (max 120s).
Parameters not published.
Ask AI
Ask AI about dev.multimail/mcp-server
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
@multimail/mcp-server
MCP server for MultiMail. Give your agent its own email address with graduated human oversight — from full approval to autonomous sending.
Quick start
npx @multimail/mcp-server
Set MULTIMAIL_API_KEY for full access, or run without it to create an account first. Get a key at multimail.dev.
By using MultiMail you agree to the Terms of Service and Acceptable Use Policy.
Getting Started
Don't have an account yet? Two options:
Option A: Browser signup (recommended, 60 seconds)
- Go to multimail.dev/pricing
- Click Get started free (or pick a paid plan)
- Choose what your agent will do and pick an oversight mode
- Check your email for the activation code
- Add the API key to your MCP config below
Option B: Remote MCP server (auto-signup via OAuth)
Add this to your MCP client — signup happens in the browser when you first connect:
{
"mcpServers": {
"multimail": {
"type": "url",
"url": "https://mcp.multimail.dev/mcp"
}
}
}
After signup: configure your mailbox
On first use, MultiMail will prompt you to configure your mailbox. You can also run this explicitly using the configure_mailbox tool:
- Oversight mode: How much human approval is required (
gated_send,monitored,autonomous, etc.) - Display name: Sender name shown in emails
- CC/BCC defaults: Automatically copy addresses on all outbound emails
- Scheduling: Enable/disable scheduled send and set default gate timing
- Signature: Email signature block
If you skip this step, MultiMail will remind you on your first tool call.
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/.mcp.json |
| Claude Desktop | claude_desktop_config.json |
| Cursor | .cursor/mcp.json in your project |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Copilot (VS Code) | .vscode/mcp.json in your project |
| OpenCode | mcp.json in your project |
| ChatGPT Desktop | Settings > MCP Servers |
| Any MCP client | Consult your client's docs for config location |
Environment variables
| Variable | Required | Description |
|---|---|---|
MULTIMAIL_API_KEY |
Required for full access. Run without it to see setup instructions — or use the remote server for automatic OAuth signup. | Your MultiMail API key (mm_live_...) |
MULTIMAIL_MAILBOX_ID |
No | Default mailbox ID. If not set, pass mailbox_id to each tool or call list_mailboxes first. |
MULTIMAIL_API_URL |
No | API base URL. Defaults to https://api.multimail.dev. |
Tools
| Tool | Description |
|---|---|
list_mailboxes |
List all mailboxes available to this API key |
configure_mailbox |
Set up mailbox preferences: oversight mode, display name, CC/BCC, scheduling, signature |
send_email |
Send an email with a markdown body. Supports attachments, idempotency_key, and send_at for scheduled delivery. |
check_inbox |
List emails with filters: status, sender, subject, date range, direction, attachments, cursor pagination |
read_email |
Get full email content. Returns trusted metadata and untrusted body as separate content blocks. |
reply_email |
Reply to an email in its existing thread. Supports attachments and idempotency_key. |
download_attachment |
Download an email attachment as base64 with content type |
get_thread |
Get all emails in a conversation thread with participants and metadata |
cancel_message |
Cancel a pending or scheduled email |
schedule_email |
Schedule an email for future delivery with a required send_at time. Edit or cancel before it sends. |
edit_scheduled_email |
Edit a scheduled email's delivery time, recipients, subject, or body before it sends |
update_mailbox |
Update mailbox settings (display name, oversight mode, signature, webhooks) |
update_account |
Update account settings (org name, oversight email, physical address) |
delete_mailbox |
Permanently delete a mailbox (requires admin scope) |
request_challenge |
Request an ALTCHA proof-of-work challenge for account creation (no API key required) |
create_account |
Create a new account with a solved PoW challenge (no API key required) |
resend_confirmation |
Resend the activation email with a new code (no API key required) |
activate_account |
Activate an account using the code from the confirmation email (no API key required) |
tag_email |
Set, get, or delete key-value tags on emails (persistent agent memory) |
add_contact |
Add a contact to your address book with optional tags |
search_contacts |
Search address book by name or email |
get_account |
Get account status, plan, quota, sending enabled, enforcement tier |
create_mailbox |
Create a new mailbox (requires admin scope) |
request_upgrade |
Request an oversight mode upgrade (trust ladder) |
apply_upgrade |
Apply an upgrade code from the operator |
get_usage |
Check quota and usage stats for the billing period |
list_pending |
List emails awaiting oversight decision (requires oversight scope) |
decide_email |
Approve or reject a pending email (requires oversight scope) |
report_spam |
Mark an email as spam and move it to quarantine |
not_spam |
Restore a spam email to unread and label it as not spam |
list_spam |
List spam-flagged and quarantined emails |
delete_contact |
Delete a contact from the address book |
check_suppression |
List suppressed email addresses |
remove_suppression |
Remove an address from the suppression list |
list_api_keys |
List all API keys (requires admin scope) |
create_api_key |
Create a new API key with scopes (requires admin scope + operator approval; send+oversight combinations rejected to prevent self-approval) |
revoke_api_key |
Revoke an API key (requires admin scope) |
get_audit_log |
Get account audit log (requires admin scope) |
delete_account |
Permanently delete account and all data (requires admin scope) |
wait_for_email |
Block until a new email arrives matching filters, or timeout (max 120s) |
create_webhook |
Create a webhook subscription for real-time email event notifications |
list_webhooks |
List all webhook subscriptions for this account |
delete_webhook |
Delete a webhook subscription |
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.
- Sends return
pending_scanstatus while the email is scanned for threats. If your mailbox uses gated oversight, the status transitions topending_send_approvalfor human review. Do not retry or resend. - 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 version
Testing
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | MULTIMAIL_API_KEY=mm_live_... node dist/index.js
License
MIT
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.