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 :
Herramientas
list_namespacesRecupera 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.
list_servicesEsta 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 (objetosServiceDetailInfo).withInstances=false: Devuelve los metadatos del servicio sin instancias (objetosServiceView). **NOTA:** SiwithInstances=truees 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 usarwithInstances=falsecon la opciónList 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 espublicsi 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.
get_serviceEsta 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 espublicsi falta.groupName(cadena, opcional): el patrón groupName de los servicios, el valor predeterminado esDEFAULT_GROUPsi falta.serviceName(cadena): el patrón serviceName de los servicios, obligatorio.
Devoluciones: información detallada de un servicio especificado.
list_service_instancesEsta herramienta recupera la lista de instancias de un servicio específico.
Aporte:
namespaceId(cadena, opcional): el namespaceId de los servicios, el valor predeterminado espublicsi falta.groupName(cadena, opcional): el patrón groupName de los servicios, el valor predeterminado esDEFAULT_GROUPsi 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.
list_service_subscribersEsta 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 espublicsi falta.groupName(cadena, opcional): el patrón groupName de los servicios, el valor predeterminado esDEFAULT_GROUPsi 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.
list_configsEsta 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 espublicsi 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 esblur, el valor opcionalaccurate.
Devuelve: lista de configuraciones bajo un espacio de nombres especificado.
get_configrecupera los detalles de la configuración especificada.
Aporte:
namespaceId(cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado espublicsi 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.
list_config_historyEsta 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 espublicsi 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.
get_config_historyrecupera un registro de cambio histórico específico de una configuración.
Aporte:
namespaceId(cadena, opcional): el namespaceId de las configuraciones, el valor predeterminado espublicsi 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, campoid.
Devuelve: registro histórico de cambios de una configuración.
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 espublicsi 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.
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 espublicsi 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.
Related MCP server: Sonos MCP Server
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:
Después de la instalación, puedes ejecutarlo como un script usando:
Configuración
Uso con Claude Desktop
Agregue esto a su claude_desktop_config.json :
Es posible que necesites introducir la ruta completa del ejecutable
uvxen el campocommand. Puedes obtenerla ejecutandowhich uvxen macOS/Linux owhere uvxen Windows.
Desarrollo
Si está realizando desarrollo local, simplemente siga los pasos:
Clone este repositorio en su entorno local.
Modifique los códigos en
src/mcp_server_nacospara implementar las funciones deseadas.Prueba con la aplicación de escritorio Claude. Agrega lo siguiente a tu archivo claude_desktop_config.json:
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.