mcpField
M
MCP Joke Server with Authentication

MCP Joke Server with Authentication

ローカル
github.com/flowsoft-org開発ツール067 週間前に更新

MCP Joke Server with Authentication について

MCP Joke Server with Authenticationは、FastAPIとFastMCPで認証付きMCPサーバーを作る方法を学ぶ開発者向けのサンプルです。Microsoft Entra IDのOAuth2 Bearerトークンでエンドポイントを保護します。

主な機能

  1. 01FastAPIとFastMCPによるサーバー構築
  2. 02OAuth2 Bearerトークン認証
  3. 03Microsoft Entra IDの設定
  4. 04保護されたエンドポイントのテスト

活用シーン

  1. 01MCPサーバーの認証実装の学習
  2. 02エンドポイントのEntra IDトークン検証設定
  3. 03VS Code GitHub Copilot Agent modeでの実行

MCP 対応

Microsoft Entra IDのOAuth2 BearerトークンでMCPサーバーを保護する方法と、GitHub Copilot Agent modeでの設定例を示します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP 認証サンプル 🚀

このリポジトリには、FastAPI と FastMCP を使用して認証機能付きの Model Context Protocol(MCP)サーバーを構築するためのサンプルコードが含まれています。

サーバーの起動 🖥️

  1. VS Code でこのフォルダーを開きます
  2. (devcontainer を使用する場合)プロンプトが表示されたら「Reopen in Container」をクリックします
  3. 依存関係をインストールします:
    pip install -r requirements.txt
    
  4. サーバーを起動します:
    python server.py
    

サーバーは http://localhost:8000 で起動します

Microsoft Entra ID(Azure AD)による認証 🔐

このサンプルでは、Microsoft Entra ID(Azure AD)の OAuth2 Bearer トークンを使用して、MCP サーバーを保護する方法を紹介します。

Entra ID アプリケーションの必須設定 🛠️
  1. Azure Portal から Microsoft Entra ID(Azure AD)にアプリケーションを登録します。
  2. API を公開します:
    • アプリの登録画面で「Expose an API」に移動します。
    • アプリケーション ID URI(例:api://<APPUUID>)を設定します。
    • スコープ(例:mcp.tools)を追加します。
  3. 認証を構成します:
    • クライアントで必要な場合は、リダイレクト URI を追加します。
  4. アプリの以下の値を取得します:
    • テナント ID
    • アプリケーション(クライアント)ID
    • アプリケーション ID URI
    • スコープ名
コードとリソースのメタデータを更新する ✏️
  • server.py の BearerAuthProvider を更新します:

    • <ENTRATENANTID> を Entra テナント ID に置き換えます。
    • <APPUUID> をアプリケーション(クライアント)ID またはアプリケーション ID URI に置き換えます。
    • 正しい jwks_uri、issuer、audience、required_scopes を設定します。

    例:

    auth = BearerAuthProvider(
        jwks_uri="https://login.microsoftonline.com/<ENTRATENANTID>/discovery/v2.0/keys",
        issuer="https://sts.windows.net/<ENTRATENANTID>/",
        algorithm="RS256",
        audience="api://<APPUUID>",
        required_scopes=["mcp.tools"]
    )
    
  • oauth-protected-resource.json を更新します:

    • リソース ID、スコープ、issuer など、このファイルがアプリケーションのメタデータと一致していることを確認します。
例:oauth-protected-resource.json 📄
{
  "resource": "api://<APPUUID>",
  "issuer": "https://sts.windows.net/<ENTRATENANTID>/",
  "scopes": ["mcp.tools"]
}

プレースホルダーを実際の値に置き換えます。

GitHub Copilot Agent Mode 🤖

この MCP サーバーは、VS Code の GitHub Copilot Agent mode でも使用できます。有効にするには、以下の手順を実行します:

  1. サーバーが起動していることを確認します。
  2. mcp.json ファイルを使用して、GitHub Copilot 用に MCP サーバーを構成します。
  3. mcp.json の構成からサーバーを起動します。

テスト 🧪

curl を使用して、保護されたエンドポイントをテストできます:

curl -H "Authorization: Bearer <token>" http://localhost:8000/mcp

トークンが指定されていない場合、または無効なトークンが指定された場合は、401 Unauthorized レスポンスが返されます。

ライセンス 📜

LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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