
作者 | Tim Anderson
譯者 | 劉雅夢
策劃 | 丁曉昀
微軟已將其模型上下文協(xié)議(MCP)對 Azure Functions 的支持提升至一般可用性,標(biāo)志著向標(biāo)準(zhǔn)化、身份安全的代理式工作流程的轉(zhuǎn)變。通過集成原生 OBO 認(rèn)證和流式 HTTP 傳輸,本次更新旨在解決歷史上阻礙 AI 智能體訪問敏感下游企業(yè)數(shù)據(jù)的“安全痛點”。
MCP 擴(kuò)展于 2025 年 4 月進(jìn)入公開預(yù)覽,現(xiàn)支持 .NET、Java、JavaScript、Python 和 TypeScript,而新的自托管選項允許開發(fā)者在不修改代碼的情況下部署現(xiàn)有的基于 MCP SDK 的服務(wù)器。
由 Anthropic 開發(fā)的模型上下文協(xié)議(Model Context Protocol)提供了一個標(biāo)準(zhǔn)化的接口,使 AI 智能體能夠訪問外部工具、數(shù)據(jù)源和系統(tǒng)。自 2024 年 11 月推出以來,包括 OpenAI、谷歌 DeepMind 和微軟在內(nèi)的主要 AI 平臺已采用該協(xié)議,到 2025 年 4 月,服務(wù)器下載量從大約 10 萬次增長到超過 800 萬次。
然而,正如 Mirantis 的 Randy Bias所指出的那樣:“安全和合規(guī)團(tuán)隊不能允許運行在開發(fā)人員筆記本電腦上的未經(jīng)審查的‘影子代理’訪問電子醫(yī)療記錄或客戶個人身份信息等關(guān)鍵數(shù)據(jù)系統(tǒng)”——這推動了對具有內(nèi)置治理的托管平臺的需求。
一般可用的 MCP 擴(kuò)展引入了幾個為生產(chǎn)部署設(shè)計的功能。對流式 HTTP 傳輸協(xié)議的支持取代了舊的服務(wù)器發(fā)送事件(SSE)方法,微軟建議除非客戶端特別需要 SSE,否則使用新的傳輸。該擴(kuò)展暴露了兩個端點:/runtime/webhooks/mcp 用于流式 http 和 /runtime/webhooks/mcp/sse 用于遺留的 SSE 連接。
對于 Java 開發(fā)人員,Maven 構(gòu)建插件(版本 1.40.0)提供了構(gòu)建時對 MCP 工具注釋的解析和驗證,自動生成正確的擴(kuò)展配置。根據(jù)微軟的說法,這種構(gòu)建時分析可以防止運行時反射在 Java 應(yīng)用程序中引入的冷啟動時間增加。
內(nèi)置的認(rèn)證和授權(quán)實現(xiàn)了 MCP 授權(quán)協(xié)議 要求,包括發(fā)出 401 挑戰(zhàn)和托管受保護(hù)資源元數(shù)據(jù)文檔。開發(fā)者可以為服務(wù)器認(rèn)證配置 Microsoft Entra 或其他 OAuth 提供商。該功能還支持代表用戶(OBO)認(rèn)證,使工具能夠使用用戶的身份而不是服務(wù)賬戶訪問下游服務(wù)。
首席軟件工程師 Den Delimarsky 在 2025 年 4 月分享了關(guān)于使用 Azure Functions 和 API 管理實現(xiàn)安全的 MCP 服務(wù)器的 見解:
開發(fā)者面臨的一個主要痛點是實現(xiàn)與認(rèn)證和授權(quán)相關(guān)的任何內(nèi)容。如果你沒有安全專業(yè)知識,這本質(zhì)上是痛苦且有風(fēng)險的。你可能會錯誤地配置一些東西,最終將所有數(shù)據(jù)暴露給不能看到它們的人。
Sitecore 的云架構(gòu)師 Victor Karabedyants詳細(xì)說明 了實踐中的認(rèn)證流程。當(dāng)客戶端連接到遠(yuǎn)程 MCP 服務(wù)器時,Azure Functions 會以包含受保護(hù)資源元數(shù)據(jù)路徑的 401 響應(yīng)拒絕初始匿名請求。客戶端讀取此元數(shù)據(jù),觸發(fā) Microsoft Entra ID 登錄流程,獲得 OAuth 令牌,并用令牌重試請求。“你的 Python 或 Node 腳本永遠(yuǎn)不會看到認(rèn)證邏輯,”Karabedyants 解釋說。“平臺負(fù)責(zé)處理繁重的工作。”
對于 Java 開發(fā)者,Maven Build Plugin(版本 1.40.0)在構(gòu)建時提供 MCP 工具注釋的解析和驗證,自動生成正確的擴(kuò)展配置。據(jù)微軟稱,這種構(gòu)建時分析可以防止 Java 應(yīng)用程序中運行時反射引入的冷啟動時間增加。
新的自托管 MCP 服務(wù)器 功能目前處于公開預(yù)覽階段,允許團(tuán)隊將使用官方 SDK 構(gòu)建的 MCP 服務(wù)器部署到 Azure Functions 作為自定義處理程序;輕量級 Web 服務(wù)器代理請求到開發(fā)者的現(xiàn)有進(jìn)程。微軟將此描述為“提升和轉(zhuǎn)移”方法,只需要一個 host.json 配置文件來定義 Functions 應(yīng)該如何運行服務(wù)器。該功能目前支持使用 Python、TypeScript、C# 或 Java SDK 實現(xiàn)的流式 http 傳輸?shù)臒o狀態(tài)服務(wù)器。
![]()
(來源:Microsoft Learn)
微軟的高級云倡導(dǎo)者 Yohan Lasorsa 在開發(fā)者社區(qū) 博客文章中 強調(diào)了自托管方法的簡單性:
在 Azure Functions 上托管 MCP 服務(wù)器,可以讓你兼得兩者的優(yōu)點:無服務(wù)器基礎(chǔ)設(shè)施的簡單性和官方 Anthropic SDK 的強大功能。只需一個簡單的配置步驟,你就可以將現(xiàn)有的 Node.js MCP 服務(wù)器部署到一個生產(chǎn)就緒、自動擴(kuò)展的平臺。
Gaurav Rawat 在 Medium 上一篇關(guān)于生產(chǎn)部署模式的詳細(xì) 文章 中,強調(diào)了在大規(guī)模運行 MCP 服務(wù)器時的幾個運維考慮因素。他指出,對于 P95 延遲超過 1 秒、錯誤率超過 2% 以及 SSE 連接頻繁掉線等監(jiān)控指標(biāo),需要在生產(chǎn)環(huán)境中立即進(jìn)行調(diào)查。
Rawat 還記錄了實踐者應(yīng)該意識到的當(dāng)前限制:在與 Azure AI Foundry 集成時,嵌套數(shù)組和復(fù)雜類型必須序列化為逗號分隔的字符串,并且由于 UI 基礎(chǔ)的批準(zhǔn)在自動化部署中不持久,因此需要使用 require_approval="never"進(jìn)行程序化工具批準(zhǔn)以用于生產(chǎn)工作流程。
Azure Functions 提供了多種托管計劃,以滿足不同的 MCP 服務(wù)器需求。Flex 消費計劃根據(jù)需求自動擴(kuò)展,采用按執(zhí)行付費的計費模式和零規(guī)模經(jīng)濟(jì)。當(dāng) MCP 工具閑置時,成本降至零,同時保持快速的喚醒時間。Premium 計劃支持“始終就緒”的實例,這些實例保持預(yù)初始化狀態(tài),消除了冷啟動延遲,這對于初始化延遲可能導(dǎo)致 SSE 連接超時和代理響應(yīng)時間差的關(guān)鍵時刻工具至關(guān)重要。Rawat 建議為關(guān)鍵的 24/7 工具設(shè)置兩到三個始終就緒的實例,以確保故障轉(zhuǎn)移能力。開發(fā)人員還可以使用專用計劃來滿足需要可預(yù)測性能或與虛擬網(wǎng)絡(luò)集成的工作負(fù)載。
微軟已經(jīng)發(fā)布了多種語言的快速入門模板,涵蓋這兩種托管方法。MCP 擴(kuò)展快速入門覆蓋了 C# (.NET)、Python、TypeScript (Node.js),Java 快速入門即將推出。該平臺直接與 Azure AI Foundry 集成,允許智能體在無需額外配置層的情況下發(fā)現(xiàn)和調(diào)用 MCP 工具。
https://www.infoq.com/news/2026/01/azure-functions-mcp-support/
聲明:本文為 InfoQ 翻譯,未經(jīng)許可禁止轉(zhuǎn)載。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.