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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…