Skip to main content
Glama

Nacos MCP Server

Official
by nacos-group

mcp-server-nacos:Nacos MCP 服务器

概述

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

此 MCP(模型上下文协议)服务器用于 Nacos 交互和自动化。该服务器提供工具,用于通过大型语言模型搜索和读取 Nacos 集群中的namespaceserviceconfiguration相关信息。

请注意, 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 withInstances=false :返回不包含实例的服务元数据( ServiceView对象)。**注意:** 当withInstances=true时,该 API 可能会占用过多的内存和网络资源。如果只想获取包含少量服务或单个服务的实例列表,建议将withInstances=falseList Service Instances一起使用。

    • 输入:

      • pageNo (数字):当前页码,默认为1。

      • pageSize (数字):每页服务的大小,默认为 100。

      • namespaceId (字符串,可选):服务的 namespaceId,如果缺失,则默认为public

      • groupNameParam (字符串,可选):服务的 groupName 模式,如果缺失,则默认为 null,表示所有组。

      • serviceNameParam (字符串,可选):服务的 serviceName 模式,如果缺失,则默认为 null,表示所有服务。

      • ignoreEmptyService (bool,可选):是否忽略结果中的空服务,默认为 true。

      • withInstances (bool, 可选): 结果中是否包含各个服务下的实例,推荐使用,默认为 false。

    • 返回:指定命名空间下的服务列表。

  3. get_service

    • 该工具检索指定服务的详细信息,包括元数据和集群,但不包括实例列表。

    • 输入:

      • namespaceId (字符串,可选):服务的 namespaceId,如果缺失,则默认为public

      • groupName (字符串,可选):服务的 groupName 模式,如果缺失,则默认为DEFAULT_GROUP

      • serviceName (字符串):服务的 serviceName 模式,必需。

    • 返回:指定服务的详细信息。

  4. list_service_instances

    • 此工具检索指定服务的实例列表。

    • 输入:

      • namespaceId (字符串,可选):服务的 namespaceId,如果缺失,则默认为public

      • groupName (字符串,可选):服务的 groupName 模式,如果缺失,则默认为DEFAULT_GROUP

      • serviceName (字符串):服务的 serviceName 模式,必需。

      • clusterName (字符串,可选):服务中实例的集群名称,可选,默认为 null,表示匹配所有集群。

    • 返回:指定服务的实例列表。

  5. list_service_subscribers

    • 此工具检索指定服务的订阅者列表。

    • 输入:

      • pageNo (数字):当前页码,默认为1。

      • pageSize (数字):每页服务订阅者的大小,默认为100。

      • namespaceId (字符串,可选):服务的 namespaceId,如果缺失,则默认为public

      • groupName (字符串,可选):服务的 groupName 模式,如果缺失,则默认为DEFAULT_GROUP

      • serviceName (字符串):服务的 serviceName 模式,必需。

      • aggregation (bool,可选):是否从整个集群进行聚合。

    • 返回:指定服务的订阅者列表。

  6. list_configs

    • 此工具检索指定命名空间下的配置列表。

    • 输入:

      • pageNo (数字):当前页码,默认为1。

      • pageSize (数字):每页配置的大小,默认为100。

      • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

      • groupName (字符串,可选):配置的groupName模式,默认为null,表示所有组。

      • dataId (string, 可选): 配置的dataId模式,默认null表示所有dataId。

      • type (字符串,可选):配置的类型,默认为 null 表示所有类型。

      • configTags (字符串,可选):配置的标签,默认为 null 表示所有标签。

      • appName (字符串,可选):配置的appName,默认为null,表示所有appName。

      • search (字符串,可选):列表配置的搜索方式,默认为blur ,可选值accurate

    • 返回:指定命名空间下的配置列表。

  7. get_config

    • 检索指定配置的详细信息。

    • 输入:

      • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

      • groupName (字符串):配置的组名称,必需。

      • dataId (字符串):配置的dataId,必需。

    • 返回:指定配置的详细信息。

  8. list_config_history

    • 此工具检索配置的完整发布历史记录。

    • 输入:

      • pageNo (数字):当前页码,默认为1。

      • pageSize (数字):每页配置历史记录的大小,默认为100。

      • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

      • groupName (字符串):配置的组名称,必需。

      • dataId (字符串):配置的dataId,必需。

    • 返回:指定命名空间下的配置列表。

  9. get_config_history

    • 检索配置的特定历史变更记录。

    • 输入:

      • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

      • groupName (字符串):配置的组名称,必需。

      • dataId (字符串):配置的dataId,必需。

      • nid (数字):配置历史记录的实际 id,从列表配置历史记录工具中获取, id字段。

    • 返回:配置的历史变更记录。

  10. list_config_listeners

  • 检索订阅特定配置的监听器列表。

  • 输入:

    • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

    • groupName (字符串):配置的组名称,必需。

    • dataId (字符串):配置的dataId,必需。

    • aggregation (bool,可选):是否从整个集群进行聚合。

  • 返回:订阅特定配置的监听器列表。

  1. list_listened_configs

  • 检索特定客户端 IP 地址订阅的配置列表。

  • 输入:

    • namespaceId (字符串,可选):配置的 namespaceId,如果缺失,则默认为public

    • ip (字符串):配置监听器的客户端ip,必需。

    • aggregation (bool,可选):是否从整个集群进行聚合。

  • 返回:列出特定客户端IP地址订阅的配置。

Related MCP server: Sonos MCP Server

安装

使用 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中:

"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来获取此路径。

"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. 将此 repo 克隆到您的本地环境中。

  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文件。

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nacos-group/nacos-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server