MCP-сервер Kubernetes
Сервер MCP, который может подключаться к кластеру Kubernetes и управлять им.
https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed
Использование с Claude Desktop
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}Сервер автоматически подключится к вашему текущему контексту kubectl. Убедитесь, что у вас есть:
kubectl установлен и находится в вашем PATH
Действительный файл kubeconfig с настроенными контекстами
Доступ к кластеру Kubernetes, настроенному для kubectl (например, minikube, Rancher Desktop, GKE и т. д.)
Helm v3 установлен и находится в PATH (Tiller не требуется). Необязательно, если вы не планируете использовать Helm.
Вы можете проверить свое подключение, попросив Клода составить список ваших модулей или создать тестовое развертывание.
Если у вас возникли ошибки, откройте стандартный терминал и запустите kubectl get pods чтобы проверить, сможете ли вы подключиться к своему кластеру без проблем с учетными данными.
Related MCP server: k8m
Использование с mcp-chat
mcp-chat — это CLI-чат-клиент для серверов MCP. Вы можете использовать его для взаимодействия с сервером Kubernetes.
npx mcp-chat --server "npx mcp-server-kubernetes"Либо передайте ему существующий файл конфигурации Claude Desktop, указанный выше (Linux должен передать правильный путь к config):
Мак:
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"Окна:
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"Функции
[x] Подключиться к кластеру Kubernetes
[x] Список всех модулей, служб, развертываний
[x] Список, описание узлов
[x] Создать, описать, удалить модуль
[x] Список всех пространств имен, создание пространства имен
[x] Создание пользовательских конфигураций модулей и развертывания, обновление реплик развертывания
[x] Создать, описать, удалить, обновить услугу
[x] Создать, получить, обновить, удалить ConfigMap
[x] Получение журналов из модуля для отладки (поддерживает модули, развертывания, задания и селекторы меток)
[x] Поддержка Helm v3 для установки диаграмм
Установить диаграммы с пользовательскими значениями
Удаление релизов
Обновите существующие версии
Поддержка пространств имен
Поддержка спецификации версии
Поддержка пользовательских репозиториев
[x] kubectl Explain и поддержка kubectl API-ресурсов
[x] Получить события Kubernetes из кластера
[x] Переадресация порта на модуль или службу
[x] Создание, перечисление и описание cronjobs
[x] Неразрушающий режим для доступа к кластерам только для чтения и создания/обновления
Местное развитие
Убедитесь, что у вас установлен 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
# Follow further instructions on terminal for Inspector linkЛокальное тестирование с помощью Claude Desktop
{
"mcpServers": {
"mcp-server-kubernetes": {
"command": "node",
"args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
}
}
}Локальное тестирование с mcp-chat
bun run chatВнося вклад
Подробности смотрите в файле CONTRIBUTING.md .
Передовой
Дополнительные расширенные функции
Более подробную информацию, например, об использовании транспорта SSE и неразрушающем режиме с ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS , см. в файле ADVANCED_README.md .
Архитектура
Более подробный обзор архитектуры, созданный Девином, можно найти по этой ссылке DeepWiki .
В этом разделе описывается высокоуровневая архитектура сервера MCP Kubernetes.
Запрос потока
Приведенная ниже диаграмма последовательности иллюстрирует, как запросы проходят через систему:
sequenceDiagram
participant Client
participant Transport as StdioTransport
participant Server as MCP Server
participant Handler as Request Handler
participant K8sManager as KubernetesManager
participant K8s as Kubernetes API
Client->>Transport: Send Request via STDIO
Transport->>Server: Forward Request
alt Tools Request
Server->>Handler: Route to tools handler
Handler->>K8sManager: Execute tool operation
K8sManager->>K8s: Make API call
K8s-->>K8sManager: Return result
K8sManager-->>Handler: Process response
Handler-->>Server: Return tool result
else Resource Request
Server->>Handler: Route to resource handler
Handler->>K8sManager: Get resource data
K8sManager->>K8s: Query API
K8s-->>K8sManager: Return data
K8sManager-->>Handler: Format response
Handler-->>Server: Return resource data
end
Server-->>Transport: Send Response
Transport-->>Client: Return Final ResponseПубликация нового релиза
Перейдите на страницу релизов , нажмите «Черновик нового релиза», нажмите «Выбрать тег» и создайте новый тег, введя новый номер версии, используя формат semver «v{major}.{minor}.{patch}». Затем напишите название релиза «Выпуск v{major}.{minor}.{patch}» и описание/журнал изменений, если необходимо, и нажмите «Опубликовать релиз».
Это создаст новый тег, который запустит новую сборку релиза через рабочий процесс cd.yml. После успешного выполнения новый релиз будет опубликован в npm . Обратите внимание, что нет необходимости вручную обновлять версию package.json, поскольку рабочий процесс автоматически обновит номер версии в файле package.json и отправит коммит в main.
Не планируется
Аутентификация/добавление кластеров в kubectx.