適用対象: Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
この記事では、API Management を使用して、既存のリモート モデル コンテキスト プロトコル (MCP) サーバー ( API Management の外部でホストされているツール サーバー) を公開および管理する方法について説明します。 MCP クライアントが MCP プロトコルを使用してそれらを呼び出すことができるように、API Management を使用してサーバーのツールを公開および管理します。
たとえば、次のようなシナリオが考えられます。
- サーバーごとの認証とレート制限を使用した 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 バージョンに準拠している必要があります。 サーバーは次をサポートする必要があります。- 承認なし、または次の標準に準拠する承認プロトコル。 https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#standards-compliance
- ストリーミング可能な HTTP トランスポート
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 であることを公開するには、次の手順に従います。
- Azure portal で、API Management インスタンスに移動します。
- 左側のメニューの API で、 MCP サーバー>+ MCP サーバーの作成を選択します。
- [ 既存の MCP サーバーを公開する] を選択します。
-
バックエンド MCP サーバーの場合:
- 既存の MCP サーバーのベース URL を入力します。 例: Microsoft Learn MCP サーバーの
https://learn.microsoft.com/api/mcp
- トランスポートの種類では、ストリーム可能 HTTP が既定で選択されています。
- 既存の MCP サーバーのベース URL を入力します。 例: Microsoft Learn MCP サーバーの
-
新しい MCP サーバーで次の手順を実行します。
- API Management で MCP サーバーの 名前 を入力します。
-
[基本パス] に、ツールのルート プレフィックスを入力します。 例:
mytools
- 必要に応じて、MCP サーバーの 説明 を入力します。
- を選択してを作成します。
- MCP サーバーが作成され、リモート サーバーの操作がツールとして公開されます。
- MCP サーバーが [ MCP サーバー ] ウィンドウに一覧表示されます。 [サーバー URL] 列には、テストまたはクライアント アプリケーション内で呼び出す MCP サーバー URL が表示されます。
Von Bedeutung
現在、API Management では、既存の MCP サーバーのツールは表示されません。 すべてのツールの登録と構成は、既存のリモート MCP サーバーで行う必要があります。
MCP サーバーのポリシーを構成する
MCP サーバーの管理に役立つ 1 つ以上の API Management ポリシー を構成します。 これらのポリシーは、MCP サーバー内のツールとして公開されているすべての API 操作に適用され、ツールのアクセス、認証、およびその他の側面を制御するために使用できます。
ポリシーの構成の詳細については、以下を参照してください。
注意事項
MCP サーバー ポリシー内の context.Response.Body
変数を使用して応答本文にアクセスしないでください。 これにより、応答バッファリングがトリガーされ、MCP サーバーに必要なストリーミング動作が妨げられるため、誤動作が発生する可能性があります。
MCP サーバーのポリシーを構成するには:
Azure portal で、API Management インスタンスに移動します。
左側のメニューの [API] で、[ MCP サーバー] を選択します。
一覧から MCP サーバーを選択します。
左側のメニューの MCP で、[ポリシー] を選択 します。
ポリシー エディターで、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 サーバーを検証して使用する
準拠している 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 サーバーを追加するには:
コマンド パレットから MCP: [サーバーの追加 ] コマンドを使用します。
メッセージが表示されたら、サーバーの種類として HTTP (HTTP またはサーバー送信イベント) を選択します。
API Management で MCP サーバーのサーバー URL を 入力します。 例:
https://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp
(MCP エンドポイントの場合)任意の サーバー ID を 入力します。
構成をワークスペース設定またはユーザー設定に保存するかどうかを選択します。
ワークスペースの設定 - サーバー構成は、現在のワークスペースでのみ使用できる
.vscode/mcp.json
ファイルに保存されます。ユーザー設定 - サーバー構成はグローバル
settings.json
ファイルに追加され、すべてのワークスペースで使用できます。 構成は次のようになります。
認証ヘッダーなどの設定のフィールドを JSON 構成に追加します。 次の例は、入力値としてヘッダーで渡される API Management サブスクリプション キーの構成を示しています。 構成形式の詳細
エージェント モードでツールを使用する
Visual Studio Code で MCP サーバーを追加した後は、エージェント モードでツールを使用できます。
GitHub Copilot チャットで、[ エージェント モード] を選択し、[ ツール ] ボタンを選択して使用可能なツールを表示します。
チャットで使用できる MCP サーバーから 1 つ以上のツールを選択します。
チャットでツールを呼び出すプロンプトを入力します。 たとえば、注文に関する情報を取得するツールを選択した場合は、注文についてエージェントに問い合わせることができます。
Get information for order 2
[ 続行] を選択して結果を表示します。 エージェントはツールを使用して MCP サーバーを呼び出し、チャットで結果を返します。
トラブルシューティングと既知の問題
問題 | 原因 | ソリューション |
---|---|---|
401 Unauthorized バックエンドからのエラー |
承認ヘッダーが転送されない |
set-header ポリシーを使用してトークンを手動でアタッチする |
API 呼び出しは API Management で機能しますが、エージェントでは失敗します | ベース URL が正しくないか、トークンが見つからない | セキュリティ ポリシーとエンドポイントを再確認する |
診断ログが有効になっている場合、MCP サーバー ストリーミングが失敗する | ポリシーによる応答本文のログ記録または応答本文へのアクセスが MCP トランスポートに干渉する | すべての API スコープで応答本文のログ記録を無効にする - 前提条件を参照 |