邮箱mcp
让你的AI工具访问你的电子邮件。无需离开终端即可跨多个帐户搜索、阅读、发送和管理消息。
邮箱mcp是 MCP服务器 它将您的电子邮件连接到Claude Code、Cursor、Windsurf或任何支持模型上下文协议的AI工具。你不需要在终端和Gmail之间切换,而是让人工智能找到发票、总结一个帖子或起草一份回复——它确实做到了。
这与60多个其他电子邮件MCP服务器有何不同:
- 多个帐户,一台服务器。 工作电子邮件、个人电子邮件、客户端帐户——所有这些都可以通过一台服务器访问。无需运行单独的实例。
- 不仅仅是Gmail。 支持Gmail(完整的API)、任何IMAP/SMTP提供商(ProtonMail、公司邮件、自托管)和JMAP(Fastmail、Stalwart、Topicbox)。添加提供者而不更改一行工具代码。
- 安全意识。 加密凭据(AES-256-GCM)、对电子邮件内容的快速注入围栏、速率限制、TLS强制、具有IP编码规避检测的SSRF保护、输入验证。
- 重要工作流程的工具。 搜索、阅读、发送、回复、转发、草稿、标签、过滤器、模板、签名、假期回复、附件、取消订阅等。
- 零本地依赖。 纯Node.js。在任何地方安装和运行。
快速开始
安装
git clone https://github.com/jgalea/mailbox-mcp.git
cd mailbox-mcp
npm install && npm run build然后添加到您的Claude Code MCP配置中(~/.claude.json):
{
"mcpServers": {
"mailbox": {
"command": "node",
"args": ["/path/to/mailbox-mcp/dist/server.js"]
}
}
}替换 /path/to/mailbox-mcp 使用克隆仓库的实际路径。
添加Gmail帐户
1.创建谷歌云项目
- 首选 谷歌云控制台 并创建一个新项目
- 启用 Gmail API: API和服务>库>Gmail API >启用
2.设置OAuth同意屏幕
- 首选 谷歌认证平台>品牌
- 集 应用程序名称 和 用户支持电子邮件
- 首选 观众,选择 外部
- 添加您将用以登录的Google帐户 测试用户 (这一定是准确的
@gmail.com用于身份验证的地址,而不是工作区别名)
3.创建OAuth凭据
- 首选 谷歌认证平台>客户端 >创建客户端
- 应用程序类型:桌面应用程序
- 点击 创建
- 首选 API和服务>凭据,找到您的客户端,然后单击下载图标以获取JSON
- 将文件另存为
~/.mailbox-mcp/oauth-keys.json
4.身份验证
在Claude Code中,运行: authenticate alias="personal" provider="gmail" email="you@gmail.com"
这将打开一个浏览器窗口以完成OAuth流程。您的代币存储在本地 ~/.mailbox-mcp/accounts/.
添加IMAP帐户
在Claude Code中,运行:
authenticate alias="work" provider="imap" email="you@company.com" host="imap.company.com" smtpHost="smtp.company.com" username="you@company.com" password="your-app-password"凭据在静态时使用AES-256-GCM进行加密。
添加JMAP帐户
在Claude Code中,运行:
authenticate alias="fastmail" provider="jmap" email="you@fastmail.com" host="fastmail.com" username="you@fastmail.com" password="your-app-password"JMAP通过 .well-known/jmap。凭据在静止时使用AES-256-GCM进行加密。
支持的JMAP服务器: Fastmail、Stalwart、Topicbox、Cyrus IMAP和任何符合RFC 8620的服务器。
JMAP相对于IMAP的优势:
- 原生线程支持(真实对话,非合成)
- 服务器端搜索(更快、更准确)
- 单个HTTP请求中的批处理操作
- 不需要持久连接
工具
通用(Gmail+IMAP+JMAP)
| 工具 | 说明 |
|---|---|
list_accounts | 列出已配置的帐户 |
authenticate | 添加新帐户 |
reauth | 为现有的Gmail帐户重新运行OAuth(当刷新令牌过期时使用 invalid_grant) |
remove_account | 删除帐户 |
search_emails | 搜索邮件(可选 folder 以确定搜索范围) |
multi_account_search | 在每个配置的帐户上并行运行相同的查询 |
read_email | 阅读消息 |
read_thread | 阅读对话帖子(Gmail+JMAP) |
send_email | 发送新电子邮件(支持 attachments) |
reply_email | 回复消息(支持 attachments) |
forward_email | 转发消息(支持 attachments) |
create_draft | 创建草稿(支持通过以下方式回复草稿 in_reply_to, attachments) |
list_drafts | 列出帐户的草稿 |
send_draft | 发送现有草稿 |
trash_emails | 垃圾信息 |
mark_read | 将邮件标记为已读或未读 |
star_email | 标记或取消标记消息 |
archive_email | 将邮件存档(从收件箱中删除) |
list_labels | 列出标签/文件夹 |
create_label | 创建标签/文件夹 |
delete_label | 删除标签/文件夹 |
modify_email | 修改邮件标签 |
batch_modify_emails | 批量修改标签 |
count_unread_by_label | 显示每个标签/文件夹的未读邮件计数 |
download_attachment | 下载附件 |
export_email | 将邮件另存为 .eml 文件 |
export_thread | 将线程中的每条消息另存为 .eml 文件(Gmail+JMAP) |
emails_since | 列出在给定时间戳后收到的消息 |
inbox_summary | 收件箱概述 |
仅限Gmail
| 工具 | 说明 |
|---|---|
create_filter | 创建筛选器 |
list_filters | 列出筛选器 |
delete_filter | 删除筛选器 |
save_template | 保存模板 |
list_templates | 列出模板 |
delete_template | 删除模板 |
send_template | 从模板发送 |
get_signature | 获取签名 |
set_signature | 更新签名 |
get_vacation | 获取假期设置 |
set_vacation | 配置假期回复(仅支持日期范围和域) |
unsubscribe | 查找取消订阅链接 |
bulk_unsubscribe | 批量取消订阅 |
list_send_as | 以别名发送列表 |
发送附件
send_email, reply_email, forward_email,以及 create_draft 接受可选 attachments 参数——本地文件路径数组。服务器读取每个文件,从扩展名中检测其MIME类型,并将其嵌入到传出消息(或草稿)中。
send_email account="personal" to=["friend@example.com"] subject="The report" body="See attached." attachments=["/path/to/report.pdf", "/path/to/chart.png"]- 每个文件必须是≤25 MB的常规文件;每条邮件的总大小上限为25 MB(Gmail的硬限制)。
- 路径通过任何符号链接解析,文件名在进入标头之前会被去除CRLF。
- Gmail通过多部分上传端点(35 MB API限制)而不是JSON端点路由带有附件的邮件,因此25 MB的邮件上限是真正的上限。
- JMAP首先将每个文件上传到服务器的上传URL,然后在Email/set调用中引用生成的blobId。
许可证
麻省理工学院
建造于 AgentVania 的.
