Skip to main content
Glama

kubernetes-mcp-server

Servidor MCP de Kubernetes

✨ Características | 🚀 Primeros pasos | 🎥 Demostraciones | ⚙️ Configuración | 🛠️ Herramientas | 🧑‍💻 Desarrollo

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

✨ Características

Una implementación de servidor de Protocolo de contexto de modelo (MCP) de Kubernetes potente y flexible con soporte para Kubernetes y OpenShift .

  • ✅ Configuración :
    • Detecta automáticamente cambios en la configuración de Kubernetes y actualiza el servidor MCP.
    • Ver y administrar la configuración actual de Kubernetes .kube/config o en el clúster.
  • ✅ Recursos genéricos de Kubernetes : realice operaciones en cualquier recurso de Kubernetes u OpenShift.
    • Cualquier operación CRUD (Crear o actualizar, obtener, enumerar, eliminar).
  • ✅ Pods : Realiza operaciones específicas de Pod.
    • Enumere los pods en todos los espacios de nombres o en un espacio de nombres específico.
    • Obtener un pod por nombre del espacio de nombres especificado.
    • Eliminar un pod por nombre del espacio de nombres especificado.
    • Mostrar registros de un pod por nombre desde el espacio de nombres especificado.
    • Ejecútelo en un pod y ejecute un comando.
    • Ejecute una imagen de contenedor en un pod y, opcionalmente, expóngala.
  • ✅ Espacios de nombres : enumera los espacios de nombres de Kubernetes.
  • ✅ Eventos : vea eventos de Kubernetes en todos los espacios de nombres o en un espacio de nombres específico.
  • ✅ Proyectos : Lista de proyectos de OpenShift.
  • ☸️ Yelmo :
    • Instalar un gráfico Helm en el espacio de nombres actual o proporcionado.
    • Enumere las versiones de Helm en todos los espacios de nombres o en un espacio de nombres específico.
    • Desinstalar una versión de Helm en el espacio de nombres actual o proporcionado.

A diferencia de otras implementaciones de servidor MCP de Kubernetes, esta NO es simplemente una envoltura para las herramientas de línea de comandos kubectl o helm . Es una implementación nativa basada en Go que interactúa directamente con el servidor de API de Kubernetes.

NO es necesario instalar dependencias ni herramientas externas en el sistema. Si usa los binarios nativos, no necesita tener instalado Node ni Python.

  • ✅ Ligero : el servidor se distribuye como un único binario nativo para Linux, macOS y Windows.
  • ✅ Alto rendimiento/baja latencia : interactúa directamente con el servidor API de Kubernetes sin la sobrecarga de llamar y esperar comandos externos.
  • ✅ Multiplataforma : disponible como binario nativo para Linux, macOS y Windows, así como un paquete npm, un paquete Python y una imagen de contenedor/Docker.
  • ✅ Configurable : admite argumentos de línea de comandos para configurar el comportamiento del servidor.
  • ✅ Bien probado : el servidor tiene un amplio conjunto de pruebas para garantizar su confiabilidad y corrección en diferentes entornos de Kubernetes.

🚀 Primeros pasos

Requisitos

  • Acceso a un clúster de Kubernetes.

Escritorio de Claude

Usando npx

Si tiene npm instalado, esta es la forma más rápida de comenzar a utilizar kubernetes-mcp-server en Claude Desktop.

Abra su claude_desktop_config.json y agregue el servidor mcp a la lista de mcpServers :

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

VS Code / VS Code Insiders

Instale la extensión del servidor Kubernetes MCP en VS Code Insiders presionando el siguiente enlace:

Alternativamente, puede instalar la extensión manualmente ejecutando el siguiente comando:

# 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 CLI

Goose CLI es la forma más sencilla (y económica) de comenzar a trabajar con agentes de inteligencia artificial (IA).

Usando npm

Si tiene npm instalado, esta es la forma más rápida de comenzar a utilizar kubernetes-mcp-server .

Abra su goose config.yaml y agregue el servidor mcp a la lista de mcpServers :

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

🎥 Demos

Diagnóstico y reparación automática de una implementación de OpenShift

Demostración que muestra cómo Claude Desktop aprovecha el servidor Kubernetes MCP para diagnosticar y reparar automáticamente una implementación en OpenShift sin asistencia del usuario.

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

Vibe Codificación de un juego simple e implementación en OpenShift

En esta demostración, lo guiaré a través del proceso de codificación de un juego simple usando VS Code y cómo aprovechar el servidor MCP de Podman y el servidor MCP de Kubernetes para implementarlo en OpenShift.

Potencie GitHub Copilot con Kubernetes MCP Server en VS Code: ¡configuración con un solo clic!

En esta demostración, le mostraré cómo configurar el servidor Kubernetes MCP en VS Code simplemente haciendo clic en un enlace.

⚙️ Configuración

El servidor Kubernetes MCP se puede configurar mediante argumentos de la línea de comandos (CLI).

Puede ejecutar el ejecutable CLI utilizando npx , uvx o descargando el binario de la última versión .

# 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

Opciones de configuración

OpciónDescripción
--sse-portInicia el servidor MCP en modo de evento enviado por el servidor (SSE) y escucha en el puerto especificado.
--log-levelEstablece el nivel de registro (valores de 0 a 9 ). Similar a los niveles de registro de kubectl .
--kubeconfigRuta al archivo de configuración de Kubernetes. Si no se proporciona, se intentará resolver la configuración (en el clúster, ubicación predeterminada, etc.).
--read-onlySi se configura, el servidor MCP se ejecutará en modo de solo lectura, lo que significa que no permitirá ninguna operación de escritura (crear, actualizar, eliminar) en el clúster de Kubernetes. Esto resulta útil para depurar o inspeccionar el clúster sin realizar cambios.
--disable-destructiveSi se configura, el servidor MCP deshabilitará todas las operaciones destructivas (eliminar, actualizar, etc.) en el clúster de Kubernetes. Esto resulta útil para depurar o inspeccionar el clúster sin realizar cambios accidentales. Esta opción no tiene efecto cuando se usa --read-only .

🛠️ Herramientas

configuration_view

Obtenga el contenido de configuración actual de Kubernetes como un YAML de kubeconfig

Parámetros:

  • minified ( boolean , opcional, predeterminado: true )
    • Devuelve una versión minimizada de la configuración
    • Si true , solo conserva el contexto actual y las partes de configuración relevantes
    • Si es false , devuelve todos los contextos, clústeres, información de autenticación y usuarios.

events_list

Enumere todos los eventos de Kubernetes en el clúster actual de todos los espacios de nombres

Parámetros:

  • namespace ( string , opcional)
    • Espacio de nombres del que se recuperan los eventos. Si no se proporciona, se listarán los eventos de todos los espacios de nombres.

helm_install

Instalar un gráfico de Helm en el espacio de nombres actual o proporcionado con el nombre y el gráfico proporcionados

Parámetros:

  • chart ( string , obligatorio)
    • Nombre del gráfico de Helm a instalar
    • Puede ser una ruta local o una URL remota
    • Ejemplo: ./my-chart.tgz o https://example.com/my-chart.tgz
  • values ( object , opcional)
    • Valores a pasar al gráfico de Helm
    • Ejemplo: {"key": "value"}
  • name ( string , opcional)
    • Nombre de la versión de Helm
    • Nombre aleatorio si no se proporciona
  • namespace ( string , opcional)
    • Espacio de nombres para instalar el gráfico Helm
    • Si no se proporciona, se utilizará el espacio de nombres configurado

helm_list

Enumere todas las versiones de Helm en el espacio de nombres actual o proporcionado (o en todos los espacios de nombres si se especifica)

Parámetros:

  • namespace ( string , opcional)
    • Espacio de nombres para enumerar las versiones de Helm
    • Si no se proporciona, se utilizará el espacio de nombres configurado
  • all_namespaces ( boolean , opcional)
    • Si es true , se enumerarán las versiones de Helm de todos los espacios de nombres
    • Si es false , se enumerarán las versiones de Helm del espacio de nombres especificado

helm_uninstall

Desinstalar una versión de Helm en el espacio de nombres actual o proporcionado con el nombre proporcionado

Parámetros:

  • name ( string , requerido)
    • Nombre de la versión de Helm que se desinstalará
  • namespace ( string , opcional)
    • Espacio de nombres para desinstalar la versión de Helm
    • Si no se proporciona, se utilizará el espacio de nombres configurado

namespaces_list

Enumere todos los espacios de nombres de Kubernetes en el clúster actual

Parámetros: Ninguno

pods_delete

Eliminar un pod de Kubernetes en el espacio de nombres actual o proporcionado con el nombre proporcionado

Parámetros:

  • name ( string , requerido)
    • Nombre del Pod a eliminar
  • namespace ( string , obligatorio)
    • Espacio de nombres del cual eliminar el Pod

pods_exec

Ejecutar un comando en un pod de Kubernetes en el espacio de nombres actual o proporcionado con el nombre y comando proporcionados

Parámetros:

  • command ( string[] , requerido)
    • Comando a ejecutar en el contenedor Pod
    • El primer elemento es el comando, el resto son argumentos.
    • Ejemplo: ["ls", "-l", "/tmp"]
  • name (cadena, obligatorio)
    • Nombre del Pod
  • namespace (cadena, obligatorio)
    • Espacio de nombres del Pod
  • container ( string , opcional)
    • Nombre del contenedor Pod del que se obtendrán los registros

pods_get

Obtenga un pod de Kubernetes en el espacio de nombres actual o proporcionado con el nombre proporcionado

Parámetros:

  • name ( string , requerido)
    • Nombre del Pod
  • namespace ( string , obligatorio)
    • Espacio de nombres del que obtener el Pod

pods_list

Enumere todos los pods de Kubernetes en el clúster actual de todos los espacios de nombres

Parámetros:

  • labelSelector ( string , opcional)
    • Selector de etiquetas de Kubernetes (p. ej., 'app=myapp,env=prod' o 'app in (myapp,yourapp)'). Use esta opción para filtrar los pods por etiqueta.

pods_list_in_namespace

Enumere todos los pods de Kubernetes en el espacio de nombres especificado en el clúster actual

Parámetros:

  • namespace ( string , obligatorio)
    • Espacio de nombres para listar pods
  • labelSelector ( string , opcional)
    • Selector de etiquetas de Kubernetes (p. ej., 'app=myapp,env=prod' o 'app in (myapp,yourapp)'). Use esta opción para filtrar los pods por etiqueta.

pods_log

Obtenga los registros de un pod de Kubernetes en el espacio de nombres actual o proporcionado con el nombre proporcionado

Parámetros:

  • name ( string , requerido)
    • Nombre del pod del que se obtendrán los registros
  • namespace ( string , obligatorio)
    • Espacio de nombres para obtener los registros del pod
  • container ( string , opcional)
    • Nombre del contenedor Pod del que se obtendrán los registros

pods_run

Ejecute un pod de Kubernetes en el espacio de nombres actual o proporcionado con la imagen de contenedor proporcionada y el nombre opcional

Parámetros:

  • image ( string , requerida)
    • Imagen de contenedor para ejecutar en el pod
  • namespace ( string , obligatorio)
    • Espacio de nombres para ejecutar el Pod
  • name ( string , opcional)
    • Nombre del Pod (nombre aleatorio si no se proporciona)
  • port ( number , opcional)
    • Puerto TCP/IP para exponer desde el contenedor Pod
    • No se expone ningún puerto si no se proporciona

projects_list

Enumere todos los proyectos de OpenShift en el clúster actual

resources_create_or_update

Cree o actualice un recurso de Kubernetes en el clúster actual proporcionando una representación YAML o JSON del recurso

Parámetros:

  • resource ( string , obligatorio)
    • Un JSON o YAML que contiene una representación del recurso de Kubernetes
    • Debe incluir campos de nivel superior como apiVersion, kind, metadata y spec

Las versiones y tipos de API más comunes incluyen:

  • Cápsula v1
  • Servicio v1
  • Nodo v1
  • Implementación de apps/v1
  • networking.k8s.io/v1 Ingreso

resources_delete

Eliminar un recurso de Kubernetes en el clúster actual

Parámetros:

  • apiVersion ( string , requerida)
    • apiVersion del recurso (por ejemplo, v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , requerido)
    • tipo de recurso (por ejemplo, Pod , Service , Deployment , Ingress )
  • name ( string , requerido)
    • Nombre del recurso
  • namespace ( string , opcional)
    • Espacio de nombres del cual eliminar el recurso con espacio de nombres
    • Ignorado para recursos con alcance de clúster
    • Utiliza el espacio de nombres configurado si no se proporciona

resources_get

Obtener un recurso de Kubernetes en el clúster actual

Parámetros:

  • apiVersion ( string , requerida)
    • apiVersion del recurso (por ejemplo, v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , requerido)
    • tipo de recurso (por ejemplo, Pod , Service , Deployment , Ingress )
  • name ( string , requerido)
    • Nombre del recurso
  • namespace ( string , opcional)
    • Espacio de nombres del cual recuperar el recurso con espacio de nombres
    • Ignorado para recursos con alcance de clúster
    • Utiliza el espacio de nombres configurado si no se proporciona

resources_list

Enumerar los recursos y objetos de Kubernetes en el clúster actual

Parámetros:

  • apiVersion ( string , requerida)
    • apiVersion de los recursos (por ejemplo, v1 , apps/v1 , networking.k8s.io/v1 )
  • kind ( string , requerido)
    • tipo de recursos (por ejemplo, Pod , Service , Deployment , Ingress )
  • namespace ( string , opcional)
    • Espacio de nombres del cual recuperar los recursos con espacios de nombres
    • Ignorado para recursos con alcance de clúster
    • Enumera los recursos de todos los espacios de nombres si no se proporcionan
  • labelSelector ( string , opcional)
    • Selector de etiquetas de Kubernetes (p. ej., 'app=myapp,env=prod' o 'app in (myapp,yourapp)'). Use esta opción para filtrar los pods por etiqueta.

🧑‍💻 Desarrollo

Ejecutando con mcp-inspector

Compile el proyecto y ejecute el servidor MCP de Kubernetes con mcp-inspector para inspeccionar el servidor MCP.

# 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 -
    487
    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 -
    115
    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,430
    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