k8s-mcp-server
MCP-сервер Kubernetes
Сервер протокола контекста модели Kubernetes (MCP), предоставляющий инструменты для взаимодействия с кластерами Kubernetes через стандартизированный интерфейс.
Функции
Обнаружение ресурсов API : получите все доступные ресурсы API в вашем кластере Kubernetes.
Список ресурсов : список ресурсов любого типа с дополнительной фильтрацией пространств имен и меток.
Сведения о ресурсах : получите подробную информацию о конкретных ресурсах Kubernetes.
Описание ресурса : получите полное описание ресурсов Kubernetes.
Журналы модулей : извлечение журналов из определенных модулей.
Метрики узлов : получение метрик использования ресурсов для определенных узлов.
Метрики Pod : получение метрик ЦП и памяти для определенных модулей.
Список событий : список событий в пространстве имен или для определенного ресурса.
Создание ресурсов : создание новых ресурсов Kubernetes из манифеста.
Стандартизированный интерфейс : использует протокол MCP для согласованного взаимодействия инструментов.
Гибкая конфигурация : поддерживает различные контексты Kubernetes и области действия ресурсов.
Related MCP server: Multi Cluster Kubernetes MCP Server
Предпосылки
Перейти к версии 1.20 или более поздней
Доступ к кластеру Kubernetes
kubectlнастроен с соответствующим доступом к кластеру
Установка
Клонируйте репозиторий:
git clone https://github.com/reza-gholizade/k8s-mcp-server.git
cd k8s-mcp-serverУстановить зависимости:
go mod downloadСборка сервера:
go build -o k8s-mcp-server main.goИспользование
Запуск сервера
Запустите сервер:
./k8s-mcp-serverСервер запустится и будет прослушивать stdin/stdout на предмет сообщений протокола MCP.
Доступные инструменты
1. getAPIResources
Извлекает все доступные ресурсы API в кластере Kubernetes.
Параметры:
includeNamespaceScoped(логическое значение): включать ли ресурсы области пространства имен (по умолчанию true)includeClusterScoped(логическое значение): включать ли ресурсы кластерной области (по умолчанию true)
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getAPIResources",
"params": {
"arguments": {
"includeNamespaceScoped": true,
"includeClusterScoped": true
}
}
}2. listResources
Перечисляет все экземпляры определенного типа ресурса.
Параметры:
Kind(строка, обязательно): тип ресурса для списка (например, «Pod», «Deployment»).namespace(строка): пространство имен, из которого нужно вывести список ресурсов (если не указано иное, выводятся списки по всем пространствам имен для ресурсов с пространством имен)labelSelector(строка): Фильтрация ресурсов по селектору меток
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "listResources",
"params": {
"arguments": {
"Kind": "Pod",
"namespace": "default",
"labelSelector": "app=nginx"
}
}
}3. getResource
Извлекает подробную информацию о конкретном ресурсе.
Параметры:
kind(строка, обязательно): тип ресурса, который необходимо получить (например, «Pod», «Deployment»).name(строка, обязательно): имя ресурса, который нужно получитьnamespace(строка): пространство имен ресурса (если это ресурс с пространством имен)
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getResource",
"params": {
"arguments": {
"kind": "Pod",
"name": "nginx-pod",
"namespace": "default"
}
}
}4. describeResource
Описывает ресурс в кластере Kubernetes на основе заданного типа и имени, аналогично kubectl describe .
Параметры:
Kind(строка, обязательно): тип описываемого ресурса (например, «Pod», «Deployment»).name(строка, обязательно): имя ресурса для описанияnamespace(строка): пространство имен ресурса (если это ресурс с пространством имен)
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "describeResource",
"params": {
"arguments": {
"Kind": "Pod",
"name": "nginx-pod",
"namespace": "default"
}
}
}5. getPodsLogs
Извлекает журналы определенного модуля в кластере Kubernetes.
Параметры:
Name(строка, обязательно): Имя модуля, из которого необходимо получить журналы.namespace(строка): пространство имен модуля (если это ресурс с пространством имен).
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getPodsLogs",
"params": {
"arguments": {
"Name": "my-app-pod-12345",
"namespace": "production"
}
}
}6. getNodeMetrics
Извлекает метрики использования ресурсов для определенного узла в кластере Kubernetes.
Параметры:
Name(строка, обязательно): имя узла, из которого необходимо получить метрики.
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getNodeMetrics",
"params": {
"arguments": {
"Name": "worker-node-1"
}
}
}7. getPodMetrics
Извлекает показатели ЦП и памяти для определенного модуля в кластере Kubernetes.
Параметры:
namespace(строка, обязательно): пространство имен модуля.podName(строка, обязательно): Имя модуля.
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "getPodMetrics",
"params": {
"arguments": {
"namespace": "default",
"podName": "my-app-pod-67890"
}
}
}8. getEvents
Извлекает события для определенного пространства имен или ресурса в кластере Kubernetes.
Параметры:
namespace(string): Пространство имен, из которого нужно получить события. Если не указано, рассматриваются события из всех пространств имен (если разрешено RBAC).resourceName(строка): имя определенного ресурса (например, имя Pod), по которому необходимо фильтровать события.resourceKind(строка): тип конкретного ресурса (например, «Pod»), если указаноresourceName.
Пример (события пространства имен):
{
"jsonrpc": "2.0",
"id": 1,
"method": "getEvents",
"params": {
"arguments": {
"namespace": "default"
}
}
}Пример (события ресурсов):
{
"jsonrpc": "2.0",
"id": 1,
"method": "getEvents",
"params": {
"arguments": {
"namespace": "production",
"resourceName": "my-app-pod-12345",
"resourceKind": "Pod"
}
}
}9. createorUpdateResource
Создает новый ресурс в кластере Kubernetes из манифеста YAML или JSON.
Параметры:
manifest(строка, обязательно): манифест YAML или JSON ресурса, который необходимо создать.namespace(string, необязательно): Пространство имен, в котором создается ресурс. Если манифест содержит пространство имен, этот параметр можно опустить или использовать для его переопределения (поведение может зависеть от реализации сервера).
Пример:
{
"jsonrpc": "2.0",
"id": 1,
"method": "createResource",
"params": {
"arguments": {
"namespace": "default",
"manifest": "apiVersion: v1\nkind: Pod\nmetadata:\n name: my-new-pod\nspec:\n containers:\n - name: nginx\n image: nginx:latest"
}
}
}Разработка
Структура проекта
.
├── handlers/ # Tool handlers
│ └── handlers.go # Implementation of MCP tools
├── pkg/ # Internal packages
│ └── k8s/ # Kubernetes client implementation
├── main.go # Server entry point
├── go.mod # Go module definition
└── go.sum # Go module checksumsДобавление новых инструментов
Чтобы добавить новый инструмент:
Создайте новую функцию определения инструмента (например,
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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enables AI assistants to interact with Kubernetes clusters through natural language, supporting core Kubernetes operations, monitoring, security, and diagnostics.115947MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with multiple Kubernetes clusters simultaneously, providing comprehensive tools for cluster management, resource operations, and diagnostics across different environments.
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for Kubernetes that provides full resource coverage and advanced troubleshooting tools via HTTP chunked streaming. It enables users to manage clusters and diagnose complex issues like pod crashloops through specialized prompts and standard kubectl-like operations.12,374MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server for generating Kubernetes manifests (deployments, services, configmaps, secrets, ingresses, namespaces) and performing kubectl operations like apply, delete, get, describe, logs, and exec.MIT
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/reza-gholizade/k8s-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server