 
        
        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 进行直接的访问和调用。
 
  