mcpField
P
PROTON-MCP

PROTON-MCP

github.com/just-an-oldsaltデスクトップアプリ65 週間前に更新

PROTON-MCP について

PROTON-MCPは、Claude DesktopやClaude CodeからProton Mailとカレンダーを扱うmacOS向けブリッジです。メールの読み取りにはローカルミラーを使い、書き込みはツールごとのポリシーで制御し、送信にはTouch IDの承認が必要です。

主な機能

  1. 01ローカルメールの閲覧と検索
  2. 02メール整理と下書き管理
  3. 03カレンダーの読み取り専用検索
  4. 04送信ごとのTouch ID確認
  5. 05ツール別ポリシーと監査ログ

活用シーン

  1. 01ローカルメールの検索とスレッド確認
  2. 02メッセージ整理とラベル管理
  3. 03宛先を確認して下書きを送信
  4. 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 から外部に送信されることはありません。

platform: macOS Go 1.26.6+ signed & notarized MCP license: GPLv3


使い心地

あなたは 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)に推移的に依存しています。

  • Proton AG に、暗号化とトランスポートの基盤全体を支える proton-bridge と go-proton-api を提供していただいたことに感謝します。
  • Anthropic に、このサーバーが対象とする Model Context Protocol と Claude クライアントを提供していただいたことに感謝します。
  • cmd-r、claude-review、claude-security-review、または実際のテストセッションで、私ひとりで確認するよりも入念にコードを見ていただいたことで、そのような形になったすべての欠陥に感謝します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。