次の方法で共有


既存の MCP サーバーを公開して管理する

適用対象: Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2

この記事では、API Management を使用して、既存のリモート モデル コンテキスト プロトコル (MCP) サーバー ( API Management の外部でホストされているツール サーバー) を公開および管理する方法について説明します。 MCP クライアントが MCP プロトコルを使用してそれらを呼び出すことができるように、API Management を使用してサーバーのツールを公開および管理します。

Von Bedeutung

  • この機能はプレビュー段階であり、いくつかの 制限があります
  • MCP サーバー機能にアクセスするための 前提条件 を確認します。

たとえば、次のようなシナリオが考えられます。

  • サーバーごとの認証とレート制限を使用した API Management を使用したプロキシ LangChain または LangServe ツール サーバー。
  • IP フィルター処理と OAuth を使用して、Azure Logic Apps ベースのツールを安全に公開して副操縦します。
  • Azure Functions とオープン ソース ランタイムから Azure API Center に MCP サーバー ツールを一元化します。
  • GitHub Copilot、Claude by Anthropic、または ChatGPT を有効にして、企業全体のツールと安全に対話できます。

API Management では、マネージド REST API から API Management でネイティブに公開される MCP サーバーもサポートされています。 詳細については、「 REST API を MCP サーバーとして公開する」を参照してください。

詳細については、以下をご覧ください。

制限事項

このプレビューには、次の制限事項が適用されます。 プレビュー機能は変更される可能性があるため、更新プログラムを確認してください。

  • 外部 MCP サーバーは、 2025-06-18 以降の MCP バージョンに準拠している必要があります。 サーバーは次をサポートする必要があります。

    Von Bedeutung

    以前の MCP バージョンに準拠しているサーバー、または SSE トランスポートのみを使用しているサーバーはサポートされていません。

  • API Management は MCP サーバー ツール機能をサポートしますが、MCP リソースやプロンプトはサポートしません。

  • MCP サーバー機能は、API Management ワークスペースではサポートされていません。

[前提条件]

  • API Management インスタンスがまだない場合は、次のクイック スタートを完了します。 Azure API Management インスタンスを作成します

    • プレビューでは、クラシック Basic、Standard、Premium、Basic v2、Standard v2、Premium v2 の各サービス レベルがサポートされています。
    • 従来の Basic、Standard、または Premium レベルでは、 AI Gateway 早期更新グループ に参加して MCP サーバー機能にアクセスする必要があります。 更新プログラムを適用するには、最大 2 時間を許可します。
  • 外部の MCP 互換サーバー (たとえば、Azure Logic Apps、Azure Functions、LangServe、またはその他のプラットフォームでホストされている) へのアクセス。

  • セキュリティで保護されたアクセスのために、MCP サーバーに対する適切な資格情報 (OAuth 2.0 クライアント資格情報や、サーバーに応じた API キーなど)。

  • API Management サービス インスタンスのグローバル スコープ (すべての API) で Application Insights または Azure Monitor による診断ログを有効にした場合は、フロントエンド応答 のログ記録のペイロード バイト数 の設定が 0 に設定されていることを確認します。 これにより、すべての API で意図しない応答本文のログ記録が防止され、MCP サーバーが適切に機能することを保証できます。 特定の API のペイロードを選択的にログに記録するには、API スコープで設定を個別に構成し、応答ログの対象を絞って制御できるようにします。

  • MCP サーバーをテストするには、 GitHub Copilot にアクセスできる Visual Studio Code を使用できます。

既存の MCP サーバーを公開する

既存の MCP サーバーが API Management であることを公開するには、次の手順に従います。

  1. Azure portal で、API Management インスタンスに移動します。
  2. 左側のメニューの API でMCP サーバー>+ MCP サーバーの作成を選択します。
  3. [ 既存の MCP サーバーを公開する] を選択します。
  4. バックエンド MCP サーバーの場合:
    1. 既存の MCP サーバーのベース URL を入力します。 例: Microsoft Learn MCP サーバーのhttps://learn.microsoft.com/api/mcp
    2. トランスポートの種類では、ストリーム可能 HTTP が既定で選択されています。
  5. 新しい MCP サーバーで次の手順を実行します
    1. API Management で MCP サーバーの 名前 を入力します。
    2. [基本パス] に、ツールのルート プレフィックスを入力します。 例: mytools
    3. 必要に応じて、MCP サーバーの 説明 を入力します。
  6. を選択してを作成します。

ポータルで MCP サーバーを作成するスクリーンショット。

  • MCP サーバーが作成され、リモート サーバーの操作がツールとして公開されます。
  • MCP サーバーが [ MCP サーバー ] ウィンドウに一覧表示されます。 [サーバー URL] 列には、テストまたはクライアント アプリケーション内で呼び出す MCP サーバー URL が表示されます。

ポータルの MCP サーバーの一覧のスクリーンショット。

Von Bedeutung

現在、API Management では、既存の MCP サーバーのツールは表示されません。 すべてのツールの登録と構成は、既存のリモート MCP サーバーで行う必要があります。

MCP サーバーのポリシーを構成する

MCP サーバーの管理に役立つ 1 つ以上の API Management ポリシー を構成します。 これらのポリシーは、MCP サーバー内のツールとして公開されているすべての API 操作に適用され、ツールのアクセス、認証、およびその他の側面を制御するために使用できます。

ポリシーの構成の詳細については、以下を参照してください。

注意事項

MCP サーバー ポリシー内の context.Response.Body 変数を使用して応答本文にアクセスしないでください。 これにより、応答バッファリングがトリガーされ、MCP サーバーに必要なストリーミング動作が妨げられるため、誤動作が発生する可能性があります。

MCP サーバーのポリシーを構成するには:

  1. Azure portal で、API Management インスタンスに移動します。

  2. 左側のメニューの [API] で、[ MCP サーバー] を選択します。

  3. 一覧から MCP サーバーを選択します。

  4. 左側のメニューの MCP で、[ポリシー] を選択 します

  5. ポリシー エディターで、MCP サーバーのツールに適用するポリシーを追加または編集します。 ポリシーは XML 形式で定義されます。 たとえば、MCP サーバーのツールへの呼び出しを制限するポリシーを追加できます (この例では、クライアント IP アドレスあたり 30 秒あたり 5 回の呼び出し)。

    <rate-limit-by-key calls="5" renewal-period="30" counter-key="@(context.Request.IpAddress)" remaining-calls-variable-name="remainingCallsPerIP" />
    

    MCP サーバーのポリシー エディターのスクリーンショット。

MCP サーバーを検証して使用する

準拠している LLM エージェント (GitHub Copilot、セマンティック カーネル、Copilot Studio など) またはテスト クライアント ( curl など) を使用して、API Management でホストされる MCP エンドポイントを呼び出します。 要求に適切なヘッダーまたはトークンが含まれていることを確認し、MCP サーバーからのルーティングと応答が成功したことを確認します。

ヒント

MCP Inspector を使用して API Management によって管理される MCP サーバーをテストする場合は、バージョン 0.9.0 を使用することをお勧めします。

Visual Studio Code で MCP サーバーを追加する

Visual Studio Code では、エージェント モードで GitHub Copilot チャットを使用して MCP サーバーを追加し、ツールを使用します。 Visual Studio Code での MCP サーバーの背景については、「 VS Code での MCP サーバーの使用」を参照してください。

Visual Studio Code で MCP サーバーを追加するには:

  1. コマンド パレットから MCP: [サーバーの追加 ] コマンドを使用します。

  2. メッセージが表示されたら、サーバーの種類として HTTP (HTTP またはサーバー送信イベント) を選択します。

  3. API Management で MCP サーバーのサーバー URL を 入力します。 例: https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp (MCP エンドポイントの場合)

  4. 任意の サーバー ID を 入力します。

  5. 構成をワークスペース設定またはユーザー設定に保存するかどうかを選択します。

    • ワークスペースの設定 - サーバー構成は、現在のワークスペースでのみ使用できる .vscode/mcp.json ファイルに保存されます。

    • ユーザー設定 - サーバー構成はグローバル settings.json ファイルに追加され、すべてのワークスペースで使用できます。 構成は次のようになります。

    Visual Studio Code で構成された MCP サーバーのスクリーンショット。

認証ヘッダーなどの設定のフィールドを JSON 構成に追加します。 次の例は、入力値としてヘッダーで渡される API Management サブスクリプション キーの構成を示しています。 構成形式の詳細

MCP サーバーの認証ヘッダー構成のスクリーンショット

エージェント モードでツールを使用する

Visual Studio Code で MCP サーバーを追加した後は、エージェント モードでツールを使用できます。

  1. GitHub Copilot チャットで、[ エージェント モード] を選択し、[ ツール ] ボタンを選択して使用可能なツールを表示します。

    チャットの [ツール] ボタンのスクリーンショット。

  2. チャットで使用できる MCP サーバーから 1 つ以上のツールを選択します。

    Visual Studio Code でツールを選択しているスクリーンショット。

  3. チャットでツールを呼び出すプロンプトを入力します。 たとえば、注文に関する情報を取得するツールを選択した場合は、注文についてエージェントに問い合わせることができます。

    Get information for order 2
    

    [ 続行] を選択して結果を表示します。 エージェントはツールを使用して MCP サーバーを呼び出し、チャットで結果を返します。

    Visual Studio Code のチャット結果のスクリーンショット。

トラブルシューティングと既知の問題

問題 原因 ソリューション
401 Unauthorized バックエンドからのエラー 承認ヘッダーが転送されない set-header ポリシーを使用してトークンを手動でアタッチする
API 呼び出しは API Management で機能しますが、エージェントでは失敗します ベース URL が正しくないか、トークンが見つからない セキュリティ ポリシーとエンドポイントを再確認する
診断ログが有効になっている場合、MCP サーバー ストリーミングが失敗する ポリシーによる応答本文のログ記録または応答本文へのアクセスが MCP トランスポートに干渉する すべての API スコープで応答本文のログ記録を無効にする - 前提条件を参照