Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nacos_mcp-1.1.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nacos_mcp-1.1.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file nacos_mcp-1.1.1.tar.gz.

File metadata

  • Download URL: nacos_mcp-1.1.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nacos_mcp-1.1.1.tar.gz
Algorithm Hash digest
SHA256 99517cc6db55d41d2aa3ad114f4f1ab1e149daacbede09d2f83e559f075e959d
MD5 6ef2177263622d2b0ea16ee1dbbdca45
BLAKE2b-256 e76e6b6e15b049305a46513945093a5c9bec73f3404afbef34ed92e2f14f8d18

See more details on using hashes here.

File details

Details for the file nacos_mcp-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: nacos_mcp-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nacos_mcp-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b2f5bdbd74d8772c9ce8121840149f1ca2d5a08efcbfaa684041c0cabfc0973d
MD5 7e056dd8b7757bc1c9c9ab7b5fd26356
BLAKE2b-256 cfbd84f2080410b8913bddf252398b27634a1b6f676eb5ebe96af89d3f9610bb

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 files

1.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page