MCP Server Reference Implementation について
OAuth 認可フローのテストを目的とする、TypeScript 製の MCP サーバー参照実装です。Cognito とセルフホスト可能な Keycloak に対応し、`mcp:access` スコープを検証します。
主な機能
- 01認可仕様ドラフトの実装
- 02Cognito と Keycloak に対応
- 03`mcp:access` スコープの検証
- 04TypeScript SDK を使用
活用シーン
- 01MCP 認可フローのテスト
- 02Cognito リソースサーバーの設定
- 03Keycloak 認証の検証
MCP 対応
認可仕様ドラフトの更新を実装した MCP サーバーで、認可サーバーの検出にも関係します。MCP クライアントによる認可アクセスのテストに利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーのリファレンス実装
これは、公式の TypeScript SDK を使用した、ドラフト版の認可仕様の更新のリファレンス MCP サーバー実装です。
このリポジトリは、こちらの Postman コレクションと併用できます。
認証プロバイダー
認証プロバイダーには、次の 2 つの選択肢があります。
- Cognito
- Keycloak(セルフホスト)
スコープ mcp:access と <resource-id>/mcp:access を検証します。たとえば、https://mcp-server.com/mcp:access です。
重要な注意事項
OAuth 2.1 では http プロトコルが許可されていないため、適切にテストするには、静的 URL(ngrok から無料で利用できます)を使って ngrok を使用してください。
気にしないので ngrok を使わずに localhost を使用したい場合は、.envs で認可サーバーとリソースサーバーの PORT および PROTOCOL 環境変数を設定して上書きできます(不明な場合は config フォルダーを確認してください)。
ngrok を使用したセットアップ
-
サーバーをビルドして起動します。
npm i npm run build npm run start -
MCP サーバーがポート 1335 で起動します。
-
別のターミナルで、MCP サーバーへの ngrok トンネルを作成します。
ngrok http --domain=<get-a-custom-domain-from-ngrok(free)-and-place-here> 1335 -
AWS Cognito ダッシュボードの
Domainsタブで、このリソースサーバーを設定します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。