mailmcp 是一个自托管的 MCP 服务器,为 ChatGPT、Claude 及其他 MCP 客户端提供邮件访问能力,基于 IMAP 和 SMTP 工作,可同时接入多个邮箱、支持任意服务商、支持双向附件。该仓库为预构建发行版(dist/ 下的压缩 bundle,无需构建步骤),采用商业许可,无密钥时可作为免费版运行,源代码未提供。
用途与定位:适用于拥有多个邮箱、使用没有官方连接器的服务商,或需要处理附件的场景。据官方说明,截至 2026 年 9 月,ChatGPT 和 Claude 中的官方 Gmail 和 Outlook 连接器各自只能处理一个邮箱,且无法发送附件。通过 mailmcp 可以跨 Gmail、iCloud 和公司邮件服务器统一提问并获取答案,例如获取账务邮件中的发票下载链接并已草拟好回复。
主要能力:每个工具按令牌中的权限、按邮箱进行控制。支持读取、线程回复、草稿、发件白名单发送和附件收发。每个邮箱还设有针对验证邮件的保护级别(Off、Basic、Standard、Strict、Custom;新邮箱默认 Standard):被隐藏的邮件不会出现在任何回答中,Standard 及以上会移除其他邮件中的验证码和登录链接。该机制能拦截典型的验证邮件,但不是所有可能情况。在支持 MCP Apps 的应用中,triage、digest、草稿工具和 bulk_preview 还会显示可点击面板;可在设置页按令牌关闭面板(或通过 stdio 设置 MAILMCP_UI=off)。所有工具都会向客户端列出;令牌不允许的调用会失败并提示缺失的权限。
使用方式:要求 Node 22(或 Vercel、或 Docker)、HTTPS 地址(ChatGPT 和 Claude 仅通过 HTTPS 连接),以及每个邮箱的应用专用密码。Gmail 需先开启两步验证,否则 Google 会隐藏应用专用密码页面(组织策略或 Advanced Protection 也可能隐藏)。Outlook.com 和 Microsoft 365 无需密码:用户在设置页登录 Microsoft。需要设置邀请码(MAILMCP_INVITE_CODE,至少 8 个字符),否则服务器不签发令牌;有意公开的服务器可设置 MAILMCP_OPEN_SIGNUP=1。部署可通过 Vercel 按钮,或自行运行 Docker(docker build -t mailmcp . && docker run -d -p 8080:8080 ...),或直接运行 node dist/node.js。部署后打开 https://<your-server>/start 按指引选择服务商、粘贴邮箱和应用专用密码、勾选助手可执行的操作(读取默认开启,草稿是较好的第二步,发送仅限白名单收件人)。页面会在浏览器中加密密码并发放一个令牌。连接方式:ChatGPT → 设置 → Apps → 创建 → URL https://<your-server>/mcp;claude.ai → 设置 → 连接器 → 添加自定义连接器,用令牌登录。也可不部署直接试用共享服务器 mailmcp.ai/setup,但共享服务器运营方在服务请求期间技术上可看到你的配置。Claude Desktop 可下载 mailmcp.mcpb 并在桌面端打开,粘贴 /setup → “Values for your own deployment” 中的配置。反向代理后需设置 MAILMCP_PUBLIC_URL 或 MAILMCP_TRUST_PROXY=1;公司邮件服务器使用私有地址需设置 MAILMCP_ALLOW_PRIVATE_MAIL_HOSTS=1;更改 MAILMCP_KEY 会使所有令牌失效。
Outlook 与 Microsoft 365 支持:这些邮箱没有密码,Microsoft 在多数账户上拒绝密码登录。用户在 /setup 选择 Outlook / Microsoft 365 并点击 Sign in with Microsoft。这需要你自己的 Entra 应用注册(MAILMCP_MS_CLIENT_ID);没有它设置页不提供 Microsoft 登录。当服务器源是已注册的重定向 URI(MAILMCP_MS_REDIRECT=1)时按钮会打开带账户选择器的弹窗;否则页面会询问用户使用个人账户还是工作/学校账户,并显示短代码在 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 撤销应用会终止所有使用该账户的令牌。将同意留给管理员的租户需要一次性批准。邮件通过 Microsoft Graph 传输,因此消息 id 是字符串而非数字,标签为 Outlook 类别。
自带 Microsoft 应用注册步骤:Microsoft Entra → App registrations → New registration;支持的账户类型选择“任何组织目录中的账户和个人 Microsoft 账户”;Authentication → 添加平台“移动和桌面应用程序”(不是 Web),重定向 URI 为 https://<your host>/api/ms/callback(mailmcp 是不带密钥的公共客户端,Web 平台会要求密钥并导致 AADSTS7000218 错误);Authentication → Allow public client flows 设为 Yes;API 权限 → 委托的 Microsoft Graph Mail.Read、Mail.ReadWrite、Mail.Send、User.Read、offline_access;设置 MAILMCP_MS_CLIENT_ID 和 MAILMCP_MS_REDIRECT=1 后重新部署。
安全与数据流:设置页在浏览器中将邮箱密码加密为拆分密钥令牌。服务器持有一个主密钥,仅在服务请求时解密配置,最后一次请求后最多在内存中保留 15 分钟,没有数据库,也不保存邮件副本。离开服务器的内容为:到邮件服务商的 IMAP/SMTP 流量和给助手的工具结果(AI 供应商会看到每次工具调用的结果,但永远看不到密码)。许可证验证离线进行。对供应商的唯一请求是每日更新检查及下述使用统计,购买按钮链接到供应商。邮件正文被标记为不可信数据,隐藏文本被移除,头部字段经过清理,以降低邮件中植入指令的风险;但无法使模型免疫。协议采用 OAuth 2.1 with PKCE、动态客户端注册和客户端元数据文档、带重放保护的加密令牌、登录限流。默认只读、发送白名单、不永久删除。撤销方式:在服务商处删除应用专用密码,令牌即失效;Outlook 邮箱持有 Microsoft 刷新令牌而非密码,可在 account.live.com/consent/Manage 或工作账户的 My Apps 中撤销应用。轮换 MAILMCP_KEY 会使服务器上所有令牌失效。
使用统计:每份副本每天最多一次向 mailmcp.ai 询问是否有新版本;Claude Desktop 在每次启动时询问。服务器副本(Vercel 生产、Docker、Node)除非关闭,还会在该请求中发送使用统计;Claude Desktop 和其他桌面(stdio)副本仅在开启时发送,且无论启动多少次每天最多一次。请求体包含:s 为 schema,v 为 major.minor 版本号,r 为运行时(vercel、docker、node、claude-desktop 或 stdio),d 为一个日历月内保持不变的数字,由永不离开服务器的值计算(Vercel 项目 id,其他情况为机器 id 或副本一次性写入 ~/.mailmcp/stats-salt 的随机盐,设置 MAILMCP_KEY 时与其混合)。不发送许可证密钥、配置、地址、邮箱或内容。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”。
许可与支持:许可协议见 LICENSE(英文翻译在前,捷克语原文为准):一个密钥对应一个运行安装,不可再分发,不可为他人邮箱提供服务或将 mailmcp 作为托管服务运行。所有 0.x 更新包含在内;1.0 升级可能收费,0.x 继续可用。14 天无理由退款。公司部署 990 欧元:两小时在线入门支持,部署在你的 Vercel 或云上,含 Unlimited 许可。
限制:源代码未提供;ChatGPT 和 Claude 仅通过 HTTPS 连接;Gmail 需要两步验证和应用专用密码;Outlook/Microsoft 365 需要自行注册 Entra 应用;每个令牌最多三个 Outlook 邮箱;附件链接有效期一小时且携带加密令牌,期间任何持有链接的人均可使用;共享服务器运营方技术上可在服务请求期间看到配置;提示注入防护无法使模型免疫。