MCP Server Template with Internet Identity Authentication について
Internet Identity認証を使うMCPサーバーのテンプレートです。ブラウザーでの委任フローと、認証が必要なツールへのアクセスを示し、MCPサーバー開発者を対象としています。
主な機能
- 01Internet Identity認証フロー
- 02ブラウザーベースの認証画面
- 03委任チェーンの作成と送信
- 04認証状態の管理
- 05認証が必要なMCPツール
活用シーン
- 01認証付きMCPサーバーの試作
- 02ツール利用前の本人確認
MCP 対応
`authenticate`ツールと認証が必要なツールを備えたMCPサーバーを実装します。付属のReactアプリが委任チェーンを作成し、サーバーに送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Internet Identity 認証を使用する MCP サーバーテンプレート
このプロジェクトでは、Internet Identity 認証フローを備えた Model Context Protocol(MCP)サーバーを紹介します。
認証フロー
┌────────────────┐ (1) Use authenticate tool ┌────────────────┐
│ │ ────────────────────────────────> │ │
│ │ │ │
│ AI Client │ │ MCP Server │
│ with MCP │ │ │
│ Support │ │ │
│ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │
└────────────────┘ (6) Authentication result └────────────────┘
│ │
│ │ (2) Open authentication URL
│ │ with pubkey & expiration
│ ▼
│ ┌────────────────┐
│ │ │
│ │ React Web App │
│ │ (Auth UI) │
│ │ │
│ └────────────────┘
│ │
│ │ (3) User authenticates
│ │ with Internet Identity
│ ▼
│ ┌────────────────┐
│ │ │
│ │ Internet │
│ │ Identity │
│ │ │
│ └────────────────┘
│ │
│ │ (4) Return delegation
│ ▼
│ ┌────────────────┐
│ │ │
│ │ React Web App │
│ │ (Auth UI) │
│ │ │
│ └────────────────┘
│ │
│ │ (5) Send delegation
│ │ to MCP Server
▼ ▼
┌────────────────┐ (7) Call other MCP tools ┌────────────────┐
│ │ ────────────────────────────────> │ │
│ │ │ │
│ AI Client │ │ MCP Server │
│ with MCP │ │ (Authenticated)│
│ Support │ │ │
│ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │
└────────────────┘ (8) Tool responses └────────────────┘
仕組み
-
認証のリクエスト:AI クライアントが
authenticateツールを使用して MCP サーバーを呼び出します。 -
認証 URL を開く:MCP サーバーが、次の情報を含む認証 URL をブラウザーウィンドウで開きます。
pubkey:委任用の公開鍵expiration:委任の有効期限(ミリ秒単位)
-
ユーザー認証:React ウェブアプリ(認証 UI)にユーザー認証用のインターフェースが表示され、ユーザーは Internet Identity またはその他のサポート対象の ID プロバイダーを使用して認証します。
-
委任の作成:認証が成功すると、ウェブアプリが提供された公開鍵と有効期限を使用して、MCP サーバー用の委任チェーンを作成します。
-
委任をサーバーに送信:ウェブアプリが、設定されたエンドポイントに委任チェーンを送信します。
-
認証結果:MCP サーバーが認証結果を AI クライアントに返します。
-
保護されたツールへのアクセス:認証が成功すると、AI クライアントは認証が必要な他の MCP ツールを呼び出せるようになります。
-
保護された応答:認証済みの MCP サーバーが、ツールの呼び出しに対して要求されたデータを返します。
プロジェクト構成
-
mcp-server/:MCP サーバーの実装- MCP ツールの登録とリクエストを処理します
- 認証状態を管理します
- ウェブアプリからの委任を処理します
-
mcp-server-wallet-connect/:認証用の React ウェブアプリ- Internet Identity に接続します
- MCP サーバー用の委任を作成します
- 委任をサーバーに送り返します
セットアップ手順
- 両方のプロジェクトの環境変数を設定します
- MCP サーバーを起動します
- React ウェブアプリを起動します
- AI クライアントを MCP サーバーに接続します
詳しいセットアップ手順については、各プロジェクトディレクトリの README ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。