当前位置: 首页 > news >正文

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.lryc.cn/news/590014.html

相关文章:

  • Linux开发利器:探秘开源,构建高效——基础开发工具指南(上)【包管理器/Vim】
  • 【Fastapi】Token验证与Postman模拟测试
  • HTTP REST API、WebSocket、 gRPC 和 GraphQL 应用场景和底层实现
  • IPv6
  • JavaScript进阶篇——第六章 内置构造函数与内置方法
  • qt 中英文翻译 如何配置和使用
  • AR智能巡检:电力行业数字化转型的“加速器”
  • 二分查找法
  • 力扣面试150(31/150)
  • 坐标系和相机标定介绍,张正友标定法原理,opencv标定
  • C++:现代 C++ 编程基石,C++11核心特性解析与实践
  • NLP:LSTM和GRU分享
  • NO.6数据结构树|二叉树|满二叉树|完全二叉树|顺序存储|链式存储|先序|中序|后序|层序遍历
  • 从零开始的云计算生活——番外4,使用 Keepalived 实现 MySQL 高可用
  • PyTorch 损失函数详解:从理论到实践
  • 《通信原理》学习笔记——第二章
  • Qt小组件 - 7 SQL Thread Qt访问数据库ORM
  • qt udp接收时 丢包
  • FreeRTOS学习笔记之任务调度
  • 《机器学习数学基础》补充资料:标准差与标准化
  • 《Qt信号与槽机制》详解:从基础到实践
  • Qt中实现文件(文本文件)内容对比
  • 若依框架下前后端分离项目交互流程详解
  • ScratchCard刮刮卡交互元素的实现
  • MR 处于 WIP 状态的WIP是什么
  • Django+Celery 进阶:Celery可视化监控与排错
  • 手撕Spring底层系列之:IOC、AOP
  • hadoop 集群问题处理
  • gem install报错解析
  • mac电脑无法阅读runc源码