Integrations
Provides a comprehensive interface for managing Kubernetes clusters, including resource discovery, listing, detailed inspection, log retrieval, metrics collection, event tracking, and resource creation through a standardized MCP protocol.
Supports creation of Kubernetes resources from YAML manifests, enabling deployment of complex resources through the createorUpdateResource tool.
Servidor MCP de Kubernetes
Un servidor de Protocolo de contexto de modelo (MCP) de Kubernetes que proporciona herramientas para interactuar con clústeres de Kubernetes a través de una interfaz estandarizada.
Características
- Descubrimiento de recursos de API : obtenga todos los recursos de API disponibles en su clúster de Kubernetes
- Listado de recursos : enumera recursos de cualquier tipo con filtrado de etiquetas y espacios de nombres opcional
- Detalles del recurso : obtenga información detallada sobre recursos específicos de Kubernetes
- Descripción del recurso : Obtenga descripciones completas de los recursos de Kubernetes
- Registros de pods : recupera registros de pods específicos
- Métricas de nodo : obtenga métricas de uso de recursos para nodos específicos
- Métricas de pod : obtenga métricas de CPU y memoria para pods específicos
- Listado de eventos : enumera eventos dentro de un espacio de nombres o para un recurso específico.
- Creación de recursos : crea nuevos recursos de Kubernetes a partir de un manifiesto.
- Interfaz estandarizada : utiliza el protocolo MCP para una interacción consistente con las herramientas
- Configuración flexible : admite diferentes contextos de Kubernetes y alcances de recursos
Prerrequisitos
- Vaya a 1.20 o posterior
- Acceso a un clúster de Kubernetes
kubectl
configurado con acceso de clúster apropiado
Instalación
- Clonar el repositorio:
- Instalar dependencias:
- Construir el servidor:
Uso
Iniciando el servidor
Ejecutar el servidor:
El servidor se iniciará y escuchará en stdin/stdout los mensajes del protocolo MCP.
Herramientas disponibles
1. getAPIResources
Recupera todos los recursos de API disponibles en el clúster de Kubernetes.
Parámetros:
includeNamespaceScoped
(booleano): si se deben incluir recursos con alcance de espacio de nombres (el valor predeterminado es verdadero)includeClusterScoped
(booleano): si se deben incluir recursos con alcance de clúster (el valor predeterminado es verdadero)
Ejemplo:
2. listResources
Enumera todas las instancias de un tipo de recurso específico.
Parámetros:
Kind
(cadena, obligatoria): el tipo de recurso a enumerar (por ejemplo, "Pod", "Implementación")namespace
(cadena): el espacio de nombres del cual se listarán los recursos (si se omite, se listan todos los espacios de nombres para los recursos con espacios de nombres)labelSelector
(cadena): Filtrar recursos por selector de etiquetas
Ejemplo:
3. getResource
Recupera información detallada sobre un recurso específico.
Parámetros:
kind
(cadena, obligatorio): el tipo de recurso a obtener (por ejemplo, "Pod", "Implementación")name
(cadena, obligatorio): el nombre del recurso a obtenernamespace
(cadena): el espacio de nombres del recurso (si es un recurso con espacio de nombres)
Ejemplo:
4. describeResource
Describe un recurso en el clúster de Kubernetes según el tipo y nombre determinados, similar a kubectl describe
.
Parámetros:
Kind
(cadena, obligatoria): el tipo de recurso a describir (por ejemplo, "Pod", "Implementación")name
(cadena, obligatoria): el nombre del recurso a describirnamespace
(cadena): el espacio de nombres del recurso (si es un recurso con espacio de nombres)
Ejemplo:
5. getPodsLogs
Recupera los registros de un pod específico en el clúster de Kubernetes.
Parámetros:
Name
(cadena, obligatoria): el nombre del pod del que se obtendrán los registros.namespace
(cadena): el espacio de nombres del pod (si es un recurso con espacio de nombres).
Ejemplo:
6. getNodeMetrics
Recupera métricas de uso de recursos para un nodo específico en el clúster de Kubernetes.
Parámetros:
Name
(cadena, obligatoria): el nombre del nodo del que se obtendrán las métricas.
Ejemplo:
7. getPodMetrics
Recupera métricas de CPU y memoria para un pod específico en el clúster de Kubernetes.
Parámetros:
namespace
(cadena, obligatoria): el espacio de nombres del pod.podName
(cadena, obligatoria): el nombre del pod.
Ejemplo:
8. getEvents
Recupera eventos para un espacio de nombres o recurso específico en el clúster de Kubernetes.
Parámetros:
namespace
(cadena): El espacio de nombres del que se obtienen los eventos. Si se omite, se consideran los eventos de todos los espacios de nombres (si RBAC lo permite).resourceName
(cadena): el nombre de un recurso específico (por ejemplo, un nombre de Pod) para filtrar eventos.resourceKind
(cadena): el tipo de recurso específico (por ejemplo, "Pod") si se proporcionaresourceName
.
Ejemplo (eventos de espacio de nombres):
Ejemplo (eventos de recursos):
9. createorUpdateResource
Crea un nuevo recurso en el clúster de Kubernetes a partir de un manifiesto YAML o JSON.
Parámetros:
manifest
(cadena, obligatorio): el manifiesto YAML o JSON del recurso a crear.namespace
(cadena, opcional): El espacio de nombres donde se creará el recurso. Si el manifiesto contiene un espacio de nombres, este parámetro puede omitirse o usarse para sobrescribirlo (el comportamiento puede depender de la implementación del servidor).
Ejemplo:
Desarrollo
Estructura del proyecto
Agregar nuevas herramientas
Para agregar una nueva herramienta:
- Cree una nueva función de definición de herramienta (por ejemplo,
MyNewTool() mcp.Tool
) enhandlers/handlers.go
- Implementar la función del controlador de herramientas (por ejemplo,
MyNewHandler(client *k8s.Client) func(...)
) enhandlers/handlers.go
- Registre la herramienta y su controlador en
main.go
usandos.AddTool()
Contribuyendo
¡Agradecemos sus contribuciones! Consulte CONTRIBUTING.md para obtener más información sobre cómo contribuir a este proyecto.
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Un servidor de Protocolo de contexto de modelo (MCP) de Kubernetes que proporciona herramientas para interactuar con clústeres de Kubernetes a través de una interfaz estandarizada.
Related MCP Servers
- -securityAlicense-qualityThis project is intended as a both MCP server connecting to Kubernetes and a library to build more servers for any custom resources in Kubernetes.Last updated -267GoMIT License
- Python
- Python
- MIT License