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.
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
enpyproject.toml
) - uv - https://github.com/astral-sh/uv
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.
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:
- Archivo Kubeconfig : utiliza su archivo kubeconfig local (normalmente ubicado en
~/.kube/config
) - 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 nombresfailed_pods()
: enumera todos los pods en estado de error o fallapending_pods()
: enumera todos los pods en estado pendiente con los motivoshigh_restart_pods(restart_threshold=5)
: busca pods con recuentos de reinicios superiores al umbral
Nodos
list_nodes()
: enumera todos los nodos y su estadonode_capacity()
: Muestra la capacidad disponible en todos los nodos
Implementaciones y servicios
list_deployments(namespace=None)
: enumera todas las implementacioneslist_services(namespace=None)
: Listar todos los servicioslist_events(namespace=None)
: Lista todos los eventos
Gestión de recursos
orphaned_resources()
: enumera recursos sin referencias de propietarioget_resource_yaml(namespace, resource_type, resource_name)
: obtiene la configuración de YAML para un recurso específico
Licencia
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
This server cannot be installed
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.