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

基于 Nacos + Higress 的 MCP 开发新范式,手把手教程来了!

作者:子葵

Naocs 3.0 中已经支持和 Higress 配合使用实现存量 Http 转化为 MCP 服务,3.0.1 及以上版本在支持存量转化的基础上同时支持同步 Nacos 中已经注册的原生的 MCP 服务,并在 Higress 上进行暴露,完成了对所有 Remote Server 类型的代理访问支持。

image

通过结合 Spring AI Alibaba,FastMCP 等框架,可以实现应用自动注册到 Nacos 中,并通过 Higress 自动将注册的应用对外暴露给 Client 侧访问。此文档从 0 到 1 完成 Higress + Nacos 配合实现 REST API 转 MCP 和透明代理暴露标准 MCP 服务。

环境准备

创建独立的 Docker 网络

docker network create mcp

Higress 部署

使用 Docker 部署 Higress。

docker run -d --rm --name higress-ai -v ${PWD}:/data \-p 8001:8001 -p 8080:8080 -p 8443:8443 --network mcp \higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest

部署 Redis。

docker run -d --rm --name higress-redis -p 6379:6379 --network mcp 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-confignamespace: higress-systemcreationTimestamp: "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 容器:

Nacos 部署

通过 Docker 直接部署。

docker run --name nacos \-e MODE=standalone \-e NACOS_AUTH_TOKEN=your_token_base64 \-e NACOS_AUTH_IDENTITY_KEY=your_key \-e NACOS_AUTH_IDENTITY_VALUE=your_value \-p 8081:8080 \-p 8848:8848 \-p 9848:9848 \--network mcp \-d nacos-registry.cn-hangzhou.cr.aliyuncs.com/nacos/nacos-server:v3.0.1

配置 Higress 连接到 Nacos MCP Registry

在 Higress 服务来源中增加 Nacos 3.x 服务来源。

打开 Higress 控制台,部署主机地址 :8001,点击服务来源添加,并添加 Nacos3.x 服务来源,地址填写 nacos。

image

服务部署和验证

REST API 转 MCP

进入 Nacos 控制台,访问部署主机 ip:8081,点击 MCP Regsitry 并创建 MCP Server。

image

image

添加 Tool,Tool 名称为 get_weather,参数为 city,协议转化配置为:

{"requestTemplate": {"url": "/v3/weather/weatherInfo?key=yourkey","argsToUrlParam": true,"method": "GET"}
}

并发布为最新版本, 通过 sse ednpoint 直接访问 http:// 宿主机 host:8080/mcp/amap/sse。

image

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

image

通过 Nacos 动态配置能力,动态更新模版中的值,动态轮转后端访问 token,动态控制网关访问后端服务的参数。

新建配置文件 amap_key,分组为 data 的配置,配置内容为:

{"data": "your_key"
}

并在模板中直接进行引用。

image

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

image

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

image

访问失败。

通过 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-nacos-registry-example

修改配置文件中 Nacos 的用户名密码为自己设置的用户名和密码。

vi ./src/main/resources/application.yml

启动项目。

mvn spring-boot:run

启动之后,在 Nacos 中查看注册的 MCP 服务。

image

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

image

总结

在新版本的 Higress 和 Nacos 中,Higress 通过 Nacos 做统一发现实现存量应用的零改造适配 MCP 协议,并且能够实现 MCP 服务的自动代理,Higress 作为 MCP 网关对外提供统一的 MCP 暴露,Nacos 作为 MCP Regsitry 对 MCP 服务做统一管理,对外提供统一的服务发现、动态变更等能力。

http://www.vanclimg.com/news/1422.html

相关文章:

  • 使用Vue.js实现动态表单字段
  • 特征 - kkksc03
  • 7月29日
  • 图神经网络的未来与挑战
  • 网站SSL证书怎么选?不用SSL证书会怎么样?
  • 安全可靠的PolarDB V2.0 (兼容MySQL)产品能力及应用场景 - 王权富贵
  • 2025牛客暑期多校训练营5_J
  • 【LeetCode 24】力扣算法:两两交换链表中的节点
  • Pwn2Own柏林2025:第三天赛事成果与技术漏洞全记录
  • POLIR-Laws-民事诉讼法:手机录音能否作为民事诉讼证据?怎么录音才能被法院采信?
  • MCP是如何工作的?
  • OBS
  • 屏幕翻译 安卓app
  • 微算法科技(NASDAQ:MLGO)应用区块链联邦学习(BlockFL)架构,实现数据的安全传输
  • 星球助手发布更新 v1.7.0
  • 使用Spring Cloud和Resilience4j实现微服务容错与降级 - spiderMan1
  • WinForm自定义控件实现类似百度网盘客户端菜单组件
  • 【比赛记录】2025CSP-S模拟赛29
  • 树形dp练习
  • python中 命令行参数解析模块 argparse
  • 基于YOLOv8的狗狗品种(多达60种常见犬类)品种鉴别识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
  • 公钥和私钥的部分作用
  • 使用 Kiro AI IDE 3小时实现全栈应用Admin系统
  • soildworks建模界面添加图片
  • 从0开始构建技术
  • Fastmcp 案例二(SSe)
  • Anaconda历史版本
  • 输入未知数目的数据
  • 常见的结构光编解码算法
  • 七月