mcpField
P
Proton Mcp

Proton Mcp

本地服务
github.com/just-an-oldsalt通信协作65 周前更新

关于 Proton Mcp

Proton Mail 的本地 MCP 服务,供 Claude Desktop 和 Claude Code 读取、搜索、整理及发送邮件,并查看日历。读取来自本地 SQLite 镜像;写入受 YAML 策略和 Touch ID 确认控制,调用会写入脱敏审计日志。

主要功能

  1. 01读取、搜索和查看邮件线程
  2. 02整理邮件、管理标签与文件夹
  3. 03创建和管理邮件草稿
  4. 04Touch ID 确认发送及写入
  5. 05查看日历与事件
  6. 06本地 SQLite 镜像和审计日志

适用场景

  1. 01搜索并总结收件箱中的邮件
  2. 02将邮件移动到文件夹或标记已读
  3. 03确认收件人后发送或回复邮件
  4. 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 工具读取、搜索、整理、起草和发送邮件,以及读取日历;而每次发出的邮件,都需要你在提示中确认真实收件人并验证指纹。

除了邮件本身,不会有任何内容离开你的笔记本电脑。

平台:macOS Go 1.26.6+ 已签名并公证 MCP 许可证:GPLv3


使用体验

你与 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},收件人则保留原样, 确保验证链准确可信。
  • 🏠 仅限本地。 守护进程监听 0600 Unix 套接字,不监听网络 端口。邮件内容通过 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)。

  • 感谢 Proton AG 提供 proton-bridge 和 go-proton-api,整个加密 + 传输层都依赖它们。
  • 感谢 Anthropic 提供 Model Context Protocol,以及本服务面向的 Claude 客户端。
  • 感谢每一个促成相应缺陷的因素:cmd-r、claude-review、claude-security-review 或实际测试会话,都比我独自一人时更仔细地审视了代码。

评论

支持 Markdown

第一次接触 MCP?

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

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