mcpField
M
mcp-server-nacos: A Nacos MCP server

mcp-server-nacos: A Nacos MCP server

本地服务
github.com/nacos-group云与基础设施1272 周前更新

关于 mcp-server-nacos: A Nacos MCP server

面向 Nacos 集群交互与自动化的 MCP 服务,供需要查询服务发现和配置数据的用户使用。它支持读取、搜索和列出相关信息,目前不支持写入操作,且处于早期开发阶段。

主要功能

  1. 01列出命名空间与服务
  2. 02查询服务详情和实例
  3. 03搜索配置及配置历史
  4. 04查看配置监听关系
  5. 05仅支持读取与查询

适用场景

  1. 01通过对话检查 Nacos 服务与实例
  2. 02查找配置内容及其历史变更
  3. 03排查服务订阅者或配置监听者

MCP 相关

向 MCP 客户端提供用于查询 Nacos 集群的工具,涵盖命名空间、服务、实例、配置、历史记录及监听关系。当前仅支持读取、搜索和列出,不支持写入。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-server-nacos:Nacos MCP 服务

概述

Nacos 是一个易于使用的平台,专为动态服务发现、配置和服务管理而设计。它能帮助你轻松构建云原生应用和微服务平台。

此 MCP(模型上下文协议)服务用于与 Nacos 交互并实现自动化。该服务提供工具,可通过大语言模型在 Nacos 集群中搜索和读取 namespace、service 和 configuration 相关信息。

请注意,mcp-server-nacos 目前仍处于早期开发阶段。随着我们持续开发和改进该服务,其功能和可用工具可能会发生变化并有所扩展。还请注意,当前版本的 mcp-server-nacos 仅提供读取、搜索和列表操作,不支持任何写入操作。我们计划在未来版本中支持写入操作。

另外请注意,mcp-server-nacos 的所需版本:

1. Nacos version required upper `3.0.0`, because of depended on the [Nacos Admin API](https://nacos.io/en/swagger/admin/) in 3.x.
2. python version required 3.x, recommend upper `3.13`.
工具
  1. list_namespaces
    • 获取当前 Nacos 集群中的命名空间列表。
    • 输入:
      • 无
    • 返回:当前 Nacos 集群中的命名空间列表。
  2. list_services
    • 此工具获取指定命名空间下的服务列表。响应格式取决于 withInstances 参数:withInstances=true:返回包含实例的服务详情(ServiceDetailInfo 对象)。withInstances=false:返回不包含实例的服务元数据(ServiceView 对象)。注意: 当 withInstances=true 时,API 可能会消耗过多内存和网络资源。如果只想获取少量或单个服务的实例列表,建议使用 withInstances=false 和 List Service Instances。
    • 输入:
      • pageNo(number):当前页码,默认为 1。
      • pageSize(number):每页服务数量,默认为 100。
      • namespaceId(string, optional):服务的 namespaceId,缺省时默认为 public。
      • groupNameParam(string, optional):服务的 groupName 匹配模式,缺省时默认值为 null,表示所有 group。
      • serviceNameParam(string, optional):服务的 serviceName 匹配模式,缺省时默认值为 null,表示所有服务。
      • ignoreEmptyService(bool, optional):是否忽略结果中的空服务,默认为 true。
      • withInstances(bool, optional):结果中是否包含每个服务下的实例,建议使用且默认为 false。
    • 返回:指定命名空间下的服务列表。
  3. get_service
    • 此工具获取指定服务的详细信息,包括元数据和集群,但不包括实例列表。
    • 输入:
      • namespaceId(string, optional):服务的 namespaceId,缺省时默认为 public。
      • groupName(string, optional):服务的 groupName 匹配模式,缺省时默认为 DEFAULT_GROUP。
      • serviceName(string):服务的 serviceName 匹配模式,必填。
    • 返回:指定服务的详细信息。
  4. list_service_instances
    • 此工具获取指定服务的实例列表。
    • 输入:
      • namespaceId(string, optional):服务的 namespaceId,缺省时默认为 public。
      • groupName(string, optional):服务的 groupName 匹配模式,缺省时默认为 DEFAULT_GROUP。
      • serviceName(string):服务的 serviceName 匹配模式,必填。
      • clusterName(string, optional):服务中实例的集群名称,可选;默认为 null,表示匹配所有集群。
    • 返回:指定服务的实例列表。
  5. list_service_subscribers
    • 此工具获取指定服务的订阅者列表。
    • 输入:
      • pageNo(number):当前页码,默认为 1。
      • pageSize(number):每页服务订阅者数量,默认为 100。
      • namespaceId(string, optional):服务的 namespaceId,缺省时默认为 public。
      • groupName(string, optional):服务的 groupName 匹配模式,缺省时默认为 DEFAULT_GROUP。
      • serviceName(string):服务的 serviceName 匹配模式,必填。
      • aggregation(bool, optional):是否汇总整个集群的数据。
    • 返回:指定服务的订阅者列表。
  6. list_configs
    • 此工具获取指定命名空间下的配置列表。
    • 输入:
      • pageNo(number):当前页码,默认为 1。
      • pageSize(number):每页配置数量,默认为 100。
      • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
      • groupName(string, optional):配置的 groupName 匹配模式,缺省时默认值为 null,表示所有 group。
      • dataId(string, optional):配置的 dataId 匹配模式,缺省时默认值为 null,表示所有 dataId。
      • type(string, optional):配置类型,缺省时默认值为 null,表示所有类型。
      • configTags(string, optional):配置标签,缺省时默认值为 null,表示所有标签。
      • appName(string, optional):配置的 appName,缺省时默认值为 null,表示所有 appName。
      • search(string, optional):配置列表的搜索方式,默认为 blur,可选值为 accurate。
    • 返回:指定命名空间下的配置列表。
  7. get_config
    • 获取指定配置的详细信息。
    • 输入:
      • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
      • groupName(string):配置的 groupName,必填。
      • dataId(string):配置的 dataId,必填。
    • 返回:指定配置的详细信息。
  8. list_config_history
    • 此工具获取配置的完整发布历史记录。
    • 输入:
      • pageNo(number):当前页码,默认为 1。
      • pageSize(number):每页配置历史记录数量,默认为 100。
      • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
      • groupName(string):配置的 groupName,必填。
      • dataId(string):配置的 dataId,必填。
    • 返回:指定命名空间下的配置列表。
  9. get_config_history
    • 获取配置的一条指定历史变更记录。
    • 输入:
      • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
      • groupName(string):配置的 groupName,必填。
      • dataId(string):配置的 dataId,必填。
      • nid(number):配置历史记录的实际 ID,可从 list config history 工具的 id 字段中获取。
    • 返回:配置的历史变更记录。
  10. list_config_listeners
  • 获取订阅了指定配置的监听器列表。
  • 输入:
    • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
    • groupName(string):配置的 groupName,必填。
    • dataId(string):配置的 dataId,必填。
    • aggregation(bool, optional):是否汇总整个集群的数据。
  • 返回:订阅了指定配置的监听器列表。
  1. list_listened_configs
  • 获取特定客户端 IP 地址订阅的配置列表。
  • 输入:
    • namespaceId(string, optional):配置的 namespaceId,缺省时默认为 public。
    • ip(string):配置监听器的客户端 IP,必填。
    • aggregation(bool, optional):是否汇总整个集群的数据。
  • 返回:特定客户端 IP 地址订阅的配置列表。

安装

使用 uv(推荐)

使用 uv 时,无需进行特定安装。我们将使用 uvx 直接运行 mcp-server-nacos。

使用 PIP

或者,你也可以通过 pip 安装 mcp-server-nacos:

pip install mcp-server-nacos

安装后,你可以将其作为脚本运行:

python -m mcp_server_nacos

配置

与 Claude Desktop 配合使用

将以下内容添加到你的 claude_desktop_config.json:

使用 uvx
"mcpServers": {
  "git": {
    "command": "uvx",
    "args": [
        "nacos-mcp-server",
        "--host",
        "your_nacos_host",
        "--port",
        "your_nacos_main_port, such as 8848",
        "--access_token",
        "your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`"
      ],
  }
}

你可能需要在 command 字段中填写 uvx 可执行文件的完整路径。你可以在 MacOS/Linux 上运行 which uvx,或在 Windows 上运行 where uvx 来获取该路径。

使用 pip 安装
"mcpServers": {
  "git": {
    "command": "python",
        "args": [
        "-m",
        "nacos-mcp-server",
        "--host",
        "your_nacos_host",
        "--port",
        "your_nacos_main_port, such as 8848",
        "--access_token",
        "your_nacos_access_token, get from `login` api: /nacos/v3/auth/user/login with `username` and `password`"
      ],
  }
}

开发

如果你要进行本地开发,只需按照以下步骤操作:

  1. 将此仓库克隆到本地环境。
  2. 修改 src/mcp_server_nacos 中的代码,以实现你想要的功能。
  3. 使用 Claude 桌面应用进行测试。在 claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
  "mcp-server-nacos": {
    "command": "uv",
    "args": [ 
      "--directory",
      "/<path to mcp-server-nacos>/src/mcp_server_nacos",
      "run",
      "mcp-server-nacos"
    ]
  }
}

许可证

mcp-server-nacos 根据 Apache 2.0 许可证授权。这意味着你可以自由使用、修改和分发该软件,但须遵守 Apache 2.0 许可证的条款和条件。详情请参阅项目仓库中的 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。