MCP 架構(gòu)設(shè)計演進:從 Local MCP Server 到 Remote MCP Server 開源架構(gòu)設(shè)計實現(xiàn) 原創(chuàng) 精華
Model Context Protocol(MCP)模型上下文協(xié)議(如下圖所示)是 Anthropic 發(fā)布的一種標(biāo)準(zhǔn)化協(xié)議,使得 Agent 智能體應(yīng)用可以更快捷地與下游異構(gòu)的數(shù)據(jù)或者工具進行交互,還不熟悉的同學(xué)可以看這里《??王炸!MCP 架構(gòu)設(shè)計深度剖析 & 使用 Spring AI + MCP 四步教你實現(xiàn) Agent 智能體開發(fā)???》。
最近,兩大關(guān)鍵事件標(biāo)志著 MCP 已從事實標(biāo)準(zhǔn)邁向行業(yè)標(biāo)準(zhǔn):一方面,OpenAI 正式宣布跟進 Anthropic 的 MCP 協(xié)議,另一方面,Anthropic 發(fā)布了新版本 MCP 協(xié)議,在 Remote MCP Server 的場景進行了顯著改進。
但是,MCP Server 的實施存在著較多的挑戰(zhàn),比如:本地環(huán)境依賴、一致性問題、安全風(fēng)險、維護成本、認(rèn)證授權(quán)、服務(wù)可靠性和可觀測性等方面,如果能夠提供了完整的 MCP Server 云端托管解決方案,將大幅降低開發(fā)者構(gòu)建 MCP Server 的時間和人力成本。
下文對架構(gòu)設(shè)計和開源實現(xiàn)詳細(xì)剖析之。
1、MCP 架構(gòu)設(shè)計演進:從 Local MCP Server 到 Remote MCP Server
第一、Local MCP Server 架構(gòu)設(shè)計到 Remote MCP Server 架構(gòu)設(shè)計
隨著 MCP 生態(tài)的不斷發(fā)展,從 Local MCP Server 向 Remote MCP Server 的架構(gòu)設(shè)計演進逐漸成為一種趨勢。為了更好地理解這一轉(zhuǎn)變,我們首先需要明確這兩種 MCP Server 架構(gòu)設(shè)計的概念及其區(qū)別。
1、Local MCP Server 架構(gòu)設(shè)計
Local MCP Server 架構(gòu)是部署在用戶本地設(shè)備上的 MCP 服務(wù)器。在這種架構(gòu)模式中,MCP 客戶端(例如 Claude Desktop 或 Cursor)通過本地進程通信(stdin/stdout)與 MCP 服務(wù)器進行交互,而 MCP 服務(wù)器則負(fù)責(zé)連接到互聯(lián)網(wǎng)上的各種 API 和服務(wù)。這種架構(gòu)設(shè)計簡單直觀,非常適合個人開發(fā)者使用,但同時也存在一些局限性。
2、Remote MCP Server 架構(gòu)設(shè)計
Remote MCP Server 架構(gòu)是部署在云端的 MCP 服務(wù)器,用戶可以通過互聯(lián)網(wǎng)進行訪問。在這種模式下,MCP 客戶端可以是各種網(wǎng)頁應(yīng)用或移動應(yīng)用,它們通過 HTTP 協(xié)議與遠(yuǎn)程 MCP 服務(wù)器進行通信。Remote MCP Server架構(gòu) 通常集成了認(rèn)證授權(quán)、狀態(tài)管理、數(shù)據(jù)庫訪問等企業(yè)級功能,能夠為多個用戶提供服務(wù)。
這種架構(gòu)設(shè)計的轉(zhuǎn)變,解決了 Local MCP Server 在企業(yè)真實落地環(huán)境中的諸多局限性。
第二、Local MCP Server 架構(gòu)設(shè)計的局限性
雖然 Local MCP Server 架構(gòu)設(shè)計簡單易用,但在企業(yè)級應(yīng)用落地中存在諸多挑戰(zhàn):
1、本地環(huán)境依賴:需要在用戶本地安裝 Python 或 Docker 等執(zhí)行環(huán)境來運行 MCP Server,對非技術(shù)用戶不夠友好。
2、安全風(fēng)險:企業(yè)無法將敏感數(shù)據(jù)庫憑證、API 密鑰等關(guān)鍵訪問令牌配置到每個員工的本地環(huán)境,這不僅違反最小權(quán)限原則,還增加了憑證泄露的風(fēng)險。
3、一致性問題:當(dāng)多個用戶需要訪問相同的企業(yè)資源時,難以保證配置和權(quán)限的一致性,容易導(dǎo)致數(shù)據(jù)不一致或權(quán)限混亂。
4、維護成本:為每個用戶設(shè)備部署和維護 MCP Server 需要大量 IT 資源,版本更新、安全補丁和配置變更都需要在每臺設(shè)備上單獨執(zhí)行。
第三、Remote MCP Server 架構(gòu)設(shè)計的優(yōu)勢
Remote MCP Server 架構(gòu)設(shè)計通過集中化部署和管理,有效解決了 Local MCP Server 架構(gòu)設(shè)計在企業(yè)級應(yīng)用中面臨的諸多問題:
1.拓寬使用場景:非技術(shù)用戶無需復(fù)雜的本地配置,通過網(wǎng)頁或移動應(yīng)用等,隨時隨地都能通過互聯(lián)網(wǎng)便捷地使用 MCP 的強大功能。
2.集中化安全管控:企業(yè)能夠在遠(yuǎn)程服務(wù)器上實施嚴(yán)格的訪問控制、數(shù)據(jù)加密和審計機制,從而確保敏感憑證的安全,有效降低數(shù)據(jù)泄露風(fēng)險。
3.統(tǒng)一權(quán)限管理:借助集中化的身份驗證和授權(quán)系統(tǒng),企業(yè)可以精確地控制每個用戶對不同資源的訪問權(quán)限,確保權(quán)限的一致性和數(shù)據(jù)的安全性。
4.簡化部署與維護:只需集中維護中央服務(wù)器,即可實現(xiàn)版本更新、安全補丁和配置變更的統(tǒng)一管理,大大降低了運維成本和復(fù)雜性。
2、Remote MCP Server 架構(gòu)設(shè)計開源實現(xiàn)
第一、Remote MCP Server 架構(gòu)設(shè)計
阿里 AI 原生網(wǎng)關(guān) Higress 開源了 Remote MCP Server 架構(gòu)設(shè)計的托管實現(xiàn)方案,并已更新到 Anthropic 官方的 MCP Server 項目文檔中。
Github 地址:
??https://github.com/alibaba/higress??
盡管 Remote MCP Server 架構(gòu)設(shè)計擁有諸多顯著優(yōu)勢,但在實際部署過程中也面臨著新的挑戰(zhàn),尤其是在認(rèn)證授權(quán)、服務(wù)可靠性和可觀測性這三個關(guān)鍵領(lǐng)域。而 API 網(wǎng)關(guān)在這些方面有著豐富的經(jīng)驗和成熟的技術(shù)。Higress 作為專為 AI 設(shè)計的原生 API 網(wǎng)關(guān),不僅能夠應(yīng)對這些挑戰(zhàn),還提供了一套完整的開源 MCP Server 架構(gòu)設(shè)計托管解決方案,下面對架構(gòu)設(shè)計詳細(xì)剖析。
Higress 的 Remote MCP Server 托管實現(xiàn)方案采用了分層架構(gòu)設(shè)計,為 AI Agent 智能體提供了完整的服務(wù)訪問能力,架構(gòu)設(shè)計如下圖所示:
在架構(gòu)設(shè)計的最上層,各種 AI Agent(比如:Claude、Cursor、Cline 等)通過標(biāo)準(zhǔn)的 MCP 協(xié)議與 Higress 進行交互。Higress 內(nèi)部集成了完善的安全與管控層,涵蓋了 MCP 會話保持、OAuth2 認(rèn)證、審計日志、速率限制以及 MCP 路由等核心功能。
在服務(wù)層面,Higress 提供了三種靈活的 MCP Server 接入方式:
1.內(nèi)置 MCP Server:通過 Wasm 插件在 Higress 內(nèi)部實現(xiàn),適用于對接現(xiàn)有的 SaaS API 生態(tài),為這些服務(wù)提供 MCP 能力。
2.直接轉(zhuǎn)發(fā):將請求直接轉(zhuǎn)發(fā)給外部已經(jīng)支持 MCP 協(xié)議的服務(wù),適用于對接已有的外部 MCP 能力。
3.動態(tài)發(fā)現(xiàn)與配置:通過服務(wù)注冊中心(比如:Nacos)動態(tài)發(fā)現(xiàn)外部 MCP Server,并利用 Nacos 配置中心的能力動態(tài)更新 MCP Server 的工具定義。這種方式特別適合企業(yè)將傳統(tǒng)業(yè)務(wù) API 升級為 MCP 能力。
這種靈活的架構(gòu)設(shè)計使企業(yè)能夠根據(jù)自身需求選擇最適合的部署方式,既可以充分利用 Higress 提供的一站式托管服務(wù),也可以保持現(xiàn)有 MCP Server 的獨立性。
第二、AI 云原生網(wǎng)關(guān)能力與 MCP 服務(wù)的天然契合
Higress(如下圖所示) 基于 Envoy 構(gòu)建,繼承了傳統(tǒng) API 網(wǎng)關(guān)在認(rèn)證、授權(quán)、限流和可觀測性方面的強大能力,并針對 AI 場景進行了優(yōu)化。這些能力與 MCP 服務(wù)的需求高度契合,具體體現(xiàn)在以下4點:
1.統(tǒng)一認(rèn)證授權(quán):Higress 提供 OAuth2 插件,能夠滿足新版 MCP 協(xié)議對認(rèn)證鑒權(quán)的要求。開發(fā)者無需編寫復(fù)雜的認(rèn)證代碼,只需簡單配置,即可實現(xiàn)安全的用戶認(rèn)證和權(quán)限控制。
2.精細(xì)化流量控制:借助 Higress 的限流插件,可為不同用戶、不同工具設(shè)置不同的調(diào)用配額,有效防止資源濫用和服務(wù)過載。
3.全鏈路可觀測性:Higress 集成了 Prometheus 和 OTel 等開源觀測方案,提供完整的指標(biāo)監(jiān)控和分布式追蹤能力。運維團隊能夠?qū)崟r監(jiān)控 MCP 服務(wù)的健康狀況和性能表現(xiàn)。
4.審計日志:記錄所有工具調(diào)用行為,滿足合規(guī)要求,同時為安全分析提供數(shù)據(jù)支持。
第三、基于 Wasm 的 MCP Server 架構(gòu)設(shè)計擴展能力
Higress 的一大技術(shù)亮點是支持 WebAssembly (Wasm) 插件,這為 MCP Server 提供了強大的擴展能力。通過 Wasm 插件機制,開發(fā)者可以實現(xiàn)以下功能:
1.快速添加新 MCP Server:使用多種語言(目前優(yōu)先提供了 Go 語言的 MCP Server SDK)開發(fā) MCP Server,將其編譯為 Wasm 文件后,可動態(tài)加載到 Higress 中,無需重啟服務(wù)。
2.安全隔離:每個 Wasm 插件都在獨立的沙箱環(huán)境中運行,即使插件出現(xiàn)崩潰,也不會影響網(wǎng)關(guān)的穩(wěn)定性。
3.動態(tài)更新:借助 Envoy 對長連接的良好支持以及 Wasm 插件的動態(tài)更新機制,MCP Server 邏輯可以在不中斷流量的情況下實時更新。
第四、屏蔽異構(gòu)協(xié)議的優(yōu)勢
目前 MCP 協(xié)議有兩個版本:20241105 版本和 20250326 版本。從協(xié)議的發(fā)展來看,其標(biāo)準(zhǔn)化和優(yōu)化的速度難以跟上 MCP Server 生態(tài)的迅猛發(fā)展。這為早期采用 MCP 的用戶埋下了隱患,當(dāng)構(gòu)建了大量 MCP Server 后,面對未來協(xié)議版本升級,可能需要進行大量的升級改造工作。
Higress 作為 AI 原生網(wǎng)關(guān)層,可以有效屏蔽多個版本的協(xié)議細(xì)節(jié),甚至實現(xiàn) MCP 到 REST/Dubbo 等其他協(xié)議的轉(zhuǎn)換。Higress 在網(wǎng)關(guān)層完成所有版本的 MCP 協(xié)議卸載,類似于傳統(tǒng) API 網(wǎng)關(guān)中統(tǒng)一卸載 HTTP1/HTTP2/HTTP3 客戶端協(xié)議的方式。
目前,Higress 已經(jīng)可以在一個接入點上同時支持 MCP 的 20241105 版本和 20250326 版本。在協(xié)議傳輸層,Higress 支持目前 AI 工具廣泛使用的 POST+SSE 模式,以及最新的 Streamable HTTP 模式。
我們預(yù)計,隨著應(yīng)用生態(tài)對實時性要求的提高,WebSocket 這種全雙工的雙向?qū)崟r通信協(xié)議將越來越受歡迎,并得到更廣泛的應(yīng)用。Higress 原生支持 WebSocket,能夠?qū)崿F(xiàn)全雙工的雙向?qū)崟r通信。此外,Higress 支持 WebSocket 配置修改后的連接保持以及優(yōu)雅斷開,未來在 MCP 會話保持方面,Higress 的優(yōu)勢將更加明顯。
第五、Remote MCP Server 部署與運維優(yōu)勢
Higress 的 MCP Server Hosting 方案在部署與運維方面展現(xiàn)出諸多顯著優(yōu)勢:
1、彈性伸縮方面,其依托 Kubernetes 的自動伸縮機制,能夠依據(jù)流量情況自動調(diào)節(jié)實例數(shù)量,既保障了服務(wù)的高可用性,又提升了資源利用效率。
2、在灰度發(fā)布方面,該方案支持 MCP Server 的灰度發(fā)布以及 A/B 測試,有效降低了更新過程中的風(fēng)險。
3、部署環(huán)節(jié),提供 Helm Chart,極大地簡化了部署流程,降低了運維的難度。
Higress 托管的 MCP Server 可輕松應(yīng)對每秒數(shù)十萬次的工具調(diào)用請求,且能保持毫秒級的響應(yīng)時間,充分滿足企業(yè)級應(yīng)用的性能要求。
本文轉(zhuǎn)載自公眾號玄姐聊AGI 作者:玄姐
