Skip to main content
Glama

kubernetes-mcp-server

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.
  • ☸️ Helm :
    • Installieren Sie ein Helm-Diagramm im aktuellen oder bereitgestellten Namespace.
    • Listen Sie Helm-Releases in allen Namespaces oder in einem bestimmten Namespace auf.
    • Deinstallieren Sie eine Helm-Version im aktuellen oder bereitgestellten Namespace.

Im Gegensatz zu anderen Kubernetes MCP-Serverimplementierungen handelt es sich hierbei NICHT nur um einen Wrapper um die Befehlszeilentools kubectl oder helm . Es handelt sich um eine native Go-basierte Implementierung , die direkt mit dem Kubernetes-API-Server interagiert.

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

  • ✅ Leichtgewichtig : Der Server wird als einzelne native Binärdatei für Linux, macOS und Windows verteilt.
  • ✅ Hohe Leistung/geringe Latenz : Direkte Interaktion mit dem Kubernetes-API-Server ohne den Aufwand des Aufrufens und Wartens auf externe Befehle.
  • ✅ Plattformübergreifend : Verfügbar als native Binärdatei für Linux, macOS und Windows sowie als npm-Paket, Python-Paket und Container-/Docker-Image.
  • ✅ Konfigurierbar : Unterstützt Befehlszeilenargumente zum Konfigurieren des Serververhaltens.
  • ✅ Gut getestet : Der Server verfügt über eine umfangreiche Testsuite, um seine Zuverlässigkeit und Korrektheit in verschiedenen Kubernetes-Umgebungen sicherzustellen.

🚀 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.

Laden Sie GitHub Copilot mit dem Kubernetes MCP-Server in VS Code auf – Einrichtung mit einem Klick!

In dieser Demo zeige ich Ihnen, wie Sie den Kubernetes MCP-Server in VS Code einrichten, indem Sie einfach auf einen Link klicken.

⚙️ 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.).
--read-onlyWenn diese Option aktiviert ist, läuft der MCP-Server im schreibgeschützten Modus. Das bedeutet, dass keine Schreibvorgänge (Erstellen, Aktualisieren, Löschen) im Kubernetes-Cluster möglich sind. Dies ist nützlich, um den Cluster zu debuggen oder zu überprüfen, ohne Änderungen vorzunehmen.
--disable-destructiveWenn diese Option aktiviert ist, deaktiviert der MCP-Server alle destruktiven Operationen (Löschen, Aktualisieren usw.) im Kubernetes-Cluster. Dies ist nützlich, um den Cluster zu debuggen oder zu überprüfen, ohne versehentlich Änderungen vorzunehmen. Diese Option hat keine Auswirkung, wenn --read-only verwendet wird.

🛠️ 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.

helm_install

Installieren Sie ein Helm-Diagramm im aktuellen oder bereitgestellten Namespace mit dem angegebenen Namen und Diagramm

Parameter:

  • chart ( string , erforderlich)
    • Name des zu installierenden Helm-Charts
    • Kann ein lokaler Pfad oder eine Remote-URL sein
    • Beispiel: ./my-chart.tgz oder https://example.com/my-chart.tgz
  • values ( object , optional)
    • An das Helm-Diagramm zu übergebende Werte
    • Beispiel: {"key": "value"}
  • name ( string , optional)
    • Name der Helm-Version
    • Zufälliger Name, falls nicht angegeben
  • namespace ( string , optional)
    • Namespace zum Installieren des Helm-Diagramms
    • Wenn nicht angegeben, wird der konfigurierte Namespace verwendet.

helm_list

Listet alle Helm-Releases im aktuellen oder angegebenen Namespace auf (oder in allen Namespaces, falls angegeben).

Parameter:

  • namespace ( string , optional)
    • Namespace zum Auflisten der Helm-Releases aus
    • Wenn nicht angegeben, wird der konfigurierte Namespace verwendet.
  • all_namespaces ( boolean , optional)
    • Wenn true , werden Helm-Releases aus allen Namespaces aufgelistet
    • Wenn false , werden Helm-Releases aus dem angegebenen Namespace aufgelistet.

helm_uninstall

Deinstallieren Sie eine Helm-Version im aktuellen oder angegebenen Namespace mit dem angegebenen Namen

Parameter:

  • name ( string , erforderlich)
    • Name der zu deinstallierenden Helm-Version
  • namespace ( string , optional)
    • Namespace zum Deinstallieren der Helm-Version
    • Wenn nicht angegeben, wird der konfigurierte Namespace verwendet.

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:

  • labelSelector ( string , optional)
    • Kubernetes-Label-Selektor (z. B. „app=myapp,env=prod“ oder „app in (myapp,yourapp)“). Verwenden Sie diese Option, um die Pods nach Label zu filtern.

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
  • labelSelector ( string , optional)
    • Kubernetes-Label-Selektor (z. B. „app=myapp,env=prod“ oder „app in (myapp,yourapp)“). Verwenden Sie diese Option, um die Pods nach Label zu filtern.

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
  • labelSelector ( string , optional)
    • Kubernetes-Label-Selektor (z. B. „app=myapp,env=prod“ oder „app in (myapp,yourapp)“). Verwenden Sie diese Option, um die Pods nach Label zu filtern.

🧑‍💻 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 -
    279
    Go
    MIT License
    • Linux
    • Apple
  • -
    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 -
    494
    Go
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    Provides MCP multi-cluster Kubernetes management and operations. It can be integrated as an SDK into your own project and includes nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.
    Last updated -
    116
    Go
    MIT License
    • Linux
    • Apple
  • -
    security
    A
    license
    -
    quality
    Open source MCP server specializing in easy, fast, and secure tools for Databases.
    Last updated -
    1,462
    Go
    Apache 2.0
    • Linux

View all related MCP servers

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/manusa/kubernetes-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server