mcpField
T
Trusted GMail MCP Server

Trusted GMail MCP Server

ローカル
github.com/0xfreysaコミュニケーション1582 週間前に更新

Trusted GMail MCP Server について

Trusted GMail MCP Serverは、AWS Nitro Enclave内で動作するリモートGmail MCPサーバーです。MCPクライアントからGmailを利用でき、コードアテステーションの検証手順もあります。アプリ専用パスワードをURLで渡すリスクについても説明しています。

主な機能

  1. 01AWS Nitro Enclave内で稼働
  2. 02SSEによるリモート接続
  3. 03コードアテステーションの検証手順
  4. 04TEEへのセルフホスト手順

活用シーン

  1. 01MCPクライアントからGmailに接続
  2. 02実行コードのアテステーション情報を確認
  3. 03AWS Nitro環境にサーバーをデプロイ

MCP 対応

SSEを使うリモートMCPサーバーで、クライアントはURLを設定して接続します。アプリ専用パスワードが必要で、URLに含めることのリスクが説明されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Trusted GMail MCP サーバー

これは、セキュアな AWS Nitro エンクレーブインスタンス内で動作する Gmail MCP サーバーです。もともとは Claude Post MCP サーバーからフォークされました。ほとんどの MCP サーバーは stdio トランスポートを介してローカルで実行されますが、こちらのガイドに従い、sse トランスポートを使用するリモート MCP サーバーを実装しました。

MCP サーバーへの接続

この MCP サーバーを使用するには、アプリパスワードが必要です。

以下のブロックをクライアントの mcp.json ファイルに追加するだけです。

    "gmail_mcp": {
      "url": "https://gmail.mcp.freysa.ai/sse/?ADDR=<[email protected]>&ASP=<your app-specific password>"
    }

クライアントの再起動が必要な場合があります。

セキュリティに関する注意

この実装は概念実証です。アプリパスワードを URL に含めるのは安全な方法ではありません。理由は次のとおりです。

  • URL はプロキシ、ブラウザー、サーバーによってログに記録される可能性があります
  • URL がブラウザーの履歴に残る可能性があります
  • URL が Referer ヘッダーを通じてサードパーティーのサイトに漏洩する可能性があります

残念ながら、現在の MCP クライアントには、サーバーへの接続方法に制限があります。リリース時点では、MCP 仕様に SSE サーバー向けの標準的な認証メカニズムが定義されていません。そのため、通常は優先されるベアラートークンやその他の認証ヘッダーなど、より安全な方法を使用できません。

セキュリティをさらに高めるには、次の方法をご検討ください。

  1. この目的専用のアプリパスワードを使用する
  2. セキュアな VPN またはプライベートネットワーク経由でアクセスする
  3. 提供されている手順に従って、ご自身のインスタンスを実行する

概要

AWS Nitro Enclaves は、ハードウェアベースのアテステーションによってセキュリティを強化する、分離されたコンピューティング環境を提供します。Nitro Enclave 内でコードを実行すると、プラットフォームはコードの識別情報と状態を示す暗号学的な測定値を生成します。この測定値は、コードが改変されておらず、意図したとおりに正確に実行されていることを検証可能な形で保証し、改ざんや不正な変更から保護します。詳しくは、こちらのブログ記事をご覧ください。

AWS Nitro TEE でコードをすばやくデプロイするために、Nitridingを使用しています。

コードアテステーションの検証

意図したコードベースが TEE 内で実行されていることを検証するには、ご自身で AWS Nitro エンクレーブ内で実行して再現する必要があります。手順は以下のとおりです。実行できたら、このリポジトリを使って次のように検証できます。

  1. まず、コードをビルドします。
cd verifier

pnpm install && pnpm run build
  1. 次に、検証ツールをローカルで実行します。
cd mcp/react-ts-webpack

pnpm i && pnpm run dev
  1. 次に、ブラウザーで http://localhost:8080/ を開きます。2 つのフィールドの入力を求められます

(a) PCR2 ハッシュ。コードベースのハッシュです

(b) コードアテステーション。AWS によって署名されています

  1. 「Verify Attestation」ボタンをクリックします

TEE で独自のインスタンスを実行する

次の手順で、このサーバーを TEE 内で実行して再現できます。

  1. AWS EC2 コンソールで十分な大きさのインスタンスを選択し、Nitro が有効になっていることを確認します。

  2. EC2 コンソールでインスタンスの「security」タブを開き、セキュリティグループを確認して、アプリケーションに必要なポートが開いていることを確認します。

  3. このリポジトリを EC2 インスタンスにクローンします。

  4. セットアップスクリプトを実行して、必要な依存関係をすべてダウンロードします。

sudo /setup.sh
  1. 必要に応じて、エンクレーブに割り当てるメモリを増やします。
sudo nano /etc/nitro_enclaves/allocator.yaml

sudo systemctl restart nitro-enclaves-allocator.service
  1. エンクレーブを実行します。
make
  1. 本番モードで実行します。
make run

MCP サーバーを使用する

MCP サーバーを実際に使用するには、次のように gvproxy も実行する必要があります。

screen
./gvproxy.sh

次に、curl でヘルスチェックエンドポイントを呼び出し、MCP サーバーがエンクレーブ内で実行されていることを確認できます。

curl http://127.0.0.1:7047/

コメント

MCP は初めてですか?

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

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