適用対象: Basic | Basic v2 | Standard | Standard v2 | Premium | Premium v2
API Management では、API Management で管理されている REST API を、組み込みの AI ゲートウェイを使用してリモート モデル コンテキスト プロトコル (MCP) サーバーとして公開できます。 MCP クライアントが MCP プロトコルを使用して呼び出すことができるツールとして、1 つ以上の API 操作を公開します。
Azure API Management では、既存の MCP 互換サーバー (API Management の外部でホストされているツール サーバー) との安全な統合もサポートされています。 詳細については、「 既存の MCP サーバーを公開する」を参照してください。
詳細については、以下をご覧ください。
制限事項
このプレビューには、次の制限事項が適用されます。 プレビュー機能は変更される可能性があるため、更新プログラムを確認してください。
- 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 サーバーとして公開する HTTP 互換 API (Azure リソースからインポートされた API を含む REST API としてインポートされたすべての API) をインスタンスが管理していることを確認します。 サンプル API をインポートするには、 最初の API のインポートと発行に関するページを参照してください。
注
HTTP 互換ではない API Management の他の API の種類は、MCP サーバーとして公開できません。
API Management サービス インスタンスのグローバル スコープ (すべての API) で Application Insights または Azure Monitor による診断ログを有効にした場合は、フロントエンド応答 のログ記録のペイロード バイト数 の設定が 0 に設定されていることを確認します。 これにより、すべての API で意図しない応答本文のログ記録が防止され、MCP サーバーが適切に機能することを保証できます。 特定の API のペイロードを選択的にログに記録するには、API スコープで設定を個別に構成し、応答ログの対象を絞って制御できるようにします。
MCP サーバーをテストするには、 GitHub Copilot にアクセスできる Visual Studio Code を使用できます。
MCP サーバーとして API を公開する
API Management でマネージド REST API を MCP サーバーとして公開するには、次の手順に従います。
- Azure portal で、API Management インスタンスに移動します。
- 左側のメニューの [API] で、[ MCP サーバー>+ MCP サーバーの作成] を選択します。
- [ API を MCP サーバーとして公開する] を選択します。
-
バックエンド MCP サーバーの場合:
- MCP サーバーとして公開するマネージド API を選択します。
- ツールとして公開する 1 つ以上の API 操作 を選択します。 すべての操作を選択することも、特定の操作のみを選択することもできます。
注
ツールとして公開されている操作は、後で MCP サーバーの [ツール ] ブレードで更新できます。
-
新しい MCP サーバーで次の手順を実行します。
- API Management で MCP サーバーの名前を入力 します 。
- 必要に応じて、MCP サーバーの 説明 を入力します。
- を選択してを作成します。
- MCP サーバーが作成され、API 操作がツールとして公開されます。
- MCP サーバーが [ MCP サーバー ] ブレードに一覧表示されます。 [サーバー URL] 列には、テストまたはクライアント アプリケーション内で呼び出す 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 スコープで応答本文のログ記録を無効にする - 前提条件を参照 |