Skip to main content
Glama

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

list_nodes

Обзор списка узлов

kubectl get nodes -o wide

get_node_detail

Детали узла

kubectl describe node

get_node_resource_usage

Сводка запросов/лимитов ресурсов узла и оценка перегрузки

Allocated resources из describe node

find_problem_nodes

Сканирование проблемных узлов (NotReady / различные Pressure)

list_pods

Список Pod (поддерживается фильтрация по namespace / label / field)

kubectl get pods -o wide

get_pod_detail

Детали Pod (поддерживается поиск по label / workload / префиксу имени)

kubectl describe pod

read_pod_log

Чтение логов контейнера Pod

kubectl logs

query_events

Запрос событий кластера (дедупликация + сортировка)

kubectl get events

watch_events

Прослушивание потока событий в реальном времени

kubectl get events --watch

watch_nodes

Прослушивание изменений состояния узлов в реальном времени

kubectl get nodes --watch

watch_pods

Прослушивание изменений состояния Pod в реальном времени

kubectl get pods --watch

Также есть две дополнительные возможности: @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_PATH

""

Явно задаёт путь к kubeconfig; если пусто — используется официальная цепочка разрешения ($KUBECONFIG~/.kube/config)

K8S_VERIFY_SSL

true

Проверять ли TLS-сертификаты; устанавливайте false только при отладке самоподписанных сертификатов и осознанном риске

MCP_SERVER_NAME

k8s-node-server

Имя MCP-сервиса

MCP_TRANSPORT

http

Транспорт: http или stdio

MCP_HOST

127.0.0.1

Адрес прослушивания

MCP_PORT

8081

Порт прослушивания

Приоритет загрузки конфигурации подключения к 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"
    }
  }
}

Рекомендации по безопасности

  1. Используйте read-only RBAC: настройте для Pod / пользователя, запускающего сервис, read-only ClusterRole, чтобы не использовать учётные данные с избыточными правами.

  2. По умолчанию привязка только к локальной машине: MCP_HOST по умолчанию 127.0.0.1. Если нужно открыть доступ извне, обязательно добавьте аутентификацию на уровне reverse proxy (TLS + Token / OIDC), поскольку HTTP transport сам по себе не имеет аутентификации и ограничения частоты запросов.

  3. Не отключайте проверку сертификатов: K8S_VERIFY_SSL=false используйте только для временной отладки самоподписанных сертификатов; в production оставляйте true.

  4. Не храните учётные данные в репозитории: kubeconfig содержит секреты, .gitignore уже исключает kubeconfig*, не принуждайте к коммиту.

Известные ограничения

  • Все инструменты — read-only, без операций изменения (это осознанное решение).

  • Серия watch_* ограничена глобальной блокировкой конкурентности: в один момент времени может выполняться только один watch, чтобы не создавать нагрузку на API Server.

  • Вывод событий/логов имеет ограничение по длине; слишком большие объёмы обрезаются (см. логику обрезки в read_pod_log и max_count в query_events).

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/zj-hub-coder/k8s-mcp-server'

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