適用対象: Basic | Standard | Premium
API Management では、API Management で管理されている REST API をリモート モデル コンテキスト プロトコル (MCP) サーバーとして公開できます。 MCP クライアントが MCP プロトコルを使用して呼び出すことができるツールとして、1 つ以上の API 操作を公開します。
API Management を使用してリモート MCP サーバーを公開すると、認証、承認、監視を一元的に制御できます。 これにより、API を MCP サーバーとして公開するプロセスが簡略化され、一般的なセキュリティ リスクを軽減し、スケーラビリティが確保されます。
注
この機能は現在プレビュー段階です。 最初に AI ゲートウェイの早期更新グループにリリースされています。 グループに参加した後、MCP サーバーの機能にアクセスするには 2 時間かかることがあります。
この記事では、次の方法について説明します。
- API Management で MCP サーバーとして REST API を公開する
- MCP サーバーのポリシーを構成する
- MCP クライアントから生成された MCP サーバーをテストする
MCP サーバーについて
大規模言語モデル (LLM) 機能の強化により、AI エージェントが広く採用されています。 ただし、最も高度なモデルでも、外部データから分離されているため、制限に直面します。 新しいデータ ソースごとに、モデルのデータを抽出、準備、およびアクセスできるようにするためのカスタム実装が必要になる可能性があります。
モデル コンテキスト プロトコル (MCP) は、この問題の解決に役立ちます。 MCP は、AI モデルとエージェントを、ローカル データ ソース (データベースまたはコンピューター ファイル) やリモート サービス (リモート データベースや API など、インターネット経由で利用可能なシステム) などの外部データ ソースと接続するためのオープン標準です。
MCP アーキテクチャ
次の図は、MCP アーキテクチャを示しています。
アーキテクチャは、次のコンポーネントで構成されています。
コンポーネント | 説明 |
---|---|
MCP ホスト | 外部機能にアクセスする必要がある IDE のチャット アプリや AI アシスタントなどの LLM アプリケーション (Visual Studio Code の GitHub Copilot など) |
MCP クライアント | ホスト アプリケーション内で、サーバーとの 1 対 1 の接続を維持するプロトコル クライアント |
MCP サーバー | それぞれが特定の機能を公開し、コンテキスト、ツール、プロンプトをクライアントに提供する軽量プログラム |
MCP プロトコル | 中央のトランスポート 層 |
MCP は、ホスト アプリケーションが複数のサーバーに接続できるクライアント/サーバー アーキテクチャに従います。 MCP ホストまたはクライアントがツールを必要とする場合は常に、MCP サーバーに接続します。 その後、MCP サーバーは、データベースや API などに接続します。 MCP ホストとサーバーは、MCP プロトコルを介して相互に接続します。
リモートとローカルの MCP サーバー
MCP では、 メッセージング用にJSON-RPC 2.0 に基づいて構築されたクライアント/ホスト/サーバー アーキテクチャを利用します。 クライアントとサーバー間の通信は、定義されたトランスポート層を介して行われ、主に 2 つの操作モードをサポートします。
リモート MCP サーバー - MCP クライアントはインターネット経由で MCP サーバーに接続し、HTTP およびサーバー送信イベント (SSE) を使用して接続を確立し、OAuth を使用してユーザーのアカウント上のリソースへの MCP クライアント アクセスを承認します。
ローカル MCP サーバー MCP クライアントは、ローカル トランスポート方法として標準の入出力を使用して、同じコンピューター上の MCP サーバーに接続します。
[前提条件]
- 次のクイック スタートを完了します。 Azure API Management インスタンスを作成します。 現在、MCP サーバーをサポートするのは、API Management の Premium、 Standard、 Basic のレベルのみです。
- MCP サーバーとして公開する REST API をインスタンスが管理していることを確認します。 サンプル API をインポートするには、 最初の API のインポートと発行に関するページを参照してください。
注
MCP サーバーとして公開できるのは、API Management の HTTP API のみです。
- MCP サーバーをテストするには、 GitHub Copilot にアクセスできる Visual Studio Code を使用できます。
MCP サーバーとして API を公開する
Azure portal で、次の URL で MCP サーバー プレビューにアクセスします。
https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp
API Management インスタンスに移動します。
左側のメニューで、 API>MCP サーバー>+ 新しい MCP サーバーの作成を選択します。
API で、MCP サーバーとして公開する REST API を選択します。
ツールとして公開する 1 つ以上の API 操作 を選択します。 すべての操作を選択することも、特定の操作のみを選択することもできます。
を選択してを作成します。
MCP サーバーが作成され、API 操作がツールとして公開されます。 MCP サーバーが [ MCP サーバー ] ウィンドウに一覧表示されます。 URL 列には、テストまたはクライアント アプリケーション内で呼び出すことができる MCP サーバーのエンドポイントが表示されます。
MCP サーバーのポリシーを構成する
MCP サーバーの管理に役立つ 1 つ以上の API Management ポリシー を構成します。 これらのポリシーは、MCP サーバー内のツールとして公開されているすべての API 操作に適用され、ツールのアクセス、認証、およびその他の側面を制御するために使用できます。
ポリシーを構成する方法のチュートリアルについては、「API の 変換と保護」を参照してください。
MCP サーバーのポリシーを構成するには:
ポータルの [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 サーバーをテストして使用する
MCP サーバーが動作していることを確認するために、Visual Studio Code を使用して MCP サーバー ツールに要求を送信できます。
Visual Studio Code では、エージェント モード (プレビュー) で GitHub Copilot チャットを使用して MCP サーバーを追加し、ツールを使用します。 Visual Studio Code での MCP サーバーの背景については、「 VS Code での MCP サーバーの使用 (プレビュー)」を参照してください。
ヒント
MCP Inspector を使用して API Management によって作成された MCP サーバーをテストする場合は、バージョン 0.9.0 を使用することをお勧めします。
Visual Studio Code で MCP サーバーを追加する
Visual Studio Code で MCP サーバーを追加するには:
コマンド パレットから MCP: [サーバーの追加 ] コマンドを使用します。
メッセージが表示されたら、サーバーの種類として HTTP (HTTP またはサーバー送信イベント) を選択します。
API Management で MCP サーバーの URL を入力します 。 例:
https://<apim-service-name>.azure-api.net/<api-name>-mcp/sse
(SSE エンドポイントの場合) またはhttps://<apim-service-name>.azure-api.net/<api-name>-mcp/mcp
(MCP エンドポイントの場合)任意の サーバー ID を 入力します。
構成をワークスペース設定またはユーザー設定に保存するかどうかを選択します。
ワークスペースの設定 - サーバー構成は、現在のワークスペースでのみ使用できる
.vscode/mcp.json
ファイルに保存されます。ユーザー設定 - サーバー構成はグローバル
settings.json
ファイルに追加され、すべてのワークスペースで使用できます。 構成は次のようになります。
認証ヘッダーなどの設定のフィールドを JSON 構成に追加します。 次の例は、入力値としてヘッダーで渡される API Management サブスクリプション キーの構成を示しています。 構成形式の詳細
エージェント モードでツールを使用する
MCP サーバーを追加した後は、エージェント モードでツールを使用できます。
GitHub Copilot チャットで、[ エージェント モード] を選択し、[ ツール ] ボタンを選択して使用可能なツールを表示します。
チャットで使用できる MCP サーバーから 1 つ以上のツールを選択します。
チャットでツールを呼び出すプロンプトを入力します。 たとえば、注文に関する情報を取得するツールを選択した場合は、注文についてエージェントに問い合わせることができます。
Get information for order 2
[ 続行] を選択して結果を表示します。 エージェントはツールを使用して MCP サーバーを呼び出し、チャットで結果を返します。