kubeaid-mcp
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
ApplicationCR — полноценный объект: статус синхронизации, здоровье, проблемные conditions и рассинхронизированные ресурсы доступны одним вызовом инструмента.Синхронизация смоделирована как то самое явное решение «задеплоить сейчас», каким она является в KubeAid, — она доступна за опциональным флагом включения, поддерживает
dry_runи никогда не выполняется на контекстах, помеченных вами как защищённые.Встроенные промпты кодируют эксплуатационные привычки KubeAid: сначала проверяйте расхождение, а потом синхронизируйте; вносите изменения в репозиторий kubeaid-config, а не правьте кластер вручную.
Инструменты
Инструменты чтения — регистрируются всегда:
Tool | Что делают |
| Контексты kubeconfig, на которые может целиться сервер, с флагом контекста по умолчанию и флагом защиты от записи. |
| Все ArgoCD-приложения, управляемые KubeAid: статус синхронизации, здоровье, ревизия и флаг автосинхронизации. Поддерживает |
| Одно приложение детально: источники, ошибочные conditions, рассинхронизированные/нездоровые ресурсы, результат последней синхронизации, история деплоев. |
| Пространства имён со статусом и возрастом. |
| Узлы со статусом Ready, ролями, версией kubelet, внутренним IP. |
| Поды со вычисляемым в стиле kubectl статусом (CrashLoopBackOff и т. п.), числом готовых контейнеров, перезапусками, узлом и возрастом. |
| Состояния по каждому контейнеру, детали последнего падения, conditions и недавние события пода. |
| Хвост логов контейнера; при |
| Деплойменты со счётчиками ready/up-to-date/available. |
| Последние события, при желании только предупреждающие, по namespace или по всему кластеру. |
| Любой ресурс по apiVersion/kind/name — включая CRD вроде |
Инструменты записи — регистрируются только при KUBEAID_MCP_ALLOW_WRITES=true:
Tool | Описание |
| Запустить синхронизацию ArgoCD (действие KubeAid «задеплоить сейчас»). Поддерживает |
| Задать количество реплик деплоймента. |
| Rolling-restart деплоймента/statefulset/daemonset. |
| Удалить зависший под, чтобы контроллер заменил его. |
Каждый инструмент принимает необязательный аргумент context, чтобы целиться в любой кластер из вашего kubeconfig, работая всего из одного процесса сервера.
Промпты
Промпты появляются в клиенте как slash-команды или пункты меню и проводят модель через рабочий процесс с помощью инструментов выше:
Prompt | Workflow |
| Диагностика первопричины для Degraded/OutOfSync приложения: conditions → ресурсы → логи подов → рекомендация. |
| Вывести список всех рассинхронизированных приложений, оценить риск каждой ожидающей синхронизации, затем спросить разрешение перед синхронизацией. |
| Пройтись по узлам, приложениям, подам и событиям предупреждений; отчитаться по степени серьёзности. |
Быстрый старт
Требуется Node.js 20+.
git clone <your-repo-url> kubeaid-mcp
cd kubeaid-mcp
npm install
npm run buildClaude 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"
}
}
}
}Полностью закройте и снова запустите приложение после этого.
Конфигурация
Вся конфигурация задаётся переменными окружения и считывается один раз при запуске:
Переменная | По умолчанию | Описание |
| Стандартный поиск client-node ( | Путь к kubeconfig. |
| слежение за current-context в реальном времени | Задать постоянный контекст по умолчанию. Если не указана, |
|
| Пространство имён, которое хранит ArgoCD |
|
| Регистрировать ли изменяющие инструменты вообще. |
| нет | Контексты через запятую, которые отказываются от любых изменяющих вызовов, даже если запись включена. |
Модель безопасности
Три независимых слоя:
Ограничение возможностей (capability gating) — при отключённых записях (по умолчанию) изменяющие инструменты вообще не регистрируются, поэтому модель их даже не видит.
Защищённые контексты — каждый изменяющий обработчик повторно проверяет целевой контекст по списку
KUBEAID_MCP_PROTECTED_CONTEXTSи отказывается обрабатывать защищённые, что бы модель ни запрашивала.Подтверждение клиентом — инструменты несут 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
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 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.
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/deep-poharkar/kubeaid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server