k8s-mcp-server
Servidor MCP para Operaciones de K8s
Servicio MCP de operaciones de Kubernetes basado en FastMCP. Encapsula acciones de diagnóstico diario como kubectl get / describe / logs / events --watch en herramientas de solo lectura invocables por LLM, permitiendo que clientes como Claude lean directamente el estado del clúster y localicen fallos en el primer punto de incidencia.
⚠️ Este proyecto solo expone herramientas de solo lectura (sin create/update/delete). No obstante, se recomienda usar un ServiceAccount de solo lectura con RBAC, como se indica en «Recomendaciones de seguridad».
Lista de herramientas
Herramienta | Descripción | Equivalente en kubectl |
| Resumen de la lista de nodos |
|
| Detalle de un nodo |
|
| Resumen de solicitudes/límites de recursos del nodo y evaluación de sobrecarga |
|
| Escaneo de nodos con problemas (NotReady / varias Pressure) | — |
| Lista de Pods (admite filtro por namespace / label / field) |
|
| Detalle de un Pod (admite localización por label / workload / prefijo de nombre) |
|
| Lectura de logs de contenedores de un Pod |
|
| Consulta de eventos del clúster (deduplicación + ordenación) |
|
| Monitoreo en tiempo real del flujo de eventos |
|
| Monitoreo en tiempo real de cambios de estado de los nodos |
|
| Monitoreo en tiempo real de cambios de estado de los Pods |
|
Además, se incluyen dos capacidades adicionales: @mcp.prompt (guía para diagnóstico de nodos / inspección del clúster) y @mcp.resource (resumen del clúster k8s://cluster/summary).
Related MCP server: Kubernetes MCP Server
Estructura de directorios
├── app.py # FastMCP 实例(叶子模块,破循环导入)
├── k8s_server.py # 入口:导入 Tools 即自动注册全部工具
├── k8s_client.py # K8s 客户端懒加载 + 单一配置真源
├── config.py # 12-Factor 环境变量配置
├── prompts.py # @mcp.prompt 引导
├── resources.py # @mcp.resource 资源
├── Tools/ # 每个工具一个文件,导入即注册
├── utils/ # 纯解析/辅助模块(无 K8s/MCP 依赖)
└── tests/ # 单元测试Instalación y ejecución
# 1. 创建虚拟环境并安装依赖
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux / macOS
source .venv/bin/activate
pip install -r requirements.txt
# 2. 运行(HTTP transport,默认 127.0.0.1:8081)
python k8s_server.pyEjecución de pruebas
pip install -r requirements-dev.txt
python -m pytest -qConfiguración
Toda la configuración se realiza mediante variables de entorno, con valores predeterminados (ver config.py):
Variable | Valor predeterminado | Descripción |
|
| Ruta explícita al kubeconfig; si se deja vacía, se sigue la cadena oficial de resolución ( |
|
| Si se verifica el certificado TLS; establecer |
|
| Nombre del servicio MCP |
|
| Transporte, |
|
| Dirección de escucha |
|
| Puerto de escucha |
Prioridad de carga de la conexión a K8s: in-cluster (dentro del Pod) → KUBECONFIG_PATH explícito → cadena oficial de resolución del kubeconfig, con una única fuente de verdad, sin ensamblar desde múltiples archivos.
Integración con clientes MCP
Tomando Claude Code como ejemplo (con transporte HTTP ya en ejecución en 127.0.0.1:8081):
{
"mcpServers": {
"k8s-node-server": {
"url": "http://127.0.0.1:8081/mcp"
}
}
}Recomendaciones de seguridad
Usar RBAC de solo lectura: configurar un ClusterRole de solo lectura para el Pod / usuario que ejecuta este servicio, evitando usar credenciales con privilegios elevados.
Vincular solo a la máquina local por defecto:
MCP_HOSTtiene como valor predeterminado127.0.0.1. Si se necesita exponer el servicio, asegurarse de añadir autenticación en la capa de proxy inverso (TLS + Token / OIDC), ya que el transporte HTTP en sí no tiene autenticación ni limitación de tasa.No desactivar la verificación de certificados:
K8S_VERIFY_SSL=falsese usa únicamente para depurar temporalmente certificados autofirmados; en producción mantenertrue.No almacenar credenciales en el repositorio: el kubeconfig contiene secretos;
.gitignoreya excluyekubeconfig*, no forzar su inclusión.
Limitaciones conocidas
Todas las herramientas son de solo lectura, sin operaciones de modificación (es una decisión de diseño deliberada).
La serie
watch_*está sujeta a un bloqueo global de concurrencia: solo se permite un watch a la vez, para evitar presión sobre el API Server.La salida de eventos/logs tiene un límite de longitud; los contenidos demasiado grandes se truncarán (ver la lógica de truncamiento en
read_pod_logymax_countenquery_events).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides a set of read-only Kubernetes functions via an MCP server, enabling interaction with Kubernetes clusters through agents or coding assistants like GitHub Copilot.93Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables real-time Kubernetes cluster observability and debugging through standardized MCP interface. Provides access to pods, services, nodes, events, and includes built-in tools for cluster health analysis and issue identification.
- FlicenseNot gradedqualityDmaintenanceEnables Kubernetes cluster introspection via MCP tools, such as listing pods, namespaces, nodes, and events.4
- AlicenseAqualityCmaintenanceA read-only MCP server for inspecting Kubernetes clusters, allowing LLMs to list resources, describe pods, and read logs without mutation.5MIT
Related MCP Connectors
Read-only Remote MCP for externally grounded AI agent trust receipts.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/zj-hub-coder/k8s-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server