Skip to main content
Glama

KubeAid MCP

MCP-сервер для Kubernetes-кластеров под управлением KubeAid. Подключите его к Claude Code, Claude Desktop, Cursor или любому MCP-совместимому клиенту и задавайте вопросы вроде «какие приложения рассинхронизированы?», «почему kube-prometheus в статусе degraded?» или «синхронизируй приложение cert-manager» — модель отвечает, вызывая инструменты этого сервера, а те общаются с вашим кластером через ваши собственные учётные данные kubeconfig.

Написан на TypeScript поверх официальных @modelcontextprotocol/sdk и @kubernetes/client-node.

Автор: Deep Poharkar

Почему это специфично для KubeAid?

KubeAid управляет кластерами в стиле GitOps: каждое приложение — это ArgoCD-ресурс Application, сгенерированный из вашего репозитория kubeaid-config, а автосинхронизация по умолчанию отключена — расхождение между Git и кластером это норма, ожидающая осознанной синхронизации. Универсальный Kubernetes-ассистент такого процесса не понимает. Этот сервер — понимает.

  • ArgoCD Application CR — полноценный объект: статус синхронизации, здоровье, проблемные conditions и рассинхронизированные ресурсы доступны одним вызовом инструмента.

  • Синхронизация смоделирована как то самое явное решение «задеплоить сейчас», каким она является в KubeAid, — она доступна за опциональным флагом включения, поддерживает dry_run и никогда не выполняется на контекстах, помеченных вами как защищённые.

  • Встроенные промпты кодируют эксплуатационные привычки KubeAid: сначала проверяйте расхождение, а потом синхронизируйте; вносите изменения в репозиторий kubeaid-config, а не правьте кластер вручную.

Инструменты

Инструменты чтения — регистрируются всегда:

Tool

Что делают

list_contexts

Контексты kubeconfig, на которые может целиться сервер, с флагом контекста по умолчанию и флагом защиты от записи.

list_argocd_apps

Все ArgoCD-приложения, управляемые KubeAid: статус синхронизации, здоровье, ревизия и флаг автосинхронизации. Поддерживает only_problems.

describe_argocd_app

Одно приложение детально: источники, ошибочные conditions, рассинхронизированные/нездоровые ресурсы, результат последней синхронизации, история деплоев.

list_namespaces

Пространства имён со статусом и возрастом.

list_nodes

Узлы со статусом Ready, ролями, версией kubelet, внутренним IP.

list_pods

Поды со вычисляемым в стиле kubectl статусом (CrashLoopBackOff и т. п.), числом готовых контейнеров, перезапусками, узлом и возрастом.

describe_pod

Состояния по каждому контейнеру, детали последнего падения, conditions и недавние события пода.

get_pod_logs

Хвост логов контейнера; при previous: true читаются логи упавшего экземпляра.

list_deployments

Деплойменты со счётчиками ready/up-to-date/available.

get_events

Последние события, при желании только предупреждающие, по namespace или по всему кластеру.

describe_resource

Любой ресурс по apiVersion/kind/name — включая CRD вроде SealedSecret или Certificate.

Инструменты записи — регистрируются только при KUBEAID_MCP_ALLOW_WRITES=true:

Tool

Описание

sync_argocd_app

Запустить синхронизацию ArgoCD (действие KubeAid «задеплоить сейчас»). Поддерживает revision, prune, dry_run.

scale_deployment

Задать количество реплик деплоймента.

rollout_restart

Rolling-restart деплоймента/statefulset/daemonset.

delete_pod

Удалить зависший под, чтобы контроллер заменил его.

Каждый инструмент принимает необязательный аргумент context, чтобы целиться в любой кластер из вашего kubeconfig, работая всего из одного процесса сервера.

Промпты

Промпты появляются в клиенте как slash-команды или пункты меню и проводят модель через рабочий процесс с помощью инструментов выше:

Prompt

Workflow

diagnose_app

Диагностика первопричины для Degraded/OutOfSync приложения: conditions → ресурсы → логи подов → рекомендация.

sync_review

Вывести список всех рассинхронизированных приложений, оценить риск каждой ожидающей синхронизации, затем спросить разрешение перед синхронизацией.

cluster_health_check

Пройтись по узлам, приложениям, подам и событиям предупреждений; отчитаться по степени серьёзности.

Быстрый старт

Требуется Node.js 20+.

git clone <your-repo-url> kubeaid-mcp
cd kubeaid-mcp
npm install
npm run build

Claude Code

claude mcp add kubeaid -- node "$(pwd)/dist/index.js"

По умолчанию — только чтение. Чтобы включить запись, оставив продакшн-окружение нетронутым:

claude mcp add kubeaid \
  -e KUBEAID_MCP_ALLOW_WRITES=true \
  -e KUBEAID_MCP_PROTECTED_CONTEXTS=prod-cluster-1,prod-cluster-2 \
  -- node "$(pwd)/dist/index.js"

Claude Desktop

Включите Settings → Developer → Local MCP servers, затем добавьте в открывшийся на этой странице файл конфигурации:

{
  "mcpServers": {
    "kubeaid": {
      "command": "node",
      "args": ["/absolute/path/to/kubeaid-mcp/dist/index.js"],
      "env": {
        "KUBEAID_MCP_ALLOW_WRITES": "true",
        "KUBEAID_MCP_PROTECTED_CONTEXTS": "prod-cluster-1"
      }
    }
  }
}

Полностью закройте и снова запустите приложение после этого.

Конфигурация

Вся конфигурация задаётся переменными окружения и считывается один раз при запуске:

Переменная

По умолчанию

Описание

KUBECONFIG

Стандартный поиск client-node (~/.kube/config)

Путь к kubeconfig.

KUBEAID_MCP_CONTEXT

слежение за current-context в реальном времени

Задать постоянный контекст по умолчанию. Если не указана, kubectl config use-context перенаправляет цель сервера в середине сессии; аргументы context в каждом отдельном вызове всегда приоритетнее.

KUBEAID_MCP_ARGOCD_NAMESPACE

argocd

Пространство имён, которое хранит ArgoCD Application CR.

KUBEAID_MCP_ALLOW_WRITES

false

Регистрировать ли изменяющие инструменты вообще.

KUBEAID_MCP_PROTECTED_CONTEXTS

нет

Контексты через запятую, которые отказываются от любых изменяющих вызовов, даже если запись включена.

Модель безопасности

Три независимых слоя:

  1. Ограничение возможностей (capability gating) — при отключённых записях (по умолчанию) изменяющие инструменты вообще не регистрируются, поэтому модель их даже не видит.

  2. Защищённые контексты — каждый изменяющий обработчик повторно проверяет целевой контекст по списку KUBEAID_MCP_PROTECTED_CONTEXTS и отказывается обрабатывать защищённые, что бы модель ни запрашивала.

  3. Подтверждение клиентом — инструменты несут MCP-аннотации readOnlyHint/destructiveHint, поэтому корректно работающие клиенты запросят подтверждение перед рискованными вызовами.

Сервер не хранит никаких собственных учётных данных; он может делать только то, что вашей учётной записи kubeconfig уже разрешено делать по RBAC.

Разработка

npm run typecheck   # strict TS, no emit
npm run build       # compile to dist/
npm run smoke       # spawn the server, MCP handshake, list tools + prompts
KUBEAID_MCP_ALLOW_WRITES=true npm run smoke   # verify write tools register

Смоук-тесту не нужен кластер — он работает по сырому протоколу JSON-RPC через stdio.

Дорожная карта

  • check_chart_updates: сравнение установленных версий чартов с каталогом argocd-helm-charts из апстрима KubeAid.

  • Хелперы для Sealed Secrets: выводить статус SealedSecret, помечать неудачные расшифровки (unseal).

  • Инструменты Prometheus/Alertmanager: показывать активные алстерты из kube-prometheus-стека, который поставляет KubeAid.

Благодарности

  • KubeAid от Obmondo — стек управления кластерами, для которого создан этот сервер.

  • Argo CD — GitOps-движок под капотом у KubeAid.

Лицензия

MIT © 2026 Deep Poharkar

-
license - not tested
-
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 Connectors

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

  • MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2

  • An MCP server for Arcjet - the runtime security platform that ships with your AI code.

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/deep-poharkar/kubeaid-mcp'

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