作者:正己
Nacos MCP Router 簡介
Nacos MCP Router 是一個基于 MCP 官方 SDK 開發的標準 MCP Server,為 MCP Client 提供 MCP Server 的智能搜索、安裝、代理等功能,極大地簡化了 MCP 服務的使用流程。同時,Nacos MCP Router 跟 Nacos MCP Registry 結合,可以實現 MCP Server 和 Tool 的全生命周期管理,如 MCP Server 及 Tool 可見性、版本管理等。
今天,我們很高興地宣布 Nacos MCP Router 發布全新版本,帶來了多項重要更新,包括對 SSE 和 StreamableHTTP 協議的全面支持、Docker 容器化部署方案以及革命性的 MCP Server 協議一鍵轉換功能。這些新特性將為開發者提供更加靈活、高效的 MCP 服務使用體驗,推動 MCP 生態系統的繁榮發展。
項目地址:https://github.com/nacos-group/nacos-mcp-router
應用場景
新版 Nacos MCP Router 的特性組合,為多種應用場景提供了強大支持:
1.?異構系統集成:通過協議轉換功能,可以輕松實現不同協議 MCP 服務之間的互通,打破技術壁壘,促進系統集成。
2.?微服務架構:作為服務發現和配置中心的補充,Nacos MCP Router?可以幫助微服務架構中的各個服務高效地發現和使用 MCP 服務。
3.?AI 助手能力擴展:通過與 Cline、Cursor 等 AI 助手的集成,可以為這些平臺提供 MCP 搜索、安裝及代理等工具和服務,擴展其能力邊界。
4.?云原生應用:Docker 部署支持使 Nacos MCP Router?成為真正的云原生應用,可以輕松部署在 Kubernetes 等容器編排平臺上,且有助于用戶構建統一的 MCP Hosting 的安全沙箱平臺。
多協議支持:支持 stdio、SSE、Streamable HTTP 協議
在現代分布式系統中,不同的通信協議適用于不同的應用場景。新版 Nacos MCP Router 深刻理解這一點,因此全面擴展了協議支持范圍,除了傳統的 stdio 協議外,現在還支持 SSE(Server-Sent Events)和 Streamable HTTP 協議。
支持 SSE 協議
SSE 協議是 MCP 官方提供的第一種 Remote MCP Server 通信協議。SSE 協議支持事件推送,提升了實時性和交互體驗。Nacos MCP Router 目前支持暴露 SSE 協議,以 Docker 部署為例:
docker run -i --rm?--network host -e NACOS_ADDR=$NACOS_ADDR?-e NACOS_USERNAME=$NACOS_USERNAME?-e NACOS_PASSWORD=$NACOS_PASSWORD?-e TRANSPORT_TYPE=sse nacos-mcp-router:latest
注意:需設置環境變量 TRANSPORT_TYPE=sse。
Nacos MCP Router 啟動完成后,完成 Cline、Cursor、Claude 等 MCP 設置即可使用,示例如下:
{"mcpServers": {"nacos-mcp-router": {"url":"http://$nacos_mcp_router_addr/sse"}}
}
支持 Streamable HTTP 協議
由于 SSE 協議需要維持鏈接狀態,存在一些缺陷:
-
連接不可恢復(斷線需重連),SSE 連接一旦中斷(如網絡波動),客戶端無法恢復之前的會話狀態,必須重新建立連接并初始化上下文,導致長任務(如文件處理、多輪對話)被迫重啟
-
服務器需維持高可用長連接,每個客戶端均需獨立的 SSE 長連接,高并發場景下服務器資源(如 TCP 連接數、內存)消耗劇增,且水平擴展困難。
-
僅支持服務器→客戶端的單向推送,客戶端消息仍需通過獨立 HTTP 請求發送。這種割裂設計增加了實現復雜度,且無法支持雙向按需通信?18。
-
基礎設施兼容性差,長連接易被企業防火墻、CDN 或負載均衡器強制中斷,且難以部署在 Serverless 架構等不支持長連接的云平臺
為解決上述問題,MCP 官方推出了 Streamable HTTP 協議,Streamable HTTP 協議在保留 SSE 流式能力的同時,也具備靈活性、輕量化、兼容性等特性。
設置環境變量 TRANSPORT_TYPE=streamable_http, Nacos MCP Server 開啟 Streamable HTTP 協議。以 Docker 部署為例,命令如下:
docker run -i --rm?--network host -e NACOS_ADDR=$NACOS_ADDR?-e NACOS_USERNAME=$NACOS_USERNAME?-e NACOS_PASSWORD=$NACOS_PASSWORD?-e TRANSPORT_TYPE=streamable_http nacos-mcp-router:latest
Cline、Cursor、Claude 等 MCP 設置示例如下:
{"mcpServers": {"nacos-mcp-router": {"url":"http://$nacos_mcp_router_addr/mcp"}}
}
Nacos MCP Router 在 SSE、StreamableHTTP 協議下工作原理如下圖所示:
圖1:Nacos MCP Router StreamableHTTP、SSE 協議架構
一鍵轉換 Stdio、SSE 為 Streamable HTTP 協議
當前,AI 生態已經有了大量的 MCP Server,其中大部分暴露的是 Stdio 協議或 SSE 協議。MCP Server 本地部署需占用本地資源,且會存在遠程部署的需求。Nacos MCP Router 新版本引入了協議轉換功能,支持實 SSE、Stdio 協議 MCP Server 到 Streamable HTTP 協議的一鍵轉換,其工作原理示意圖如下:
圖2:Nacos-MCP-Router 協議轉換架構
Stdio 轉為 Streamable HTTP 協議
如前所述,MCP Server 本地部署會占用本地計算資源,尤其是部署多個 MCP Server 時,資源占用會大幅增加。為解決這個問題,Nacos MCP Router 提供了 Proxy 模式。在 Proxy 模式下,用戶只需簡單配置幾個環境變量,無需修改一行代碼,即可把 Stdio 協議的 MCP Server 一鍵轉換為 Streamable HTTP 協議 MCP Server。
本節以 stdio 協議轉為 streamable HTTP 為例,簡單演示使用過程,sse 轉換為 streamable HTTP 與此類似。啟用 proxy 模式需要設置 MODE=proxy 環境變量,指定 PROXIED_MCP_NAME 后,Nacos MCP Router 會自動從 Nacos 獲取目標 MCP 服務器的配置,并建立代理連接,將不同協議的請求無縫轉換。整個過程對原始 MCP 服務器完全透明,無需修改任何代碼。
啟動示例如下:
docker?run-i--rm--networkhost-eNACOS_ADDR=$NACOS_ADDR-eNACOS_USERNAME=$NACOS_USERNAME-eNACOS_PASSWORD=$NACOS_PASSWORD-eTRANSPORT_TYPE=streamable_http-eMODE=proxy-ePROXIED_MCP_NAME=$PROXIED_MCP_NAMEnacos-mcp-router:latest
下面以高德地圖為例,展示如何把 Stdio 協議 MCP Server 轉為 Streamable?HTTP 協議 MCP Server。
- 啟動 Nacos Server 最新版,簡單起見,以單機模式啟動
git clone
sh $NACOS_DIR/bin/startup.sh -m standalone
- 在 Nacos 注冊高德 MCP
- 以 Proxy 模式啟動 Nacos MCP Router
docker?run-i--rm--networkhost-eNACOS_ADDR=127.0.0.1:8848-eNACOS_USERNAME=nacos-eNACOS_PASSWORD=nacos-eTRANSPORT_TYPE=streamable_http-eMODE=proxy-ePROXIED_MCP_NAME=amap-mcp-servernacos/nacos-mcp-router:latest
- CherryStudio 使用 Streamable HTTP
a. 設置 MCP,指定為 Streamable HTTP,保存后就能看到工具列表
b. 使用 MCP
支持 Docker 部署:更安全、無需關心依賴
容器化部署已成為現代應用交付的標準方式。新版 Nacos MCP Router 支持 Docker 鏡像部署,可與 K8s 等部署平臺結合,進一步簡化運維復雜度。Docker 鏡像中自帶了 MCP 常見的依賴如 Python、Node 等,用戶無需關注依賴問題。同時,MCP Server 運行在容器內提升了系統的安全性。通過官方 Docker 鏡像,開發者只需一行命令即可啟動 MCP 服務:
docker run -i --rm?--network host -e NACOS_ADDR=$NACOS_ADDR?-e NACOS_USERNAME=$NACOS_USERNAME?-e NACOS_PASSWORD=$NACOS_PASSWORD?-e TRANSPORT_TYPE=$TRANSPORT_TYPE?nacos-mcp-router:latest
對于需要協議轉換的場景,同樣可以通過 Docker 輕松實現:
docker?run-i--rm--networkhost-eNACOS_ADDR=$NACOS_ADDR-eNACOS_USERNAME=$NACOS_USERNAME-eNACOS_PASSWORD=$NACOS_PASSWORD-eTRANSPORT_TYPE=streamable_http-eMODE=proxy-ePROXIED_MCP_NAME=$PROXIED_MCP_NAMEnacos-mcp-router:latest
結語:擁抱變化,共建生態
Nacos MCP Router 新版本的發布,標志著 MCP 服務生態向更加開放、靈活和高效的方向邁進了一大步。多協議支持、協議轉換、Docker 部署等特性,不僅提升了開發者的使用體驗,也為 MCP 服務的廣泛應用和生態繁榮奠定了基礎。
我們相信,隨著這些新特性的應用,將會有更多創新的 MCP 服務涌現,為云原生應用開發帶來更多可能性。我們也期待社區的反饋和貢獻,共同推動 Nacos MCP Router 和整個 MCP 生態的發展。未來,我們希望 Nacos MCP Router 能夠成為 MCP Server 的分發與調度平臺,為 AI Agent 提供強大的智能化 MCP 調度能力。
點擊此處,了解Nacos更多詳情