Nacos MCP(Model Context Protocol)的详细指南
通过以上步骤,您可以快速体验 Nacos MCP 的核心功能,包括存量服务迁移、动态配置管理、协议转换及智能路由等。Nacos 与 Higress 的结合,为企业级 AI 应用提供了高效、安全且低侵入的工具调用解决方案。配置中的 API 密钥,Higress 会自动同步并应用新值,无需重启服务。转换后,客户端可通过无状态的 HTTP 接口调用原 Stdio 服务,避免长连接中断问题。在 Nacos
Nacos MCP(Model Context Protocol)的详细指南,涵盖环境搭建、服务注册、协议转换及实战验证等核心步骤:
一、环境准备
1. 安装 Nacos 3.0+
Nacos 3.0 及以上版本深度支持 MCP 协议,可通过 Docker 快速部署:
docker run --name nacos -e MODE=standalone \
-p 8081:8080 -p 8848:8848 \
-d nacos/nacos-server:v3.0.1
访问控制台 http://localhost:8081
,默认账号密码为 nacos/nacos
。
2. 部署 Higress 网关
Higress 作为 MCP 协议的核心代理,需与 Nacos 集成:
# 创建独立网络
docker network create mcp
# 部署 Redis(Higress 依赖)
docker run -d --name higress-redis --network mcp \
-p 6379:6379 redis:7.4.0
# 部署 Higress
docker run -d --name higress-ai --network mcp \
-p 8001:8001 -p 8080:8080 -p 8443:8443 \
-v ${PWD}:/data \
higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:latest
修改 ./configmaps/higress-config.yaml
,启用 MCP Server:
higress:
mcpServer:
enable: true
sse_path_suffix: /sse
redis:
address: higress-redis:6379
重启 Higress 容器使配置生效:
docker restart higress-ai
3. 配置 Higress 连接 Nacos
登录 Higress 控制台 http://localhost:8001
,添加 Nacos 服务来源:
- 点击 服务来源 → 添加
- 输入名称
nacos
,地址nacos:8080
(与 Docker 网络内的容器名一致) - 选择协议
nacos3.x
,保存并发布。
二、存量 HTTP 服务转 MCP
1. 创建 MCP 服务
在 Nacos 控制台中,进入 MCP Registry → MCP Server → 新建:
- 名称:weather-service
- 描述:天气查询服务
- 类型:Remote Server
- 协议:SSE
2. 添加 Tool 工具
点击新建的服务,进入 Tool 管理 → 添加:
- 名称:get_weather
- 参数:city(字符串类型,必填)
- 协议转化配置:
说明:{ "requestTemplate": { "method": "GET", "url": "https://restapi.amap.com/v3/weather/weatherInfo", "query": { "key": "${credential.api_key.data}", "city": "{{.city}}" } }, "responseTemplate": { "body": "{{.body}}" }, "argsPosition": "body" }
${credential.api_key.data}
引用 Nacos 配置中的高德 API 密钥{{.city}}
动态填充客户端传入的参数。
3. 配置 API 密钥
在 Nacos 控制台 配置管理 → 配置列表 中创建配置:
- Data ID:amap_key
- 分组:data
- 内容:
保存后,在 MCP 服务的 Credential 管理 中关联该配置。{ "api_key": { "data": "your_amap_api_key" } }
三、测试 MCP 服务
1. 通过 SSE 端点直接访问
访问 Higress 暴露的 MCP 服务:
curl http://localhost:8080/mcp/weather-service/sse \
-H "Content-Type: application/json" \
-d '{
"id": "1",
"method": "get_weather",
"params": {
"city": "北京"
}
}'
预期输出:
{
"id": "1",
"result": {
"status": "1",
"count": "1",
"info": "OK",
"infocode": "10000",
"lives": [
{
"province": "北京",
"city": "北京",
"adcode": "110000",
"weather": "晴",
"temperature": "28",
"winddirection": "东南",
"windpower": "3",
"humidity": "30",
"reporttime": "2025-09-22 14:00:00"
}
]
}
}
2. 通过 AI Agent 调用
使用支持 MCP 协议的 AI Agent(如 Cursor、Cline),配置 Nacos MCP Router:
- 在 Cursor 设置中添加 MCP Server:
{ "mcpServers": { "nacos-router": { "url": "http://localhost:8080/registry/sse" } } }
- 提问:“北京今天的天气如何?”
- Cursor 会自动调用 Nacos 注册的
get_weather
工具,并返回结果。
四、高级特性体验
1. 协议转换(Stdio → Streamable HTTP)
将本地运行的 Stdio 协议 MCP Server 转换为更高效的 Streamable HTTP 协议:
docker run -d --name nacos-mcp-router \
-e MODE=proxy \
-e PROXIED_MCP_NAME=image-generator \
-e TRANSPORT_TYPE=streamable_http \
-p 8082:8080 \
nacos/nacos-mcp-router:latest
转换后,客户端可通过无状态的 HTTP 接口调用原 Stdio 服务,避免长连接中断问题。
2. 动态配置更新
在 Nacos 控制台修改 amap_key
配置中的 API 密钥,Higress 会自动同步并应用新值,无需重启服务。测试时可观察到返回结果的变化。
3. 智能路由与筛选
使用 Nacos MCP Router 的智能路由模式,AI Agent 只需调用 Router 自身的轻量级工具描述,Router 会根据任务语义动态匹配并返回最相关的 MCP 工具,显著减少 Token 消耗:
# Python 示例(调用 Router 的 search_mcp_server 工具)
import requests
response = requests.post(
"http://localhost:8082/sse",
json={
"id": "2",
"method": "search_mcp_server",
"params": {
"task_description": "生成一张猫的图片",
"key_words": "图像生成"
}
}
)
print(response.json())
# 输出匹配的 MCP Server 列表,如 DALL-E、Stable Diffusion 等
五、常见问题与解决方案
1. 配置不生效
- 检查步骤:
- 确认 Nacos 配置的 Data ID 和分组与 MCP 服务中的引用一致
- 重启 Higress 容器或等待 1-2 分钟(非 Linux 环境可能存在延迟)
- 查看 Higress 日志:
docker logs higress-ai
2. 参数映射失败
- 调试方法:
- 在 MCP 服务的 工具管理 中启用 调试模式
- 发送测试请求后,在控制台查看
requestTemplate
和responseTemplate
的渲染结果
3. Token 消耗过高
- 优化策略:
- 使用 Nacos MCP Router 的智能路由模式,仅传递与当前任务相关的工具描述
- 精简工具描述中的冗余字段,避免全量信息传输
4. 协议转换错误
- 排查方向:
- 确保源 MCP Server 支持 Stdio 或 SSE 协议
- 检查环境变量
TRANSPORT_TYPE
和PROXIED_MCP_NAME
的配置 - 查看 Router 日志:
docker logs nacos-mcp-router
通过以上步骤,您可以快速体验 Nacos MCP 的核心功能,包括存量服务迁移、动态配置管理、协议转换及智能路由等。Nacos 与 Higress 的结合,为企业级 AI 应用提供了高效、安全且低侵入的工具调用解决方案。
更多推荐
所有评论(0)