Multimail

dev.multimail由 multimail.dev 发布官方发布者v0.13.0更新于 Oct 24, 2026

Give your agent its own email address with graduated human oversight, from approval to autonomy.

已验证Streamable HTTP可网页运行效率与工作流沟通与协作安全与监控

概览

AI 生成的概览

为 AI 代理提供专属邮箱地址,配有从只读到完全自主的信任阶梯、签名身份和按收件人发送控制。

可以做什么
发送、回复、定时、取消和编辑邮件,支持 Markdown 正文、附件和自动会话串联,并可等待或下载来信与附件。搜索、阅读和标记收件箱邮件,标签可作为跨会话的持久键值记忆。管理监督流程:列出待审邮件、批准或拒绝,并申请或应用信任阶梯模式升级。管理发送白名单、邮箱、联系人、垃圾邮件与抑制列表以及 Webhook。处理账户、账单与用量、API 密钥和审计日志,并可在无 API 密钥时自助注册账户。
适用场景
当代理需要一个真实邮箱在人工监督下收发邮件,从严格限制逐步过渡到自主运行,或希望与已知联系人的常规邮件直接发出而新收件人仍需审核时使用。
运行要求
可使用 mcp.multimail.dev 远程端点,首次连接通过 OAuth 认证;或通过 npx 以 stdio 运行本地 npm 包。本地模式需要 MULTIMAIL_API_KEY(以 mm_live_ 开头),也可省略以交互方式创建账户。MULTIMAIL_MAILBOX_ID 可选,否则需在每个工具中传 mailbox_id 或先调用 list_mailboxes。需要访问 MultiMail API 的网络。
安装前请注意
代理可向外部收件人发送真实邮件,gated_send 及以上模式允许发送,autonomous 模式取消所有关卡。账户、邮箱、联系人、Webhook 和 API 密钥工具可创建、修改或永久删除数据,部分需要 admin 权限和运营者批准。upgrade_plan 和账单工具涉及付费套餐,会产生费用。API 密钥是有效凭据,勿放入共享配置。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Multimail,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/dev.multimail%2Fmcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "multimail": {
      "type": "http",
      "url": "https://mcp.multimail.dev/mcp"
    }
  }
}

README

@multimail/mcp-server

Your agent doesn't have email yet because nobody trusts it with email yet. MultiMail fixes that. A real email address with a trust ladder from read-only to fully autonomous, cryptographic identity on every message, and per-recipient sending controls.

Quick start

json
{  "mcpServers": {    "multimail": {      "type": "url",      "url": "https://mcp.multimail.dev/mcp"    }  }}

Remote server. No install. Authenticates via OAuth on first connect.

Works with Claude.ai, Claude Desktop, Claude Code, Cursor, Windsurf, Copilot (VS Code), ChatGPT Desktop, and any MCP client that supports remote servers.

Alternative: local stdio server

json
{  "mcpServers": {    "multimail": {      "command": "npx",      "args": ["-y", "@multimail/mcp-server"],      "env": {        "MULTIMAIL_API_KEY": "mm_live_...",        "MULTIMAIL_MAILBOX_ID": "01KJ1NHN8J..."      }    }  }}

Get a key at multimail.dev. Or run without one to create an account interactively.

Config file locations

ClientConfig file
Claude Code~/.claude/.mcp.json
Claude Desktopclaude_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
OpenCodemcp.json in your project
ChatGPT DesktopSettings > MCP Servers

Trust ladder

Every mailbox has an oversight mode. Start restrictive, graduate as the agent earns trust.

ModeBehavior
read_onlyAgent reads email. All sends blocked.
gated_allEvery action requires human approval.
gated_sendOutbound held for approval. Inbound immediate. (default)
monitoredAgent sends freely. Copies go to oversight address.
autonomousFull send/receive. No gates.

Agents request upgrades via the API. The operator approves with a one-time code. Downgrades need no approval. The agent can always restrict itself.

The gated approval flow is formally verified in Lean 4. No email reaches delivery without passing through operator approval, for every possible code path.

Per-recipient allowlist

In gated_send mode, allowlisted recipients bypass the approval queue. Add exact addresses ([email protected]) or domain wildcards (*@example.com). Every addition requires operator email approval. The agent cannot self-approve allowlist changes.

The practical middle ground: routine correspondence with known contacts goes immediately, new recipients still require oversight.

Cryptographic identity

Every outbound email carries a signed X-MultiMail-Identity header (ECDSA P-256). The payload includes operator name, oversight mode, capabilities, and verification status. Recipients verify against the public key at GET /.well-known/multimail-signing-key.

A separate X-MultiMail-Reputation header links to privacy-preserving reputation data: bounce rates, complaint rates, account age. No raw addresses exposed.

Without verified identity, recipients cannot distinguish your agent from a spammer. With it, they can verify the operator, the oversight level, and the sending history before reading a word.

Agent DID relay (optional). If your agent has bound a did:key to its MultiMail account, pass an optional ucan parameter to send_email / reply_email. MultiMail relays your agent's self-signed UCAN verbatim in a separate X-Agent-Identity header (did="…"; ucan="…") — it does not sign or vouch for it; recipient tooling verifies the delegation independently. Inert unless a DID is bound.

Agent self-registration (auth.md)

Agents can register themselves without a browser. The protocol uses verified-email identity assertion, following the auth.md convention inspired by WorkOS AuthKit:

POST /agent/auth -> claim_token + OTP sent to operator emailPOST /agent/auth/claim/complete -> API key + tenant_id + granted scopes

Discovery follows RFC 9728:

  • GET /.well-known/oauth-protected-resource (resource metadata)
  • GET /.well-known/oauth-authorization-server (authorization metadata with agent_auth extension)
  • GET /auth.md (human/agent-readable registration guide)

The WWW-Authenticate header on 401 responses points agents to these endpoints automatically. An agent that hits a 401 can follow the link, read the registration protocol, and onboard itself.

Content scanning

Every outbound email is scanned before delivery. Emails enter pending_scan status, then transition to delivery or pending_send_approval (in gated modes). Inbound emails go through the same pipeline. Phishing, malware, and prompt injection patterns are flagged before reaching the agent's inbox.

How it works

  • Email bodies are markdown in, formatted HTML out. Inbound HTML arrives as clean markdown (15x fewer tokens than raw MIME).
  • Threading is automatic. Reply to an email and headers are set correctly.
  • Sends return pending_scan while scanned. Gated mailboxes then transition to pending_send_approval for human review. Do not retry.
  • Every outbound email carries a cryptographically signed X-MultiMail-Identity header.
  • Reputation data via X-MultiMail-Reputation header: bounce rates, complaint rates, account age. Privacy-preserving, updated daily.

Tools (50)

ToolDescription
Core email
send_emailSend email as markdown. Supports attachments, idempotency_key, scheduled delivery via send_at.
check_inboxList emails with filters: status, sender, subject, date range, direction, attachments, pagination.
read_emailFull email content. Trusted metadata and untrusted body returned as separate content blocks.
reply_emailReply in-thread. Threading headers set automatically.
get_threadAll emails in a conversation thread with participants and metadata.
download_attachmentDownload attachment as base64 with content type.
cancel_messageCancel a pending or scheduled email.
edit_scheduled_emailEdit scheduled email before it sends.
wait_for_emailBlock until matching email arrives or timeout (max 120s).
get_tagsGet all tags on an email. Persistent key-value agent memory across sessions.
set_tagsSet tags on an email. Merges with existing tags.
delete_tagDelete a specific tag key from an email.
Oversight
list_pendingEmails awaiting oversight decision (requires oversight scope).
decide_emailApprove or reject a pending email (requires oversight scope).
manage_upgradeRequest or apply oversight mode upgrade (action: request|apply).
Sending allowlist
list_allowlistList sending allowlist entries.
add_allowlist_entryAdd a recipient to the sending allowlist. Operator approval required.
remove_allowlist_entryRemove an allowlist entry.
Mailbox management
list_mailboxesAll mailboxes with ID, address, oversight mode, display name.
configure_mailboxFirst-run setup: oversight mode, display name, CC/BCC, scheduling, signature.
update_mailboxUpdate settings (display name, oversight mode, signature, webhooks).
create_mailboxCreate mailbox (admin scope + operator approval).
delete_mailboxPermanently delete a mailbox (admin scope).
Account & billing
get_accountAccount status, plan, quota, sending enabled, enforcement tier.
update_accountUpdate org name, oversight email, physical address.
delete_accountPermanently delete account and all data (admin scope).
get_usageQuota and usage stats for the billing period.
upgrade_planUpgrade to paid plan (Builder $9/mo, Pro $29/mo, Scale $99/mo).
cancel_subscriptionCancel paid subscription, revert to starter at period end.
get_billing_portalStripe portal URL for self-service billing.
Signup (no API key needed)
request_challengeALTCHA proof-of-work challenge for account creation.
create_accountCreate account with solved PoW challenge.
resend_confirmationResend activation email with new code.
activate_accountActivate account using confirmation code.
setup_multimailGuided onboarding on the public /onboard endpoint.
API keys & audit
list_api_keysList all API keys (admin scope).
create_api_keyCreate API key with scopes (admin + operator approval). send+oversight rejected to prevent self-approval.
revoke_api_keyRevoke an API key (admin scope).
get_audit_logAccount audit log (admin scope).
Contacts & spam
search_contactsSearch contacts by name or email.
add_contactAdd a contact.
delete_contactDelete a contact.
manage_spam_statusReport spam or clear spam status (action: report|clear).
list_spamSpam-flagged and quarantined emails.
list_suppressionList suppressed recipients with pagination.
remove_suppressionRemove a recipient from the suppression list.
Webhooks
create_webhookCreate webhook for real-time email event notifications.
list_webhooksList all webhooks.
delete_webhookDelete a webhook.
Meta
report_issueReport a bug, site problem, or feature request.

Example prompts

text
Find the most recent email from [email protected], summarize what she's asking,then draft a reply saying I'll review this week. Don't send until I approve.
text
Check my inbox and summarize the last 5 unread emails.For each: sender, subject, time, and whether it needs action today.
text
Review the pending approval queue. For each pending email: who it goes to,the subject, risk factors, and whether to approve or reject.
text
Show my current sending allowlist. Then add *@acme.com so emails to Acme skip approval.

Environment variables

VariableRequiredDescription
MULTIMAIL_API_KEYFor stdio modeYour API key (mm_live_...). Not needed for remote server (uses OAuth).
MULTIMAIL_MAILBOX_IDNoDefault mailbox ID. If unset, pass mailbox_id per tool or call list_mailboxes.
MULTIMAIL_API_URLNoAPI base URL. Defaults to https://api.multimail.dev.

Also available

Development

bash
npm installnpm run dev   # Run with tsxnpm run build # Compile TypeScriptnpm start     # Run compiled version

License

MIT

By using MultiMail you agree to the Terms of Service and Acceptable Use Policy.

来源:README.md,提交 58b199b

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.13.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分