Kubernetes Monitor

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides a read-only interface to Kubernetes clusters for retrieving comprehensive cluster information and diagnosing issues, including namespace management, pod status monitoring, node capacity checking, and resource management across deployments and services.

k8s-mcp

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.

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

Un servidor MCP de solo lectura para Kubernetes que permite consultar información del clúster y diagnosticar problemas a través de interfaces de lenguaje natural como Claude.

  1. Installation
    1. Prerequisites
  2. Configuration
    1. Usage
      1. Examples
    2. API Reference
      1. Namespaces
      2. Pods
      3. Nodes
      4. Deployments & Services
      5. Resource Management
    3. License
      1. Contributing
        ID: oam68lbi8z