MCP-сервер Kubernetes
✨ Функции | 🚀 Начало работы | 🎥 Демонстрации | ⚙️ Конфигурация | 🛠️ Инструменты | 🧑💻 Разработка
https://github.com/user-attachments/assets/be2b67b3-fc1c-4d11-ae46-93deba8ed98e
✨ Особенности
Мощная и гибкая реализация сервера Kubernetes Model Context Protocol (MCP) с поддержкой Kubernetes и OpenShift .
✅ Конфигурация :
Автоматически обнаруживайте изменения в конфигурации Kubernetes и обновляйте сервер MCP.
Просмотр и управление текущей конфигурацией Kubernetes или внутрикластерной конфигурацией.
✅ Универсальные ресурсы Kubernetes : выполнение операций на любом ресурсе Kubernetes или OpenShift.
Любая CRUD-операция (создание или обновление, получение, вывод списка, удаление).
✅ Поды : выполнение операций, специфичных для подов.
Вывести список модулей во всех пространствах имен или в определенном пространстве имен.
Получить модуль по имени из указанного пространства имен.
Удалить модуль по имени из указанного пространства имен.
Показать журналы для модуля по имени из указанного пространства имен.
Войдите в модуль и выполните команду.
Запустите образ контейнера в модуле и при необходимости опубликуйте его.
✅ Пространства имен : список пространств имен Kubernetes.
✅ События : просмотр событий Kubernetes во всех пространствах имен или в определенном пространстве имен.
✅ Проекты : список проектов OpenShift.
☸️ Шлем :
Установите диаграмму Helm в текущем или предоставленном пространстве имен.
Вывод списка релизов Helm во всех пространствах имен или в определенном пространстве имен.
Удалить выпуск Helm в текущем или предоставленном пространстве имен.
В отличие от других реализаций сервера Kubernetes MCP, это НЕ просто оболочка вокруг инструментов командной строки kubectl или helm . Это собственная реализация на основе Go, которая напрямую взаимодействует с сервером API Kubernetes.
НЕТ НЕОБХОДИМОСТИ устанавливать внешние зависимости или инструменты в системе. Если вы используете собственные двоичные файлы, вам не нужно устанавливать Node или Python в вашей системе.
✅ Легковесность : сервер распространяется как единый двоичный файл для Linux, macOS и Windows.
✅ Высокая производительность/низкая задержка : напрямую взаимодействует с сервером API Kubernetes без накладных расходов на вызов и ожидание внешних команд.
✅ Кроссплатформенность : доступен в виде собственного двоичного файла для Linux, macOS и Windows, а также в виде пакета npm, пакета Python и образа контейнера/Docker.
✅ Настраиваемость : поддерживает аргументы командной строки для настройки поведения сервера.
✅ Тщательно протестировано : сервер имеет обширный набор тестов, гарантирующий его надежность и корректность в различных средах Kubernetes.
🚀 Начало работы
Требования
Доступ к кластеру Kubernetes.
Клод Десктоп
Использование npx
Если у вас установлен npm, это самый быстрый способ начать работу с kubernetes-mcp-server на Claude Desktop.
Откройте claude_desktop_config.json и добавьте сервер mcp в список mcpServers :
VS Code / Инсайдеры VS Code
Установите расширение сервера Kubernetes MCP в VS Code Insiders, нажав на следующую ссылку:
Кроме того, вы можете установить расширение вручную, выполнив следующую команду:
Гусь CLI
Goose CLI — самый простой (и дешевый) способ начать работу с агентами искусственного интеллекта (ИИ).
Использование npm
Если у вас установлен npm, это самый быстрый способ начать работу с kubernetes-mcp-server .
Откройте файл goose config.yaml и добавьте сервер mcp в список mcpServers :
🎥 Демоверсии
Диагностика и автоматическое исправление развертывания OpenShift
Демонстрация того, как сервер Kubernetes MCP используется Claude Desktop для автоматической диагностики и исправления развертывания в OpenShift без какой-либо помощи пользователя.
https://github.com/user-attachments/assets/a576176d-a142-4c19-b9aa-a83dc4b8d941
Vibe Кодирование простой игры и ее развертывание в OpenShift
В этой демонстрации я покажу вам процесс Vibe-кодирования простой игры с использованием VS Code и то, как использовать сервер Podman MCP и сервер Kubernetes MCP для ее развертывания в OpenShift.
Ускорьте работу GitHub Copilot с сервером Kubernetes MCP в VS Code — настройка в один клик!
В этой демонстрации я покажу вам, как настроить сервер Kubernetes MCP в VS Code, просто нажав на ссылку.
⚙️ Конфигурация
Сервер Kubernetes MCP можно настроить с помощью аргументов командной строки (CLI).
Вы можете запустить исполняемый файл CLI, используя npx , uvx или загрузив последнюю версию двоичного файла .
Параметры конфигурации
Вариант | Описание |
| Запускает сервер MCP в режиме Server-Sent Event (SSE) и прослушивает указанный порт. |
| Устанавливает уровень ведения журнала (значения ). Аналогично уровням ведения журнала kubectl . |
| Путь к файлу конфигурации Kubernetes. Если не указан, будет предпринята попытка разрешить конфигурацию (в кластере, расположение по умолчанию и т. д.). |
| Если установлено, сервер MCP будет работать в режиме только для чтения, то есть он не будет разрешать никаких операций записи (создание, обновление, удаление) в кластере Kubernetes. Это полезно для отладки или проверки кластера без внесения изменений. |
| Если установлено, сервер MCP отключит все деструктивные операции (удаление, обновление и т. д.) в кластере Kubernetes. Это полезно для отладки или проверки кластера без случайного внесения изменений. Эта опция не действует, если используется
. |
🛠️ Инструменты
configuration_view
Получите текущее содержимое конфигурации Kubernetes в виде YAML-файла kubeconfig
Параметры:
minified(boolean, необязательный, по умолчанию:true)Верните уменьшенную версию конфигурации.
Если
true, сохраняет только текущий контекст и соответствующие части конфигурации.Если
false, возвращает все контексты, кластеры, информацию об аутентификации и пользователей.
events_list
Перечислите все события Kubernetes в текущем кластере из всех пространств имен.
Параметры:
namespace(string, необязательно)Пространство имен для извлечения событий. Если не указано, будут выведены события из всех пространств имен
helm_install
Установить Helm-чарт в текущем или указанном пространстве имен с указанным именем и чартом.
Параметры:
chart(string, обязательно)Название устанавливаемой диаграммы Helm
Может быть локальным путем или удаленным URL-адресом.
Пример:
./my-chart.tgzилиhttps://example.com/my-chart.tgz
values(object, необязательно)Значения для передачи в диаграмму Helm
Пример:
{"key": "value"}
name(string, необязательно)Название релиза Helm
Случайное имя, если не указано
namespace(string, необязательно)Пространство имен для установки чарта Helm
Если не указано, будет использоваться настроенное пространство имен.
helm_list
Перечислите все выпуски Helm в текущем или указанном пространстве имен (или во всех пространствах имен, если указано)
Параметры:
namespace(string, необязательно)Пространство имен для списка релизов Helm
Если не указано, будет использоваться настроенное пространство имен.
all_namespaces(boolean, необязательно)Если
true, выведет список релизов Helm из всех пространств именЕсли
false, выведет список релизов Helm из указанного пространства имен.
helm_uninstall
Удалить выпуск Helm в текущем или предоставленном пространстве имен с предоставленным именем
Параметры:
name(string, обязательно)Название версии Helm для удаления
namespace(string, необязательно)Пространство имен для удаления релиза Helm
Если не указано, будет использоваться настроенное пространство имен.
namespaces_list
Перечислите все пространства имен Kubernetes в текущем кластере
Параметры: Нет
pods_delete
Удалить модуль Kubernetes в текущем или предоставленном пространстве имен с предоставленным именем
Параметры:
name(string, обязательно)Имя удаляемого модуля
namespace(string, обязательно)Пространство имен, из которого нужно удалить Pod
pods_exec
Выполнить команду в модуле Kubernetes в текущем или указанном пространстве имен с указанным именем и командой
Параметры:
command(string[], обязательно)Команда для выполнения в контейнере Pod
Первый элемент — команда, остальные — аргументы.
Пример:
["ls", "-l", "/tmp"]
name(строка, обязательно)Название стручка
namespace(строка, обязательно)Пространство имен Pod
container(string, необязательно)Имя контейнера Pod, из которого нужно получить журналы
pods_get
Получить Kubernetes Pod в текущем или предоставленном пространстве имен с предоставленным именем
Параметры:
name(string, обязательно)Название стручка
namespace(string, обязательно)Пространство имен, из которого нужно получить Pod
pods_list
Перечислите все модули Kubernetes в текущем кластере из всех пространств имен.
Параметры:
labelSelector(string, необязательно)Селектор меток Kubernetes (например, 'app=myapp,env=prod' или 'app in (myapp,yourapp)'). Используйте эту опцию для фильтрации модулей по метке
pods_list_in_namespace
Перечислить все модули Kubernetes в указанном пространстве имен в текущем кластере.
Параметры:
namespace(string, обязательно)Пространство имен для перечисления модулей
labelSelector(string, необязательно)Селектор меток Kubernetes (например, 'app=myapp,env=prod' или 'app in (myapp,yourapp)'). Используйте эту опцию для фильтрации модулей по метке
pods_log
Получить журналы Kubernetes Pod в текущем или указанном пространстве имен с указанным именем
Параметры:
name(string, обязательно)Имя Pod, из которого нужно получить логи
namespace(string, обязательно)Пространство имен, из которого нужно получить журналы Pod
container(string, необязательно)Имя контейнера Pod, из которого нужно получить журналы
pods_run
Запустите Kubernetes Pod в текущем или предоставленном пространстве имен с предоставленным образом контейнера и необязательным именем.
Параметры:
image(string, обязательно)Образ контейнера для запуска в Pod
namespace(string, обязательно)Пространство имен для запуска Pod
name(string, необязательно)Название Pod (произвольное название, если не указано)
port(number, необязательно)Порт TCP/IP для предоставления из контейнера Pod
Если порт не предусмотрен, он не отображается
projects_list
Список всех проектов OpenShift в текущем кластере
resources_create_or_update
Создайте или обновите ресурс Kubernetes в текущем кластере, предоставив YAML- или JSON-представление ресурса.
Параметры:
resource(string, обязательно)JSON или YAML, содержащий представление ресурса Kubernetes.
Должны включать поля верхнего уровня, такие как apiVersion, kind, metadata и spec
Распространенные apiVersion и kind включают в себя:
Модуль v1
v1 Сервис
Узел v1
Развертывание apps/v1
networking.k8s.io/v1 Вход
resources_delete
Удалить ресурс Kubernetes в текущем кластере
Параметры:
apiVersion(string, обязательно)apiVersion ресурса (например,
v1,apps/v1,networking.k8s.io/v1)
kind(string, обязательно)тип ресурса (например,
Pod,Service,Deployment,Ingress)
name(string, обязательно)Название ресурса
namespace(string, необязательно)Пространство имен, из которого необходимо удалить ресурс пространства имен
Игнорируется для ресурсов кластера
Использует настроенное пространство имен, если не указано иное
resources_get
Получить ресурс Kubernetes в текущем кластере
Параметры:
apiVersion(string, обязательно)apiVersion ресурса (например,
v1,apps/v1,networking.k8s.io/v1)
kind(string, обязательно)тип ресурса (например,
Pod,Service,Deployment,Ingress)
name(string, обязательно)Название ресурса
namespace(string, необязательно)Пространство имен для извлечения ресурса пространства имен
Игнорируется для ресурсов кластера
Использует настроенное пространство имен, если не указано иное
resources_list
Список ресурсов и объектов Kubernetes в текущем кластере
Параметры:
apiVersion(string, обязательно)apiVersion ресурсов (например,
v1,apps/v1,networking.k8s.io/v1)
kind(string, обязательно)тип ресурсов (например,
Pod,Service,Deployment,Ingress)
namespace(string, необязательно)Пространство имен для извлечения ресурсов пространства имен
Игнорируется для ресурсов кластера
Перечисляет ресурсы из всех пространств имен, если они не указаны
labelSelector(string, необязательно)Селектор меток Kubernetes (например, 'app=myapp,env=prod' или 'app in (myapp,yourapp)'). Используйте эту опцию для фильтрации модулей по метке.
🧑💻 Разработка
Работает с mcp-inspector
Скомпилируйте проект и запустите сервер Kubernetes MCP с помощью mcp-inspector для проверки сервера MCP.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Мощная и гибкая реализация сервера Kubernetes MCP с поддержкой OpenShift. Не требует дополнительных инструментов CLI, таких как kubectl или helm.
Related Resources
Related MCP Servers
- -security-license-qualityProvides MCP multi-cluster Kubernetes management and operations, featuring a management interface, logging, and nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -695MIT License
- -security-license-qualityProvides MCP multi-cluster Kubernetes management and operations. It can be integrated as an SDK into your own project and includes nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.Last updated -131MIT License
- GoMIT License
- -security-license-qualityAn auto-generated MCP server that enables interaction with Google Kubernetes Engine Hub API for multi-cluster management through natural language commands.Last updated -