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.

Dokumentation

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 sich mit ArgoCD, GitLab, Claude AI und Kubernetes, um eine erweiterte Steuerung und Automatisierung von Kubernetes-Umgebungen zu ermöglichen.

Unsere Dokumentation finden Sie hier

Inhaltsverzeichnis


Übersicht

Dieser Server dient der Orchestrierung von Kubernetes-Workloads unter Verwendung von Claude AI, GitLab, ArgoCD und Vault. Er stellt eine REST-API bereit, die die programmatische Interaktion mit diesen Systemen ermöglicht, gesteuert durch einen konfigurierten config.yaml und authentifiziert mittels eines API-Schlüssels.

Voraussetzungen

  • Go 1.20+
  • Docker
  • Kubernetes-Cluster & gültige ~/.kube/config
  • EKS-Cluster mit lokal gesetztem AWS_PROFILE
  • ArgoCD-Anmeldeinformationen
  • Persönlicher GitLab-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 die 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 der Umgebungsvariablen-Interpolation verwenden.

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

Bitte stellen Sie sicher, dass eine config.yaml einen apiKey enthält. Dieser wird zur Authentifizierung von Anfragen in Postman oder einem anderen externen Client verwendet.


Lokal ausführen

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 in config.yaml konfigurierten Port (Standard: 8080).


Bauen und Ausführen mit Docker

1. Image bauen

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 Secrets und Config Maps ordnungsgemäß im Cluster eingebunden und gesichert sind.


API-Dokumentation

Nachfolgend sind die primären Endpunkte aufgeführt, die der MCP-Server bereitstellt. 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 Fehlerbehebung
    • 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 in Kürze verfügbar sein.

Spende

Bitte unterstützen Sie unseren Kaffeefonds, damit wir weiterhin Großartiges leisten können Buy Me Coffee

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.


Mitwirken

Die Dokumentation wird in Kürze erweitert. Wenn Sie mitwirken möchten, können Sie gerne einen Pull-Request öffnen oder ein Issue einreichen!