Servidor MCP Kubernetes
Servidor MCP que puede conectarse a un clúster de Kubernetes y administrarlo.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Uso con Claude Desktop
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}El servidor se conectará automáticamente a tu contexto actual de kubectl. Asegúrate de que:
kubectl instalado y en su PATH
Un archivo kubeconfig válido con contextos configurados
Acceso a un clúster de Kubernetes configurado para kubectl (por ejemplo, minikube, Rancher Desktop, GKE, etc.)
Helm v3 instalado y en tu PATH (no requiere Tiller). Opcional si no planeas usar Helm.
Puedes verificar tu conexión pidiéndole a Claude que enumere tus pods o cree una implementación de prueba.
Si tiene errores, abra una terminal estándar y ejecute kubectl get pods para ver si puede conectarse a su clúster sin problemas de credenciales.
Related MCP server: k8m
Uso con mcp-chat
mcp-chat es un cliente de chat CLI para servidores MCP. Puede usarlo para interactuar con el servidor Kubernetes.
npx mcp-chat --server "npx mcp-server-kubernetes"Como alternativa, pásele el archivo de configuración existente de Claude Desktop mencionado anteriormente (Linux debería pasar la ruta correcta a config):
Impermeable:
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"Ventanas:
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"Características
[x] Conectarse a un clúster de Kubernetes
[x] Enumere todos los pods, servicios e implementaciones
[x] Listar, describir nodos
[x] Crear, describir, eliminar un pod
[x] Enumere todos los espacios de nombres, cree un espacio de nombres
[x] Crear configuraciones de implementación y pods personalizados, actualizar réplicas de implementación
[x] Crear, describir, eliminar, actualizar un servicio
[x] Crear, obtener, actualizar, eliminar un ConfigMap
[x] Obtener registros de un pod para depuración (admite pods, implementaciones, trabajos y selectores de etiquetas)
[x] Soporte para Helm v3 para instalar gráficos
Instalar gráficos con valores personalizados
Desinstalar versiones
Actualizar versiones existentes
Compatibilidad con espacios de nombres
Soporte para la especificación de versiones
Soporte para repositorios personalizados
[x] Explicación de kubectl y soporte de recursos de la API de kubectl
[x] Obtener eventos de Kubernetes del clúster
[x] Reenvío de puerto a un pod o servicio
[x] Crear, enumerar y describir cronjobs
[x] Modo no destructivo para acceso de solo lectura y creación/actualización a clústeres
Desarrollo local
Asegúrate de tener instalado bun . Clona el repositorio e instala las dependencias:
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun installFlujo de trabajo de desarrollo
Inicie el servidor en modo de desarrollo (observa los cambios de archivos):
bun run devEjecutar pruebas unitarias:
bun run testConstruir el proyecto:
bun run buildPruebas locales con Inspector
npx @modelcontextprotocol/inspector node dist/index.js
# Follow further instructions on terminal for Inspector linkPruebas locales con Claude Desktop
{
"mcpServers": {
"mcp-server-kubernetes": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}Pruebas locales con mcp-chat
bun run chatContribuyendo
Consulte el archivo CONTRIBUTING.md para obtener más detalles.
Avanzado
Funciones avanzadas adicionales
Para obtener información más avanzada, como el uso del transporte SSE, el modo no destructivo con ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS , consulte ADVANCED_README.md .
Arquitectura
Consulte este enlace de DeepWiki para obtener una descripción general de la arquitectura más detallada creada por Devin.
Esta sección describe la arquitectura de alto nivel del servidor Kubernetes MCP.
Flujo de solicitud
El diagrama de secuencia a continuación ilustra cómo fluyen las solicitudes a través del sistema:
sequenceDiagram
participant Client
participant Transport as StdioTransport
participant Server as MCP Server
participant Handler as Request Handler
participant K8sManager as KubernetesManager
participant K8s as Kubernetes API
Client->>Transport: Send Request via STDIO
Transport->>Server: Forward Request
alt Tools Request
Server->>Handler: Route to tools handler
Handler->>K8sManager: Execute tool operation
K8sManager->>K8s: Make API call
K8s-->>K8sManager: Return result
K8sManager-->>Handler: Process response
Handler-->>Server: Return tool result
else Resource Request
Server->>Handler: Route to resource handler
Handler->>K8sManager: Get resource data
K8sManager->>K8s: Query API
K8s-->>K8sManager: Return data
K8sManager-->>Handler: Format response
Handler-->>Server: Return resource data
end
Server-->>Transport: Send Response
Transport-->>Client: Return Final ResponsePublicación de nuevo lanzamiento
Vaya a la página de lanzamientos , haga clic en "Borrador de nueva versión", haga clic en "Elegir una etiqueta" y cree una nueva etiqueta escribiendo un nuevo número de versión en formato semver "v{principal}.{secundaria}.{parche}". Luego, escriba el título de la versión "Versión v{principal}.{secundaria}.{parche}" y la descripción/registro de cambios si es necesario, y haga clic en "Publicar versión".
Esto creará una nueva etiqueta que activará una nueva compilación de lanzamiento mediante el flujo de trabajo cd.yml. Una vez completado correctamente, la nueva versión se publicará en npm . Tenga en cuenta que no es necesario actualizar manualmente la versión de package.json, ya que el flujo de trabajo actualizará automáticamente el número de versión en el archivo package.json y enviará una confirmación a main.
No planeado
Autenticación/adición de clústeres a kubectx.