Nacos 開源 MCP Router,加速 MCP 私有化部署

作者:正己

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 協議下工作原理如下圖所示:

image

圖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 協議的一鍵轉換,其工作原理示意圖如下:

image

圖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。

  1. 啟動 Nacos Server 最新版,簡單起見,以單機模式啟動
git clone 
sh $NACOS_DIR/bin/startup.sh -m standalone
  1. 在 Nacos 注冊高德 MCP

image

  1. 以 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
  1. CherryStudio 使用 Streamable HTTP

a. 設置 MCP,指定為 Streamable HTTP,保存后就能看到工具列表

image

image

b. 使用 MCP

image

支持 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更多詳情

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89470.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89470.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89470.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【趙渝強老師】Redis的主從復制集群

Redis的主從復制是指將一臺Redis服務器的數據,復制到其他的Redis服務器。前者稱為Master主節點,后者稱為Slave從節點。數據的復制是單向的,只能由主節點到從節點。在默認情況下每臺Redis服務器都是主節點。一個主節點可以有多個從節點或者沒有…

Git 子模塊只更新部分模塊的問題排查總結

Git 子模塊只更新部分模塊的問題排查總結 問題描述 在執行 git submodule update --init --recursive 命令時,雖然 .gitmodules 文件中定義了 3 個子模塊,但只有 handy-ollama 被更新,其他兩個子模塊沒有被處理。 > git submodule upda…

React 源碼7:Lane、React和schedule優先級轉換

在《源碼3》requestUpdateLane函數根據eventLane獲取不同情況對應優先級。一、優先級1.Lane的tag一共有32種lane。var TotalLanes 31; var NoLanes /* */ 0; var NoLane /* */ 0; var SyncLane /* …

Linux RDMA Maillist patchsets (Jul. 7 - Jul. 13, 2025)

1. Optimize DMABUF Mkey Page Size in mlx5 優化 mlx5 中的 DMABUF Mkey 頁大小 This patch series enables the mlx5 driver to dynamically select the optimal page size for DMABUF-based memory keys (mkeys), rather than relying on a fixed page size during registr…

Maven詳細解

Maven 工具介紹 Maven是Apache組織下的一個跨平臺的項目管理工具,它主要用來幫助實現項目的構建、測試、打包和部署。Maven 提供了標準的軟件生命周期模型和構建模型,通過配置就能對項目進行全面的管理。它的跨平臺性保證了在不同的操作系統上可以使用相…

Springboot兒童攝影服務91f0v(程序+源碼+數據庫+調試部署+開發環境)帶論文文檔1萬字以上,文末可獲取,系統界面在最后面。

系統程序文件列表項目功能:用戶,員工,攝影套餐,套餐系列,客片欣賞,攝影預約,攝影訂單,取片通知,攝影評價開題報告內容基于Spring Boot的兒童攝影服務系統設計與實現開題報告一、研究背景與意義隨著國家生育政策調整,兒童攝影市場需求呈現爆發式增長。以北…

vue-seo優化

一、為什么 Vue 需要專門做 SEO Vue 默認是客戶端渲染 SPA,首屏 HTML 幾乎為空,爬蟲抓取不到內容;即使 Googlebot 能執行 JS,也存在“渲染預算”與加載延遲問題 二、技術落地 4 條路線 場景技術選型實現要點適用內容更新頻…

DNS防護實戰:用ipset自動攔截異常解析與群聯AI云防護集成

問題場景 DNS服務器常成為黑客探測源IP的首選目標。攻擊者通過高頻DNS查詢獲取解析記錄,或利用異常請求觸發服務器響應,從而定位源站IP。傳統單IP攔截效率低下,難以應對分布式攻擊。 核心解決方案 ipset自動化攔截 ipset是iptables的擴展&…

養老院跌倒誤報頻發?陌訊時空圖卷積實現95%精準檢測

?開篇痛點??> "傳統視覺算法在養老院場景面臨三大挑戰&#xff1a; > ① 夜間低光照下識別率驟降&#xff08;<50% mAP&#xff09; > ② 多人遮擋場景姿態檢測漂移 > ③ 跌倒誤報率高達30%&#xff08;某養老機構2024年報告&#xff09;"通…

[spring6: BeanPostProcessor BeanFactoryPostProcessor]-生命周期

BeanFactoryPostProcessor BeanFactoryPostProcessor 接口允許在 Spring 容器初始化完所有的 bean 定義之后&#xff0c;但還未實例化任何 bean 時&#xff0c;修改應用上下文的內部 bean 工廠。通過實現 postProcessBeanFactory 方法&#xff0c;你可以覆蓋或添加屬性&#xf…

MISRA C-2012準則之聲明與定義

目錄 一、MISRA C簡介 二、聲明與定義 1. 必需。類型應被顯式聲明。 2. 必需。函數應以原型形式命名參數。 3. 必需。所有對象和函數的聲明需要使用完全相同的名字和參數。 4. 必需。當定義有外部鏈接的對象或函數時&#xff0c;兼容聲明應是可見的。 5. 必需。外部變量…

【blender】使用Vscode進行blender調試

配置vscodeblender 直接使用blender中的text editor沒有代碼補全&#xff0c;終端輸出通常和blender不在同一個頁面&#xff0c;只適合非常簡單的代碼測試。使用Vscode能有效提高blender調試的效率&#xff0c;具體方式見&#xff1a;VSCode 開發 Blender腳本工具配置。 調試…

Au速成班-樂理知識補充+網頁下載音樂

音質分類 通過查看音頻頻譜&#xff0c;128Kbps、192Kbps、320Kbps、無損&#xff08;Lossless HD&#xff09;CD音質&#xff08;頻率都在20kHz以上&#xff09;。 各家平臺對無損的定義不一樣&#xff0c;em各有說法吧。 無損的含義是&#xff1a;無損失的聲音格式。只要能…

JAVA中的Collection集合及ArrayList,LinkedLIst,HashSet,TreeSet和其它實現類的常用方法

文章目錄前言一、Collection 接口常用方法1.boolean add(E e)2.boolean remove(Object o)3.boolean contains(Object o)4.boolean isEmpty()5.int size()6.void clear()7.Object[] toArray()8.boolean containsAll(Collection<?> c)9.boolean addAll(Collection<? e…

有n棍棍子,棍子i的長度為ai,想要從中選出3根棍子組成周長盡可能長的三角形。請輸出最大的周長,若無法組成三角形則輸出0。

題目描述&#xff1a; 有n棍棍子&#xff0c;棍子i的長度為ai&#xff0c;想要從中選出3根棍子組成周長盡可能長的三角形。請輸出最大的周長&#xff0c;若無法組成三角形則輸出0。 算法為O(nlogn) 初始理解題目 首先&#xff0c;我們需要清楚地理解題目要求&#xff1a; 輸入…

【Echarts】 電影票房匯總實時數據橫向柱狀圖比圖

效果圖code <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>圓角柱狀圖</title><script src"https://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js"></script> </head> <…

【深度學習基礎】PyTorch中model.eval()與with torch.no_grad()以及detach的區別與聯系?

目錄1. 核心功能對比2. 使用場景對比3. 區別與聯系4. 典型代碼示例(1) 模型評估階段(2) GAN 訓練中的判別器更新(3) 提取中間特征5. 關鍵區別總結6. 常見問題與解決方案(1) 問題&#xff1a;推理階段顯存爆掉(2) 問題&#xff1a;Dropout/BatchNorm 行為異常(3) 問題&#xff1…

博客摘錄「 華為云平臺-FusionSphere OpenStack 8.2.1 系統加固」2025年7月15日

編號 加固項 "風險 等級" 加固原理/Rationale 審計方法/Audit 期望結果/Expect Results 加固方法/Remediation 1 OpenSSH加固配置 1.1 OpenSSH加固配置 1.1.1 SSH使用的版本 H "Op…

永磁同步電機MTPA與MTPV曲線具體仿真實現

永磁同步電機MTPA與MTPV曲線具體仿真實現 近期做了一些標定試驗&#xff0c;實際電機參數并不是確定的&#xff0c;而是變化的&#xff0c;因此很難通過解析的方法算出MTPA的對應點&#xff0c;以及在弱磁區如何過度到MTPV。這個在實際情況下都是一點點標出來的&#xff0c;我這…

Adobe Acrobat 插件功能、應用與開發

什么是 Acrobat 插件&#xff1f; Adobe Acrobat 插件是一種能夠擴展 Adobe Acrobat 閱讀器/查看器功能的軟件組件。Acrobat 是用于查看、創建和編輯 PDF 文檔的流行程序&#xff0c;而插件可以為其添加新功能&#xff0c;例如&#xff1a; #mermaid-svg-iqdM1wLkFQhd3ilQ {fon…