Servidor MCP de Kubernetes - Detalles del Proyecto
Resumen del Proyecto
El servidor MCP de Kubernetes es un servidor de Protocolo de Contenido del Modelo (Model Content Protocol) diseñado específicamente para la gestión de clústeres de Kubernetes. Permite que los agentes de IA (como Claude) se conecten y gestionen clústeres de Kubernetes a través de comandos en lenguaje natural, simplificando enormemente la complejidad de la orquestación de contenedores y las operaciones del clúster.
Dirección del Proyecto: https://github.com/Flux159/mcp-server-kubernetes
Características Principales
🎯 Conexión y Gestión de Clústeres
- Conexión automática al clúster configurado en el contexto actual de kubectl.
- Soporte para múltiples entornos de Kubernetes (minikube, Rancher Desktop, GKE, etc.).
- Totalmente compatible con la configuración existente de kubeconfig.
📦 Gestión de Pods y Despliegues
- Operaciones de Pod: Crear, describir, eliminar Pods.
- Gestión de Despliegues: Listar todos los despliegues, actualizar el número de réplicas.
- Configuración Personalizada: Soporte para crear configuraciones personalizadas de Pods y despliegues.
- Visualización de Logs: Obtener logs de Pods para depuración (soporte para Pods, despliegues, Jobs y selectores de etiquetas).
🌐 Gestión de Servicios y Redes
- Operaciones de Servicio: Crear, describir, eliminar, actualizar servicios.
- Redirección de Puertos: Soporte para la redirección de puertos de Pods o servicios.
- Configuración de Red: Soporte completo para la gestión de redes de Kubernetes.
🗂️ Gestión de Recursos y Configuración
- Namespaces: Listar todos los namespaces, crear nuevos namespaces.
- ConfigMap: Crear, obtener, actualizar, eliminar mapas de configuración.
- Gestión de Nodos: Listar y describir los nodos del clúster.
- Tareas Programadas: Crear, listar y describir CronJobs.
⚙️ Soporte de Integración con Helm
- Instalación de Charts: Instalar charts de Helm con valores personalizados.
- Gestión de Versiones: Soporte para la especificación de versiones y repositorios personalizados.
- Gestión de Releases: Desinstalar y actualizar releases existentes.
- Soporte de Namespaces: Aislamiento completo de namespaces.
🔧 Funciones Avanzadas
- Soporte de kubectl: Comandos kubectl explain y kubectl api-resources.
- Monitorización de Eventos: Obtener información de eventos del clúster.
- Modo No Destructivo: Modo seguro que solo permite operaciones de lectura y creación/actualización.
- Monitorización en Tiempo Real: Soporte para la visualización en tiempo real del estado del clúster.
Arquitectura del Sistema
Diagrama de Arquitectura
Cliente (Claude/Agente de IA)
↓
StdioTransport (Capa de transporte de comunicación)
↓
Servidor MCP (Procesamiento de protocolo)
↓
Request Handler (Enrutamiento de solicitudes)
↓
KubernetesManager (Gestor de K8s)
↓
API de Kubernetes (API del clúster)
Flujo de Solicitud
- Solicitud del Cliente: El agente de IA envía la solicitud a través de STDIO.
- Capa de Transporte: StdioTransport reenvía la solicitud al servidor MCP.
- Enrutamiento: El servidor enruta la solicitud al manejador correspondiente.
- Ejecución de Herramientas: KubernetesManager ejecuta las operaciones específicas de K8s.
- Llamada a la API: Interacción con la API de Kubernetes.
- Retorno de la Respuesta: El resultado del procesamiento se devuelve al cliente capa por capa.
Instalación y Configuración
Requisitos del Entorno
- kubectl: Instalado y configurado en el PATH.
- kubeconfig: Archivo kubeconfig válido y configuración de contexto.
- Clúster de Kubernetes: Clúster accesible (minikube, GKE, EKS, etc.).
- Helm v3: Opcional, si se desea utilizar la funcionalidad de Helm.
- Node.js: Entorno de ejecución.
Instalación Rápida
Instalación a través de NPM (Recomendado)
# Instalación global
npm install -g mcp-server-kubernetes
# O ejecutar directamente usando npx
npx mcp-server-kubernetes
Integración con Claude Desktop
Editar el archivo claude_desktop_config.json
:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Verificación de la Conexión
Después de la instalación, puede:
- Pedirle a Claude que liste sus Pods.
- Crear un despliegue de prueba.
- Si hay errores, primero ejecute
kubectl get pods
en la terminal para verificar la conexión.
Configuración del Entorno de Desarrollo
Desarrollo Local
# Clonar el repositorio
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
# Instalar dependencias (requiere bun)
bun install
# Iniciar en modo de desarrollo (escuchar cambios en los archivos)
bun run dev
# Ejecutar pruebas unitarias
bun run test
# Construir el proyecto
bun run build
Casos de Uso y Ejemplos
🚀 Escenarios de Operaciones Diarias
- "Listar el estado de todos los Pods" - Ver rápidamente el estado de salud del clúster.
- "Crear un despliegue de nginx con 3 réplicas" - Desplegar rápidamente una aplicación.
- "Ver los logs de los Pods con errores en el namespace default" - Solución de problemas.
- "Redirigir el puerto de la aplicación al puerto 8080 local" - Depuración local.
📊 Monitorización y Depuración
- "Mostrar todos los eventos en el clúster" - Monitorizar la actividad del clúster.
- "Describir la información detallada del nodo node-1" - Análisis de recursos.
- "Ver la ejecución reciente de CronJobs" - Monitorización de tareas programadas.
🛠️ Despliegue de Aplicaciones
- "Instalar el chart de Redis usando Helm" - Desplegar rápidamente middleware.
- "Actualizar el número de réplicas del despliegue web-app a 5" - Operación de escalado.
- "Crear un ConfigMap para el entorno de producción" - Gestión de configuración.
Configuración Avanzada
Modo No Destructivo
Establecer la variable de entorno para habilitar el modo seguro:
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
En este modo, solo se permiten operaciones de lectura y creación/actualización, prohibiendo las operaciones de eliminación.
Protocolo de Transferencia SSE
Soporte para el protocolo de transferencia de eventos push del servidor, consulte el ADVANCED_README.md
del proyecto para obtener detalles de la configuración.
Autenticación del Clúster
Soporte para múltiples métodos de autenticación de Kubernetes:
- Autenticación por certificado
- Autenticación por Token
- Autenticación OIDC
- Integración con IAM del proveedor de la nube
Pila Tecnológica y Dependencias
Tecnologías Centrales
- Entorno de Ejecución: Node.js + Bun
- Protocolo: Model Content Protocol (MCP)
- Cliente de Kubernetes: Official Kubernetes JavaScript Client
- Capa de Transporte: STDIO Transport
- Gestión de Paquetes: Helm v3
Dependencias Principales
@kubernetes/client-node
: Cliente oficial de Kubernetes en JS.
@modelcontextprotocol/sdk
: SDK del protocolo MCP.
commander
: Análisis de parámetros de línea de comandos.
yaml
: Procesamiento de archivos YAML.
Proyectos Relacionados y Ecosistema
Ecosistema MCP
- mcp-chat: Cliente de chat CLI para el servidor MCP.
- MCP Inspector: Herramienta de depuración del protocolo MCP.
- Claude Desktop: Aplicación de escritorio de asistente de IA que soporta MCP.
Cadena de Herramientas de Kubernetes
- kubectl: Herramienta de línea de comandos oficial.
- Helm: Gestor de paquetes.
- minikube: Entorno de desarrollo local.
- Rancher Desktop: Entorno de Kubernetes de escritorio.
Perspectivas y Valor de la Aplicación
🎯 Mejora de la Eficiencia Operativa
Operar clústeres de Kubernetes a través del lenguaje natural reduce la curva de aprendizaje y mejora la eficiencia operativa. Incluso los principiantes pueden comenzar rápidamente con tareas complejas de gestión de clústeres.
🤖 Operaciones Inteligentes
Combinando la capacidad de análisis inteligente de los agentes de IA, se puede lograr:
- Diagnóstico automático de fallos
- Recomendación inteligente de recursos
- Mantenimiento predictivo
- Optimización automatizada del despliegue
🔗 Integración Perfecta
Totalmente compatible con el ecosistema Kubernetes existente, sin necesidad de cambiar los flujos de trabajo existentes, se puede introducir gradualmente el mantenimiento asistido por IA.
📈 Dirección Futura del Desarrollo
- Soporte para más tipos de recursos de Kubernetes
- Integración con más herramientas nativas de la nube
- Mejora de la seguridad y el control de permisos
- Soporte para la gestión de múltiples clústeres
- Interfaz gráfica de usuario
Resumen
El proyecto del servidor MCP de Kubernetes representa un intento innovador de combinar la IA y las tecnologías nativas de la nube. Simplifica la complejidad de la gestión de clústeres de Kubernetes a través de una interfaz de lenguaje natural, permitiendo a los operadores gestionar aplicaciones contenerizadas de forma más intuitiva y eficiente.
Tanto si es un principiante en Kubernetes como un experto en operaciones experimentado, esta herramienta puede mejorar significativamente su eficiencia laboral. A través de la integración con asistentes de IA como Claude, abre nuevas posibilidades para las operaciones inteligentes y es una valiosa adición a la cadena de herramientas DevOps moderna.
Con el continuo desarrollo de las tecnologías nativas de la nube y el continuo avance de las tecnologías de IA, creemos que este tipo de herramientas desempeñarán un papel cada vez más importante en las operaciones de TI futuras.