次の方法で共有


API Management で MCP サーバーとして REST API を公開する

適用対象: 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) アーキテクチャの図。

アーキテクチャは、次のコンポーネントで構成されています。

コンポーネント 説明
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 サーバーに接続します。

[前提条件]

MCP サーバーとして API を公開する

  1. Azure portal で、次の URL で MCP サーバー プレビューにアクセスします。

    https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp
    
  2. API Management インスタンスに移動します。

  3. 左側のメニューで、 API>MCP サーバー>+ 新しい MCP サーバーの作成を選択します。

  4. API で、MCP サーバーとして公開する REST API を選択します。

  5. ツールとして公開する 1 つ以上の API 操作 を選択します。 すべての操作を選択することも、特定の操作のみを選択することもできます。

  6. を選択してを作成します。

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

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

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

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

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

ポリシーを構成する方法のチュートリアルについては、「API の 変換と保護」を参照してください

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

  1. ポータルの [API] で [ MCP サーバー] を選択します。

  2. 作成した MCP サーバーを選択します。

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

  4. ポリシー エディターで、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 サーバーをテストして使用する

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 サーバーを追加するには:

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

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

  3. 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 エンドポイントの場合)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Get information for order 2
    

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

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