by Flux159 (community) Claude Desktop, Kubernetes + kubectl
MCP-сервер для управления Kubernetes-кластером. Читает и управляет подами, деплойментами, сервисами и логами — используя kubeconfig текущего пользователя. Возможности: - `list_pods` / `get_pod` — просмотр подов по namespace - `list_deployments` / `scale_deployment` — управление деплойментами - `get_pod_logs` — получение логов контейнера - `exec_command` — выполнение команды внутри пода - `list_services` / `list_namespaces` - `apply_manifest` — применение YAML-манифеста - `delete_resource` — удаление любого ресурса
# npm install -g mcp-server-kubernetes
# Использует ~/.kube/config автоматически
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"kubernetes": {
"command": "mcp-server-kubernetes"
}
}
}
# Claude Code (CLI):
claude mcp add kubernetes -- mcp-server-kubernetes
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"kubernetes": {
"type": "local",
"command": ["mcp-server-kubernetes"]
}
}
}
![]()
MCP-сервер, который может подключаться к кластеру Kubernetes и управлять им. Поддерживает загрузку kubeconfig из нескольких источников в порядке приоритета.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Прежде чем использовать этот MCP-сервер с каким-либо инструментом, убедитесь, что у вас есть:
kubectlВы можете проверить подключение, выполнив команду 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, перейдя в последний Релиз и скачав его.
Для интеграции с VS Code вы можете использовать MCP-сервер с расширениями, поддерживающими Model Context Protocol:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"],
"description": "Управление кластером Kubernetes и операции"
}
}
}
Cursor поддерживает MCP-серверы через свою AI-интеграцию. Добавьте сервер в конфигурацию MCP для Cursor:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Сервер автоматически подключится к текущему контексту kubectl. Вы можете проверить подключение, попросив AI-ассистента список ваших подов или создать тестовый деплой.
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
Для полной документации, включая параметры конфигурации, примеры разввертывания (Kubernetes, Helm, Claude Code), стратегии выборки, рекомендации для продакшена и руководство по устранению неполадок, см. docs/OBSERVABILITY.md).
# Запуск 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 Транспортный слой
participant Server as MCP Сервер
participant Filter as Фильтр инструментов
participant Handler as Обработчик запросов
participant K8sManager as KubernetesManager
participant K8s as API Kubernetes
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.
Перейдите на страницу релизов, нажмите «Черновик нового релиза», нажмите «Выбрать тег» и создайте новый тег, набрав новый номер версии в формате «v{major}.{minor}.{patch}» (семантическое версионирование). Затем напишите заголовок релиза «Release v{major}.{minor}.{patch}» и описание / журнал изменений, если необходимо, и нажмите «Опубликовать релиз».
Это создаст новый тег, который запустит новую сборку релиза через workflow cd.yml. После успешного завершения новый релиз будет опубликован в npm. Обратите внимание, что нет необходимости вручную обновлять версию в package.json, так как workflow автоматически обновит номер версии в файле 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}
}