by Flux159 (community) Claude Desktop, Claude Code, OpenCode, любой MCP-клиент
MCP-сервер для управления Kubernetes кластерами прямо из AI-ассистента. Позволяет просматривать поды, деплойменты, сервисы и namespace'ы, применять манифесты, смотреть логи и выполнять kubectl-операции через естественный язык. Возможности: - Просмотр ресурсов: pods, deployments, services, namespaces, nodes - Применение манифестов и патчей - Логи контейнеров в реальном времени - Port-forwarding и exec в pod - Работает с любым kubeconfig (local, EKS, GKE, AKS) - Scale, rollout restart, delete ресурсов
# Claude Desktop — claude_desktop_config.json:
```json
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
```
# Claude Code (CLI):
```bash
claude mcp add kubernetes -- npx mcp-server-kubernetes
```
# OpenCode — ~/.config/opencode/opencode.json:
```json
{
"mcp": {
"kubernetes": {
"type": "local",
"command": ["npx", "mcp-server-kubernetes"]
}
}
}
```
Требует настроенного kubeconfig (~/.kube/config).
![]()
MCP-сервер, который может подключаться к кластеру Kubernetes и управлять им. Поддерживает загрузку kubeconfig из нескольких источников в порядке приоритета.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Перед использованием этого MCP-сервера с любым инструментом убедитесь, что у вас:
Вы можете проверить свое подключение, запустив kubectl get pods в терминале, чтобы убедиться, что вы можете подключиться к своему кластеру без проблем с учетными данными.
По умолчанию сервер загружает kubeconfig из ~/.kube/config. Для дополнительных вариантов аутентификации (переменные среды, пользовательские пути и т.д.) см. ADVANCED_README.md).
Добавьте MCP-сервер в Claude Code с помощью встроенной команды:
claude mcp add kubernetes -- npx mcp-server-kubernetes
Это автоматически настроит сервер в ваших настройках MCP Claude Code.
Добавьте следующую конфигурацию в файл конфигурации Claude Desktop:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
MCP Server Kubernetes также доступен как расширение mcpb (ранее dxt). В Claude Desktop перейдите в Настройки (Cmd+, на Mac) -> Расширения -> Обзор расширений и прокрутите вниз, чтобы найти mcp-server-kubernetes в модальном окне. Установите его, и он установит и будет использовать kubectl через командную строку и ваш kubeconfig.
Для ручной установки вы также можете получить .mcpb, перейдя в последний Release и скачав его.
Для интеграции с VS Code вы можете использовать MCP-сервер с расширениями, поддерживающими Model Context Protocol:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"description": "Управление и операции с кластером Kubernetes"
}
}
}
Cursor поддерживает MCP-серверы через свою интеграцию с ИИ. Добавьте сервер в конфигурацию MCP в Cursor:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Сервер автоматически подключится к вашему текущему контексту kubectl. Вы можете проверить подключение, попросив ИИ-ассистента вывести список ваших подов или создать тестовый деплоймент.
mcp-chat — это CLI-клиент для чата с MCP-серверами. Вы можете использовать его для взаимодействия с сервером Kubernetes.
npx mcp-chat --server "npx mcp-server-kubernetes"
Или передайте ему ваш существующий файл конфигурации Claude Desktop, указанный выше (для Linux следует указать правильный путь к конфигурации):
Mac:
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"
Windows:
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"
Gemini CLI позволяет устанавливать MCP-серверы как расширения. Из оболочки установите расширение, указав на этот репозиторий:
gemini extensions install https://github.com/Flux159/mcp-server-kubernetes
kubectl_getkubectl_describekubectl_getkubectl_createkubectl_applykubectl_deletekubectl_logskubectl_contextexplain_resourcelist_api_resourceskubectl_scalekubectl_patchkubectl_rolloutkubectl_genericpingkubectl_scale (заменяет устаревший scale_deployment)port_forwardhelm_template_apply) для обхода проблем с аутентификациейhelm_template_uninstall) для обхода проблем с аутентификациейcleanup_pods) в состояниях: Evicted, ContainerStatusUnknown, Completed, Error, ImagePullBackOff, CrashLoopBackOffnode_management) для операций обслуживания и масштабированияk8s-diagnose)kubectl get secrets, не влияет на логи)MCP Kubernetes сервер включает опциональную интеграцию OpenTelemetry для комплексной наблюдаемости. Эта функция отключена по умолчанию и может быть включена с помощью переменных среды или конфигурации Helm.
Включите наблюдаемость с помощью переменных среды:
export ENABLE_TELEMETRY=true
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
npx mcp-server-kubernetes
Работает с любым совместимым OTLP-бэкендом: - Jaeger (с открытым исходным кодом) - Grafana Tempo (с открытым исходным кодом) - Grafana Cloud (коммерческий) - Datadog, New Relic, Honeycomb, Lightstep, AWS X-Ray
См. docs/OBSERVABILITY.md) для полной документации, включая: - Варианты конфигурации - Примеры развёртывания (Kubernetes, Helm, Claude Code) - Стратегии выборки - Лучшие практики для продакшена - Руководство по устранению неполадок
# Запустите Jaeger
docker run -d --name jaeger \
-e COLLECTOR_OTLP_ENABLED=true \
-p 16686:16686 \
-p 4317:4317 \
jaegertracing/all-in-one:latest
# Включите телеметрию
export ENABLE_TELEMETRY=true
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
export OTEL_TRACES_SAMPLER=always_on
# Запустите сервер
npx mcp-server-kubernetes
# Просмотр трассировок: http://localhost:16686
MCP Kubernetes сервер включает специализированные промпты для помощи в выполнении типовых диагностических операций.
Этот промпт предоставляет систематический процесс устранения неполадок для подов Kubernetes. Он принимает keyword для идентификации соответствующих подов и опциональный namespace для сужения области поиска.
Результат промпта проведет вас через процесс самостоятельного устранения неполадок, предоставляя инструкции по выявлению проблем, сбору доказательств и предложениям по устранению.
Убедитесь, что у вас установлен bun. Клонируйте репозиторий и установите зависимости:
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun install
bun run dev
bun run test
bun run build
npx @modelcontextprotocol/inspector node dist/index.js
# Следуйте дальнейшим инструкциям в терминале для ссылки на Inspector
{
"mcpServers": {
"mcp-server-kubernetes": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}
bun run chat
Подробности см. в файле CONTRIBUTING.md).
Вы можете запустить сервер в недеструктивном режиме, который отключает все деструктивные операции (удаление подов, удаление деплойментов, удаление пространств имен и т.д.):
ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true npx mcp-server-kubernetes
Для конфигурации Claude Desktop с недеструктивным режимом:
{
"mcpServers": {
"kubernetes-readonly": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"env": {
"ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS": "true"
}
}
}
}
Все операции только для чтения и создания/обновления ресурсов остаются доступными:
kubectl_get, kubectl_describe, kubectl_logs, explain_resource, list_api_resourceskubectl_apply, kubectl_create, kubectl_scale, kubectl_patch, kubectl_rolloutinstall_helm_chart, upgrade_helm_chart, helm_template_apply, helm_template_uninstallport_forward, stop_port_forwardkubectl_contextСледующие деструктивные операции отключены:
kubectl_delete: Удаление любых ресурсов Kubernetesuninstall_helm_chart: Удаление чартов Helmcleanup: Очистка управляемых ресурсовcleanup_pods: Очистка проблемных подовnode_management: Операции управления узлами (может осушать узлы)kubectl_generic: Общий доступ к командам kubectl (может включать деструктивные операции)Для получения дополнительных продвинутых функций см. ADVANCED_README.md) и также папку docs для конкретной информации о helm_install, helm_template_apply, управлении узлами и очистке подов.
См. эту ссылку на DeepWiki для более глубокого обзора архитектуры, созданного Devin.
Этот раздел описывает архитектуру MCP Kubernetes сервера на высоком уровне.
Диаграмма последовательности ниже иллюстрирует, как запросы проходят через систему:
sequenceDiagram
participant Client
participant Transport as Transport Layer
participant Server as MCP Server
participant Filter as Tool Filter
participant Handler as Request Handler
participant K8sManager as KubernetesManager
participant K8s as Kubernetes API
Note over Transport: StdioTransport или<br>SSE Transport
Client->>Transport: Отправить запрос
Transport->>Server: Переслать запрос
alt Запрос инструментов
Server->>Filter: Фильтровать доступные инструменты
Note over Filter: Убрать деструктивные инструменты<br>в недеструктивном режиме
Filter->>Handler: Маршрутизировать к обработчику инструментов
alt Операции kubectl
Handler->>K8sManager: Выполнить операцию kubectl
K8sManager->>K8s: Выполнить вызов API
else Операции Helm
Handler->>K8sManager: Выполнить операцию Helm
K8sManager->>K8s: Выполнить вызов API
else Операции проброса портов
Handler->>K8sManager: Настроить проброс портов
K8sManager->>K8s: Выполнить вызов API
end
K8s-->>K8sManager: Вернуть результат
K8sManager-->>Handler: Обработать ответ
Handler-->>Server: Вернуть результат инструмента
else Запрос ресурса
Server->>Handler: Маршрутизировать к обработчику ресурсов
Handler->>K8sManager: Получить данные ресурса
K8sManager->>K8s: Запросить API
K8s-->>K8sManager: Вернуть данные
K8sManager-->>Handler: Отформатировать ответ
Handler-->>Server: Вернуть данные ресурса
end
Server-->>Transport: Отправить ответ
Transport-->>Client: Вернуть окончательный ответ
См. эту ссылку на DeepWiki для более глубокого обзора архитектуры, созданного Devin.
Перейдите на страницу релизов, нажмите "Draft New Release", нажмите "Choose a tag" и создайте новый тег, набрав новый номер версии в формате semver "v{major}.{minor}.{patch}". Затем напишите заголовок релиза "Release v{major}.{minor}.{patch}" и описание / журнал изменений, если необходимо, и нажмите "Publish Release".
Это создаст новый тег, который запустит сборку нового релиза через рабочий процесс cd.yml. После успешного завершения новый релиз будет опубликован в npm. Обратите внимание, что нет необходимости обновлять версию в package.json вручную, поскольку рабочий процесс автоматически обновит номер версии в файле package.json и отправит коммит в main.
Добавление кластеров в kubectx.
Если вы нашли этот репозиторий полезным, пожалуйста, процитируйте:
@software{Patel_MCP_Server_Kubernetes_2024,
author = {Patel, Paras and Sonwalkar, Suyog},
month = jul,
title = {{MCP Server Kubernetes}},
url = {https://github.com/Flux159/mcp-server-kubernetes},
version = {2.5.0},
year = {2024}
}