共用方式為


將 API 管理中的 REST API 公開為 MCP 伺服器

適用於:基本 |標準 |獎賞

在 API 管理中,您可以將 API 管理中管理的 REST API 公開為遠端 模型內容通訊協定 (MCP) 伺服器。 將一或多個 API 作業公開為 MCP 用戶端可以使用 MCP 通訊協定呼叫的工具。

使用 API 管理來公開遠端 MCP 伺服器,可集中控制驗證、授權和監視。 其可簡化將 API 作為 MCP 伺服器進行公開的過程,同時協助降低常見的安全性風險,並確保擴展性。

備註

此功能目前為預覽狀態。 其會先釋出給 AI 閘道早期更新組。 加入群組之後,可能需要 2 小時才能存取 MCP 伺服器功能。

在本文中,您將學會如何:

  • 將 API 管理中的 REST API 公開為 MCP 伺服器
  • 設定 MCP 伺服器的原則
  • 用 MCP 用戶端測試已生成的 MCP 伺服器

關於 MCP 伺服器

AI 代理程式正因為增強的大型語言模型 (LLM) 功能而廣為採用。 不過,即使是最進階的模型,也會因為與外部數據隔離而面臨限制。 每個新的數據源都可能需要自定義實作來擷取、準備及讓數據可供模型存取。

模型內容通訊協定 (MCP) 可協助解決此問題。 MCP 是一個開放標準,可連接 AI 模型和代理程式與外部數據源,例如本機數據源(資料庫或計算機檔案)或遠端服務(因特網上可用的系統,例如遠端資料庫或 API)。

MCP 架構

下圖說明 MCP 架構:

模型內容通訊協定 (MCP) 架構的圖表。

此架構由下列元件組成:

元件 說明
MCP 主機 需要存取外部功能的 LLM 應用程式,例如 IDE 中的聊天應用程式或 AI 助理(例如 Visual Studio Code 中的 GitHub Copilot)
MCP 用戶端 主機應用程式內的通訊協定用戶端,可維護與伺服器的 1:1 連線
MCP 伺服器 每個公開特定功能的輕量型程式,並提供內容、工具和提示給用戶端
MCP 通訊協定 中間的傳輸層

MCP 遵循用戶端伺服器架構,其中主應用程式可以連線到多部伺服器。 每當 MCP 主機或用戶端需要工具時,它就會連線到 MCP 伺服器。 MCP 伺服器接著會連線到資料庫或 API。 MCP 主機和伺服器會透過 MCP 通訊協定彼此連線。

遠端與本機 MCP 伺服器

MCP 會利用建置在 JSON-RPC 2.0 上的用戶端-主機-伺服器架構來進行傳訊。 用戶端與伺服器之間的通訊會透過定義的傳輸層進行,且主要支援兩種作業模式:

  • 遠端 MCP 伺服器 - MCP 用戶端會透過因特網連線到 MCP 伺服器、使用 HTTP 和伺服器傳送的事件建立連線(SSE),以及使用 OAuth 授權 MCP 用戶端存取使用者帳戶上的資源。

  • 本機 MCP 伺服器 MCP 用戶端會使用標準輸入/輸出作為本機傳輸方法,連線到相同電腦上的 MCP 伺服器。

先決條件

  • 完成下列快速入門: 建立 Azure API 管理實例。 目前只有進階標準和基本層的 API 管理支援 MCP 伺服器。
  • 請確定您的實例會管理您想要公開為 MCP 伺服器的 REST API。 若要匯入範例 API,請參閱 匯入併發佈您的第一個 API

    備註

    只有來自 API 管理的 HTTP API 可以公開為 MCP 伺服器。

  • 若要測試 MCP 伺服器,您可以使用 Visual Studio Code 來存取 GitHub Copilot

將 API 公開為 MCP 伺服器

  1. 在 Azure 入口網站中,存取下列 URL 的 MCP 伺服器預覽:

    https://portal.azure.com/?Microsoft_Azure_ApiManagement=mcp
    
  2. 瀏覽至 API 管理執行個體。

  3. 在左側功能表中,選取 [API>MCP 伺服器>+ 建立新的 MCP 伺服器]。

  4. API 中,選取要公開為 MCP 伺服器的 REST API。

  5. 選取一或多個 API 作業 以公開作為工具。 您可以選取所有作業,或只選取特定作業。

  6. 選取 ,創建

在入口網站中建立 MCP 伺服器的螢幕快照。

MCP 伺服器已建立,並且將 API 作業公開為工具。 MCP 伺服器會列在 [MCP 伺服器 ] 窗格中。 URL 資料行會顯示 MCP 伺服器的端點,您可以呼叫該伺服器進行測試,或在用戶端應用程式內呼叫。

入口網站中 MCP 伺服器清單的螢幕快照。

設定 MCP 伺服器的原則

設定一或多個 API 管理 原則 ,以協助管理 MCP 伺服器。 這些原則會套用至公開為 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 伺服器 (預覽版)

在 Visual Studio Code 中新增 MCP 伺服器

若要在 Visual Studio Code 中新增 MCP 伺服器:

  1. 使用 MCP: 從命令選擇區新增伺服器命令。

  2. 出現提示時,請選取伺服器類型:HTTP(HTTP 或伺服器傳送的事件)。

  3. 在 API 管理中輸入 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. 輸入您選擇的 伺服器識別碼

  5. 選取是否要將組態儲存至 工作區設定用戶設定

    • 工作區設定 - 伺服器組態會儲存至一個只能在目前工作區中取得的 .vscode/mcp.json 檔案。

    • 用戶設定 - 伺服器組態會新增至您的全域 settings.json 檔案,而且可在所有工作區中使用。 組態看起來如下所示:

    Visual Studio Code 中所設定 MCP 伺服器的螢幕快照。

將欄位新增至 JSON 組態,以用於驗證標頭等設定。 下列範例顯示 API 管理訂用帳戶金鑰的設定,該密鑰在標頭中以輸入值的形式傳遞。 深入瞭解 組態格式

MCP 伺服器的驗證標頭設定螢幕快照

在代理程式模式中使用工具

新增 MCP 伺服器之後,您可以在代理程式模式中使用工具。

  1. 在 GitHub Copilot 聊天中,選取 [代理程式 模式],然後選取 [ 工具 ] 按鈕以查看可用的工具。

    聊天中 [工具] 按鈕的螢幕快照。

  2. 從 MCP 伺服器中選取一或多個工具,使其能在聊天中使用。

    在 Visual Studio Code 中選取工具的螢幕快照。

  3. 在聊天中輸入提示以叫用此工具。 例如,如果您選擇一個工具來獲取訂單的相關資訊,您可以詢問客服代表關於訂單的資訊。

    Get information for order 2
    

    選取 [繼續] 以查看結果。 代理程式會使用 工具來呼叫 MCP 伺服器,並在聊天中傳回結果。

    Visual Studio Code 中聊天結果的螢幕快照。