Nacos MCP Server

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports reading and parsing Markdown content in configuration files stored in Nacos.

  • Integrates with Nacos via Swagger Admin API (v3.x), allowing interaction with Nacos cluster configuration and service discovery features.

mcp-server-nacos: Un servidor MCP de Nacos

Descripción general

Nacos es una plataforma fácil de usar diseñada para el descubrimiento, la configuración y la gestión dinámica de servicios. Facilita la creación de aplicaciones nativas de la nube y plataformas de microservicios.

Este servidor MCP (Protocolo de Contexto de Modelo) facilita la interacción y automatización de Nacos. Proporciona herramientas para buscar y leer información relativa a namespace , service y configuration en el clúster de Nacos mediante grandes modelos de lenguaje.

Tenga en cuenta que mcp-server-nacos se encuentra actualmente en desarrollo inicial. La funcionalidad y las herramientas disponibles están sujetas a cambios y ampliaciones a medida que continuamos desarrollando y mejorando el servidor. Tenga en cuenta también que mcp-server-nacos solo ofrece operaciones de lectura, búsqueda y lista, y no admite operaciones de escritura en la versión actual. Se prevé que la operación de escritura sea compatible en futuras versiones.

Una nota más: esta versión requerida de 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`.

Herramientas

  1. list_namespaces
    • Recupera la lista de espacios de nombres en el clúster Nacos actual.
    • Aporte:
      • Ninguno
    • Devuelve: lista de espacios de nombres en el clúster Nacos actual.
  2. list_services
    • Esta herramienta recupera la lista de servicios bajo un espacio de nombres específico. El formato de la respuesta depende del parámetro withInstances : withInstances=true : Devuelve los detalles del servicio con instancias (objetos ServiceDetailInfo ). withInstances=false : Devuelve los metadatos del servicio sin instancias (objetos ServiceView ). **NOTA:** Si withInstances=true es cierto, la API puede consumir demasiada memoria y red. Si solo se desea obtener la lista de instancias con un solo servicio o pocos, se recomienda usar withInstances=false con la opción List Service Instances .
    • Aporte:
      • pageNo (número): el número de página actual, el valor predeterminado es 1.
      • pageSize (número): el tamaño de los servicios en cada página, el valor predeterminado es 100.
      • namespaceId (cadena, opcional): el namespaceId de los servicios, el valor predeterminado es public si falta.
      • groupNameParam (cadena, opcional): el patrón groupName de los servicios, el valor predeterminado es nulo, lo que significa todos los grupos si faltan.
      • serviceNameParam (cadena, opcional): el patrón serviceName de los servicios, el valor predeterminado es nulo, lo que significa todos los servicios si faltan.
      • ignoreEmptyService (bool, opcional): si se ignora el servicio vacío en el resultado, el valor predeterminado es verdadero.
      • withInstances (bool, opcional): si contiene instancias bajo cada servicio en el resultado, se recomienda y el valor predeterminado es falso.
    • Devuelve: lista de servicios bajo un espacio de nombres especificado.
  3. get_service
    • Esta herramienta recupera información detallada de un servicio específico, incluidos metadatos y clústeres, sin incluir la lista de instancias.
    • Aporte:
      • namespaceId (cadena, opcional): el namespaceId de los servicios, el valor predeterminado es public si falta.
      • groupName (cadena, opcional): el patrón groupName de los servicios, el valor predeterminado es DEFAULT_GROUP si falta.
      • serviceName (cadena): el patrón serviceName de los servicios, obligatorio.
    • Devoluciones: información detallada de un servicio especificado.
  4. list_service_instances
    • Esta herramienta recupera la lista de instancias de un servicio específico.
    • Aporte:
      • namespaceId (cadena, opcional): el namespaceId de los servicios, el valor predeterminado es public si falta.
      • groupName (cadena, opcional): el patrón groupName de los servicios, el valor predeterminado es DEFAULT_GROUP si falta.
      • serviceName (cadena): el patrón serviceName de los servicios, obligatorio.
      • clusterName (cadena, opcional): el nombre del clúster de instancias en servicio, opcional y el valor predeterminado es nulo, lo que significa que coincide con todos los clústeres.
    • Devuelve: lista de instancias para un servicio especificado.
  5. list_service_subscribers
    • Esta herramienta recupera la lista de suscriptores de un servicio específico.
    • Aporte:
      • pageNo (número): el número de página actual, el valor predeterminado es 1.
      • pageSize (número): el tamaño de los suscriptores del servicio en cada página, el valor predeterminado es 100.
      • namespaceId (cadena, opcional): el namespaceId de los servicios, el valor predeterminado es public si falta.
      • groupName (cadena, opcional): el patrón groupName de los servicios, el valor predeterminado es DEFAULT_GROUP si falta.
      • serviceName (cadena): el patrón serviceName de los servicios, obligatorio.
      • aggregation (bool, opcional): si se realiza la agregación desde todo el clúster.
    • Devuelve: lista de suscriptores para un servicio específico.
  6. list_configs
    • Esta herramienta recupera la lista de configuraciones bajo un espacio de nombres especificado.
    • Aporte:
      • pageNo (número): el número de página actual, el valor predeterminado es 1.
      • pageSize (número): el tamaño de las configuraciones en cada página, el valor predeterminado es 100.
      • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
      • groupName (cadena, opcional): el patrón groupName de las configuraciones, el valor predeterminado nulo significa todos los grupos.
      • dataId (cadena, opcional): el patrón dataId de las configuraciones, el valor predeterminado nulo significa todos los dataId.
      • type (cadena, opcional): el tipo de configuraciones, el valor predeterminado nulo significa todos los tipos.
      • configTags (cadena, opcional): las etiquetas de las configuraciones, el valor predeterminado nulo significa todas las etiquetas.
      • appName (cadena, opcional): el nombre de la aplicación de las configuraciones, el valor predeterminado nulo significa todos los nombres de las aplicaciones.
      • search (cadena, opcional): la forma de búsqueda de las configuraciones de lista, el valor predeterminado es blur , el valor opcional accurate .
    • Devuelve: lista de configuraciones bajo un espacio de nombres especificado.
  7. get_config
    • recupera los detalles de la configuración especificada.
    • Aporte:
      • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
      • groupName (cadena): el nombre del grupo de la configuración, obligatorio.
      • dataId (cadena): el dataId de la configuración, obligatorio.
    • Devuelve: los detalles de la configuración especificada.
  8. list_config_history
    • Esta herramienta recupera el historial de publicación completo de una configuración.
    • Aporte:
      • pageNo (número): el número de página actual, el valor predeterminado es 1.
      • pageSize (número): el tamaño de los registros del historial de configuración en cada página, el valor predeterminado es 100.
      • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
      • groupName (cadena): el nombre del grupo de la configuración, obligatorio.
      • dataId (cadena): el dataId de la configuración, obligatorio.
    • Devuelve: lista de configuraciones bajo un espacio de nombres especificado.
  9. get_config_history
    • recupera un registro de cambio histórico específico de una configuración.
    • Aporte:
      • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
      • groupName (cadena): el nombre del grupo de la configuración, obligatorio.
      • dataId (cadena): el dataId de la configuración, obligatorio.
      • nid (número): el ID real del registro del historial de configuración, obtenido de la herramienta de historial de configuración de lista, campo id .
    • Devuelve: registro histórico de cambios de una configuración.
  10. list_config_listeners
  • recupera la lista de oyentes suscritos a una configuración específica.
  • Aporte:
    • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
    • groupName (cadena): el nombre del grupo de la configuración, obligatorio.
    • dataId (cadena): el dataId de la configuración, obligatorio.
    • aggregation (bool, opcional): si se realiza la agregación desde todo el clúster.
  • Devuelve: lista de oyentes suscritos a una configuración específica.
  1. list_listened_configs
  • recupera listas de las configuraciones suscritas por una dirección IP de cliente específica.
  • Aporte:
    • namespaceId (cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado es public si falta.
    • ip (cadena): la IP del cliente de los oyentes de configuración. Obligatorio.
    • aggregation (bool, opcional): si se realiza la agregación desde todo el clúster.
  • Devuelve: enumera las configuraciones suscritas por una dirección IP de cliente específica.

Instalación

Uso de uv (recomendado)

Al usar uv no se requiere ninguna instalación específica. Usaremos uvx para ejecutar directamente mcp-server-nacos .

Uso de PIP

Alternativamente, puede instalar mcp-server-nacos a través de pip:

pip install mcp-server-nacos

Después de la instalación, puedes ejecutarlo como un script usando:

python -m mcp_server_nacos

Configuración

Uso con Claude Desktop

Agregue esto a su 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`" ], } }

Es posible que necesites introducir la ruta completa del ejecutable uvx en el campo command . Puedes obtenerla ejecutando which uvx en macOS/Linux o where uvx en Windows.

"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`" ], } }

Desarrollo

Si está realizando desarrollo local, simplemente siga los pasos:

  1. Clone este repositorio en su entorno local.
  2. Modifique los códigos en src/mcp_server_nacos para implementar las funciones deseadas.
  3. Prueba con la aplicación de escritorio Claude. Agrega lo siguiente a tu archivo 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" ] } }

Licencia

mcp-server-nacos está licenciado bajo la Licencia Apache 2.0. Esto significa que usted tiene libertad de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia Apache 2.0. Para más detalles, consulte el archivo LICENSE en el repositorio del proyecto.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor que permite la interacción con el descubrimiento de servicios y la gestión de configuración de Nacos a través de modelos de lenguaje grandes, proporcionando acceso de solo lectura a espacios de nombres, servicios y configuraciones.

  1. Overview
    1. Tools
  2. Installation
    1. Using uv (recommended)
    2. Using PIP
  3. Configuration
    1. Usage with Claude Desktop
  4. Development
    1. License
      ID: 4znv103es6