基于 Nacos + Higress 的 MCP 开发新范式,手把手教程来了!
作者:子葵
Naocs 3.0 中已经支持和 Higress 配合使用实现存量 Http 转化为 MCP 服务,3.0.1 及以上版本在支持存量转化的基础上同时支持同步 Nacos 中已经注册的原生的 MCP 服务,并在 Higress 上进行暴露,完成了对所有 Remote Server 类型的代理访问支持。

通过结合 Spring AI Alibaba,FastMCP 等框架,可以实现应用自动注册到 Nacos 中,并通过 Higress 自动将注册的应用对外暴露给 Client 侧访问。此文档从 0 到 1 完成 Higress + Nacos 配合实现 REST API 转 MCP 和透明代理暴露标准 MCP 服务。
环境准备
创建独立的 Docker 网络
Higress 部署
使用 Docker 部署 Higress。
部署 Redis。
配置 MCP Server 的全局参数。
修改配置文件。
受 Docker 运行环境的限制,非 Linux 操作系统在修改 yaml 文件之后,需要等待一段时间才能让新的配置生效。如果希望立即生效的话,可以使用以下命令重启 higress-ai 容器:
Nacos 部署
通过 Docker 直接部署。
配置 Higress 连接到 Nacos MCP Registry
在 Higress 服务来源中增加 Nacos 3.x 服务来源。
打开 Higress 控制台,部署主机地址 :8001,点击服务来源添加,并添加 Nacos3.x 服务来源,地址填写 nacos。

服务部署和验证
REST API 转 MCP
进入 Nacos 控制台,访问部署主机 ip:8081,点击 MCP Regsitry 并创建 MCP Server。


添加 Tool,Tool 名称为 get_weather,参数为 city,协议转化配置为:
并发布为最新版本, 通过 sse ednpoint 直接访问 http:// 宿主机 host:8080/mcp/amap/sse。

在 3.0.0 基础上,3.0.1 支持在模版中引用 Nacos 配置,并且可以通过动态修改配置实现对模版的动态控制。

通过 Nacos 动态配置能力,动态更新模版中的值,动态轮转后端访问 token,动态控制网关访问后端服务的参数。
新建配置文件 amap_key,分组为 data 的配置,配置内容为:
并在模板中直接进行引用。

保存为最新版本,通过上面的 endpoint 进行访问。

访问成功,修改配置中的 key 的值为非法值。

访问失败。
通过 Spring AI Alibaba 实现自动注册和自动暴露到 Higress
克隆 sping ai alibaba examples 仓库。
进入 nacos mcp example 目录。
修改配置文件中 Nacos 的用户名密码为自己设置的用户名和密码。
启动项目。
启动之后,在 Nacos 中查看注册的 MCP 服务。

Higress 会自动发现注册的 MCP 服务并产生透明代理规则,可以直接通过 Higress 访问 MCP 服务。通过 inspector 应用调试通过 Higress 暴露的 MCP 服务。

总结
在新版本的 Higress 和 Nacos 中,Higress 通过 Nacos 做统一发现实现存量应用的零改造适配 MCP 协议,并且能够实现 MCP 服务的自动代理,Higress 作为 MCP 网关对外提供统一的 MCP 暴露,Nacos 作为 MCP Regsitry 对 MCP 服务做统一管理,对外提供统一的服务发现、动态变更等能力。
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/c9118fac1c59e98f71026fe72】。文章转载请联系作者。
评论