使用 Nacos + Higress 连接 Agent 和 MCP 服务进行使用
Naocs 3.0 中已经支持和 Higress 配合使用实现存量 Http 转化为 MCP 服务,3.0.1 及以上版本在支持存量转化的基础上同时支持同步 Nacos 中已经注册的原生的 MCP 服务,并在 Higress 上进行暴露,完成了对所有 Remote Server 类型的代理访问支持。
通过结合 Spring AI Alibaba,FastMCP 等框架,可以实现应用自动注册到Nacos中,并通过 Higress 自动将注册的应用对外暴露给 Client 侧访问。此文档从0到一完成 Higress+Nacos 配合实现 REST API 转 MCP 和透明代理暴露标准 MCP 服务。
Higress 部署使用 Docker 部署 Higress
docker run -d --rm --name higress-ai \-v /data:/data \-p 8001:8001 -p 8080:8080 -p 8443:8443 \higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
部署 Redis
docker run -d --rm --name higress-redis -p 6379:6379 higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/redis-stack-server:7.4.0-v3
配置 MCP Server 的全局参数
vi ./configmaps/higress-config.yaml
apiVersion: v1
kind:ConfigMap
metadata:
name:higress-config
namespace:higress-system
creationTimestamp:"2000-01-01T00:00:00Z"
resourceVersion:"1"
data:
higress: |-mcpServer:sse_path_suffix: /sse # SSE 连接的路径后缀enable: true # 启用 MCP Serverredis:address: higress-redis:6379 # Redis服务地址。这里需要使用本机的内网 IP,不可以使用 127.0.0.1downstream:# 以下配置无需修改,此处省略
受 Docker 运行环境的限制,非 Linux 操作系统在修改 yaml 文件之后,需要等待一段时间才能让新的配置生效。如果希望立即生效的话,可以使用以下命令重启 higress-ai 容器:
docker run -d --name nacos \-e MODE=standalone \-e NACOS_AUTH_TOKEN="X5kL9zPqRt2vYw7bNfGhTjWm6sQp3cKx8yV4lB0nA=" \-e NACOS_AUTH_IDENTITY_KEY=nacos \-e NACOS_AUTH_IDENTITY_VALUE=nacos \-p 8081:8080 \-p 8848:8848 \-p 9848:9848 \nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v3.0.1
配置 Higress 连接到 Nacos mcp registry在Higress 服务来源中增加 Nacos3.x 服务来源打开 Higress 控制台,部署主机地址:8001, 点击服务来源添加,并添加nacos3.x 服务来源,地址填写 Nacos
服务部署和验证REST API 转 MCP进入 Nacos 控制台,访问部署主机ip:8081,点击 MCP Regsitry 并创建 MCP Server
在 3.0.0 基础上,3.0.1 支持在模版中引用 Nacos 配置,并且可以通过动态修改配置实现对模版的动态控制。
通过Nacos 动态配置能力,动态更新模版中的值,动态轮转后端访问token,动态控制网关访问后端服务的参数。新建配置文件 amap_key , 分组为data的配置,并在模版中直接进行引用
通过Nacos 动态配置能力,动态更新模版中的值,动态轮转后端访问token,动态控制网关访问后端服务的参数。新建配置文件 amap_key , 分组为data的配置,并在模版中直接进行引用
通过 Spring AI Alibaba 实现自动注册和自动暴露到 Higress克隆 sping ai alibaba examples 仓库
git clone https://github.com/springaialibaba/spring-ai-alibaba-examples.git
进入nacos mcp example 目录
cd ./spring-ai-alibaba-examples/spring-ai-alibaba-mcp-example/spring-ai-alibaba-mcp-nacos-example/server/mcp-nacos2-server-example
修改配置文件中 nacos 的用户名密码为自己设置的用户名和密码
vi ./src/main/resources/application.yml
启动项目
mvn spring-boot:run
启动之后,在 nacos 中查看注册的 mcp 服务
Higress 会自动发现注册的 MCP 服务并产生透明代理规则,可以直接通过 higress 访问 MCP 服务。通过 inspector 应用调试通过 Higress 暴露的 MCP 服务
在新版本的 Higress 和 Nacos 中,Higress 通过 Nacos 做统一发现实现存量应用的零改造适配 MCP 协议,并且能够实现 MCP 服务的自动代理,Higress 作为 MCP 网关对外提供统一的 MCP 暴露,Nacos 作为 MCP Regsitry 对MCP 服务做统一管理,对外提供统一的服务发现动态变更等能力。