Kubernetes MCP Server

offiziell

Ein Claude Kubernetes MCP-Server, entwickelt in Go. Der Server integriert sich mit ArgoCD, GitLab, Claude AI und Kubernetes, um erweiterte Steuerung und Automatisierung von Kubernetes-Umgebungen zu ermöglichen.

Was kann man mit Kubernetes MCP machen?

  • Clusterressourcen inspizieren — Bitten Sie Ihren Assistenten, Namespaces oder Ressourcen jeglicher Art über GET /api/v1/namespaces und GET /api/v1/resources/{kind} aufzulisten.
  • Eine bestimmte Ressource beheben — Lassen Sie den Assistenten einen Pod wie example-pod über den Endpunkt POST /api/v1/mcp/troubleshoot analysieren oder beheben.
  • GitLab-Commits überprüfen — Fordern Sie eine Commit-Analyse über den Endpunkt POST /api/v1/mcp/commit an, um KI-gestützte Einblicke zu erhalten.
  • ArgoCD-Anwendungen prüfen — Fragen Sie nach einer Liste aller ArgoCD-Anwendungen über GET /api/v1/argocd/applications.
  • Benutzerdefinierte KI-Abfragen zu Ressourcen — Senden Sie eine generische MCP-Anfrage (POST /api/v1/mcp) mit einer benutzerdefinierten Abfrage zu einer beliebigen Ressource in Ihrem Cluster.

Dokumentation

Blank Cut

Claude Kubernetes MCP Server

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

Ein Model Context Protocol (MCP)-Server für die Verwaltung von Kubernetes-Clustern mit ArgoCD- und GitLab-Integration.

Dieses Repository enthält den Claude Kubernetes MCP (Model Context Protocol)-Server, entwickelt in Go. Der Server integriert ArgoCD, GitLab, Claude AI und Kubernetes, um erweiterte Steuerung und Automatisierung von Kubernetes-Umgebungen zu ermöglichen.

Unsere Dokumentation finden Sie hier

Inhaltsverzeichnis


Überblick

Dieser Server ist darauf ausgelegt, Kubernetes-Workloads mithilfe von Claude AI, GitLab, ArgoCD und Vault zu orchestrieren. Er stellt eine REST-API bereit, die eine programmatische Interaktion mit diesen Systemen ermöglicht, gesteuert durch ein konfiguriertes config.yaml und authentifiziert über einen API-Schlüssel.

Voraussetzungen

  • Go 1.20+
  • Docker
  • Kubernetes-Cluster und gültiges ~/.kube/config
  • EKS-Cluster mit lokal gesetztem AWS_PROFILE
  • ArgoCD-Anmeldeinformationen
  • GitLab persönlicher Zugriffstoken
  • Claude-API-Schlüssel (Anthropic)
  • Vault-Anmeldeinformationen (optional, je nach Verwendung)

Einrichtungsanleitung

1. Repository klonen

git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server

2. Erforderliche Umgebungsvariablen exportieren

Exportieren Sie Anmeldeinformationen für ArgoCD, GitLab und Claude:

export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"

Stellen Sie sicher, dass eine kubeconfig verfügbar ist:

export KUBECONFIG=~/.kube/config

3. config.yaml konfigurieren

Aktualisieren Sie kubernetes-claude-mcp/config.yaml mit Anmeldeinformationen und Servereinstellungen:

server:
  address: ":8080"
  readTimeout: 30
  writeTimeout: 60
  auth:
    apiKey: ""${API_KEY}"" 

kubernetes:
  kubeconfig: ""
  inCluster: false
  defaultContext: ""
  defaultNamespace: "default"

argocd:
  url: "http://example.argocd.com"
  authToken: ""
  username: "${ARGOCD_USERNAME}"
  password: "${ARGOCD_PASSWORD}"
  insecure: true

gitlab:
  url: "https://gitlab.com"
  authToken: "${AUTH_TOKEN}"
  apiVersion: "v4"
  projectPath: ""${PROJECT_PATH}""

claude:
  apiKey: "${API_KEY}"
  baseURL: "https://api.anthropic.com"
  modelID: "claude-sonnet-4.5-20250514"
  maxTokens: 8192
  temperature: 0.3

Sie können die bereitgestellten Go-Vorlagen oder die Methode zur Interpolation von Umgebungsvariablen verwenden.

4. API-Schlüssel für Postman hinzufügen

Bitte stellen Sie sicher, dass ein config.yaml ein apiKey enthält. Dies wird verwendet, um Anfragen in Postman oder jedem externen Client zu authentifizieren.


Lokale Ausführung

cd kubernetes-claude-mcp
go run ./cmd/server/main.go

Mit Debug-Protokollierung:

LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml

Der Server startet und bindet an den konfigurierten Port in config.yaml (Standard: 8080).


Erstellen und Ausführen mit Docker

1. Image erstellen

cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .

2. Container ausführen (zweite Build-Option enthalten)

cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d

Produktionsbereitstellung

Ein Helm-Chart ist im Repository für die Kubernetes-Bereitstellung enthalten:

1. Zum Helm-Chart-Verzeichnis navigieren

cd kubernetes-claude-mcp/deployments/helm

2. Mit Helm bereitstellen

Aktualisieren Sie values.yaml mit geeigneten Werten und führen Sie aus:

helm install claude-mcp .

Zum Aktualisieren:

helm upgrade claude-mcp .

Bitte stellen Sie sicher, dass Geheimnisse und Konfigurationszuordnungen im Cluster ordnungsgemäß eingebunden und gesichert sind.


API-Dokumentation

Im Folgenden sind die primären Endpunkte aufgeführt, die vom MCP-Server bereitgestellt werden. Alle Anfragen erfordern den X-API-Key-Header:

Allgemein

  • Health Check
    • GET /api/v1/health

Kubernetes

  • Namespaces auflisten
    • GET /api/v1/namespaces
  • Ressourcen auflisten
    • GET /api/v1/resources/{kind}?namespace={ns}
  • Bestimmte Ressource abrufen
    • GET /api/v1/resources/{kind}/{name}?namespace={ns}
  • Ereignisse für eine Ressource abrufen
    • GET /api/v1/events?namespace={ns}&resource={kind}&name={name}

ArgoCD

  • Anwendungen auflisten
    • GET /api/v1/argocd/applications

Claude MCP-Endpunkte

  • Ressource analysieren
    • POST /api/v1/mcp/resource
  • Ressource problembeheben
    • POST /api/v1/mcp/troubleshoot
  • Commit-Analyse (GitLab)
    • POST /api/v1/mcp/commit
  • Generische MCP-Anfrage
    • POST /api/v1/mcp

Alle POST-Endpunkte akzeptieren eine JSON-Nutzlast mit Feldern wie:

{
  "resource": "pod",
  "name": "example-pod",
  "namespace": "default",
  "query": "What’s wrong with this pod?"
}

Postman-Sammlung

Eine gebrauchsfertige Postman-Sammlung wird bald verfügbar sein.

Spende

Bitte tragen Sie zu unserem Kaffeefonds bei, damit wir weiterhin großartige Dinge tun können Buy Me Coffee

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.


Mitwirken

Die Dokumentation wird bald erweitert. Wenn Sie mitwirken möchten, können Sie gerne einen Pull-Request eröffnen oder ein Issue melden!