Skip to main content
Glama

KubeAid MCP

Ein MCP-Server für KubeAid-verwaltete Kubernetes-Cluster. Integrieren Sie ihn in Claude Code, Claude Desktop, Cursor oder einen beliebigen MCP-kompatiblen Client und stellen Sie Fragen wie „welche Apps sind nicht mehr synchron?“, „warum ist kube-prometheus degraded?“ oder „synchronisiere die cert-manager-App“ — das Modell antwortet, indem es die Tools dieses Servers aufruft, die über Ihre eigenen kubeconfig-Anmeldeinformationen mit Ihrem Cluster sprechen.

In TypeScript gebaut auf dem offiziellen @modelcontextprotocol/sdk und @kubernetes/client-node.

Autor: Deep Poharkar

Warum KubeAid-spezifisch?

KubeAid betreibt Cluster auf GitOps-Weise: Jede Anwendung ist eine ArgoCD-Application, die aus Ihrem kubeaid-config-Repo generiert wird, und Auto-Sync ist standardmäßig deaktiviert — Drift zwischen Git und Cluster ist normal und wartet auf einen bewussten Sync. Ein allgemeiner Kubernetes-Assistent versteht diesen Workflow nicht. Dieser Server schon:

  • Die ArgoCD-Application-CR ist ein Bürger erster Klasse: Sync-Status, Health, fehlgeschlagene Bedingungen und abgedriftete Ressourcen sind nur einen Tool-Aufruf entfernt.

  • Sync wird als die explizite „Jetzt bereitstellen“-Entscheidung modelliert, die es in KubeAid ist — abgesichert hinter einem Opt-in-Flag, mit dry_run-Unterstützung, und auf Kontexten, die Sie als geschützt markieren, nie erlaubt.

  • Die gebündelten Prompts kodieren KubeAid-Betriebsgewohnheiten: Drift vor dem Sync prüfen, Dinge im kubeaid-config-Repo beheben, anstatt den Cluster von Hand zu bearbeiten.

Tools

Lese-Tools — immer registriert:

Tool

Beschreibung

list_contexts

Kubeconfig-Kontexte, die der Server ansteuern kann, mit Standard- und Schreibschutz-Flags.

list_argocd_apps

Jede von KubeAid verwaltete ArgoCD-App mit Sync-Status, Health, Revision und Auto-Sync-Flag. Unterstützt only_problems.

describe_argocd_app

Eine App im Detail: Quellen, Fehlerbedingungen, abgedriftete/ungesunde Ressourcen, letztes Sync-Ergebnis, Deployment-Verlauf.

list_namespaces

Namespaces mit Status und Alter.

list_nodes

Nodes mit Ready-Status, Rollen, kubelet-Version, interner IP.

list_pods

Pods mit kubectl-artigem abgeleitetem Status (CrashLoopBackOff usw.), Ready-Anzahl, Neustarts, Node, Alter.

describe_pod

Zustände pro Container und Details zum letzten Absturz, Bedingungen und die letzten Ereignisse des Pods.

get_pod_logs

Container-Logs verfolgen; previous: true liest die Logs der abgestürzten Instanz.

list_deployments

Deployments mit Ready-/Up-to-date-/Available-Anzahl.

get_events

Letzte Ereignisse, optional nur Warnungen, pro Namespace oder clusterweit.

describe_resource

Beliebige Ressource nach apiVersion/kind/name — einschließlich CRDs wie SealedSecret oder Certificate.

Schreib-Tools — nur registriert, wenn KUBEAID_MCP_ALLOW_WRITES=true:

Tool

Beschreibung

sync_argocd_app

Einen ArgoCD-Sync auslösen (die KubeAid-Aktion „Jetzt bereitstellen“). Unterstützt revision, prune, dry_run.

scale_deployment

Die Replica-Anzahl eines Deployments festlegen.

rollout_restart

Einen Rolling-Restart eines Deployments/StatefulSets/DaemonSets durchführen.

delete_pod

Einen festhängenden Pod löschen, damit sein Controller ihn ersetzt.

Jedes Tool akzeptiert ein optionales context-Argument, um von einem einzelnen Serverprozess aus jeden Cluster in Ihrer kubeconfig anzusteuern.

Prompts

Prompts erscheinen als Slash-Befehle / Menüpunkte im Client und führen das Modell mit den obigen Tools durch einen Workflow:

Prompt

Workflow

diagnose_app

Ursachenanalyse einer Degraded/OutOfSync-App: Bedingungen → Ressourcen → Pod-Logs → Empfehlung.

sync_review

Alle abgedrifteten Apps auflisten, das Risiko jedes anstehenden Syncs bewerten und dann fragen, bevor etwas synchronisiert wird.

cluster_health_check

Nodes, Apps, Pods und Warnereignisse durchgehen; Ergebnisse nach Schweregrad melden.

Schnellstart

Erfordert 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"

Standardmäßig schreibgeschützt. Um Schreibzugriff zu aktivieren und die Produktion unantastbar zu lassen:

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

Aktivieren Sie Einstellungen → Entwickler → Lokale MCP-Server und fügen Sie dann der Konfigurationsdatei, die diese Seite öffnet, Folgendes hinzu:

{
  "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"
      }
    }
  }
}

Beenden Sie die App danach vollständig und öffnen Sie sie erneut.

Konfiguration

Die gesamte Konfiguration erfolgt über Umgebungsvariablen, die beim Start einmal gelesen werden:

Variable

Standard

Bedeutung

KUBECONFIG

Standard-Suchpfad von client-node (~/.kube/config)

Kubeconfig-Pfad.

KUBEAID_MCP_CONTEXT

folgt dem current-context live

Einen festen Standardkontext festlegen. Wenn nicht gesetzt, richtet kubectl config use-context den Server mitten in der Sitzung neu aus; context-Argumente pro Aufruf haben immer Vorrang.

KUBEAID_MCP_ARGOCD_NAMESPACE

argocd

Namespace, der die ArgoCD-Application-CRs enthält.

KUBEAID_MCP_ALLOW_WRITES

false

Die mutierenden Tools überhaupt registrieren.

KUBEAID_MCP_PROTECTED_CONTEXTS

keine

Kommagetrennte Kontexte, die jeden mutierenden Aufruf ablehnen, selbst wenn Schreibzugriff aktiviert ist.

Sicherheitsmodell

Drei unabhängige Ebenen:

  1. Capability-Gating — bei deaktiviertem Schreibzugriff (Standard) werden mutierende Tools nie registriert, sodass das Modell sie nicht einmal sehen kann.

  2. Geschützte Kontexte — jeder mutierende Handler prüft den Zielkontext erneut gegen KUBEAID_MCP_PROTECTED_CONTEXTS und lehnt geschützte ab, ganz gleich, was das Modell verlangt.

  3. Client-Bestätigung — Tools tragen MCP-readOnlyHint/destructiveHint-Annotationen, sodass sich gut verhaltende Clients Sie vor riskanten Aufrufen um Bestätigung bitten.

Der Server besitzt keine eigenen Anmeldeinformationen; er kann nur das tun, wozu Ihre kubeconfig-Identität bereits über RBAC autorisiert ist.

Entwicklung

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

Der Smoke-Test benötigt keinen Cluster — er steuert das rohe JSON-RPC-Protokoll über stdio.

Roadmap

  • check_chart_updates: vergleicht die bereitgestellten Chart-Versionen mit dem Upstream-Verzeichnis argocd-helm-charts von KubeAid.

  • Sealed-Secrets-Helfer: SealedSecret-Status auflisten, fehlgeschlagene Entsiegelungen markieren.

  • Prometheus/Alertmanager-Tools: aktive Alerts aus dem kube-prometheus-Stack anzeigen, den KubeAid mitliefert.

Danksagungen

  • KubeAid von Obmondo — der Cluster-Management-Stack, für den dieser Server gebaut wurde.

  • Argo CD — die GitOps-Engine unter KubeAid.

Lizenz

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