Skip to main content
Glama

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 Application de 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

list_contexts

Contextos de kubeconfig que el servidor puede usar como destino, con indicadores de contexto por defecto y de protección contra escritura.

list_argocd_apps

Todas las apps de ArgoCD gestionadas por KubeAid con estado de sincronización, salud, revisión y flag de auto-sync. Admite only_problems.

describe_argocd_app

Una app en profundidad: orígenes, condiciones de error, recursos divergentes/no saludables, último resultado de sincronización, historial de despliegues.

list_namespaces

Namespaces con estado y antigüedad.

list_nodes

Nodos con estado Ready, roles, versión de kubelet, IP interna.

list_pods

Pods con estado derivado al estilo kubectl (CrashLoopBackOff, etc.), número de listos, reinicios, nodo, antigüedad.

describe_pod

Estados por contenedor y detalles del último crash, condiciones y eventos recientes del pod.

get_pod_logs

Sigue los logs del contenedor; con previous: true lee los logs de la instancia que falló.

list_deployments

Deployments con recuentos de listos/actualizados/disponibles.

get_events

Eventos recientes, opcionalmente solo advertencias, por namespace o en todo el clúster.

describe_resource

Cualquier recurso por apiVersion/kind/nombre, incluidos CRDs como SealedSecret o Certificate.

Herramientas de escritura — registradas solo cuando KUBEAID_MCP_ALLOW_WRITES=true:

Tool

Qué hace

sync_argocd_app

Dispara una sincronización de ArgoCD (la acción «desplegar ahora» de KubeAid). Admite revision, prune, dry_run.

scale_deployment

Establece el número de réplicas de un deployment.

rollout_restart

Reinicio gradual de un deployment/statefulset/daemonset.

delete_pod

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

diagnose_app

Diagnostica la causa raíz de una app Degraded/OutOfSync: condiciones → recursos → logs de pods → recomendación.

sync_review

Enumera todas las apps divergentes, evalúa el riesgo de cada sincronización pendiente y pregunta antes de sincronizar nada.

cluster_health_check

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 build

Claude 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

KUBECONFIG

búsqueda predeterminada de client-node (~/.kube/config)

Ruta del kubeconfig.

KUBEAID_MCP_CONTEXT

sigue el current-context en vivo

Fija un contexto predeterminado fijo. Si no se define, kubectl config use-context reorienta el servidor a mitad de sesión; los argumentos context por llamada siempre tienen prioridad.

KUBEAID_MCP_ARGOCD_NAMESPACE

argocd

Namespace que contiene los CR Application de ArgoCD.

KUBEAID_MCP_ALLOW_WRITES

false

Registra las herramientas de mutación.

KUBEAID_MCP_PROTECTED_CONTEXTS

ninguno

Contextos separados por comas que rechazan cualquier llamada mutadora, incluso con escrituras habilitadas.

Modelo de seguridad

Tres capas independientes:

  1. 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.

  2. Contextos protegidos — cada manejador de mutación vuelve a comprobar el contexto de destino contra KUBEAID_MCP_PROTECTED_CONTEXTS y rechaza los protegidos, sin importar lo que pida el modelo.

  3. 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 register

La 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 upstream argocd-helm-charts de 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

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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