Integrations
Provides a comprehensive interface for managing Kubernetes clusters, including resource discovery, listing, detailed inspection, log retrieval, metrics collection, event tracking, and resource creation through a standardized MCP protocol.
Supports creation of Kubernetes resources from YAML manifests, enabling deployment of complex resources through the createorUpdateResource tool.
MCP-сервер Kubernetes
Сервер протокола контекста модели Kubernetes (MCP), предоставляющий инструменты для взаимодействия с кластерами Kubernetes через стандартизированный интерфейс.
Функции
- Обнаружение ресурсов API : получите все доступные ресурсы API в вашем кластере Kubernetes.
- Список ресурсов : список ресурсов любого типа с дополнительной фильтрацией пространств имен и меток.
- Сведения о ресурсах : получите подробную информацию о конкретных ресурсах Kubernetes.
- Описание ресурса : получите полное описание ресурсов Kubernetes.
- Журналы модулей : извлечение журналов из определенных модулей.
- Метрики узлов : получение метрик использования ресурсов для определенных узлов.
- Метрики Pod : получение метрик ЦП и памяти для определенных модулей.
- Список событий : список событий в пространстве имен или для определенного ресурса.
- Создание ресурсов : создание новых ресурсов Kubernetes из манифеста.
- Стандартизированный интерфейс : использует протокол MCP для согласованного взаимодействия инструментов.
- Гибкая конфигурация : поддерживает различные контексты Kubernetes и области действия ресурсов.
Предпосылки
- Перейти к версии 1.20 или более поздней
- Доступ к кластеру Kubernetes
kubectl
настроен с соответствующим доступом к кластеру
Установка
- Клонируйте репозиторий:
- Установить зависимости:
- Сборка сервера:
Использование
Запуск сервера
Запустите сервер:
Сервер запустится и будет прослушивать stdin/stdout на предмет сообщений протокола MCP.
Доступные инструменты
1. getAPIResources
Извлекает все доступные ресурсы API в кластере Kubernetes.
Параметры:
includeNamespaceScoped
(логическое значение): включать ли ресурсы области пространства имен (по умолчанию true)includeClusterScoped
(логическое значение): включать ли ресурсы кластерной области (по умолчанию true)
Пример:
2. listResources
Перечисляет все экземпляры определенного типа ресурса.
Параметры:
Kind
(строка, обязательно): тип ресурса для списка (например, «Pod», «Deployment»).namespace
(строка): пространство имен, из которого нужно вывести список ресурсов (если не указано иное, выводятся списки по всем пространствам имен для ресурсов с пространством имен)labelSelector
(строка): Фильтрация ресурсов по селектору меток
Пример:
3. getResource
Извлекает подробную информацию о конкретном ресурсе.
Параметры:
kind
(строка, обязательно): тип ресурса, который необходимо получить (например, «Pod», «Deployment»).name
(строка, обязательно): имя ресурса, который нужно получитьnamespace
(строка): пространство имен ресурса (если это ресурс с пространством имен)
Пример:
4. describeResource
Описывает ресурс в кластере Kubernetes на основе заданного типа и имени, аналогично kubectl describe
.
Параметры:
Kind
(строка, обязательно): тип описываемого ресурса (например, «Pod», «Deployment»).name
(строка, обязательно): имя ресурса для описанияnamespace
(строка): пространство имен ресурса (если это ресурс с пространством имен)
Пример:
5. getPodsLogs
Извлекает журналы определенного модуля в кластере Kubernetes.
Параметры:
Name
(строка, обязательно): Имя модуля, из которого необходимо получить журналы.namespace
(строка): пространство имен модуля (если это ресурс с пространством имен).
Пример:
6. getNodeMetrics
Извлекает метрики использования ресурсов для определенного узла в кластере Kubernetes.
Параметры:
Name
(строка, обязательно): имя узла, из которого необходимо получить метрики.
Пример:
7. getPodMetrics
Извлекает показатели ЦП и памяти для определенного модуля в кластере Kubernetes.
Параметры:
namespace
(строка, обязательно): пространство имен модуля.podName
(строка, обязательно): Имя модуля.
Пример:
8. getEvents
Извлекает события для определенного пространства имен или ресурса в кластере Kubernetes.
Параметры:
namespace
(string): Пространство имен, из которого нужно получить события. Если не указано, рассматриваются события из всех пространств имен (если разрешено RBAC).resourceName
(строка): имя определенного ресурса (например, имя Pod), по которому необходимо фильтровать события.resourceKind
(строка): тип конкретного ресурса (например, «Pod»), если указаноresourceName
.
Пример (события пространства имен):
Пример (события ресурсов):
9. createorUpdateResource
Создает новый ресурс в кластере Kubernetes из манифеста YAML или JSON.
Параметры:
manifest
(строка, обязательно): манифест YAML или JSON ресурса, который необходимо создать.namespace
(string, необязательно): Пространство имен, в котором создается ресурс. Если манифест содержит пространство имен, этот параметр можно опустить или использовать для его переопределения (поведение может зависеть от реализации сервера).
Пример:
Разработка
Структура проекта
Добавление новых инструментов
Чтобы добавить новый инструмент:
- Создайте новую функцию определения инструмента (например,
MyNewTool() mcp.Tool
) вhandlers/handlers.go
- Реализуйте функцию обработчика инструмента (например,
MyNewHandler(client *k8s.Client) func(...)
) вhandlers/handlers.go
- Зарегистрируйте инструмент и его обработчик в
main.go
с помощьюs.AddTool()
Внося вклад
Вклады приветствуются! Подробности о том, как внести вклад в этот проект, см. на сайте CONTRIBUTING.md.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер протокола контекста модели Kubernetes (MCP), предоставляющий инструменты для взаимодействия с кластерами Kubernetes через стандартизированный интерфейс.
Related MCP Servers
- -securityAlicense-qualityThis project is intended as a both MCP server connecting to Kubernetes and a library to build more servers for any custom resources in Kubernetes.Last updated -267GoMIT License
- Python
- Python
- MIT License