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。
1. 启动 Nacos Server 最新版,简单起见,以单机模式启动
git clone sh $NACOS_DIR/bin/startup.sh -m standalone
2. 在 Nacos 注册高德 MCP
3. 以 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
4. 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 调度能力。
点击 https://nacos.io/,了解Nacos更多详情