MCP Kubernetes Server
Controla clústeres de Kubernetes mediante interacciones con Modelos de Lenguaje de Gran Escala (LLMs).
Documentación
MCP Kubernetes Server
Este es un servidor MCP (Model Context Protocol) para Kubernetes que proporciona control sobre clústeres de Kubernetes a través de interacciones con LLMs.
Resumen
Este cliente te permite realizar operaciones comunes de Kubernetes a través de herramientas MCP. Envuelve los comandos kubectl para proporcionar una interfaz simple para gestionar recursos de Kubernetes. El Model Context Protocol (MCP) permite una interacción fluida entre los modelos de lenguaje y las operaciones de Kubernetes.
¿Qué es MCP?
Model Context Protocol (MCP) es un marco que permite a los Modelos de Lenguaje interactuar con herramientas y servicios externos de manera estructurada. Proporciona:
- Una forma estandarizada de exponer funcionalidad a los modelos de lenguaje
- Gestión de contexto para operaciones
- Descubrimiento y documentación de herramientas
- Interacciones seguras en cuanto a tipos entre modelos y herramientas
Ejemplos de uso
- Crea un nuevo deployment para mí con nombre nginx-app e imagen nginx:latest en el namespace de producción con 3 réplicas.
- Actualiza el deployment nginx-app a la versión 1.19 en el namespace de producción.
- Escala el deployment nginx-app a 5 réplicas en el namespace de producción.
- Obtén los pods en el namespace de producción.
- Obtén todos los namespaces en el clúster.
- Obtén todos los nodos en el clúster.
- Obtén todos los servicios en el clúster.
- Obtén todos los deployments en el clúster.
- Obtén todos los jobs en el clúster.
- Obtén todos los cronjobs en el clúster.
- Obtén todos los statefulsets en el clúster.
- Obtén todos los daemonsets en el clúster.
- ¿Cuál es el contexto actual?
- lista todos los contextos.
- cambia al contexto .
- Obtén los logs del pod en el namespace de producción.
- Obtén los eventos en el namespace de producción.
- anota el pod con key1=value1 en el namespace de producción.
- elimina la anotación key1 del pod en el namespace de producción.
- añade la etiqueta key1=value1 al pod en el namespace de producción.
- elimina la etiqueta key1 del pod en el namespace de producción.
- expone el deployment nginx-app en el namespace de producción en el puerto 80.
- reenvía el puerto del pod, deployment, service con nombre en el namespace de producción al puerto local 8080.
- elimina el pod, deployment, service, job, cronjob, statefulset, daemonset con nombre en el namespace de producción.
Próximas funciones
- Crear cluster role.
- eliminar cluster role.
- crear cluster role binding.
- eliminar cluster role binding.
- crear namespace.
- eliminar namespace.
- crear service account.
- eliminar service account.
- crear role.
- eliminar role.
- crear role binding.a
- eliminar role binding.
Integración con LLM
Este cliente MCP está diseñado para funcionar sin problemas con Large Language Models (LLMs). Las funciones están decoradas con @mcp.tool(), lo que las hace accesibles a los LLMs a través del marco Model Context Protocol.
Ejemplos de prompts para LLM
Los LLMs pueden interactuar con tu clúster de Kubernetes usando lenguaje natural. Aquí hay algunos ejemplos de prompts:
- "Crea un nuevo deployment de nginx con 3 réplicas en el namespace de producción"
- "Escala el deployment nginx-app a 5 réplicas"
- "Actualiza la imagen de nginx-app a la versión 1.19"
El LLM interpretará estas solicitudes en lenguaje natural y llamará a las funciones MCP apropiadas con los parámetros correctos.
Beneficios de la integración con LLM
- Interfaz de lenguaje natural: Gestiona recursos de Kubernetes usando lenguaje conversacional
- Complejidad de comandos reducida: No es necesario recordar la sintaxis exacta de kubectl
- Prevención de errores: Los LLMs pueden validar entradas y proporcionar mensajes de error útiles
- Conciencia de contexto: Los LLMs pueden mantener el contexto a través de múltiples operaciones
- Interacciones estructuradas: MCP garantiza interacciones seguras en cuanto a tipos y documentadas entre LLMs y herramientas
Requisitos
- Acceso al clúster de Kubernetes configurado mediante
kubectl - Python 3.x
- Marco MCP instalado y configurado
Nota de seguridad
Al usar este cliente con LLMs, asegúrate de que:
- Existan controles de acceso adecuados para tu clúster de Kubernetes
- El servidor MCP se ejecute en un entorno seguro
- El acceso a la API esté correctamente autenticado y autorizado
Uso con Claude Desktop
{
"mcpServers": {
"Kubernetes": {
"command": "uv",
"args": [
"--directory",
"~/mcp/mcp-k8s-server",
"run",
"kubernetes.py"
]
}
}
}
Contribuciones
¡Damos la bienvenida a contribuciones al MCP Kubernetes Server! Si deseas contribuir:
- Haz un fork del repositorio
- Crea una nueva rama para tu función (
git checkout -b feature/amazing-feature) - Realiza tus cambios
- Escribe o actualiza pruebas según sea necesario
- Haz commit de tus cambios (
git commit -m 'Add some amazing feature') - Haz push a tu rama (
git push origin feature/amazing-feature) - Abre un Pull Request
Para cambios importantes, abre primero un issue para discutir lo que te gustaría cambiar.
Instalación mediante Smithery
Para instalar Kubernetes Server para Claude Desktop automáticamente mediante Smithery:
npx -y @smithery/cli install @abhijeetka/mcp-k8s-server --client claude