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