Kubernetes MCP Server
offiziellEin 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/namespacesundGET /api/v1/resources/{kind}aufzulisten. - Eine bestimmte Ressource beheben — Lassen Sie den Assistenten einen Pod wie
example-podüber den EndpunktPOST /api/v1/mcp/troubleshootanalysieren oder beheben. - GitLab-Commits überprüfen — Fordern Sie eine Commit-Analyse über den Endpunkt
POST /api/v1/mcp/commitan, 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
Claude Kubernetes MCP Server
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
- Voraussetzungen
- Einrichtungsanleitung
- Konfiguration
- Lokale Ausführung
- Erstellen und Ausführen mit Docker
- Produktionsbereitstellung
- API-Dokumentation
- Postman-Sammlung
- Lizenz
Ü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!