Nacos 是一个易于使用的平台,旨在实现动态服务发现、配置和服务管理。它帮助您轻松构建云原生应用程序和微服务平台。
此MCP(模型上下文协议)服务器用于与Nacos进行交互和自动化。该服务器提供了工具,通过大型语言模型在Nacos集群中搜索和读取与namespace、service和configuration相关的信息。
请注意,mcp-server-nacos目前处于早期开发阶段。随着我们继续开发和完善服务器,其功能和可用工具可能会发生变化和扩展。另外,请注意mcp-server-nacos当前仅提供读取、搜索和列出操作,不支持写入操作。写入操作计划在未来版本中支持。
还请注意,此mcp-server-nacos所需的版本:
1. Nacos版本需高于`3.0.0`,因为依赖于3.x版本中的[Nacos Admin API](https://nacos.io/en/swagger/admin/)。
2. Python版本需为3.x,推荐高于`3.13`。
list_namespaces
list_services
withInstances参数:withInstances=true:返回带有实例的服务详情(ServiceDetailInfo对象)。withInstances=false:返回不带实例的服务元数据(ServiceView对象)。注意: 当withInstances=true时,API可能消耗大量内存和网络资源。如果只需要获取少量或单个服务的实例列表,建议使用withInstances=false结合List Service Instances。pageNo(数字):当前页码,默认为1。pageSize(数字):每页的服务数量,默认为1_00。namespaceId(字符串,可选):服务的命名空间ID,默认为public。groupNameParam(字符串,可选):服务的组名模式,默认为空表示所有组。serviceNameParam(字符串,可选):服务的服务名模式,默认为空表示所有服务。ignoreEmptyService(布尔值,可选):是否忽略结果中的空服务,默认为true。withInstances(布尔值,可选):结果中是否包含每个服务下的实例,默认为false。get_service
namespaceId(字符串,可选):服务的命名空间ID,默认为public。groupName(字符串,可选):服务的组名模式,默认为DEFAULT_GROUP。serviceName(字符串):服务的服务名模式,必需。list_service_instances
namespaceId(字符串,可选):服务的命名空间ID,默认为public。groupName(字符串,可选):服务的组名模式,默认为DEFAULT_GROUP。serviceName(字符串):服务的服务名模式,必需。clusterName(字符串,可选):服务中实例的集群名,可选,默认为空表示匹配所有集群。list_service_subscribers
pageNo(数字):当前页码,默认为1。pageSize(数字):每页的服务订阅者数量,默认为100。namespaceId(字符串,可选):服务的命名空间ID,默认为public。groupName(字符串,可选):服务的组名模式,默认为DEFAULT_GROUP。serviceName(字符串):服务的服务名模式,必需。aggregation(布尔值,可选):是否从整个集群聚合。list_configs
pageNo(数字):当前页码,默认为1。pageSize(数字):每页的配置数量,默认为100。namespaceId(字符串,可选):配置的命名空间ID,默认为public。groupName(字符串,可选):配置的组名模式,默认为空表示所有组。dataId(字符串,可选):配置的数据ID模式,默认为空表示所有数据ID。type(字符串,可选):配置的类型,默认为空表示所有类型。configTags(字符串,可选):配置的标签,默认为空表示所有标签。appName(字符串,可选):配置的应用名,默认为空表示所有应用名。search(字符串,可选):配置列表的搜索方式,默认为blur,可选值accurate。get_config
namespaceId(字符串,可选):配置的命名空间ID,默认为public。groupName(字符串):配置的组名,必需。dataId(字符串):配置的数据ID,必需。list_config_history
pageNo(数字):当前页码,默认为1。pageSize(数字):每页的配置历史记录数量,默认为100。namespaceId(字符串,可选):配置的命名空间ID,默认为public。groupName(字符串):配置的组名,必需。dataId(字符串):配置的数据ID,必需。get_config_history
namespaceId(字符串,可选):配置的命名空间ID,默认为public。groupName(字符串):配置的组名,必需。dataId(字符串):配置的数据ID,必需。nid(数字):配置历史记录的实际ID,从list config history工具的id字段获取。list_config_listeners
namespaceId(字符串,可选):配置的命名空间ID,默认为public。groupName(字符串):配置的组名,必需。dataId(字符串):配置的数据ID,必需。aggregation(布尔值,可选):是否从整个集群聚合。list_listened_configs
namespaceId(字符串,可选):配置的命名空间ID,默认为public。ip(字符串):配置监听器的客户端IP,必需。aggregation(布尔值,可选):是否从整个集群聚合。当使用uv时,不需要特别安装。我们将使用uvx直接运行mcp-server-nacos。
或者,您可以使用pip安装mcp-server-nacos:
pip install mcp-server-nacos
安装后,可以使用以下命令作为脚本运行:
python -m mcp_server_nacos
在您的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`"
],
}
}
</details> <details> <summary>使用pip安装</summary>您可能需要在
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`"
],
}
}
</details>
如果您正在进行本地开发,请遵循以下步骤:
src/mcp_server_nacos中的代码以实现您想要的功能。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文件。