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 服务来源:

  1. 点击 服务来源添加
  2. 输入名称 nacos,地址 nacos:8080(与 Docker 网络内的容器名一致)
  3. 选择协议 nacos3.x,保存并发布。

二、存量 HTTP 服务转 MCP

1. 创建 MCP 服务

在 Nacos 控制台中,进入 MCP RegistryMCP 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
  • 内容
    {
      "api_key": {
        "data": "your_amap_api_key"
      }
    }
    
    保存后,在 MCP 服务的 Credential 管理 中关联该配置。

三、测试 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:

  1. 在 Cursor 设置中添加 MCP Server:
    {
      "mcpServers": {
        "nacos-router": {
          "url": "http://localhost:8080/registry/sse"
        }
      }
    }
    
  2. 提问:“北京今天的天气如何?”
  3. 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 服务的 工具管理 中启用 调试模式
    • 发送测试请求后,在控制台查看 requestTemplateresponseTemplate 的渲染结果
3. Token 消耗过高
  • 优化策略
    • 使用 Nacos MCP Router 的智能路由模式,仅传递与当前任务相关的工具描述
    • 精简工具描述中的冗余字段,避免全量信息传输
4. 协议转换错误
  • 排查方向
    • 确保源 MCP Server 支持 Stdio 或 SSE 协议
    • 检查环境变量 TRANSPORT_TYPEPROXIED_MCP_NAME 的配置
    • 查看 Router 日志:docker logs nacos-mcp-router

通过以上步骤,您可以快速体验 Nacos MCP 的核心功能,包括存量服务迁移、动态配置管理、协议转换及智能路由等。Nacos 与 Higress 的结合,为企业级 AI 应用提供了高效、安全且低侵入的工具调用解决方案。

Logo

葡萄城是专业的软件开发技术和低代码平台提供商,聚焦软件开发技术,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务

更多推荐