nacos的mcp工具

aipkyit/nacos-mcp
Hosted
0 Stars 51 次浏览 AI火火火IT 更新于 2026-08-23

Nacos MCP 服务器让 AI 助手能够查询和管理 Nacos 配置中心与服务注册中心。支持 Nacos 1.x / 2.x,配置管理走 v1 API,服务发现与命名空间走 v2 API。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "nacos": {
      "args": [
        "nacos-mcp"
      ],
      "command": "uvx",
      "env": {
        "NACOS_HOST": "localhost",
        "NACOS_NAMESPACE": "dev",
        "NACOS_PASSWORD": "nacos",
        "NACOS_PORT": "8848",
        "NACOS_READ_ONLY": "false",
        "NACOS_USERNAME": "nacos"
      }
    }
  }
}

该服务需要配置环境变量:NACOS_HOST、NACOS_NAMESPACE、NACOS_PASSWORD、NACOS_PORT、NACOS_READ_ONLY、NACOS_USERNAME

可用工具 (9 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

nacos_list_namespaces 1 个参数 需填 1 项

列出 Nacos 所有命名空间及其配置数量。

必填参数:params

nacos_list_configs 1 个参数 需填 1 项

列出 Nacos 中的配置项,支持按 group/dataId 过滤。

必填参数:params

nacos_get_config 1 个参数 需填 1 项

获取 Nacos 中指定配置的内容。

必填参数:params

nacos_publish_config 1 个参数 需填 1 项

发布新配置或更新已有配置。只读模式下不可用。

必填参数:params

nacos_delete_config 1 个参数 需填 1 项

删除指定配置。只读模式下不可用。

必填参数:params

nacos_list_config_history 1 个参数 需填 1 项

查询配置的变更历史列表。

必填参数:params

nacos_list_services 1 个参数 需填 1 项

列出 Nacos 中注册的所有服务。

必填参数:params

nacos_list_instances 1 个参数 需填 1 项

查询指定服务的实例列表,包含 IP、端口、健康状态、元数据等。

必填参数:params

nacos_get_service_detail 1 个参数 需填 1 项

查询服务的详细信息,包括集群配置、保护阈值、元数据等。

必填参数:params

服务介绍

nacos-mcp

Nacos MCP Server — 让 AI 助手能够查询和管理 Nacos 配置中心与服务注册中心。

支持 Nacos 1.x / 2.x。配置管理走 v1 API,服务发现与命名空间走 v2 API。

功能概览

能力 工具数 说明
配置管理 4 查询、列表、发布、删除配置
服务发现 3 列出服务、查询实例、服务详情
命名空间 1 列出所有命名空间
配置历史 1 查询配置变更记录

快速开始

前置条件

  • Python 3.10+
  • 能访问目标 Nacos 服务器的网络

安装配置

所有 MCP 客户端配置格式相同,只需修改配置文件路径。

Claude Code — 项目 .mcp.json 或全局 ~/.claude.json

{
  "mcpServers": {
    "nacos": {
      "command": "uvx",
      "args": ["nacos-mcp"],
      "env": {
        "NACOS_HOST": "localhost",
        "NACOS_PORT": "8848",
        "NACOS_USERNAME": "nacos",
        "NACOS_PASSWORD": "nacos",
        "NACOS_NAMESPACE": "dev",
        "NACOS_READ_ONLY": "false"
      }
    }
  }
}

Cursor~/.cursor/mcp.json

Claude Desktopclaude_desktop_config.json

Windsurf~/.codeium/windsurf/mcp_config.json

Cline — VS Code 设置中的 MCP 配置

以上客户端配置格式相同,只需把配置放到对应位置即可。

环境变量

变量 说明 默认值 必填
NACOS_HOST Nacos 服务器地址 localhost
NACOS_PORT Nacos 端口 8848
NACOS_USERNAME 登录用户名 nacos
NACOS_PASSWORD 登录密码 nacos
NACOS_NAMESPACE 默认命名空间 ID public
NACOS_READ_ONLY 只读模式(禁止发布/删除) false

工具列表

1. nacos_list_namespaces — 列出命名空间

列出 Nacos 所有命名空间及配置数量。

帮我看看 Nacos 有哪些命名空间

2. nacos_list_configs — 配置列表

列出指定命名空间下的配置项,支持按 group/dataId 过滤。

参数 类型 必填 说明
namespace_id string 命名空间 ID
group string 按分组名过滤
data_id string 按 dataId 过滤(精确匹配)
page_no int 页码,默认 1
page_size int 每页条数,默认 100
列出 dev 命名空间下所有配置
查一下 dev 下有没有 group 为 PROD_GROUP 的配置

3. nacos_get_config — 获取配置

获取指定配置的完整内容。

参数 类型 必填 说明
data_id string 配置 ID
group_name string 分组名,默认 DEFAULT_GROUP
namespace_id string 命名空间 ID
response_format string markdown(默认)或 json
获取 dev 下 application-common.yml 的配置内容
以 JSON 格式返回 datasource.yml 的配置

4. nacos_publish_config — 发布/更新配置

发布新配置或更新已有配置。只读模式下不可用。

参数 类型 必填 说明
data_id string 配置 ID
content string 配置内容
group_name string 分组名,默认 DEFAULT_GROUP
namespace_id string 命名空间 ID
config_type string 类型:yaml/json/text/properties/xml/html/toml
desc string 配置描述
把以下配置发布到 dev 命名空间,dataId 为 redis.yml:
spring:
  redis:
    host: 192.168.1.100
    port: 6379
更新 application.yml,把 server.port 改成 9090

5. nacos_delete_config — 删除配置

删除指定配置。只读模式下不可用。

参数 类型 必填 说明
data_id string 配置 ID
group_name string 分组名,默认 DEFAULT_GROUP
namespace_id string 命名空间 ID
删除 dev 下 test-config.yml 这个配置

6. nacos_list_config_history — 配置变更历史

查询配置的变更历史记录。

参数 类型 必填 说明
data_id string 配置 ID
group_name string 分组名,默认 DEFAULT_GROUP
namespace_id string 命名空间 ID
page_no int 页码
page_size int 每页条数,默认 20
查看 datasource.yml 的变更历史

7. nacos_list_services — 列出服务

列出 Nacos 中注册的所有服务。

参数 类型 必填 说明
namespace_id string 命名空间 ID
group_name string 按分组过滤
page_no int 页码
page_size int 每页条数
Nacos 里注册了哪些服务?
dev 命名空间下有哪些微服务?

8. nacos_list_instances — 查询服务实例

查询指定服务的所有实例,包含 IP、端口、健康状态、权重、元数据等。

参数 类型 必填 说明
service_name string 服务名
namespace_id string 命名空间 ID
group_name string 分组名,默认 DEFAULT_GROUP
healthy_only bool 是否只返回健康实例
查看 ruoyi-gateway 有几个实例
列出 book 服务的所有健康实例

9. nacos_get_service_detail — 查询服务详情

查询服务的详细信息,包括保护阈值、元数据、集群配置等。

参数 类型 必填 说明
service_name string 服务名
namespace_id string 命名空间 ID
group_name string 分组名,默认 DEFAULT_GROUP
查看 ruoyi-auth 的服务详情

使用教程

教程 1:日常配置查看

用户:帮我看看 Nacos 里有哪些命名空间?
AI:(调用 nacos_list_namespaces)→ 返回表格

用户:dev 下有哪些配置?
AI:(调用 nacos_list_configs, namespace_id="dev")→ 返回配置列表

用户:看看 gateway 的配置内容
AI:(调用 nacos_get_config, data_id="ruoyi-gateway.yml", namespace_id="dev")
    → 返回完整 YAML 配置

教程 2:配置变更排查

用户:datasource.yml 最近有没有被改过?
AI:(调用 nacos_list_config_history, data_id="datasource.yml")
    → 返回变更记录,包含操作人、IP、时间

用户:谁改的?改成什么了?
AI:根据历史记录回答操作人和操作类型(I=新增, U=更新, D=删除)

教程 3:服务健康检查

用户:帮我检查一下所有服务是否健康
AI:
  1.(调用 nacos_list_services)→ 获取服务列表
  2. 逐个(调用 nacos_list_instances)→ 检查每个服务的实例健康状态
  3. 汇总报告:哪些服务全健康、哪些有不健康实例

教程 4:发布新配置

用户:帮我在 dev 下新建一个 oss.yml 配置:
      oss:
        endpoint: oss-cn-hangzhou.aliyuncs.com
        bucket: my-bucket
AI:(调用 nacos_publish_config, data_id="oss.yml", content="...", namespace_id="dev")
    → 返回发布成功确认

用户:确认一下发布的内容对不对
AI:(调用 nacos_get_config, data_id="oss.yml")→ 返回刚发布的内容

教程 5:只读模式(生产环境保护)

生产环境建议开启只读模式,防止 AI 误操作修改或删除配置:

{
  "env": {
    "NACOS_HOST": "nacos-prod.example.com",
    "NACOS_PORT": "8848",
    "NACOS_USERNAME": "readonly",
    "NACOS_PASSWORD": "your-password",
    "NACOS_NAMESPACE": "prod",
    "NACOS_READ_ONLY": "true"
  }
}

开启后 nacos_publish_confignacos_delete_config 会返回"只读模式,禁止操作",其余查询工具正常可用。

连接失败排查

如果 MCP 工具返回连接失败的引导信息,按以下步骤排查:

  1. 检查 Nacos 是否在线 — 浏览器访问 http://{NACOS_HOST}:{NACOS_PORT}/nacos
  2. 检查网络连通性ping {NACOS_HOST}telnet {NACOS_HOST} {NACOS_PORT}
  3. 检查账号密码 — 默认 nacos/nacos,修改后需要同步更新环境变量
  4. 检查命名空间 ID — Nacos 控制台的命名空间 ID(不是名称)

架构说明

nacos-mcp
├── client.py    # NacosClient 单例,鉴权 + 持久化 httpx 连接池 + 所有 API
└── server.py    # 9 个 MCP 工具定义
  • 配置管理走 v1 API/nacos/v1/cs/configs(兼容性好,有配置列表接口)
  • 服务发现走 v2 API/nacos/v2/ns/(字段更丰富,包含 ephemeral、metadata 等)
  • 命名空间走 v2 API/nacos/v2/console/namespace/list
  • 连接池管理 — httpx AsyncClient 持久化,空闲 5 分钟自动释放
  • 错误处理 — 所有异常捕获为字符串返回,MCP 进程不会崩溃

开发

git clone https://github.com/pkyit/nacos-mcp.git
cd nacos-mcp

# 安装依赖
pip install -e ".[dev]"

# 运行测试
pytest

# 本地启动 MCP Server
nacos-mcp

License

MIT

相关 MCP 服务