kubernetes-mcp-server

Integrations

  • Allows viewing and managing Kubernetes resources including configuration, generic resources, and pods. Supports operations like CRUD on any Kubernetes resource, listing/getting/deleting pods, showing pod logs, and running container images.

Kubernetes MCP Server

✨ Funktionen | 🚀 Erste Schritte | 🎥 Demos | ⚙️ Konfiguration | 🛠️ Tools | 🧑‍💻 Entwicklung

https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e

✨ Funktionen

Eine leistungsstarke und flexible Kubernetes Model Context Protocol (MCP) -Serverimplementierung mit Unterstützung für Kubernetes und OpenShift .

  • ✅ Konfiguration :
    • Erkennen Sie automatisch Änderungen in der Kubernetes-Konfiguration und aktualisieren Sie den MCP-Server.
    • Zeigen Sie die aktuelle Kubernetes .kube/config oder Cluster-Konfiguration an und verwalten Sie sie.
  • ✅ Allgemeine Kubernetes-Ressourcen : Führen Sie Vorgänge an beliebigen Kubernetes- oder OpenShift-Ressourcen durch.
    • Jede CRUD-Operation (Erstellen oder Aktualisieren, Abrufen, Auflisten, Löschen).
  • ✅ Pods : Führen Sie Pod-spezifische Vorgänge durch.
    • Listen Sie Pods in allen Namespaces oder in einem bestimmten Namespace auf.
    • Holen Sie sich einen Pod nach Namen aus dem angegebenen Namespace.
    • Löschen Sie einen Pod nach Namen aus dem angegebenen Namespace.
    • Zeigen Sie Protokolle für einen Pod nach Namen aus dem angegebenen Namespace an.
    • Führen Sie Exec in einen Pod aus und führen Sie einen Befehl aus.
    • Führen Sie ein Container-Image in einem Pod aus und stellen Sie es optional bereit.
  • ✅ Namespaces : Kubernetes-Namespaces auflisten.
  • ✅ Ereignisse : Zeigen Sie Kubernetes-Ereignisse in allen Namespaces oder in einem bestimmten Namespace an.
  • ✅ Projekte : OpenShift-Projekte auflisten.

Im Gegensatz zu anderen Kubernetes MCP-Serverimplementierungen ist dies NICHT nur ein Wrapper um die Befehlszeilentools kubectl oder helm .

Es ist NICHT erforderlich , externe Abhängigkeiten oder Tools auf dem System zu installieren. Wenn Sie die nativen Binärdateien verwenden, müssen Sie nicht einmal Node oder Python auf Ihrem System installiert haben.

🚀 Erste Schritte

Anforderungen

  • Zugriff auf einen Kubernetes-Cluster.

Claude Desktop

Verwenden von npx

Wenn Sie npm installiert haben, ist dies der schnellste Weg, um mit kubernetes-mcp-server auf Claude Desktop zu beginnen.

Öffnen Sie Ihre claude_desktop_config.json und fügen Sie den MCP-Server zur Liste der mcpServers hinzu:

{ "mcpServers": { "kubernetes": { "command": "npx", "args": [ "-y", "kubernetes-mcp-server@latest" ] } } }

VS Code / VS Code Insider

Installieren Sie die Kubernetes MCP-Servererweiterung in VS Code Insiders, indem Sie auf den folgenden Link klicken:

Alternativ können Sie die Erweiterung manuell installieren, indem Sie den folgenden Befehl ausführen:

# For VS Code code --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}' # For VS Code Insiders code-insiders --add-mcp '{"name":"kubernetes","command":"npx","args":["kubernetes-mcp-server@latest"]}'

Goose-Befehlszeilenschnittstelle

Goose CLI ist der einfachste (und günstigste) Weg, um mit Agenten auf Basis künstlicher Intelligenz (KI) loszulegen.

Verwenden von npm

Wenn Sie npm installiert haben, ist dies der schnellste Weg, um mit kubernetes-mcp-server zu beginnen.

Öffnen Sie Ihre Goose config.yaml und fügen Sie den MCP-Server zur Liste der mcpServers hinzu:

extensions: kubernetes: command: npx args: - -y - kubernetes-mcp-server@latest

🎥 Demos

Diagnose und automatische Behebung einer OpenShift-Bereitstellung

Demo, die zeigt, wie der Kubernetes MCP-Server von Claude Desktop genutzt wird, um eine Bereitstellung in OpenShift ohne Benutzereingriff automatisch zu diagnostizieren und zu reparieren.

https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941

Vibe: Ein einfaches Spiel programmieren und in OpenShift bereitstellen

In dieser Demo führe ich Sie durch den Prozess der Vibe-Codierung eines einfachen Spiels mit VS Code und zeige Ihnen, wie Sie den Podman MCP-Server und den Kubernetes MCP-Server nutzen, um es in OpenShift bereitzustellen.

⚙️ Konfiguration

Der Kubernetes MCP-Server kann mithilfe von Befehlszeilenargumenten (CLI) konfiguriert werden.

Sie können die ausführbare CLI-Datei entweder mithilfe von npx oder uvx ausführen oder indem Sie die Binärdatei der neuesten Version herunterladen.

# Run the Kubernetes MCP server using npx (in case you have npm and node installed) npx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using uvx (in case you have uv and python installed) uvx kubernetes-mcp-server@latest --help
# Run the Kubernetes MCP server using the latest release binary ./kubernetes-mcp-server --help

Konfigurationsoptionen

OptionBeschreibung
--sse-portStartet den MCP-Server im Server-Sent Event (SSE)-Modus und lauscht auf dem angegebenen Port.
--log-levelLegt die Protokollierungsebene fest (Werte von 0-9 ). Ähnlich wie kubectl logging levels .
--kubeconfigPfad zur Kubernetes-Konfigurationsdatei. Falls nicht angegeben, wird versucht, die Konfiguration aufzulösen (im Cluster, Standardspeicherort usw.).

🛠️ Werkzeuge

configuration_view

Holen Sie sich den aktuellen Kubernetes-Konfigurationsinhalt als kubeconfig YAML

Parameter:

  • minified ( boolean , optional, Standard: true )
    • Gibt eine minimierte Version der Konfiguration zurück
    • Wenn true , werden nur der aktuelle Kontext und relevante Konfigurationsteile beibehalten.
    • Wenn false , werden alle Kontexte, Cluster, Authentifizierungsinformationen und Benutzer zurückgegeben

events_list

Listen Sie alle Kubernetes-Ereignisse im aktuellen Cluster aus allen Namespaces auf

Parameter:

  • namespace ( string , optional)
    • Namespace, aus dem die Ereignisse abgerufen werden sollen. Falls nicht angegeben, werden Ereignisse aus allen Namespaces aufgelistet.

namespaces_list

Listen Sie alle Kubernetes-Namespaces im aktuellen Cluster auf

Parameter: Keine

pods_delete

Löschen Sie einen Kubernetes-Pod im aktuellen oder angegebenen Namespace mit dem angegebenen Namen

Parameter:

  • name ( string , erforderlich)
    • Name des zu löschenden Pods
  • namespace ( string , erforderlich)
    • Namespace, aus dem der Pod gelöscht werden soll

pods_exec

Führen Sie einen Befehl in einem Kubernetes-Pod im aktuellen oder angegebenen Namespace mit dem angegebenen Namen und Befehl aus

Parameter:

  • command ( string[] , erforderlich)
    • Im Pod-Container auszuführender Befehl
    • Das erste Element ist der Befehl, der Rest sind Argumente
    • Beispiel: ["ls", "-l", "/tmp"]
  • name (Zeichenfolge, erforderlich)
    • Name des Pods
  • namespace (Zeichenfolge, erforderlich)
    • Namespace des Pods
  • container ( string , optional)
    • Name des Pod-Containers, aus dem Protokolle abgerufen werden sollen

pods_get

Holen Sie sich einen Kubernetes-Pod im aktuellen oder bereitgestellten Namespace mit dem angegebenen Namen

Parameter:

  • name ( string , erforderlich)
    • Name des Pods
  • namespace ( string , erforderlich)
    • Namespace, aus dem der Pod abgerufen werden soll

pods_list

Listen Sie alle Kubernetes-Pods im aktuellen Cluster aus allen Namespaces auf

Parameter: Keine

pods_list_in_namespace

Listen Sie alle Kubernetes-Pods im angegebenen Namespace im aktuellen Cluster auf

Parameter:

  • namespace ( string , erforderlich)
    • Namespace zum Auflisten von Pods

pods_log

Holen Sie sich die Protokolle eines Kubernetes-Pods im aktuellen oder angegebenen Namespace mit dem angegebenen Namen

Parameter:

  • name ( string , erforderlich)
    • Name des Pods, von dem Protokolle abgerufen werden sollen
  • namespace ( string , erforderlich)
    • Namespace, aus dem die Pod-Protokolle abgerufen werden
  • container ( string , optional)
    • Name des Pod-Containers, aus dem Protokolle abgerufen werden sollen

pods_run

Führen Sie einen Kubernetes-Pod im aktuellen oder bereitgestellten Namespace mit dem bereitgestellten Container-Image und optionalem Namen aus.

Parameter:

  • image ( string , erforderlich)
    • Container-Image zur Ausführung im Pod
  • namespace ( string , erforderlich)
    • Namespace zum Ausführen des Pods
  • name ( string , optional)
    • Name des Pods (zufälliger Name, falls nicht angegeben)
  • port ( number , optional)
    • Vom Pod-Container freizugebender TCP/IP-Port
    • Wenn nicht angegeben, wird kein Port angezeigt

projects_list

Listen Sie alle OpenShift-Projekte im aktuellen Cluster auf

resources_create_or_update

Erstellen oder aktualisieren Sie eine Kubernetes-Ressource im aktuellen Cluster, indem Sie eine YAML- oder JSON-Darstellung der Ressource bereitstellen

Parameter:

  • resource ( string , erforderlich)
    • Ein JSON oder YAML, das eine Darstellung der Kubernetes-Ressource enthält
    • Sollte Felder der obersten Ebene wie API-Version, Art, Metadaten und Spezifikation enthalten

Zu den gängigen API-Versionen und -Arten gehören:

  • v1 Pod
  • v1-Dienst
  • v1-Knoten
  • apps/v1-Bereitstellung
  • networking.k8s.io/v1 Ingress

resources_delete

Löschen einer Kubernetes-Ressource im aktuellen Cluster

Parameter:

  • apiVersion ( string , erforderlich)
    • API-Version der Ressource (z. B. v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , erforderlich)
    • Art der Ressource (z. B. Pod , Service , Deployment , Ingress )
  • name ( string , erforderlich)
    • Name der Ressource
  • namespace ( string , optional)
    • Namespace, aus dem die Namespace-Ressource gelöscht werden soll
    • Wird für clusterbezogene Ressourcen ignoriert
    • Verwendet den konfigurierten Namespace, falls nicht angegeben

resources_get

Holen Sie sich eine Kubernetes-Ressource im aktuellen Cluster

Parameter:

  • apiVersion ( string , erforderlich)
    • API-Version der Ressource (z. B. v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , erforderlich)
    • Art der Ressource (z. B. Pod , Service , Deployment , Ingress )
  • name ( string , erforderlich)
    • Name der Ressource
  • namespace ( string , optional)
    • Namespace, aus dem die Namespace-Ressource abgerufen werden soll
    • Wird für clusterbezogene Ressourcen ignoriert
    • Verwendet den konfigurierten Namespace, falls nicht angegeben

resources_list

Kubernetes-Ressourcen und -Objekte im aktuellen Cluster auflisten

Parameter:

  • apiVersion ( string , erforderlich)
    • API-Version der Ressourcen (z. B. v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , erforderlich)
    • Art der Ressourcen (z. B. Pod , Service , Deployment , Ingress )
  • namespace ( string , optional)
    • Namespace zum Abrufen der Namespace-Ressourcen
    • Wird für clusterbezogene Ressourcen ignoriert
    • Listet Ressourcen aus allen Namespaces auf, sofern nicht angegeben

🧑‍💻 Entwicklung

Ausführen mit mcp-inspector

Kompilieren Sie das Projekt und führen Sie den Kubernetes MCP-Server mit mcp-inspector aus, um den MCP-Server zu überprüfen.

# Compile the project make build # Run the Kubernetes MCP server with mcp-inspector npx @modelcontextprotocol/inspector@latest $(pwd)/kubernetes-mcp-server

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    This project is intended as a both MCP server connecting to Kubernetes and a library to build more servers for any custom resources in Kubernetes.
    Last updated -
    267
    Go
    MIT License
    • Linux
    • Apple
  • A
    security
    F
    license
    A
    quality
    A MCP server that can run Kubernetes commands with a given kubeconfig path and provide interpretation of the commands.
    Last updated -
    1
    2
    JavaScript
    • Apple
  • -
    security
    A
    license
    -
    quality
    A read-only MCP server for Kubernetes that allows querying cluster information and diagnosing issues through natural language interfaces like Claude.
    Last updated -
    1
    Python
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    Provides MCP multi-cluster Kubernetes management and operations, featuring a management interface, logging, and nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.
    Last updated -
    245
    Go
    MIT License
    • Linux
    • Apple

View all related MCP servers

ID: 7teahc9mqv