关于 Proton Mcp
Proton Mail 的本地 MCP 服务,供 Claude Desktop 和 Claude Code 读取、搜索、整理及发送邮件,并查看日历。读取来自本地 SQLite 镜像;写入受 YAML 策略和 Touch ID 确认控制,调用会写入脱敏审计日志。
主要功能
- 01读取、搜索和查看邮件线程
- 02整理邮件、管理标签与文件夹
- 03创建和管理邮件草稿
- 04Touch ID 确认发送及写入
- 05查看日历与事件
- 06本地 SQLite 镜像和审计日志
适用场景
- 01搜索并总结收件箱中的邮件
- 02将邮件移动到文件夹或标记已读
- 03确认收件人后发送或回复邮件
- 04按日期查看日历事件
MCP 相关
通过 34 个 MCP 工具向 Claude Desktop 和 Claude Code 提供 Proton Mail 与日历操作。写入工具由逐项 YAML 策略控制,发送操作每次都需 Touch ID 确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
proto-mcp
让 Claude 读取你的收件箱,同时不放弃掌控权。
一个经过签名和公证、由 Touch ID 授权的桥接工具,连接 Proton Mail 与 Claude,完全在你的 Mac 上运行。Claude 可通过 34 个 Model Context Protocol 工具读取、搜索、整理、起草和发送邮件,以及读取日历;而每次发出的邮件,都需要你在提示中确认真实收件人并验证指纹。
除了邮件本身,不会有任何内容离开你的笔记本电脑。
使用体验
你与 Claude 对话。Claude 与你的邮箱交互。重要操作都由你把关。
“这周攀岩群里有什么我错过的?” → Claude 搜索本地镜像、阅读邮件串并总结内容。无需确认提示——读取是安全的。
“把所有新闻邮件归到「阅读」文件夹并标记为已读。” → Claude 会移动邮件并将其标记为已读。整理操作受权限控制,但不会打扰你。
“回复 Alice,说我周六参加,然后发送。” → 系统会显示 Touch ID 提示:收件人:[email protected] · 主题:Re: gear list。你轻触确认。邮件就会发出。发送的人不是你。
每次读取都由本地 SQLite 镜像提供,因此速度快,也能离线使用。每项写入操作都受单独的工具策略管控。每次发送都会重新请求确认,并显示实际收件人——这次指纹验证,就是“Claude 起草了邮件”和“Claude 发出了邮件”之间的界线。
快速开始
brew tap just-an-oldsalt/proto-mcp
brew install --cask proto-mcp
protonmcp setup
全部步骤就这些。setup 会登录、将邮箱索引复制到本地数据库、启动后台服务,并连接两个 Claude 客户端,同时逐步说明操作。完成后重启 Claude,工具就会显示在 /mcp 中的 protonmcp 下。
可以安全地重复运行:已完成的步骤会跳过,因此也可用作修复命令。
想自己逐步执行这四个步骤?
protonmcp login # Proton SRP password + 2FA + key unlock
protonmcp backfill # one-time: pull your message envelopes into the local mirror
protonmcp daemon install # register + start the background daemon
protonmcp install # connect it to Claude Desktop + Claude Code
二进制文件已签名并经过公证——不会出现 Gatekeeper 警告,也不会监听网络。
遇到问题?protonmcp doctor 会检查安装的每个部分,并告诉你该运行哪条命令来修复:
[ ok ] protonmcpd version 1.0.2
[ ok ] login session present in keychain
[ FAIL ] local mirror exists but holds no messages
[ ok ] daemon running (pid 4875), socket healthy
To fix:
local mirror
protonmcp backfill
运行 brew upgrade --cask proto-mcp 后,请运行 protonmcp daemon restart,让守护进程加载新版本。
想自己构建?请参阅从源代码构建。
Claude 可以做什么
34 个工具,按操作对象分组。读取操作不受限制;所有会更改状态的操作默认拒绝,并由 Touch ID 授权。
| 📖 读取与搜索 | 列出邮件、全文搜索、读取邮件、重建邮件串、列出附件、列出标签/文件夹、同步。 |
| 🗂️ 整理 | 标记为已读/未读、移动、添加标签、移至废纸篓。 |
| 🏷️ 标签与文件夹 | 完整的增删改查功能,并验证颜色是否符合调色板。 |
| ✍️ 草稿 | 创建、更新、删除、列出。 |
| 📤 发送 | 发送、回复、回复所有人、转发、发送草稿——每项操作都会重新请求确认。 |
| 📎 附件 | 解密并下载、保存到磁盘。 |
| 📅 日历 | 列出日历、按日期范围浏览/搜索日程、读取完整日程详情。只读。 |
完整工具列表及说明:docs/cli-reference.md。
为什么安全
proto-mcp 的设计宗旨是,让大模型操作你的邮箱成为一种便利, 而非负担。以下保障措施确保了这一点:
- 🔐 每次发送都由你亲自确认。 每次写入操作都会触发原生提示框,
显示确切的收件人和主题。
mail_send的 TTL 为 零,因此每次都会重新提示。发送操作绝不采用一揽子批准。 - 🛡️ 默认拒绝,设计如此。 未知工具不会运行;如果任何已注册工具 缺少明确的策略条目,守护进程就会拒绝启动——你不可能意外发布未经防护的写入操作。
- 🍎 已签名、已公证,并可自检。 二进制文件经过强化运行时保护、 Developer ID 签名和 Apple 公证;启动时还会进行 SHA-256 完整性 检查,发现守护进程被替换就拒绝运行。
- 🔒 离开时自动锁定。 锁屏、睡眠或空闲计时器都会清除内存中的会话; 恢复使用时需要通过 Touch ID 验证。
- 🧾 诚实且经过脱敏的审计日志。 每次调用都会记录——秘密信息
会被清除,正文会简化为
{sha256, bytes},收件人则保留原样, 确保验证链准确可信。 - 🏠 仅限本地。 守护进程监听
0600Unix 套接字,不监听网络 端口。邮件内容通过 TLS 发送至 Proton;其他内容不会离开本机。
提示框的实际样式:
┌──────────────────────────────────────────────┐
│ Send mail_send? │
│ │
│ To: [email protected] │
│ CC: [email protected] │
│ Subject: Re: gear list │
│ │
│ [ Cancel ] [ Send & Touch ID ] │
└──────────────────────────────────────────────┘
完整的威胁模型——包括 proto-mcp 无法防御的风险——见 docs/security.md。将它用于真实邮箱前,请先阅读。
工作原理
一个后台守护进程持有通过 Touch ID 解锁的会话,并通过本地套接字提供 所有工具。Claude Desktop 和 Claude Code 各自通过一个小型转发器连接, 因此它们共享同一个会话:解锁一次,随处使用;锁定一次,全部锁定。
Claude Desktop ─┐ ┌─ go-proton-api + GPG
Claude Code ────┼─ shim ─ socket ─ protonmcpd ┼─ SQLite mirror + FTS5
┘ (0600) └─ Touch ID + policy + audit
完整设计——包括每个二进制文件、软件包和本地镜像——见 docs/architecture.md。
配置
使用单个 YAML 文件调整各工具的策略、速率限制、允许的收件人、空闲锁定 计时器和缓存正文的 TTL。例如,要限制由大模型驱动的发送频率,并将发送范围 限制在一个域名内:
tools:
mail_send:
decision: prompt
rate_limit: 5/hour
allowed_recipients: ["@mydomain.com"]
idle_lock_minutes: 30
完整参考,以及锁定和审计/可观测性命令,见: docs/configuration.md。
从源代码构建
需要 macOS 13+、Go 1.26.6+ 和 Xcode 命令行
工具(用于 swiftc)。
git clone https://github.com/just-an-oldsalt/proto-mcp.git
cd proto-mcp
make all # builds bin/* + the Swift helpers
./bin/protonmcp setup
make all 会针对你自己的架构构建。make universal 会构建
arm64 + x86_64,并使用 lipo 将它们合并到 bin/universal/——
发布版本就是这样构建的,因此 cask 可同时用于 Apple 芯片和 Intel。
默认情况下,源代码构建会使用临时签名,并且所有功能均可正常使用
(Touch ID 验证、策略、审计以及锁定/解锁的行为都相同)。如需本地签名
的构建,请参阅
scripts/signing-setup.md。
须知
- 仅支持 macOS。 密钥库和生物识别辅助功能使用
Security.framework、LAContext和 AppKit。Linux 构建可用于 测试,但身份验证流程无法正常工作。 - 请遵守 Proton 的规则。 proto-mcp 目前会发送 Proton Bridge 的
AppVersion标头,同时 Proton 正在申请专用标识符 (见docs/proton-appversion-request.md)。 请勿滥用速率限制、抓取数据或通过它运行多账户自动化操作—— 违反 Proton 条款的行为, 不会因为借用了 Bridge 的标头就不再违规。 - 缓存的正文以明文存储在 SQLite 中。 解密后的邮件正文会
缓存在本地(受 TTL 限制,且已启用
secure_delete)。如果磁盘被盗或 被制作了镜像,在清除之前,这些内容仍可作为明文恢复。信封加密 (SQLCipher)计划在 1.0 之后实现。目前可运行protonmcp purge --older-than 7d --vacuum来缩短风险窗口。 - 供个人使用。 本项目面向个人及其 Mac 上的邮箱构建。
文档
| 文档 | 内容 |
|---|---|
| docs/architecture.md | 守护进程模型、二进制文件、软件包和本地镜像。 |
| docs/security.md | 安全层 + 完整、坦诚的威胁模型。 |
| docs/configuration.md | 策略 YAML、锁定、可观测性、清除。 |
| docs/cli-reference.md | 所有 CLI 命令和全部 34 个 MCP 工具。 |
| SECURITY.md | 安全策略 + 按缺陷记录的修复日志 / 审计跟踪。 |
| TESTING.md | 端到端验证手册。 |
问题、缺陷和路线图均在 Jira(项目 PROTO)中跟踪,这是事实来源。TODO.html 和 DEFECTS.html 作为构建期间的历史设计记录予以保留。
贡献
欢迎提交 PR,但请先提出 issue——大多数架构方向已敲定,未经邀请且范围过大的 PR 很可能不会被合并。.github/CODEOWNERS 定义了安全关键路径(internal/redact/、internal/keystore/、internal/policy/、internal/approval/、helpers/touchid/、helpers/lockwatch/)的必需审阅者。
许可证与致谢
GPLv3——参见 LICENSE。proto-mcp 通过 go-proton-api 间接依赖 proton-bridge(同样采用 GPLv3)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。