kubeaid-mcp
KubeAid MCP
Un servidor MCP para clústeres de Kubernetes gestionados con KubeAid. Conéctalo a Claude Code, Claude Desktop, Cursor o a cualquier cliente compatible con MCP y haz preguntas como «¿qué apps están desincronizadas?», «¿por qué está degradado kube-prometheus?» o «sincroniza la app cert-manager»: el modelo responde llamando a las herramientas de este servidor, que hablan con tu clúster a través de tus propias credenciales kubeconfig.
Construido en TypeScript sobre el @modelcontextprotocol/sdk oficial y @kubernetes/client-node.
Autor: Deep Poharkar
¿Por qué es específico de KubeAid?
KubeAid gestiona los clústeres al estilo GitOps: cada aplicación es una Application de ArgoCD generada desde tu repositorio kubeaid-config, y la auto-sincronización está deshabilitada por defecto: la divergencia entre Git y el clúster es normal y espera a una sincronización deliberada. Un asistente genérico de Kubernetes no entiende ese flujo de trabajo. Este servidor sí:
El CR
Applicationde ArgoCD es un ciudadano de primera clase: estado de sincronización, salud, condiciones de error y recursos divergentes están a una sola llamada de herramienta.La sincronización se modela como la decisión explícita de «desplegar ahora» que es en KubeAid: protegida por una flag de opt-in, con soporte de
dry_run, y nunca permitida en contextos que marques como protegidos.Los prompts incluidos codifican los hábitos operativos de KubeAid: revisa la divergencia antes de sincronizar, arregla las cosas en el repositorio kubeaid-config en lugar de editar el clúster a mano.
Herramientas
Herramientas de lectura — siempre registradas:
Tool | Qué hace |
| Contextos de kubeconfig que el servidor puede usar como destino, con indicadores de contexto por defecto y de protección contra escritura. |
| Todas las apps de ArgoCD gestionadas por KubeAid con estado de sincronización, salud, revisión y flag de auto-sync. Admite |
| Una app en profundidad: orígenes, condiciones de error, recursos divergentes/no saludables, último resultado de sincronización, historial de despliegues. |
| Namespaces con estado y antigüedad. |
| Nodos con estado Ready, roles, versión de kubelet, IP interna. |
| Pods con estado derivado al estilo kubectl (CrashLoopBackOff, etc.), número de listos, reinicios, nodo, antigüedad. |
| Estados por contenedor y detalles del último crash, condiciones y eventos recientes del pod. |
| Sigue los logs del contenedor; con |
| Deployments con recuentos de listos/actualizados/disponibles. |
| Eventos recientes, opcionalmente solo advertencias, por namespace o en todo el clúster. |
| Cualquier recurso por apiVersion/kind/nombre, incluidos CRDs como |
Herramientas de escritura — registradas solo cuando KUBEAID_MCP_ALLOW_WRITES=true:
Tool | Qué hace |
| Dispara una sincronización de ArgoCD (la acción «desplegar ahora» de KubeAid). Admite |
| Establece el número de réplicas de un deployment. |
| Reinicio gradual de un deployment/statefulset/daemonset. |
| Elimina un pod bloqueado para que su controlador lo reemplace. |
Cada herramienta acepta un argumento opcional context para apuntar a cualquier clúster de tu kubeconfig desde un único proceso del servidor.
Prompts
Los prompts aparecen como comandos de barra / elementos de menú en el cliente y guían al modelo a través de un flujo de trabajo usando las herramientas anteriores:
Prompt | Flujo de trabajo |
| Diagnostica la causa raíz de una app Degraded/OutOfSync: condiciones → recursos → logs de pods → recomendación. |
| Enumera todas las apps divergentes, evalúa el riesgo de cada sincronización pendiente y pregunta antes de sincronizar nada. |
| Barre nodos, apps, pods y eventos de advertencia; informa de los hallazgos por severidad. |
Inicio rápido
Requiere Node.js 20+.
git clone <your-repo-url> kubeaid-mcp
cd kubeaid-mcp
npm install
npm run buildClaude Code
claude mcp add kubeaid -- node "$(pwd)/dist/index.js"De solo lectura por defecto. Para habilitar escrituras sin poder tocar producción:
claude mcp add kubeaid \
-e KUBEAID_MCP_ALLOW_WRITES=true \
-e KUBEAID_MCP_PROTECTED_CONTEXTS=prod-cluster-1,prod-cluster-2 \
-- node "$(pwd)/dist/index.js"Claude Desktop
Habilita Settings → Developer → Local MCP servers y luego añade al archivo de configuración que se abre en esa página:
{
"mcpServers": {
"kubeaid": {
"command": "node",
"args": ["/absolute/path/to/kubeaid-mcp/dist/index.js"],
"env": {
"KUBEAID_MCP_ALLOW_WRITES": "true",
"KUBEAID_MCP_PROTECTED_CONTEXTS": "prod-cluster-1"
}
}
}
}Cierra y vuelve a abrir la aplicación por completo después.
Configuración
Toda la configuración se hace mediante variables de entorno, que se leen una vez al arrancar:
Variable | Default | Significado |
| búsqueda predeterminada de client-node ( | Ruta del kubeconfig. |
| sigue el current-context en vivo | Fija un contexto predeterminado fijo. Si no se define, |
|
| Namespace que contiene los CR |
|
| Registra las herramientas de mutación. |
| ninguno | Contextos separados por comas que rechazan cualquier llamada mutadora, incluso con escrituras habilitadas. |
Modelo de seguridad
Tres capas independientes:
Control de capacidades — con las escrituras deshabilitadas (el valor por defecto), las herramientas mutadoras nunca se registran, por lo que el modelo ni siquiera puede verlas.
Contextos protegidos — cada manejador de mutación vuelve a comprobar el contexto de destino contra
KUBEAID_MCP_PROTECTED_CONTEXTSy rechaza los protegidos, sin importar lo que pida el modelo.Confirmación del cliente — las herramientas llevan anotaciones MCP
readOnlyHint/destructiveHint, de modo que los clientes que se comportan correctamente te piden confirmación antes de llamadas arriesgadas.
El servidor no guarda credenciales propias; solo puede hacer aquello para lo que tu identidad de kubeconfig ya está autorizada mediante RBAC.
Desarrollo
npm run typecheck # strict TS, no emit
npm run build # compile to dist/
npm run smoke # spawn the server, MCP handshake, list tools + prompts
KUBEAID_MCP_ALLOW_WRITES=true npm run smoke # verify write tools registerLa prueba de humo no necesita clúster: utiliza el protocolo JSON-RPC sin procesar a través de stdio.
Hoja de ruta
check_chart_updates: comparar las versiones de los charts desplegados con el directorio upstreamargocd-helm-chartsde KubeAid.Ayudas para sealed-secrets: listar el estado de
SealedSecret, marcar los unseals fallidos.Herramientas de Prometheus/Alertmanager: mostrar alertas activas del stack kube-prometheus que KubeAid incluye.
Agradecimientos
KubeAid, de Obmondo — el stack de gestión de clústeres para el que está construido este servidor.
Argo CD — el motor GitOps que subyace a KubeAid.
Licencia
MIT © 2026 Deep Poharkar
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
An MCP server for Arcjet - the runtime security platform that ships with your AI code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/deep-poharkar/kubeaid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server