Skip to main content
Glama
nacos-group

Nacos MCP Server

Official
by nacos-group

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

Available Tools

11 tools
get_configC

This interface retrieves the details of the specified configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of configs, default is `public` if missing
groupNameYesThe groupName of config, Required.
dataIdYesThe dataId of config, Required.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'retrieves' implies a read-only operation, it doesn't specify permissions required, rate limits, error conditions, or what format the configuration details are returned in. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a simple retrieval tool and front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of configuration management (implied by multiple sibling tools), no annotations, and no output schema, the description is incomplete. It doesn't explain what 'configuration details' include, how they're structured, or provide context about the configuration system, making it inadequate for an agent to fully understand the tool's role and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all three parameters thoroughly. The description adds no additional meaning about the parameters beyond what's in the schema, such as explaining the relationship between namespaceId, groupName, and dataId. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieves') and resource ('details of the specified configuration'), making the purpose understandable. However, it doesn't differentiate this tool from its siblings like 'get_config_history' or 'list_configs', which likely retrieve related but different configuration data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'get_config_history' and 'list_configs' available, there's no indication of what distinguishes this retrieval operation from those, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_config_historyB

This interface retrieves a specific historical change record of a configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of configs, default is `public` if missing
groupNameYesThe groupName of config, Required.
dataIdYesThe dataId of config, Required.
nidNothe actual id of config history record, Get from list config history api/tool, `id` field.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states it 'retrieves' (read operation) but doesn't disclose behavioral aspects like authentication requirements, rate limits, error conditions, or what format the historical record returns. For a tool with no annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 4 parameters (2 required), the description is incomplete. It doesn't explain what the historical record contains, how to obtain the 'nid' parameter (only hinted in schema), or any behavioral constraints. For a retrieval tool with specific identifiers, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain relationships between parameters like how 'nid' relates to 'list_config_history'). Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieves') and resource ('specific historical change record of a configuration'), distinguishing it from siblings like 'get_config' (current config) and 'list_config_history' (multiple records). However, it doesn't explicitly contrast with these siblings in the description text itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a specific historical record, but doesn't explicitly state when to use this versus alternatives like 'list_config_history' (for multiple records) or 'get_config' (for current config). No guidance on prerequisites or exclusions is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_serviceA

This interface retrieves detailed information of a specified service, including metadata and clusters, not including instance list.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of services, default is `public` if missing
groupNameNoThe groupName pattern of services, default is `DEFAULT_GROUP` if missing
serviceNameYesThe serviceName pattern of services, required.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the read-only nature ('retrieves') and specifies the scope of returned data. However, it doesn't mention potential limitations like rate limits, authentication requirements, error conditions, or response format details that would be helpful for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates the tool's purpose, scope, and limitations. Every word earns its place with no redundant information or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with no annotations and no output schema, the description provides adequate basic information about what the tool does and what data it returns. However, it lacks details about the response format, error handling, or any behavioral constraints that would help an agent use it effectively in complex scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description doesn't add any additional parameter semantics beyond what's in the schema descriptions, so it meets the baseline expectation without providing extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('retrieves detailed information'), the target resource ('a specified service'), and the scope of information returned ('including metadata and clusters, not including instance list'). It distinguishes this tool from sibling tools like 'list_service_instances' by explicitly excluding instance data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool by specifying what information it returns (metadata and clusters) and what it excludes (instance list). However, it doesn't explicitly state when NOT to use it or name specific alternatives among the sibling tools for different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_config_historyC

This interface retrieves the complete publish history of a configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoYesThe current page number, default is 1.
pageSizeYesThe size of config history records in each page, default is 100
namespaceIdNoThe namespaceId of config, default is `public` if missing
groupNameYesThe groupName pattern of config, required.
dataIdYesThe dataId pattern of config, required.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions 'retrieves' which implies a read operation, but doesn't cover critical aspects like pagination behavior (implied by parameters but not explained), rate limits, authentication needs, or what 'complete publish history' entails (e.g., timestamps, versions). This leaves significant gaps for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and every part earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete for a tool with 5 parameters and pagination behavior. It doesn't explain the return format (e.g., what fields are in the history), error conditions, or how 'complete' history interacts with pagination. For a read operation with multiple inputs, more context is needed for reliable use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 5 parameters with defaults and requirements. The description adds no additional meaning beyond implying pagination and filtering by namespace/group/data patterns, which are already clear from the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieves') and resource ('complete publish history of a configuration'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_config_history' or 'list_configs', which might have overlapping functionality, so it doesn't achieve full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_config_history' or 'list_configs'. It lacks context about prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving the agent to guess based on tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_config_listenersB

This interface retrieves the list of listeners subscribed to a specific configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of configs, default is `public` if missing
groupNameYesThe groupName of config, Required.
dataIdYesThe dataId of config, Required.
aggregationNoWhether aggregation from whole cluster, if `false`, only get listeners from requested node, default `true` if missing

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read operation ('retrieves'), but lacks details on permissions, rate limits, pagination, or error handling. For a tool with four parameters and no annotation coverage, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no output schema, no annotations), the description is minimal but covers the basic purpose. It lacks details on behavioral traits, output format, and usage context, making it adequate but with clear gaps for an agent to rely on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieves') and resource ('list of listeners subscribed to a specific configuration'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'list_service_subscribers' or 'list_listened_configs', which might have overlapping functionality, so it misses the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as 'list_listened_configs' or 'list_service_subscribers', nor does it mention prerequisites or exclusions. It only states what it does, leaving usage context implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_configsC

This interface retrieves the list of configurations under a specified namespace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoYesThe current page number, default is 1.
pageSizeYesThe size of configs in each page, default is 100
namespaceIdNoThe namespaceId of configs, default is `public` if missing
groupNameNoThe groupName pattern of configs, default null means all group. if not null, server will search all config match groupName. If `search=blur`, this parameter allow use `*` to do blur search, such as `*test` to do prefix and `test*` to do suffix
dataIdNoThe dataId pattern of configs, default null means all dataId. if not null, server will search all config match dataId. If `search=blur`, this parameter allow use `*` to do blur search, such as `*test` to do prefix and `test*` to do suffix
typeNoThe type of configs, default null means all type, if not null, server will search all config match type. Multiple type using `,` to split, such as `text,json`
configTagsNoThe tags of configs, default null means all tags, if not null, server will search all config match tags. Multiple tags using `,` to split, such as `tag1,tag2`
appNameNoThe appName of configs, default null means all appName, if not null, server will search all config match appName.
searchNoThe search way of list configs, default is `blur` means blur search groupName and dataId. Or using `accurate` means accurate match with groupName and dataId.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only states it 'retrieves' a list, implying a read-only operation. It doesn't disclose behavioral traits such as pagination handling (beyond schema hints), rate limits, authentication needs, error conditions, or what happens with invalid inputs, which are critical for a tool with 9 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a list operation, though it could be more front-loaded with key usage details to improve structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no output schema, no annotations), the description is insufficient. It lacks details on return format, pagination behavior, error handling, and how it differs from siblings. For a list tool with rich filtering options, more context is needed to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 9 parameters with defaults and behaviors. The description adds no additional parameter semantics beyond implying namespace filtering, which is already covered in the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieves') and resource ('list of configurations under a specified namespace'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_config_history' or 'get_config', which also retrieve configuration-related data, so it misses full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_config' (for single config) or 'list_config_history' (for historical data). It mentions 'under a specified namespace' but doesn't clarify if this is required or how it relates to other tools, leaving usage context implied at best.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_listened_configsC

This interface lists the configurations subscribed to by a specific client IP address.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of configs, default is `public` if missing
ipYesThe client ip of config listeners, Required.
aggregationNoWhether aggregation from whole cluster, if `false`, only get listeners from requested node, default `true` if missing

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'lists' configurations, implying a read-only operation, but doesn't mention any behavioral traits such as permissions needed, rate limits, pagination, or what happens if the IP has no subscriptions. This leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently conveys the core functionality, making it easy for an agent to parse and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list format, error handling) or address behavioral aspects like cluster aggregation effects. For a tool with 3 parameters and no structured support, more context is needed to guide proper invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying the 'ip' parameter is central, but it doesn't explain parameter interactions or provide context beyond what the schema offers, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('lists') and resource ('configurations subscribed to by a specific client IP address'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_config_listeners' or 'list_configs', which might have overlapping functionality, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_config_listeners' or 'list_configs'. It mentions a specific client IP address but doesn't clarify use cases, prerequisites, or exclusions, leaving the agent to infer usage from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_namespacesB

Retrieves the list of namespaces in the current Nacos cluster.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Retrieves') but doesn't describe traits like whether it's read-only, paginated, rate-limited, or requires authentication. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key action ('Retrieves') and resource. There is no wasted wording, and it directly communicates the tool's function without redundancy or fluff, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no output schema), the description is adequate as a basic read operation. However, without annotations or output schema, it lacks details on behavioral traits (e.g., safety, pagination) and return values. For a list operation in a cluster context, more completeness would be beneficial, but it meets the minimum viable threshold.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline of 4 is given since the schema fully handles parameters, and the description doesn't introduce unnecessary information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieves') and resource ('list of namespaces'), making the purpose unambiguous. It specifies the scope ('in the current Nacos cluster'), which helps distinguish it from generic list operations. However, it doesn't explicitly differentiate from sibling tools like 'list_configs' or 'list_services', which would require a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing cluster access, or contrast it with sibling tools like 'list_configs' or 'list_services' for namespace-specific operations. Without such context, users must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_instancesC

This interface retrieves the list of instances for a specified service.

ParametersJSON Schema
NameRequiredDescriptionDefault
namespaceIdNoThe namespaceId of service, default is `public` if missing
groupNameNoThe groupName pattern of service, default is `DEFAULT_GROUP` if missing
serviceNameYesThe serviceName pattern of service, required.
clusterNameNoThe cluster name of instances in service, optional and default is null means match all cluster. If need match multiple cluster, use `,` to split like `cluster1,cluster2`

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'retrieves' data, implying a read-only operation, but doesn't mention permissions, rate limits, pagination, or response format. This is inadequate for a tool with 4 parameters and no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what an 'instance' entails, the return format, or how results are structured, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents all parameters. The description adds no additional meaning beyond implying filtering by service, which is already covered by the schema. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('retrieves') and resource ('list of instances for a specified service'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'list_services' or 'get_service', which reduces its specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'list_services' or 'get_service'. It lacks context about prerequisites, exclusions, or comparisons with sibling tools, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_servicesA

This interface retrieves the list of services under a specified namespace. The response format depends on the withInstances parameter:withInstances=true: Returns service details with instances (ServiceDetailInfo objects). withInstances=false: Returns service metadata without instances (ServiceView objects). **NOTE: ** When withInstances=true, The API may cost too much memory and networks, If Only want get instance list with little or one service, Suggest use withInstances=false with List Service Instances.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoYesThe current page number, default is 1.
pageSizeYesThe size of services in each page, default is 100
namespaceIdNoThe namespaceId of services, default is `public` if missing
groupNameParamNoThe groupName pattern of services, default null means all group if missing. if not null, server will search all service match groupName both prefix and subfix, such as: input `test`, groupName `test`, `atest`, `testb`, `atestb` will all matched
serviceNameParamNoThe serviceName pattern of services, default null means all service if missing. if not null, server will search all service match serviceName both prefix and subfix, such as: input `test`, serviceName `test`, `atest`, `testb`, `atestb` will all matched
ignoreEmptyServiceNoWhether ignore the empty service in result, default is true
withInstancesNoWhether contain instances under each services in result, recommend and default is false

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the response format varies based on the `withInstances` parameter, warns about performance costs ('may cost too much memory and networks'), and recommends default settings. However, it lacks details on error handling or rate limits, preventing a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose. It uses bold formatting for emphasis and includes a note with performance warnings, but the sentence structure is slightly verbose (e.g., 'If Only want get instance list with little or one service'), which could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no annotations, no output schema), the description does a good job of covering essential context: purpose, usage guidelines, behavioral warnings, and parameter effects. However, it does not describe the output structure (e.g., what fields are in ServiceDetailInfo or ServiceView), which is a gap since there's no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the baseline score is 3. The description adds some value by explaining the impact of the `withInstances` parameter on response format and performance, but does not provide additional semantic context beyond what the schema already documents for other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'retrieves the list of services under a specified namespace.' It specifies the verb ('retrieves') and resource ('services'), but does not explicitly differentiate it from sibling tools like 'list_service_instances' or 'get_service', which reduces it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives. It states: 'If Only want get instance list with little or one service, Suggest use `withInstances=false` with `List Service Instances`.' This directly compares to a sibling tool and advises on parameter settings for optimal use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_service_subscribersC

This interface retrieves the list of subscribers for a specified service.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoYesThe current page number, default is 1.
pageSizeYesThe size of subscribers in each page, default is 100
namespaceIdNoThe namespaceId of service, default is `public` if missing
groupNameNoThe groupName pattern of service, default is `DEFAULT_GROUP` if missing
serviceNameYesThe serviceName pattern of service, required.
aggregationNoWhether aggregation from whole cluster, if `false`, only get subscribers from requested node, default `true` if missing

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'retrieves' data, implying a read-only operation, but doesn't cover critical aspects like pagination behavior (implied by pageNo/pageSize but not explained), rate limits, authentication needs, or error conditions. This leaves significant gaps for an agent to understand how to interact with it effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that directly states the tool's purpose without any fluff or redundancy. It's front-loaded with the core action and resource, making it efficient and easy to parse. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no output schema, and no annotations), the description is insufficient. It doesn't explain the return format (e.g., structure of subscriber data), pagination details, or error handling. For a tool with multiple parameters and no output schema, more context is needed to guide an agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so parameters like 'pageNo', 'pageSize', and 'serviceName' are well-documented in the schema itself. The description adds no additional parameter semantics beyond what the schema provides, such as explaining relationships between parameters or usage examples. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('retrieves') and resource ('list of subscribers for a specified service'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'list_service_instances' or 'list_services', which might have overlapping domains but different specific functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing the service to exist, or compare it to siblings like 'list_service_instances' for broader context. Usage is implied by the purpose but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updates
    • First observedget_config
    • First observedget_config_history
    • First observedget_service
    • First observedlist_config_history
    • First observedlist_config_listeners
    • First observedlist_configs
    • First observedlist_listened_configs
    • First observedlist_namespaces
    • First observedlist_service_instances
    • First observedlist_service_subscribers
    • First observedlist_services

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation5/5

Every tool has a clearly distinct purpose targeting specific resources and actions in the Nacos domain (configurations, services, namespaces, listeners/subscribers). No tools appear to overlap or cause confusion, as each name precisely indicates its function, such as get_config vs. list_configs or get_service vs. list_services.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case throughout, using clear verbs like 'get', 'list', and specific nouns like 'config', 'service', 'namespace'. There are no deviations or mixed conventions, making the naming highly predictable and readable.

Tool Count5/5

With 11 tools, this server is well-scoped for managing configurations and services in Nacos, covering key operations like retrieval, listing, and history tracking. Each tool earns its place without feeling excessive or insufficient for the domain's needs.

Completeness4/5

The tool set provides strong coverage for read operations on configurations, services, namespaces, and related metadata, but lacks explicit create, update, or delete tools for these resources. This minor gap means agents can query effectively but may need workarounds for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • The Needle MCP server enables semantic search on documents stored in files like PDFs, DOCX, and XLSX by connecting AI applications to external data sources. It provides capabilities to create and manage document collections, perform natural language searches on stored content, and retrieve relevant information without requiring exact keyword matches.

  • GibsonAI MCP server: manage your databases with natural language

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A multi-functional computing platform server designed to integrate with large language models like Qwen, providing file access, database connections, API integration, and vector database functionality.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A server that enables LLMs to interact with Lark/Feishu services, currently supporting employee information queries via Lark's Contact API.
    21 npm
    3
    -
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that enables AI assistants to query and manage Nacos configurations. It supports Nacos 3.x for retrieving or publishing configuration files and includes an optional read-only mode for secure environments.
    2
    20 PyPI
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that exposes all AgileConfig RESTful APIs as tools, enabling AI assistants to manage configuration, applications, users, nodes, and more via natural language.
    36
    10 npm
    MIT