mcpField
M
mailmcp

mailmcp

远程服务
mailmcp.ai通信协作13 天前更新

关于 mailmcp

mailmcp 是可自托管的邮件 MCP 服务,通过 IMAP、SMTP 让 MCP 客户端访问多个邮箱。它支持附件和按权限控制的读写操作,密码在浏览器中加密后交由令牌使用。

主要功能

  1. 01通过 IMAP 和 SMTP 访问邮箱
  2. 02同时连接多个邮箱
  3. 03读取及发送附件
  4. 04按权限限制邮件操作
  5. 05写入操作支持收件人允许列表

适用场景

  1. 01汇总多个邮箱的近期来信
  2. 02搜索邮件并获取附件下载链接
  3. 03起草或回复邮件
  4. 04按允许列表发送邮件

MCP 相关

该服务向 ChatGPT、Claude 等 MCP 客户端提供邮件账户、搜索、读取、草稿、发送和管理工具。工具是否可用取决于令牌为各邮箱配置的权限。

配置

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

服务地址https://mailmcp.ai/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 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
mcpbmailmcp.mcpb0.14.1

工具

详细介绍

mailmcp:在 ChatGPT 和 Claude 中使用你的邮箱。密码始终由你掌控。

mailmcp

在 ChatGPT 和 Claude 中使用你的所有邮箱。密码始终由你掌控。

最新版本 安全审查 许可证 使用 Vercel 部署

mailmcp 是一款可自托管的 MCP 服务,可让 ChatGPT、Claude 和其他 MCP 客户端通过 IMAP 和 SMTP 访问你的电子邮件:可同时使用多个邮箱,支持任意服务商,并可双向处理附件。本仓库是预构建发行版(dist/ 中为压缩后的程序包,无需构建),采用商业许可证;无需密钥即可使用免费套餐。此处不提供源代码。

询问 “本周会计部门发来了什么?”,即可获得 Gmail、iCloud 和公司邮件服务器中的统一答复:发票以下载链接形式提供,回复也已起草完毕。

一个问题查询两个邮箱:会计部门的三封邮件、以链接形式提供的发票,以及一封已准备好发送的回复草稿。

适用场景

如果你有多个邮箱、使用的服务商没有官方连接器,或需要处理附件,可以使用 mailmcp。截至 2026 年 9 月,ChatGPT 和 Claude 中的官方 Gmail 和 Outlook 连接器各自只能处理一个邮箱,也无法发送附件。

官方连接器mailmcp
邮箱每个连接器一个可同时使用多个,一个令牌即可
服务商Gmail、OutlookGmail、Outlook.com、Microsoft 365、iCloud、Fastmail、Yahoo、Zoho、Seznam.cz,以及任何支持密码登录的 IMAP/SMTP 服务器,包括你自己的域名
附件可读取部分附件,无法发送有效期一小时的下载链接;可从邮箱发送、发送助手上传的文件,或通过转发发送
身份验证AI 服务商持有 OAuth 授权应用专用密码在浏览器中加密后写入令牌;服务端仅保存一个主密钥,不使用数据库
托管服务商托管由你托管:Vercel、Docker、任何 Node 22 主机,或无需服务器的 Claude Desktop
费用包含在助手套餐中免费使用,但发送的邮件会附带署名;或一次性付款(€19 / €149)

快速开始

要求。 Node 22(或 Vercel、Docker)、HTTPS 地址(ChatGPT 和 Claude 仅通过 HTTPS 连接),以及每个邮箱对应的应用专用密码。Gmail:请先开启两步验证,否则 Google 会隐藏应用专用密码页面(组织政策或高级保护也可能导致该页面隐藏)。Outlook.com 和 Microsoft 365 无需密码:用户在设置页面登录 Microsoft(见下文“Outlook 和 Microsoft 365”)。

  1. 设置邀请码。 签发用户令牌的服务必须说明谁可以创建令牌,否则任何知道地址的人都能消耗你的配额。设置 MAILMCP_INVITE_CODE(至少 8 个字符),并将其交给可以创建令牌的人;如果未设置,服务不会签发令牌,设置页面会向你显示提示。忘记邀请码了?在 Vercel 或 Docker 环境中查看,或设置新邀请码并重新部署:已签发的令牌仍然有效。刻意开放注册的服务则设置 MAILMCP_OPEN_SIGNUP=1。

  2. 部署。 点击上方的 Vercel 按钮;系统会要求提供 MAILMCP_KEY(32 个随机字节,以 base64url 编码,node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))")、MAILMCP_LICENSE(你的密钥;免费层级请留空)以及第 1 步中的邀请码。或者自行运行:

    docker build -t mailmcp . && docker run -d -p 8080:8080 \
      -e MAILMCP_KEY=… -e MAILMCP_LICENSE=… -e MAILMCP_INVITE_CODE=… \
      -e MAILMCP_PUBLIC_URL=https://mail.example.com mailmcp
    # without Docker: node dist/node.js with the same variables
    
  3. 打开 https://<your-server>/start 并按提示操作:在设置页面选择提供商,粘贴电子邮件地址和应用专用密码,勾选助手可以执行的操作(默认启用读取;撰写草稿是不错的下一步;只有设置收件人允许列表后才启用发送)。页面会在浏览器中加密密码,并为你提供一个令牌。

  4. 连接。 ChatGPT → Settings → Apps → Create → URL https://<your-server>/mcp;claude.ai → Settings → Connectors → Add custom connector。使用令牌登录。然后提问:“列出我的邮件账户。”

设置页面:提供商、电子邮件地址、应用专用密码和权限。密码在离开浏览器前会加密。

无需部署即可试用。 共享服务 mailmcp.ai/setup 运行的就是这段代码;在那里创建令牌并连接即可。共享服务的运营者在处理你的请求时,技术上可以看到你的配置,因此企业会运行自己的服务。

Claude Desktop,无需服务。 从最新版本下载 mailmcp.mcpb,在 Claude Desktop 中打开,然后粘贴 /setup →“自有部署的参数”中的配置。

在反向代理后运行时,设置 MAILMCP_PUBLIC_URL 或 MAILMCP_TRUST_PROXY=1。使用私有地址的公司邮件服务器需要设置 MAILMCP_ALLOW_PRIVATE_MAIL_HOSTS=1。更改 MAILMCP_KEY 会使所有令牌失效。所有变量见 .env.example。

变量作用
MAILMCP_KEY唯一的主密钥;用于加密用户令牌并签署 OAuth 凭据。更改后,所有令牌都会失效。
MAILMCP_LICENSE你的许可证密钥。留空则使用免费版。
MAILMCP_INVITE_CODE在签发令牌的服务上必填:用户在 /setup 输入的代码,至少 8 个字符。
MAILMCP_OPEN_SIGNUP在有意开放注册的公共服务上设为 1,以替代邀请码。
MAILMCP_MS_CLIENT_ID你自己的 Entra 应用注册 ID,用于 Microsoft 登录。服务器上的任何 Microsoft 登录都必须配置此项(仅 mailmcp.ai 使用供应商的应用)。
MAILMCP_MS_REDIRECT当此来源已在该应用中注册为重定向 URI(https://<host>/api/ms/callback)时设为 1:设置页面随后会通过弹出窗口登录,而非使用设备代码。
MAILMCP_MS_DISABLED设为 1 可隐藏 Microsoft 登录,并使所有 /api/ms/* 路由返回 404。
MAILMCP_DISABLE_GRAPH设为 1 可在运行时拒绝 Outlook 邮箱,包括已签发令牌中的邮箱。
MAILMCP_ATTACHMENT_DIRS仅适用于 stdio:除 policy.attachment_dirs 外,允许保存和读取附件的文件夹(macOS/Linux 上以 : 分隔,Windows 上以 ; 分隔)。Claude Desktop 会在扩展设置中设置这些路径。
MAILMCP_NO_STATS设为 1 可关闭使用统计;每日更新检查仍会进行(发送不含内容的 GET /api/version 请求)。
MAILMCP_STATS服务端副本:设为 0/false/off/no 可关闭统计,与 MAILMCP_NO_STATS=1 相同。Claude Desktop 和其他桌面版(stdio)副本:设为 1/true/on/yes 可开启统计(扩展设置中的“匿名使用统计”会写入此变量);留空或未设置则保持关闭。
MAILMCP_NO_UPDATE_CHECK设为 1 后不会向 mailmcp.ai 发送任何请求:既不检查更新,也不发送统计信息。
DO_NOT_TRACK设为 1/true 可关闭统计,与 MAILMCP_NO_STATS=1 相同。
MAILMCP_PUBLIC_URL服务位于你自己的反向代理之后时使用的公共地址。
MAILMCP_ALLOW_PRIVATE_MAIL_HOSTS设为 1 后,用户令牌可以指定位于专用地址上的邮件服务器。

Outlook 和 Microsoft 365

这些邮箱没有密码:Microsoft 会拒绝大多数账户使用密码登录。用户在 /setup 中选择提供商 Outlook / Microsoft 365,然后点击 Sign in with Microsoft。这需要你自己的 Entra 应用注册(MAILMCP_MS_CLIENT_ID,步骤见下文);如果没有,设置页面不会提供 Microsoft 登录选项。当你的服务器源站是已注册的重定向 URI(MAILMCP_MS_REDIRECT=1)时,按钮会打开一个带账户选择器的弹出窗口;否则,页面会询问用户是使用个人账户(Outlook.com、Hotmail)还是工作或学校账户(Microsoft 365)登录,并显示一组短代码,供用户分别在 microsoft.com/link 或 login.microsoft.com/device 输入。无论采用哪种方式,登录都需要先通过你的邀请码验证(即使设置了 MAILMCP_OPEN_SIGNUP=1,设备代码中继也需要邀请码),并且用户会在授权同意屏幕上看到你的应用名称。令牌不会传给供应商:登录由你的服务器执行。

需要告知用户的事项:每个令牌最多可关联 三个 Outlook 邮箱;Microsoft 授权权限取决于用户勾选的功能(只读时为 Mail.Read,否则为 Mail.ReadWrite 和 Mail.Send),因此之后要扩大权限范围,需要重新登录;一次登录的有效期为 约 90 天(日期显示在 /setup 和 list_accounts 中的 reauth_by 字段里,通过我们的 OAuth 刷新的客户端会自动延长该日期);更改邮箱密码不会使登录失效,但在 Microsoft 撤销应用会使所有使用该账户的令牌失效。将授权同意设为仅限管理员的租户,需要管理员一次性访问 https://login.microsoftonline.com/organizations/adminconsent?client_id=<your client id> 批准。邮件随后会通过 Microsoft Graph 流转,因此邮件 ID 是字符串,而非数字;标签则是 Outlook 类别。完整指南:mailmcp.ai/docs。

注册你自己的 Microsoft 应用

你的服务器要使用 Microsoft 登录,需要注册自己的应用(供应商的应用注册仅用于 mailmcp.ai)。完成注册后,使用弹出窗口流程,该流程同时适用于个人账户和工作账户;新的 Microsoft 365 租户会阻止使用代码登录(安全默认设置,AADSTS530035):

  1. Microsoft Entra → 应用注册 → 新注册;支持的账户类型:任何组织目录中的账户和个人 Microsoft 账户。
  2. 身份验证 → 添加平台 移动和桌面应用程序(不是 Web),并设置重定向 URI https://<your host>/api/ms/callback。mailmcp 是一个公共客户端,不需要密钥;如果选择 Web 平台,Microsoft 会强制要求密钥,导致登录失败并报错 AADSTS7000218。
  3. 身份验证 → 允许公共客户端流:是。
  4. API 权限 → Microsoft Graph 委派权限 Mail.Read、Mail.ReadWrite、Mail.Send、User.Read、offline_access。
  5. 设置 MAILMCP_MS_CLIENT_ID=<Application (client) ID> 和 MAILMCP_MS_REDIRECT=1,然后重新部署。

对于仅允许用户向已验证发布者授予同意的租户,还需要在你的应用注册上完成发布者验证(Microsoft AI Cloud Partner Program),或由管理员为整个租户授予同意。

助手可以做什么

每项工具都受令牌中的权限控制,且权限按邮箱划分:

权限工具
read(默认)list_accounts、list_folders、search_messages(Gmail 上使用 Gmail 语法)、get_message、get_thread、get_attachment(一小时有效的下载链接)、ChatGPT search/fetch、triage、awaiting_replies、digest、list_followups、list_templates、unsubscribe(试运行;发送一键退订请求需要单独的 unsubscribe 权限,默认关闭)
draftcreate_draft、reply_draft、save_template、set_signature、upload_attachment、request_upload(一小时有效的上传链接,由助手自行填写)
sendsend_message、reply_send、send_draft、forward_message,仅限发送到你的允许列表中的地址;也可设置为仅在你于应用对话框中确认后发送
modifymodify_message(标记、文件夹)、bulk_preview / bulk_apply(批量归档、标记为已读、添加标签、移动;先预览,然后仅对指定邮件执行操作)、set_followup、snooze、wake_snoozed
deletetrash_message 和批量移至垃圾箱;永远不会永久删除任何内容

每个邮箱还为验证邮件设置了防护级别(Off、Basic、Standard、Strict、Custom;新邮箱默认设为 Standard):隐藏的邮件不会出现在任何答复中;Standard 及以上级别还会移除其他邮件中的验证码和登录链接。它可以识别常见的验证邮件,但无法覆盖所有情况。如果你的应用支持 MCP Apps,triage、digest、草稿工具和 bulk_preview 还会显示可点击的面板;可在设置页面按令牌关闭面板(或通过 stdio 设置 MAILMCP_UI=off)。

每项工具都会列出给客户端;令牌无权使用的调用会失败,并指出缺少的权限。

安全与数据流

  • 凭据。 设置页面会在你的浏览器中将邮箱密码加密为分拆密钥令牌。服务端持有一个主密钥,仅在处理请求时解密配置,并在请求处理完毕后最多将其保留在内存中 15 分钟;服务端没有数据库,也不会保存邮件副本。
  • 哪些数据会离开服务端。 发往邮件服务商的 IMAP/SMTP 流量,以及发送给助手的工具结果(因此,AI 服务商会看到每次工具调用的结果,但绝不会看到密码)。许可证验证在离线状态下进行。仅有一项请求会发送给服务商:每天进行一次更新检查,并附带下文所述的使用统计信息;“购买”按钮也会链接到服务商。
  • 提示词注入。 邮件正文会被标记为不可信数据,隐藏文本会被剥离,邮件头字段会经过清理,以降低电子邮件中植入指令的风险;但这无法让模型免受此类攻击。
  • 协议。 OAuth 2.1,采用 PKCE、动态客户端注册和客户端元数据文档、带重放防护的加密令牌,以及登录限流。默认只读、发送允许列表、不会永久删除。
  • 撤销。 在你的服务商处删除应用密码;无论谁持有该令牌,它都会随即失效。Outlook 邮箱使用 Microsoft 刷新令牌而非密码:请在 account.live.com/consent/Manage 或工作账户的“我的应用”中撤销该应用。轮换 MAILMCP_KEY 会使服务器上的所有令牌失效。
  • 审查。 版本 0.4.1(2026 年 9 月)经过内部 AI 辅助安全审查,所有发现、修复和接受的权衡均已公开:mailmcp.ai/audit。

使用统计

每个副本每天最多会询问 mailmcp.ai 一次是否有更新版本;Claude Desktop 会在每次启动时询问。服务端副本(Vercel 生产环境、Docker、Node)也会在该请求中发送使用统计,除非你将其关闭;Claude Desktop 和其他桌面(stdio)副本只有在你启用统计后才会发送,而且无论启动多少次,每天最多发送一次。请求正文如下:

{"s":1,"v":"0.13","r":"docker","d":"…"}

s 是架构,v 是 major.minor 格式的版本号,r 是运行环境(vercel、docker、node、claude-desktop 或 stdio),d 是每个日历月内保持不变的数字,根据不会离开你服务器的值计算得出(Vercel 项目 ID;其他环境中则是机器 ID,或副本一次性写入 ~/.mailmcp/stats-salt 的随机盐值;如果设置了 MAILMCP_KEY,计算时会将其混入;~/.mailmcp/stats-sent-* 会记录每个实例上次发送统计信息的日期)。不会发送许可证密钥、配置、地址、邮箱或内容。mailmcp.ai 只会按版本和运行环境保留每日和每月计数;根据存储的信息,无法判断请求来自哪个安装实例。与任何网站一样,我们的主机 Vercel 会将每个请求的 IP 地址日志保留 1 天;我们的代码不会存储该地址。Vercel 预览部署只会发送更新检查;CI 运行和源代码构建不会发送任何信息。每个副本启动时都会记录一行日志,说明统计功能为 ON 还是 OFF。

开关(值可以是 1、true、yes 或 on):MAILMCP_NO_STATS=1 或 MAILMCP_STATS=0(关闭统计,更新检查仍会进行),MAILMCP_NO_UPDATE_CHECK=1(完全不发送请求),DO_NOT_TRACK=1(关闭统计)。在 Claude Desktop 中:扩展设置里的“Anonymous usage statistics”(默认关闭)和“Check for updates”(未勾选,不会发送任何信息)。所有收集的信息和汇总数据均公开于 mailmcp.ai/stats。

定价

免费个人版,一次性支付 €19无限版,一次性支付 €149
包含所有工具,每人最多共用 2 个邮箱(服务端会按每个令牌检查是否超过 2 个;0.7.0 之前创建的令牌仍保留 5 个的限额)。助手撰写的每条消息(草稿、发送的邮件、转发的邮件)末尾都会附上“Sent with mailmcp.ai”。一位用户,最多共用 5 个邮箱,无论邮箱归谁所有;无签名;可在自己的服务器或 Claude Desktop 上使用。适用于一个组织(公司或个体经营者及其员工)的一个服务端;用户和邮箱数量不限。

所有 0.x 更新均已包含在内;升级至 1.0 可能需要付费,且 0.x 版本仍可继续使用。14 天退款,无需说明理由。企业部署,€990:在你的 Vercel 或云环境上提供两小时在线入门指导,并附赠无限版许可证。请在 mailmcp.ai/pricing 购买:付款后密钥会立即显示,Stripe 会通过电子邮件发送发票。

更新

升级到 0.8。 令牌模式的服务现在需要设置 MAILMCP_INVITE_CODE(至少 8 个字符),或者设置 MAILMCP_OPEN_SIGNUP=1,以启用完全公开的服务。部署 0.8 前,请先设置其中一个变量(Vercel:Settings → Environment Variables → Production,然后重新部署),否则 /setup 将停止发放令牌,并显示提示。已发放的令牌仍可照常使用;完整列表见 CHANGELOG.md 中的 0.8.0 条目。0.8 还新增了通过 Microsoft 登录使用 Outlook 和 Microsoft 365 邮箱的功能;除非你想使用自己的 Entra 注册或上述紧急停用开关,否则无需进行任何配置。

升级到 0.13。 无需进行任何配置。除非设置 MAILMCP_NO_STATS=1,否则服务器副本现在会发送上文所述的每日使用统计数据。现有令牌的保护级别仍为关闭,直到你在设置页面选择一个级别,并在每个助手中替换令牌。在 ChatGPT 中,刷新连接器(Settings → Connectors → mailmcp → Refresh)即可查看新工具;在 Claude Desktop 中,安装新的 mailmcp.mcpb。对于既不支持 MOVE 也不支持 UIDPLUS 的 IMAP 服务器,现在会拒绝移动邮件,以免误动其他邮件。完整列表见 CHANGELOG.md 中的 0.13.0 条目。

此处会标记发布版本,并在 CHANGELOG.md 中列出。如果你通过 Vercel 按钮部署,Vercel 会创建此仓库的个人副本:将新标签拉取到该副本中(git pull https://github.com/kojott/mailmcp-dist.git main 并推送),Vercel 随后会部署此次推送。Docker 和 Node:拉取后重新构建或重启。要回滚,请部署之前的标签。只要 MAILMCP_KEY 保持不变,你的令牌就能在不同版本间继续使用。

常见问题

Google 显示应用专用密码设置“此设置不适用于您的账号”。 请启用两步验证并重新加载;如果该设置仍未显示,则可能是组织政策或高级保护功能阻止了应用专用密码。

我丢失了令牌。 令牌无法恢复。请在设置页面创建新令牌(这次设置一个编辑密码,以便之后加载和修改令牌),并在助手中替换原令牌。

助手能自行发送邮件吗? 只有在启用了发送功能,且收件地址位于允许列表中时才可以。草稿是更安全的默认选项。

附件链接。 下载和上传链接有效期为一小时,并以加密形式携带令牌;任何获得链接的人都可以在这一小时内使用它。

许可、支持与问题反馈

许可协议见 LICENSE(先列出英文译文,捷克语原文具有约束力):一个密钥对应一个运行中的安装,不得再分发,不得为他人的邮箱提供服务,也不得在没有单独协议的情况下将 mailmcp 作为托管服务运行;禁止移除许可检查或免费版签名。本软件为闭源软件,因此不接受拉取请求,但欢迎通过 Issues 提交错误报告。安全问题:请发送邮件至 [email protected],而不要创建 issue。隐私政策:https://mailmcp.ai/privacy,条款:https://mailmcp.ai/terms。

面向用户的指南:mailmcp.ai/docs。面向助手的指南:将链接粘贴到 ChatGPT 或 Claude 中,让它引导你完成操作:mailmcp.ai/llms.txt。支持:jiridolejs.cz/kontakt。

版本 0.14.1。由 Jiří Dolejš 在布拉格制作,Jiří Dolejš。

评论

支持 Markdown

第一次接触 MCP?

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

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