k8s-mcp-server
MCP Server для эксплуатации кластера K8s
MCP-сервис для эксплуатационных запросов Kubernetes на базе FastMCP. Оборачивает повседневные диагностические действия, такие как kubectl get / describe / logs / events --watch, в read-only инструменты, вызываемые LLM, позволяя клиентам вроде Claude напрямую читать состояние кластера и находить первопричину инцидента.
⚠️ Этот проект предоставляет только read-only инструменты (без create/update/delete). Тем не менее рекомендуется использовать его с RBAC на основе read-only ServiceAccount, см. раздел «Рекомендации по безопасности» ниже.
Список инструментов
Инструмент | Описание | Соответствующий kubectl |
| Обзор списка узлов |
|
| Детали узла |
|
| Сводка запросов/лимитов ресурсов узла и оценка перегрузки | Allocated resources из |
| Сканирование проблемных узлов (NotReady / различные Pressure) | — |
| Список Pod (поддерживается фильтрация по namespace / label / field) |
|
| Детали Pod (поддерживается поиск по label / workload / префиксу имени) |
|
| Чтение логов контейнера Pod |
|
| Запрос событий кластера (дедупликация + сортировка) |
|
| Прослушивание потока событий в реальном времени |
|
| Прослушивание изменений состояния узлов в реальном времени |
|
| Прослушивание изменений состояния Pod в реальном времени |
|
Также есть две дополнительные возможности: @mcp.prompt (руководство по диагностике узлов / проверке кластера) и @mcp.resource (k8s://cluster/summary — сводка по кластеру).
Related MCP server: Kubernetes MCP Server
Структура каталога
├── 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/ # 单元测试Установка и запуск
# 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.pyЗапуск тестов
pip install -r requirements-dev.txt
python -m pytest -qКонфигурация
Всё настраивается через переменные окружения, со значениями по умолчанию (см. config.py):
Переменная | Значение по умолчанию | Описание |
|
| Явно задаёт путь к kubeconfig; если пусто — используется официальная цепочка разрешения ( |
|
| Проверять ли TLS-сертификаты; устанавливайте |
|
| Имя MCP-сервиса |
|
| Транспорт: |
|
| Адрес прослушивания |
|
| Порт прослушивания |
Приоритет загрузки конфигурации подключения к K8s: in-cluster (SA внутри Pod) → явный KUBECONFIG_PATH → официальная цепочка разрешения kubeconfig. Единый источник истины, без сборки из нескольких файлов.
Подключение MCP-клиента
На примере Claude Code (когда HTTP transport уже запущен на 127.0.0.1:8081):
{
"mcpServers": {
"k8s-node-server": {
"url": "http://127.0.0.1:8081/mcp"
}
}
}Рекомендации по безопасности
Используйте read-only RBAC: настройте для Pod / пользователя, запускающего сервис, read-only ClusterRole, чтобы не использовать учётные данные с избыточными правами.
По умолчанию привязка только к локальной машине:
MCP_HOSTпо умолчанию127.0.0.1. Если нужно открыть доступ извне, обязательно добавьте аутентификацию на уровне reverse proxy (TLS + Token / OIDC), поскольку HTTP transport сам по себе не имеет аутентификации и ограничения частоты запросов.Не отключайте проверку сертификатов:
K8S_VERIFY_SSL=falseиспользуйте только для временной отладки самоподписанных сертификатов; в production оставляйтеtrue.Не храните учётные данные в репозитории: kubeconfig содержит секреты,
.gitignoreуже исключаетkubeconfig*, не принуждайте к коммиту.
Известные ограничения
Все инструменты — read-only, без операций изменения (это осознанное решение).
Серия
watch_*ограничена глобальной блокировкой конкурентности: в один момент времени может выполняться только один watch, чтобы не создавать нагрузку на API Server.Вывод событий/логов имеет ограничение по длине; слишком большие объёмы обрезаются (см. логику обрезки в
read_pod_logиmax_countвquery_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