Nacos MCP Server
Officialmcp-server-nacos: Nacos MCP 서버
개요
Nacos는 동적 서비스 검색, 구성 및 서비스 관리를 위해 설계된 사용하기 쉬운 플랫폼입니다. 클라우드 네이티브 애플리케이션과 마이크로서비스 플랫폼을 쉽게 구축할 수 있도록 지원합니다.
이 MCP(Model Context Protocol) 서버는 Nacos 상호작용 및 자동화를 위한 서버입니다. 이 서버는 대용량 언어 모델을 통해 Nacos 클러스터의 namespace , service 및 configuration 관련 정보를 검색하고 읽을 수 있는 도구를 제공합니다.
mcp-server-nacos 현재 초기 개발 단계에 있습니다. 서버 개발 및 개선 과정에서 기능 및 사용 가능한 도구가 변경 및 확장될 수 있습니다. 또한, mcp-server-nacos 현재 버전에서는 읽기, 검색 및 목록 작업만 제공하며 쓰기 작업은 지원하지 않습니다. 쓰기 작업은 향후 버전에서 지원될 예정입니다.
이 mcp-server-nacos 필요한 버전에 대한 또 다른 참고 사항은 다음과 같습니다.
지엑스피1
도구
list_namespaces현재 Nacos 클러스터의 네임스페이스 목록을 검색합니다.
입력:
없음
반환: 현재 Nacos 클러스터의 네임스페이스 목록입니다.
list_services이 도구는 지정된 네임스페이스에 속한 서비스 목록을 검색합니다. 응답 형식은
withInstances매개변수에 따라 달라집니다.withInstances=true: 인스턴스(ServiceDetailInfo객체)를 포함한 서비스 세부 정보를 반환합니다.withInstances=false: 인스턴스(ServiceView객체)를 제외한 서비스 메타데이터를 반환합니다. **참고:**withInstances=true인 경우 API가 메모리와 네트워크를 너무 많이 사용할 수 있습니다. 서비스가 적거나 하나만 있는 인스턴스 목록만 가져오려면List Service Instances와 함께withInstances=false사용하는 것이 좋습니다.입력:
pageNo(숫자): 현재 페이지 번호, 기본값은 1입니다.pageSize(숫자): 각 페이지의 서비스 크기, 기본값은 100입니다.namespaceId(문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우public입니다.groupNameParam(문자열, 선택 사항): 서비스의 groupName 패턴, 기본값은 null이며 누락된 경우 모든 그룹을 의미합니다.serviceNameParam(문자열, 선택 사항): 서비스의 serviceName 패턴, 기본값은 null로, 누락된 경우 모든 서비스를 의미합니다.ignoreEmptyService(bool, 선택 사항): 결과에서 빈 서비스를 무시할지 여부, 기본값은 true입니다.withInstances(bool, 선택 사항): 결과에 각 서비스 아래에 인스턴스를 포함하는지 여부, 권장 사항 및 기본값은 false입니다.
반환: 지정된 네임스페이스에 속한 서비스 목록입니다.
get_service이 도구는 인스턴스 목록을 제외한 메타데이터와 클러스터를 포함한 지정된 서비스의 자세한 정보를 검색합니다.
입력:
namespaceId(문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은DEFAULT_GROUP입니다.serviceName(문자열): 서비스의 serviceName 패턴, 필수입니다.
반환: 지정된 서비스에 대한 자세한 정보.
list_service_instances이 도구는 지정된 서비스에 대한 인스턴스 목록을 검색합니다.
입력:
namespaceId(문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은DEFAULT_GROUP입니다.serviceName(문자열): 서비스의 serviceName 패턴, 필수입니다.clusterName(문자열, 선택 사항): 서비스의 인스턴스 클러스터 이름입니다. 선택 사항이며 기본값은 null로 모든 클러스터와 일치함을 의미합니다.
반환: 지정된 서비스에 대한 인스턴스 목록입니다.
list_service_subscribers이 도구는 지정된 서비스의 구독자 목록을 검색합니다.
입력:
pageNo(숫자): 현재 페이지 번호, 기본값은 1입니다.pageSize(숫자): 각 페이지의 서비스 구독자 크기, 기본값은 100입니다.namespaceId(문자열, 선택 사항): 서비스의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열, 선택 사항): 서비스의 groupName 패턴, 누락된 경우 기본값은DEFAULT_GROUP입니다.serviceName(문자열): 서비스의 serviceName 패턴, 필수입니다.aggregation(bool, 선택 사항): 전체 클러스터에서 집계할지 여부입니다.
반환: 지정된 서비스의 구독자 목록입니다.
list_configs이 도구는 지정된 네임스페이스 아래의 구성 목록을 검색합니다.
입력:
pageNo(숫자): 현재 페이지 번호, 기본값은 1입니다.pageSize(숫자): 각 페이지의 구성 크기, 기본값은 100입니다.namespaceId(문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열, 선택 사항): config의 groupName 패턴, 기본값 null은 모든 그룹을 의미합니다.dataId(문자열, 선택 사항): config의 dataId 패턴, 기본값 null은 모든 dataId를 의미합니다.type(문자열, 선택 사항): 구성의 유형, 기본값 null은 모든 유형을 의미합니다.configTags(문자열, 선택 사항): config의 태그, 기본값은 null로 모든 태그를 의미합니다.appName(문자열, 선택 사항): configs의 appName, 기본값은 null이면 모든 appName을 의미합니다.search(문자열, 선택 사항): 목록 구성의 검색 방법, 기본값은blur이고 선택 사항 값은accurate.
반환: 지정된 네임스페이스 아래의 구성 목록입니다.
get_config지정된 구성의 세부 정보를 검색합니다.
입력:
namespaceId(문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열): config의 groupName, 필수.dataId(문자열): config의 dataId, 필수.
반환: 지정된 구성의 세부 정보.
list_config_history이 도구는 구성의 전체 게시 기록을 검색합니다.
입력:
pageNo(숫자): 현재 페이지 번호, 기본값은 1입니다.pageSize(숫자): 각 페이지의 구성 기록 레코드 크기입니다. 기본값은 100입니다.namespaceId(문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열): config의 groupName, 필수.dataId(문자열): config의 dataId, 필수.
반환: 지정된 네임스페이스 아래의 구성 목록입니다.
get_config_history구성의 특정 과거 변경 기록을 검색합니다.
입력:
namespaceId(문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열): config의 groupName, 필수.dataId(문자열): config의 dataId, 필수.nid(숫자): 구성 기록 레코드의 실제 ID, 구성 기록 도구 목록에서 가져오기,id필드.
반환: 구성의 과거 변경 기록.
list_config_listeners
특정 구성을 구독한 리스너 목록을 검색합니다.
입력:
namespaceId(문자열, 선택 사항): config의 namespaceId, 기본값은 누락된 경우public입니다.groupName(문자열): config의 groupName, 필수.dataId(문자열): config의 dataId, 필수.aggregation(bool, 선택 사항): 전체 클러스터에서 집계할지 여부입니다.
반환: 특정 구성을 구독한 리스너 목록입니다.
list_listened_configs
특정 클라이언트 IP 주소가 구독한 구성 목록을 검색합니다.
입력:
namespaceId(문자열, 선택 사항): config의 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`"
],
}
}개발
지역 개발을 진행 중이라면 다음 단계를 따르세요.
이 저장소를 로컬 환경에 복제합니다.
원하는 기능을 구현하려면
src/mcp_server_nacos의 코드를 수정하세요.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 toolsget_configC
This interface retrieves the details of the specified configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of configs, default is `public` if missing | |
| groupName | Yes | The groupName of config, Required. | |
| dataId | Yes | The dataId of config, Required. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of configs, default is `public` if missing | |
| groupName | Yes | The groupName of config, Required. | |
| dataId | Yes | The dataId of config, Required. | |
| nid | No | the actual id of config history record, Get from list config history api/tool, `id` field. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of services, default is `public` if missing | |
| groupName | No | The groupName pattern of services, default is `DEFAULT_GROUP` if missing | |
| serviceName | Yes | The serviceName pattern of services, required. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | Yes | The current page number, default is 1. | |
| pageSize | Yes | The size of config history records in each page, default is 100 | |
| namespaceId | No | The namespaceId of config, default is `public` if missing | |
| groupName | Yes | The groupName pattern of config, required. | |
| dataId | Yes | The dataId pattern of config, required. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of configs, default is `public` if missing | |
| groupName | Yes | The groupName of config, Required. | |
| dataId | Yes | The dataId of config, Required. | |
| aggregation | No | Whether aggregation from whole cluster, if `false`, only get listeners from requested node, default `true` if missing |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | Yes | The current page number, default is 1. | |
| pageSize | Yes | The size of configs in each page, default is 100 | |
| namespaceId | No | The namespaceId of configs, default is `public` if missing | |
| groupName | No | The 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 | |
| dataId | No | The 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 | |
| type | No | The 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` | |
| configTags | No | The 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` | |
| appName | No | The appName of configs, default null means all appName, if not null, server will search all config match appName. | |
| search | No | The 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of configs, default is `public` if missing | |
| ip | Yes | The client ip of config listeners, Required. | |
| aggregation | No | Whether aggregation from whole cluster, if `false`, only get listeners from requested node, default `true` if missing |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| namespaceId | No | The namespaceId of service, default is `public` if missing | |
| groupName | No | The groupName pattern of service, default is `DEFAULT_GROUP` if missing | |
| serviceName | Yes | The serviceName pattern of service, required. | |
| clusterName | No | The 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | Yes | The current page number, default is 1. | |
| pageSize | Yes | The size of services in each page, default is 100 | |
| namespaceId | No | The namespaceId of services, default is `public` if missing | |
| groupNameParam | No | The 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 | |
| serviceNameParam | No | The 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 | |
| ignoreEmptyService | No | Whether ignore the empty service in result, default is true | |
| withInstances | No | Whether contain instances under each services in result, recommend and default is false |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNo | Yes | The current page number, default is 1. | |
| pageSize | Yes | The size of subscribers in each page, default is 100 | |
| namespaceId | No | The namespaceId of service, default is `public` if missing | |
| groupName | No | The groupName pattern of service, default is `DEFAULT_GROUP` if missing | |
| serviceName | Yes | The serviceName pattern of service, required. | |
| aggregation | No | Whether aggregation from whole cluster, if `false`, only get subscribers from requested node, default `true` if missing |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
- First observed
get_config - First observed
get_config_history - First observed
get_service - First observed
list_config_history - First observed
list_config_listeners - First observed
list_configs - First observed
list_listened_configs - First observed
list_namespaces - First observed
list_service_instances - First observed
list_service_subscribers - First observed
list_services
TDQS
Scored across 11 tools
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.
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.
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.
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
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.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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-
- FlicenseNot gradedqualityDmaintenanceA server that enables LLMs to interact with Lark/Feishu services, currently supporting employee information queries via Lark's Contact API.21 npm3-
- AlicenseBqualityDmaintenanceAn 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.220 PyPI3MIT
- AlicenseAqualityDmaintenanceMCP server that exposes all AgileConfig RESTful APIs as tools, enabling AI assistants to manage configuration, applications, users, nodes, and more via natural language.3610 npmMIT