PROTON-MCP について
PROTON-MCPは、Claude DesktopやClaude CodeからProton Mailとカレンダーを扱うmacOS向けブリッジです。メールの読み取りにはローカルミラーを使い、書き込みはツールごとのポリシーで制御し、送信にはTouch IDの承認が必要です。
主な機能
- 01ローカルメールの閲覧と検索
- 02メール整理と下書き管理
- 03カレンダーの読み取り専用検索
- 04送信ごとのTouch ID確認
- 05ツール別ポリシーと監査ログ
活用シーン
- 01ローカルメールの検索とスレッド確認
- 02メッセージ整理とラベル管理
- 03宛先を確認して下書きを送信
- 04日付範囲を指定した予定の確認
MCP 対応
ローカルのMCPサービスを通じて、Claude DesktopとClaude CodeにProton Mailおよびカレンダーのツールを提供します。デーモンはUnixソケットで接続を受け付け、書き込みはポリシーとTouch IDで保護されます。
詳細
proto-mcp
Claude に受信トレイを使わせながら、主導権はあなたが握れます。
Proton Mail と Claude をつなぐ、署名・公証済みで Touch ID による承認が必要なブリッジです。すべて Mac 上で動作します。Claude は 34 個の Model Context Protocol ツールを通じて、メールの閲覧、検索、整理、下書き、送信、カレンダーの閲覧を行います。メールを送信するには、実際の宛先が明記されたプロンプトに対して、毎回指紋認証が必要です。
メール以外の情報が Mac から外部に送信されることはありません。
使い心地
あなたは Claude と話します。Claude はメールボックスを操作します。重要な操作には、あなたが関与し続けます。
「今週、クライミング仲間から何か連絡があった?」 → Claude はローカルミラーを検索してスレッドを読み、要約します。閲覧は安全なので、プロンプトは表示されません。
「ニュースレターをすべて『あとで読む』に移動して、既読にして」 → Claude が移動して既読にします。整理操作には承認が必要ですが、静かに行われます。
「アリスに土曜日に参加すると返信して、送信して」 → 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 にツールが表示されます。
安全に再実行できます。完了済みの手順はスキップされるため、修復用コマンドとしても使えます。
4 つの手順を自分で実行しますか?
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 を実行してください。インストールの各要素を確認し、修正に必要なコマンドを 1 つ教えてくれます。
[ 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 による承認が必要です。
| 📖 閲覧と検索 | 一覧表示、全文検索、メッセージの閲覧、スレッドの再構成、添付ファイルの一覧表示、ラベル/フォルダーの一覧表示、同期。 |
| 🗂️ 整理 | 既読/未読の切り替え、移動、ラベル付け、ゴミ箱への移動。 |
| 🏷️ ラベルとフォルダー | 色パレットの検証を含む、CRUD 全般。 |
| ✍️ 下書き | 作成、更新、削除、一覧表示。 |
| 📤 送信 | 送信、返信、全員に返信、転送、下書きの送信。いずれも毎回あらためて承認が必要です。 |
| 📎 添付ファイル | 復号してダウンロードし、ディスクに保存。 |
| 📅 カレンダー | カレンダーの一覧表示、日付範囲を指定したイベントの閲覧/検索、イベントの詳細表示。読み取り専用です。 |
説明付きの全ツール一覧:docs/cli-reference.md。
安全性の理由
proto-mcp は、メールボックスを操作する LLM が、利便性をもたらす存在であり、決してリスクにならないように設計されています。それを実現する保証は次のとおりです。
- 🔐 送信のたびに本人が確認します。 書き込みを行うたびにネイティブのプロンプトが表示され、宛先と件名がそのまま示されます。
mail_sendの TTL はゼロなので、毎回必ず再確認を求めます。送信に対する包括的な承認はありません。 - 🛡️ デフォルト拒否を設計に組み込んでいます。 未知のツールは実行されません。また、登録されたツールに明示的なポリシー項目がない場合、デーモンは起動を拒否します。ガードされていない書き込みを誤ってリリースすることはありません。
- 🍎 署名・公証済みで、自己検証機能を備えています。 Hardened Runtime を有効にし、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 は、それぞれ小さなフォワーダーを介して接続するため、1 つのセッションを共有します。一度ロック解除すればどこでも使え、一度ロックすればすべてがロックされます。
Claude Desktop ─┐ ┌─ go-proton-api + GPG
Claude Code ────┼─ shim ─ socket ─ protonmcpd ┼─ SQLite mirror + FTS5
┘ (0600) └─ Touch ID + policy + audit
すべてのバイナリ、パッケージ、ローカルミラーを含む設計の全容は、docs/architecture.md に記載されています。
設定
単一の YAML ファイルで、ツールごとのポリシー、レート制限、許可する宛先、アイドルロックのタイマー、キャッシュされた本文の TTL を調整できます。たとえば、LLM による送信数に上限を設け、宛先を 1 つのドメインに制限するには、次のようにします。
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 Command Line Tools(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を参照)。レート制限を悪用したり、スクレイピングしたり、複数アカウントの自動操作を行ったりしないでください。Bridge のヘッダーを借用しても、Proton の利用規約に違反する行為が許されるわけではありません。 - キャッシュされた本文は SQLite に平文で保存されます。 復号されたメッセージ本文はローカルにキャッシュされます(TTL による制限があり、
secure_deleteは有効です)。盗難やイメージ化されたディスクでは、消去されるまで復元可能な平文が残ります。エンベロープ暗号化(SQLCipher)は 1.0 以降の項目です。現時点ではprotonmcp purge --older-than 7d --vacuumを実行すると、残存期間を短縮できます。 - 個人利用向けです。 1 人のユーザーが 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 を歓迎しますが、まず課題を登録してください。アーキテクチャの大部分はすでに決まっているため、事前の相談なしに範囲の大きな 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。