布為 MCP Server:從創(chuàng)建、限流策略到 Copilot Agent 調(diào)用全指南)
教程文檔人工智能【免費下載鏈接】mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.項目地址https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners點擊查看免費下載本文是mcp-for-beginners開源課程 09-CaseStudy/apimsample.md 的深度實戰(zhàn)解析。你將學(xué)會如何把 Azure API ManagementAPIM中已有的 REST API 端點一鍵發(fā)布為 Model Context ProtocolMCP服務(wù)器讓這些端點以標(biāo)準(zhǔn)「工具」形態(tài)接入 Agentic AI 應(yīng)用并借助 APIM 的策略體系Policy為 MCP 工具疊加限流、認(rèn)證等治理能力。讀完本文你將掌握從「創(chuàng)建 MCP Server」到「在 VS Code 中通過 GitHub Copilot Agent 模式調(diào)用工具」的完整可運行鏈路。為什么選擇「MCP Azure API Management」Model Context Protocol 正在快速成為 Agentic AI 應(yīng)用的標(biāo)準(zhǔn)協(xié)議它為 AI 應(yīng)用提供了一種統(tǒng)一、一致的方式來暴露工具Tool和數(shù)據(jù)。與此同時Azure API Management 是位于你的 API 端點之上的一層網(wǎng)關(guān)服務(wù)它像代理一樣攔截所有入站請求并決定如何處理這些請求。兩者結(jié)合非常自然MCP Server 本身常常需要集成其他 API 來響應(yīng)工具調(diào)用請求而 APIM 恰好解決了「誰來管理這些 API」的問題。把 API 端點發(fā)布為 MCP Server既能讓端點成為 Agentic 應(yīng)用的一部分又能繼續(xù)享有 APIM 的完整治理能力安全Security支持 API Key、JWT、托管標(biāo)識Managed Identity等多種認(rèn)證方式保護(hù)暴露出去的 MCP 工具限流Rate limiting可按時間單位精確控制放行的調(diào)用次數(shù)避免服務(wù)被請求壓垮同時保證所有用戶都有良好體驗縮放與負(fù)載均衡Scaling Load balancing可配置多個后端端點分?jǐn)傌?fù)載并自定義「負(fù)載均衡」策略AI 能力語義緩存semantic caching、Token 限額、Token 監(jiān)控等特性既能提升響應(yīng)速度也能幫助你掌控 Token 開銷。在課程的安全模塊中APIM 還被定位為 MCP 服務(wù)器的「認(rèn)證網(wǎng)關(guān)」02-Security/README.md的安全峰會工作坊Sherpa將「Gateway」列為一個獨立營地Camp 2: Gateway強調(diào)使用 API Management、Private Endpoints 與治理策略來構(gòu)筑 MCP 的縱深防御層??梢?APIM 作為 MCP 基礎(chǔ)設(shè)施的價值已被廣泛認(rèn)可。核心特性一覽你可以選擇性地把 API 端點中的方法Operations暴露為 MCP 工具——既可以全選也可以只挑部分操作發(fā)布后獲得的額外能力取決于你在 API 的 Policy 區(qū)域配置的策略例如本文演示的限流策略端點以 MCP 工具的形式對外提供客戶端如 VS Code Copilot可直接通過自然語言調(diào)用。前置步驟導(dǎo)入一個 API如果 Azure API Management 中已有一個 API可以跳過本步。否則需要先把后端 API 導(dǎo)入到 APIM 中例如導(dǎo)入 Swagger/OpenAPI 定義或已有 HTTP 端點。完成后你會得到一個可以在 APIM 中管理、配置策略并發(fā)布為 MCP Server 的 REST API。將 API 端點發(fā)布為 MCP Server在 Azure Portal 中完成以下操作打開 Azure Portal 并導(dǎo)航到你的 API Management 實例可通過https://portal.azure.com/?Microsoft_Azure_ApiManagementmcp直達(dá) MCP 相關(guān)入口。在左側(cè)菜單中依次選擇APIs MCP Servers Create new MCP Server。在 API 下拉框中選擇一個 REST API作為要發(fā)布的 MCP Server 來源。選擇一個或多個 API Operations 作為要暴露的工具。你可以全選所有操作也可以只勾選特定操作——這決定了 Agent 最終能看到哪些工具。點擊Create完成創(chuàng)建?;氐紸PIs MCP Servers菜單即可在 MCP Servers 面板中看到剛剛創(chuàng)建的 MCP ServerAPI 操作已被暴露為工具同時URL 列展示了該 MCP Server 的端點地址這個地址既可用于測試也可配置到客戶端應(yīng)用中。至此一個可直接被 MCP 客戶端調(diào)用的服務(wù)器就緒了。可選進(jìn)階為 MCP Server 配置策略PolicyAzure API Management 的核心概念之一是策略Policy——針對端點設(shè)置不同的規(guī)則例如限流或語義緩存。策略以XML格式編寫。以下步驟演示如何為 MCP Server 配置限流策略在 Portal 中進(jìn)入APIs MCP Servers。選中你創(chuàng)建的 MCP Server。在左側(cè)菜單的 MCP 分組下選擇Policies。在策略編輯器中添加或編輯要應(yīng)用到該 MCP Server 工具上的策略。例如限制客戶端 IP 對 MCP Server 工具的調(diào)用頻率——每 30 秒每個客戶端 IP 最多 5 次調(diào)用對應(yīng)的 XML 如下rate-limit-by-key calls5 renewal-period30 counter-key(context.Request.IpAddress) remaining-calls-variable-nameremainingCallsPerIP /策略參數(shù)說明參數(shù)含義calls在renewal-period內(nèi)允許的最大調(diào)用次數(shù)示例中為 5 次renewal-period限流時間窗口秒示例中為 30 秒counter-key計數(shù)依據(jù)(context.Request.IpAddress)表示按客戶端 IP 維度統(tǒng)計remaining-calls-variable-name保存剩余調(diào)用次數(shù)的上下文變量名可用于后續(xù)策略或響應(yīng)頭輸出保存策略后APIM 網(wǎng)關(guān)會在每次工具調(diào)用時執(zhí)行該限流規(guī)則超過配額即被拒絕。你可以基于同樣的模式繼續(xù)疊加語義緩存、認(rèn)證等更多策略讓 MCP 工具具備完整的 API 治理能力。實戰(zhàn)驗證在 VS Code 中用 GitHub Copilot Agent 模式調(diào)用 MCP 工具傳輸端點說明[!NOTE] Azure API Management 目前通過Streamable HTTP/mcp端點暴露該服務(wù)器。舊式的 HTTPSSE/sse傳輸已被棄用僅應(yīng)服務(wù)于遺留客戶端。因此在客戶端配置中請使用形如https://apim-service-name.azure-api.net/api-name-mcp/mcp的 Streamable HTTP 地址。在 VS Code 中注冊 MCP Server我們將使用 Visual Studio Code 與 GitHub Copilot 的 Agent 模式把 MCP Server 添加到mcp.json文件中。這樣 VS Code 就成為一個具備 Agent 能力的 MCP 客戶端用戶輸入提示詞即可與服務(wù)器交互。通過命令面板執(zhí)行MCP: Add Server命令。當(dāng)被詢問服務(wù)器類型時選擇HTTP (HTTP or Server Sent Events)。輸入 API Management 中該 MCP Server 展示的 Streamable HTTP URL例如https://apim-service-name.azure-api.net/api-name-mcp/mcp。輸入一個你自定義的服務(wù)器 ID——該值不要求嚴(yán)格格式僅用于幫助記住這是哪個服務(wù)器實例。選擇將配置保存到工作區(qū)設(shè)置還是用戶設(shè)置工作區(qū)設(shè)置Workspace settings配置保存在.vscode/mcp.json僅對當(dāng)前工作區(qū)生效servers: { APIM petstore : { type: http, url: url-to-mcp-server/mcp } }用戶設(shè)置User settings配置寫入全局settings.json對所有工作區(qū)生效結(jié)構(gòu)與上面類似。配置認(rèn)證頭Ocp-Apim-Subscription-Key為了讓客戶端能夠正確通過 Azure API Management 的認(rèn)證還需要添加一個名為Ocp-Apim-Subscription-Key的請求頭。在 VS Code 設(shè)置界面中直接添加該 Header 時VS Code 會彈出一個提示框要求你輸入 API Key 的值——該值可以在 Azure Portal 中對應(yīng) API Management 實例里找到。若改用mcp.json配置則可以通過inputs聲明一個密碼型提示變量并在headers中引用它inputs: [ { type: promptString, id: apim_key, description: API Key for Azure API Management, password: true } ], servers: { APIM petstore : { type: http, url: url-to-mcp-server/mcp, headers: { Ocp-Apim-Subscription-Key: Bearer ${input:apim_key} } } }這樣配置后VS Code 會在需要時提示你輸入訂閱密鑰并以請求頭形式隨每次 MCP 工具調(diào)用一并發(fā)送完成對 APIM 網(wǎng)關(guān)的認(rèn)證。這與課程 02-Security 中強調(diào)的「以網(wǎng)關(guān)統(tǒng)一管理認(rèn)證」思路一脈相承——客戶端無需知道后端實現(xiàn)細(xì)節(jié)只需攜帶網(wǎng)關(guān)頒發(fā)的密鑰即可。使用 Agent 模式調(diào)用工具配置完成后即可開始體驗在界面中找到Tools 圖標(biāo)點擊后會列出從該 MCP Server 暴露出來的工具清單。在聊天中輸入一個自然語言提示來觸發(fā)工具調(diào)用。例如如果之前勾選了「獲取訂單信息」操作可以輸入get information from order 2Agent 會先彈出一個工具調(diào)用確認(rèn)提示選擇繼續(xù)運行該工具后你將看到類似以下的文本輸出結(jié)果。實際看到的內(nèi)容取決于你勾選了哪些工具但核心體驗是一致的通過自然語言讓 Agent 調(diào)用 APIM 中發(fā)布的 MCP 工具并獲得結(jié)構(gòu)化響應(yīng)。從倉庫視角看本案例的定位在mcp-for-beginners課程體系中本案例屬于「實戰(zhàn)案例」模塊。09-CaseStudy/README.md將其歸納為以下學(xué)習(xí)要點在 Azure API Management 中搭建 MCP Server將 API 操作暴露為 MCP 工具配置限流與安全策略使用 VS Code 與 GitHub Copilot 驗證 MCP Server。這與本模塊其他案例Azure AI Travel Agents 多代理編排、Azure DevOps 工作流自動化、文檔檢索等共同展示了 MCP 在不同企業(yè)場景中的落地模式。安全維度上02-Security/mcp-security-best-practices.md與02-Security/mcp-best-practices.md均引用了「Azure API Management 作為 MCP 認(rèn)證網(wǎng)關(guān)」的實踐說明在 APIM 之上發(fā)布 MCP Server 已成為企業(yè)級 MCP 部署的推薦架構(gòu)之一。后續(xù)學(xué)習(xí)路徑返回案例總覽Case Studies Overview繼續(xù)學(xué)習(xí)下一個案例Azure AI Travel Agents 多代理旅行規(guī)劃了解 MCP 安全基線安全最佳實踐其他可參考資源均可在官方文檔與示例倉庫中檢索Azure API Management 的 MCP Server 導(dǎo)出教程、面向 Python 的安全遠(yuǎn)程 MCP 服務(wù)器示例、MCP 客戶端授權(quán)實驗、VS Code 中導(dǎo)入與管理 API 的 APIM 擴展教程、Azure API Center 中注冊與發(fā)現(xiàn)遠(yuǎn)程 MCP 服務(wù)器以及展示 APIM 多種 AI 能力的 AI Gateway 參考倉庫及其工作坊。贊分享教程文檔人工智能【免費下載鏈接】mcp-for-beginnersThis open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration.項目地址https://gitcode.com/GitHub_Trending/mc/mcp-for-beginners點擊查看免費下載相關(guān)推薦使用 Azure.ResourceManager.ApiManagement (.NET) 管理 Azure API Management從服務(wù)創(chuàng)建到策略下發(fā)使用 Azure.ResourceManager.ApiManagement .NET 管理 Azure API Management從服務(wù)創(chuàng)建到策略下發(fā) 導(dǎo)AI 技能AI 插件Higress 物流軌跡 MCP Server 解析用 REST-to-MCP 將快遞查詢 API 變成 AI Agent 可調(diào)用工具Higress 物流軌跡 MCP Server 解析用 REST to MCP 將快遞查詢 API 變成 AI Agent 可調(diào)用工具 本文以 HigressAPI網(wǎng)關(guān)后端云原生LLM 網(wǎng)關(guān)人工智能MCP 服務(wù)Rocket.Chat MCP Server 技術(shù)指南以 Streamable HTTP 將 REST API 安全暴露為 MCP 工具Rocket.Chat MCP Server 技術(shù)指南以 Streamable HTTP 將 REST API 安全暴露為 MCP 工具 Rocket.Cha即時通訊后端前端上一篇oh-my-openagent 內(nèi)存子進(jìn)程 outcome 權(quán)威性競態(tài)修復(fù)實錄publishing/launch/outcome 三標(biāo)志文件發(fā)布順序的 RED-GREEN 驗證下一篇OpenMontage 前端性能優(yōu)化實踐為什么不要在 useMemo 中包裹簡單原始類型表達(dá)式創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考