
Nacos 能够通过和 Higress 等AI网关的结合,0代码改动地实现将存量API转换成MCP 服务的能力。本文档将说明如何在Nacos上对已经注册在Nacos中的存量API声明为MCP服务,并通过Higress 的协议转换能力进行MCP Tools的调用。
0. 准备工作
将存量API转换成MCP服务的准备工作主要有:
- 部署Nacos引擎 : 在运行环境中部署版本
3.0.0
及以上的Nacos引擎,可参考Nacos快速开始, Nacos Docker 快速开始 或 Nacos Kubernetes 快速开始。 - 部署Higress-AI : 在运行环境中部署版本
2.1.2
及以上的Higress,可参考Higress Docker 快速开始 或 Higress Kubernetes 快速开始。 - 将存量API注册到Nacos引擎中 : 将存量API通过Nacos SDK 或 Spring Cloud 等框架进行注册或自动注册。
1. 将存量服务声明成MCP服务
打开Nacos控制台http://${nacos_console_host}:${nacos_console_port}
如 http://127.0.0.1:8080
.
首次打开可能需要进行管理员密码的初始化工作,请参考Nacos控制台手册。
点击左侧MCP管理
-> MCP列表
进入MCP管理页面
在页面左上角点击创建MCP Server
,在创建MCP Server页面中填写必要信息,如:
信息 | 描述 |
---|---|
MCP 服务名 | MCP Server 名称,用于区分不同MCP Server |
协议类型 | 请选择sse 或streamable |
HTTP 转 MCP 服务 | 在协议类型 选择为sse 或streamable 之后出现此选项,可选择http 或https ,根据存量服务提供的协议类型选择。 |
后端服务 | 在协议类型 选择为sse 或streamable 之后出现此选项,选择使用已有服务 |
服务引用 | 在单选框中选择需要转换的存量服务的服务名 |
描述 | MCP服务的描述,自定义描述此存量服务转化成MCP服务后的描述信息 |
服务版本 | MCP服务的版本号,自定义版本号,一般使用如1.0.0 样式的多级版本号 |
填写完成后,点击页面右上角的发布
即可完成。
2. 将存量服务的API声明为MCP服务的Tools
打开Nacos控制台http://${nacos_console_host}:${nacos_console_port}
如 http://127.0.0.1:8080
.
点击左侧MCP管理
-> MCP列表
进入MCP管理页面
在列表中找到上一步骤中创建的MCP服务,在列表的操作
列中点击编辑
。
在编辑 MCP Server
页面中,修改服务版本
为新的版本号
考虑到不同MCP Server的版本兼容性问题,编辑时对于已发布的版本,只能修改Tool以及参数的描述信息以及开关;避免新增,删除,修改参数类型导致的MCP服务不兼容问题。
修改为新版本号后,在页面下方的Tools
区域中会出现添加
按钮,点击添加
按钮,在添加 MCP Tools
页面中填写必要信息,如:
信息 | 描述 |
---|---|
Tool 名称 | MCP Tools的名称,用于区分不同MCP Tools |
Tool 描述 | MCP Tools的描述,自定义描述此存量服务API成MCP服务Tool后的描述信息 |
是否启用 | 是否启用此Tool,默认为启用 |
Tool 入参描述 | 对Mcp Tools的输入参数列表进行描述。 |
其中点击添加属性
能够新增输入参数。
注意,只有当焦点处于
参数列表
时,点击添加属性
才能新增输入参数。若焦点处于某一参数时,说明此时正在进行此参数的内容编辑,添加属性
不允许点击。
之后再点击需要修改的输入参数,如NewArg1
;在参数信息
中进行参数属性的修改,参数属性内容解释如下:
信息 | 描述 |
---|---|
名称 | MCP Tools的输入参数名称,用于区分不同参数 |
类型 | MCP Tools的输入参数类型,支持string 、number 、integer 、boolean 、array 、object |
描述 | MCP Tools的输入参数描述,自定义描述此MCP服务Tool参数描述信息 |
协议转化配置 | 提供给AI网关或协议转换代理的协议转化配置,用于提供给给AI网关或协议转化代理,此工具实际映射的存量服务的API信息,如url ,参数映射关系 等,具体配置细节,请参见MCP模版配置手册。 |
所有Tool的输入参数编辑完成后, 点击确定
进行保存,之后重复添加其他的Tool信息后,点击页面右上角发布为最新版本
。
页面右上角的
保存
仅会将内容进行保存,不会标记成最新版本,不进行发布最新版本,可能会导致AI网关或协议转换代理无法读取到新改动的工具信息。可用于编辑过程中保存记录以及灰度使用。
3. 配置协议转换暴露MCP服务
上述步骤已经已经将存量服务及其API声明成了MCP服务及MCP Tool,Nacos作为控制面进行声明的存储和下发,但想要实际以MCP协议进行访问,还需要有数据面进行协议转换,目前Higress-AI网关已经提供了协议转换的能力。
Higress-AI网关的部署可参考参考Higress Docker 快速开始 或 Higress Kubernetes 快速开始 进行部署,此文档主要说明如何配置:
3.1. 开启Higress-AI网关的MCP协议转换
参考Higress ConfigMap 全局参数配置 文档,将data.higress.mcpServer.enable
的值修改为true
,同时确保data.higress.mcpServer.redis.address
的地址配置正确.
data.higress.mcpServer.match_list
可保持默认值,默认为[]
,表示由Higress-AI网关自动进行会话保持管理。
例如:
apiVersion: v1
kind: ConfigMap
metadata:
...
data:
higress: |-
mcpServer:
...
enable: true # 启用 MCP Server
redis:
address: ${IP}:6379 # Redis服务地址。
...
match_list: []
...
3.2. 配置 Nacos 作为 Higress-AI的 MCP Registry
参考Higress 配置 Nacos MCP Registry
将Nacos作为MCP Registry 服务来源进行配置,配置完毕后可在Higress的控制台-服务列表
中查看到所有通过MCP协议暴露的存量服务的服务名称。
同时使用curl http://${higress_ai_host}:${higress_ai_port}/mcp/${your_mcp_server_name}/see
可连接MCP服务,查看到连接MCP服务的sessionId,并定时能看到心跳响应。
如,我的MCP服务名称为restToMcp
:
Terminal window
curl localhost:8080/mcp/restToMcp/sseevent: endpointdata: /mcp/restToMcp?sessionId=6b1fc62e-dbfa-40a9-9a5d-8a257e0b095c
event: messagedata: {"jsonrpc":"2.0","id":"2025-06-16T03:33:04Z","method":"ping"}
event: messagedata: {"jsonrpc":"2.0","id":"2025-06-16T03:33:09Z","method":"ping"}
至此,已经将一个已经注册在Nacos上的存量服务API,转化成为了MCP服务,您可以将此MCP服务配置在各类LLM Agent应用上,如DeepChat
, Cline
, Cherry Studio
等;或通过Nacos-Mcp-Router,MCP-Client,Spring-AI 进行直接的访问和调用。