mcpField
M
multimail

multimail

远程服务
github.com/multimail-dev通信协作220 周前更新
代码仓库

关于 multimail

MultiMail 是面向 Agent 的邮件服务和 MCP 服务,适合需要管控自动邮件往来的运营者。它以监督模式、收件人白名单和签名身份头,支持从逐封审批逐步过渡到自主发送。

主要功能

  1. 01收件箱、邮件发送与线程回复
  2. 02五种监督模式
  3. 03按收件人设置发送白名单
  4. 04签名身份与信誉标头
  5. 05扫描收发邮件内容
  6. 06管理邮箱与账户

适用场景

  1. 01审核并批准 Agent 起草的邮件
  2. 02允许向可信收件人直接发送常规邮件
  3. 03检查进入 Agent 收件箱的已标记邮件
  4. 04管理邮箱设置与发送权限

MCP 相关

MultiMail 向 MCP 客户端提供邮件、监督、邮箱、账户及相关管理工具。可通过 OAuth 连接远程服务,也可使用 API 密钥通过 stdio 本地运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.multimail.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@multimail/mcp-server0.13.0

工具

详细介绍

@multimail/mcp-server

你的 Agent 还没有电子邮件功能,因为还没人放心让它处理电子邮件。MultiMail 解决了这个问题。它提供真实的电子邮件地址、从只读到完全自主的信任阶梯、每封邮件上的加密身份,以及针对每位收件人的发送控制。

快速开始

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

远程服务。无需安装。首次连接时通过 OAuth 进行身份验证。

可与 Claude.ai、Claude Desktop、Claude Code、Cursor、Windsurf、Copilot(VS Code)、ChatGPT Desktop,以及任何支持远程服务的 MCP 客户端配合使用。

替代方案:本地 stdio 服务
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_...",
        "MULTIMAIL_MAILBOX_ID": "01KJ1NHN8J..."
      }
    }
  }
}

在 multimail.dev 获取密钥。也可以不使用密钥运行,以交互方式创建账户。

配置文件位置
客户端配置文件
Claude Code~/.claude/.mcp.json
Claude Desktopclaude_desktop_config.json
Cursor项目中的 .cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Copilot(VS Code)项目中的 .vscode/mcp.json
OpenCode项目中的 mcp.json
ChatGPT DesktopSettings > MCP Servers

信任阶梯

每个邮箱都有一种监督模式。先从限制较多的模式开始,随着 Agent 赢得信任,再逐步升级。

模式行为
read_onlyAgent 阅读电子邮件。所有发送操作均被阻止。
gated_all每项操作都需要人工批准。
gated_send外发邮件需经批准。收到的邮件立即处理。(默认)
monitoredAgent 可自由发送。副本会发送到监督地址。
autonomous完全自主收发。无需审批。

Agent 通过 API 请求升级。操作者使用一次性代码批准。降级无需批准。Agent 始终可以自行收紧权限。

受限审批流程已通过 Lean 4 形式化验证。对于所有可能的代码路径,任何邮件在通过操作者审批前都不会送达。

按收件人设置允许列表

在 gated_send 模式下,允许列表中的收件人可绕过审批队列。添加完整地址([email protected])或域名通配符(*@example.com)。每次添加都需要操作者通过电子邮件批准。Agent 不能自行批准允许列表的变更。

这是切实可行的折中方案:与已知联系人的日常往来可立即进行,而新收件人仍需监督。

加密身份

每封外发邮件都带有签名的 X-MultiMail-Identity 标头(ECDSA P-256)。负载包含操作者姓名、监督模式、功能和验证状态。收件人可通过 GET /.well-known/multimail-signing-key 获取公钥进行验证。

单独的 X-MultiMail-Reputation 标头会链接到保护隐私的信誉数据:退信率、投诉率和账户年龄。不会暴露原始地址。

没有经过验证的身份,收件人无法分辨你的 Agent 和垃圾邮件发送者。有了它,他们就能在阅读任何内容之前,验证操作者、监督级别和发送历史。

Agent DID 中继(可选)。 如果你的 Agent 已将 did:key 绑定到其 MultiMail 账户,可在调用 send_email / reply_email 时传入可选的 ucan 参数。MultiMail 会将 Agent 自行签名的 UCAN 原样中继到单独的 X-Agent-Identity 标头中(did="…"; ucan="…")——它不会为其签名或背书;收件人端的工具会独立验证授权。未绑定 DID 时,此功能不起作用。

Agent 自行注册(auth.md)

Agent 无需浏览器即可自行注册。该协议使用经验证的电子邮件身份声明,遵循受 WorkOS AuthKit 启发的 auth.md 约定:

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

服务发现遵循 RFC 9728:

  • GET /.well-known/oauth-protected-resource(资源元数据)
  • GET /.well-known/oauth-authorization-server(包含 agent_auth 扩展的授权元数据)
  • GET /auth.md(供人类和 Agent 阅读的注册指南)

401 响应中的 WWW-Authenticate 标头会自动向 Agent 指示这些端点。遇到 401 的 Agent 可以跟随链接、阅读注册协议并自行完成注册。

内容扫描

每封发出的电子邮件都会在投递前进行扫描。电子邮件先进入 pending_scan 状态,然后转为待投递状态,或在受控模式下转为 pending_send_approval。收到的电子邮件也会经过相同的流程。钓鱼、恶意软件和提示词注入模式会在邮件到达 Agent 收件箱前被标记。

工作原理

  • 电子邮件正文以 markdown 格式输入,输出为 HTML 格式。收到的 HTML 会转换为简洁的 markdown(比原始 MIME 少 15 倍令牌)。
  • 自动处理邮件串接。回复电子邮件时,系统会正确设置标头。
  • 扫描期间,发送操作会返回 pending_scan。受控邮箱随后会转为 pending_send_approval,以供人工审核。请勿重试。
  • 每封发出的电子邮件都会携带经过加密签名的 X-MultiMail-Identity 标头。
  • 通过 X-MultiMail-Reputation 标头提供信誉数据:退信率、投诉率和帐户年龄。此数据可保护隐私,并每日更新。

工具(50)

工具描述
核心邮件
send_email以 Markdown 格式发送邮件。支持附件、idempotency_key,以及通过 send_at 定时发送。
check_inbox按状态、发件人、主题、日期范围、方向、附件和分页条件筛选并列出邮件。
read_email获取完整邮件内容。可信元数据和不可信正文会作为独立内容块返回。
reply_email在原邮件线程中回复。自动设置线程标头。
get_thread获取会话线程中的所有邮件,以及参与者和元数据。
download_attachment以 Base64 格式下载附件,并返回内容类型。
cancel_message取消待发送或已定时的邮件。
edit_scheduled_email在定时邮件发送前对其进行编辑。
wait_for_email阻塞等待符合条件的邮件到达,或直至超时(最长 120 秒)。
get_tags获取邮件的所有标签。在不同会话间持久保存键值对形式的 Agent 记忆。
set_tags为邮件设置标签。与现有标签合并。
delete_tag删除邮件上的指定标签键。
监督
list_pending列出等待监督决策的邮件(需要 oversight scope)。
decide_email批准或拒绝待处理邮件(需要 oversight scope)。
manage_upgrade请求或应用监督模式升级(操作:request|apply)。
发送许可名单
list_allowlist列出发送许可名单条目。
add_allowlist_entry将收件人添加到发送许可名单。需要操作员批准。
remove_allowlist_entry从许可名单中移除条目。
邮箱管理
list_mailboxes列出所有邮箱及其 ID、地址、监督模式和显示名称。
configure_mailbox首次运行设置:监督模式、显示名称、CC/BCC、定时发送和签名。
update_mailbox更新设置(显示名称、监督模式、签名、webhook)。
create_mailbox创建邮箱(需要 admin scope 和操作员批准)。
delete_mailbox永久删除邮箱(需要 admin scope)。
账户与账单
get_account获取账户状态、套餐、配额、发送功能是否启用以及执行层级。
update_account更新组织名称、监督邮箱和实际地址。
delete_account永久删除账户及所有数据(需要 admin scope)。
get_usage获取账单周期内的配额和使用情况统计。
upgrade_plan升级到付费套餐(Builder 9 美元/月、Pro 29 美元/月、Scale 99 美元/月)。
cancel_subscription取消付费订阅,并在当前周期结束时恢复为 starter 套餐。
get_billing_portal获取 Stripe 门户 URL,以自助管理账单。
注册(无需 API 密钥)
request_challenge用于创建账户的 ALTCHA 工作量证明挑战。
create_account使用已解答的 PoW 挑战创建账户。
resend_confirmation重新发送包含新验证码的激活邮件。
activate_account使用确认码激活账户。
setup_multimail在公开的 /onboard 端点上进行引导式入门设置。
API 密钥与审计
list_api_keys列出所有 API 密钥(需要 admin scope)。
create_api_key创建具有指定 scopes 的 API 密钥(需要 admin scope 和操作员批准)。为防止自我批准,拒绝同时包含 send+oversight 的请求。
revoke_api_key撤销 API 密钥(需要 admin scope)。
get_audit_log获取账户审计日志(需要 admin scope)。
联系人与垃圾邮件
search_contacts按姓名或邮箱搜索联系人。
add_contact添加联系人。
delete_contact删除联系人。
manage_spam_status举报垃圾邮件或清除垃圾邮件状态(操作:report|clear)。
list_spam列出被标记为垃圾邮件或已隔离的邮件。
list_suppression分页列出被抑制的收件人。
remove_suppression从抑制列表中移除收件人。
Webhooks
create_webhook创建 webhook,以实时接收邮件事件通知。
list_webhooks列出所有 webhook。
delete_webhook删除 webhook。
其他
report_issue报告 Bug、网站问题或功能请求。

示例提示词

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.
Check my inbox and summarize the last 5 unread emails.
For each: sender, subject, time, and whether it needs action today.
Review the pending approval queue. For each pending email: who it goes to,
the subject, risk factors, and whether to approve or reject.
Show my current sending allowlist. Then add *@acme.com so emails to Acme skip approval.

环境变量

变量必需描述
MULTIMAIL_API_KEYstdio 模式需要你的 API 密钥(mm_live_...)。远程服务无需此项(使用 OAuth)。
MULTIMAIL_MAILBOX_ID否默认邮箱 ID。如果未设置,请为每个工具传入 mailbox_id,或调用 list_mailboxes。
MULTIMAIL_API_URL否API 基础 URL。默认为 https://api.multimail.dev。

另有提供

开发

npm install
npm run dev   # Run with tsx
npm run build # Compile TypeScript
npm start     # Run compiled version

许可证

MIT

使用 MultiMail 即表示你同意服务条款和可接受使用政策。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。