Skip to main content
Glama

Kubernetes Monitor

by vlttnv

k8s-mcp

insignia de herrería

Un servidor de Protocolo de contexto de modelo (MCP) de solo lectura basado en Python para clústeres de Kubernetes que expone una API integral para recuperar información del clúster y diagnosticar problemas.

Ejemplo de chat con Claude

Instalación

Prerrequisitos

  • Python 3.8+

  • Acceso a un clúster de Kubernetes (a través de kubeconfig o configuración en el clúster)

  • Paquetes de Python necesarios (ver dependencies en pyproject.toml )

  • uv - https://github.com/astral-sh/uv

# To install uv curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository git clone git@github.com:vlttnv/k8s-mcp.git cd k8s-mcp # Install dependencies uv venv source .venv/bin/activate uv sync

Si usa la configuración de Claude, abra la configuración de la aplicación Claude para escritorio en ~/Library/Application Support/Claude/claude_desktop_config.json en un editor de texto. Asegúrese de crear el archivo si no existe.

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{ "mcpServers": { "k8s-mcp": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/k8s-mcp", "run", "server.py" ] } } }

Es posible que necesites introducir la ruta completa del ejecutable uv en el campo de comandos. Puedes obtenerla ejecutando "which uv" en macOS/Linux o "where uv" en Windows.

Related MCP server: kube-mcp

Configuración

La aplicación prueba automáticamente dos métodos para conectarse a su clúster de Kubernetes:

  1. Archivo Kubeconfig : utiliza su archivo kubeconfig local (normalmente ubicado en ~/.kube/config )

  2. Configuración en clúster : si se ejecuta dentro de un pod de Kubernetes, utiliza el token de la cuenta de servicio

No se requiere ninguna configuración adicional si su kubeconfig está configurado correctamente o si se ejecuta dentro de un clúster con permisos RBAC adecuados.

Uso

Ejemplos

A continuación se muestran algunos ejemplos útiles de preguntas que puedes hacerle a Claude sobre tu clúster de Kubernetes y sus recursos:

Estado general del clúster

  • "¿Cuál es el estado general de mi clúster?"

  • "Muéstrame todos los espacios de nombres en mi clúster"

  • "¿Qué nodos están disponibles en mi clúster y cuál es su estado?"

  • "¿Cómo es la utilización de recursos en mis nodos?"

Pods e implementaciones

  • "Enumerar todos los pods en el espacio de nombres de producción"

  • "¿Hay algún pod en estado CrashLoopBackOff?"

  • "Muéstrame los pods con un alto número de reinicios"

  • "Enumerar todas las implementaciones en todos los espacios de nombres"

  • ¿Qué implementaciones no están avanzando?

Problemas de depuración

  • "¿Por qué falla mi pod en el espacio de nombres de prueba?"

  • Obtener la configuración YAML para el servicio en el espacio de nombres de producción

  • "Muéstrame eventos recientes en el espacio de nombres predeterminado"

  • "¿Hay alguna cápsula atascada en estado pendiente?"

  • "¿Qué está causando errores de ImagePullBackOff en mi clúster?"

Gestión de recursos

  • "Muéstrame el consumo de recursos de los nodos de mi clúster"

  • "¿Existen recursos huérfanos que deba limpiar?"

  • "Enumerar todos los servicios en el espacio de nombres de producción"

  • Comparar las solicitudes de recursos entre la fase de ensayo y la de producción.

Inspección de recursos específicos

  • Muéstrame la configuración para la implementación de coredns en kube-system.

  • Obtener detalles del servicio de proxy inverso en la etapa de prueba

  • "¿Qué contenedores se están ejecutando en el pod xyz?"

  • "Muéstrame los registros del módulo defectuoso"

Referencia de API

Espacios de nombres

  • get_namespaces() : enumera todos los espacios de nombres disponibles en el clúster

Vainas

  • list_pods(namespace=None) : enumera todos los pods, opcionalmente filtrados por espacio de nombres

  • failed_pods() : enumera todos los pods en estado de error o falla

  • pending_pods() : enumera todos los pods en estado pendiente con los motivos

  • high_restart_pods(restart_threshold=5) : busca pods con recuentos de reinicios superiores al umbral

Nodos

  • list_nodes() : enumera todos los nodos y su estado

  • node_capacity() : Muestra la capacidad disponible en todos los nodos

Implementaciones y servicios

  • list_deployments(namespace=None) : enumera todas las implementaciones

  • list_services(namespace=None) : Listar todos los servicios

  • list_events(namespace=None) : Lista todos los eventos

Gestión de recursos

  • orphaned_resources() : enumera recursos sin referencias de propietario

  • get_resource_yaml(namespace, resource_type, resource_name) : obtiene la configuración de YAML para un recurso específico

Licencia

Licencia MIT

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/vlttnv/k8s-mcp'

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