Kubernetes MCP Server

официальный

Сервер MCP для Kubernetes на Claude, написанный на Go. Сервер интегрируется с ArgoCD, GitLab, Claude AI и Kubernetes, обеспечивая расширенное управление и автоматизацию сред Kubernetes.

Что можно делать с Kubernetes MCP?

  • Проверка ресурсов кластера — Попросите ассистента перечислить пространства имен или любые ресурсы через GET /api/v1/namespaces и GET /api/v1/resources/{kind}.
  • Диагностика конкретного ресурса — Попросите ассистента проанализировать или диагностировать под, например example-pod, с помощью конечной точки POST /api/v1/mcp/troubleshoot.
  • Просмотр коммитов GitLab — Запросите анализ коммитов через конечную точку POST /api/v1/mcp/commit, чтобы получить аналитические сведения на основе ИИ.
  • Проверка приложений ArgoCD — Попросите вывести список всех приложений ArgoCD через GET /api/v1/argocd/applications.
  • Пользовательские ИИ-запросы к ресурсам — Отправьте общий MCP-запрос (POST /api/v1/mcp) с пользовательским запросом о любом ресурсе в вашем кластере.

Документация

Blank Cut

Claude Kubernetes MCP Server

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

Сервер Model Context Protocol (MCP) для управления кластерами Kubernetes с интеграцией ArgoCD и GitLab.

Этот репозиторий содержит сервер Claude Kubernetes MCP (Model Context Protocol), написанный на Go. Сервер интегрируется с ArgoCD, GitLab, Claude AI и Kubernetes, обеспечивая расширенное управление и автоматизацию сред Kubernetes.

См. нашу документацию здесь

Содержание


Обзор

Этот сервер предназначен для оркестрации рабочих нагрузок Kubernetes с использованием Claude AI, GitLab, ArgoCD и Vault. Он предоставляет REST API, позволяющий программное взаимодействие с этими системами, управляемое настроенным config.yaml и аутентифицируемое с помощью ключа API.

Предварительные требования

  • Go 1.20+
  • Docker
  • Кластер Kubernetes и действующий ~/.kube/config
  • Кластер EKS с локально заданным AWS_PROFILE
  • Учетные данные ArgoCD
  • Личный токен доступа GitLab
  • Ключ API Claude (Anthropic)
  • Учетные данные Vault (необязательно, в зависимости от использования)

Инструкции по настройке

1. Клонирование репозитория

git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server

2. Экспорт необходимых переменных окружения

Экспортируйте учетные данные для ArgoCD, GitLab и Claude:

export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"

Убедитесь, что kubeconfig доступен:

export KUBECONFIG=~/.kube/config

3. Настройка config.yaml

Обновите kubernetes-claude-mcp/config.yaml с учетными данными и предпочтениями сервера:

server:
  address: ":8080"
  readTimeout: 30
  writeTimeout: 60
  auth:
    apiKey: ""${API_KEY}"" 

kubernetes:
  kubeconfig: ""
  inCluster: false
  defaultContext: ""
  defaultNamespace: "default"

argocd:
  url: "http://example.argocd.com"
  authToken: ""
  username: "${ARGOCD_USERNAME}"
  password: "${ARGOCD_PASSWORD}"
  insecure: true

gitlab:
  url: "https://gitlab.com"
  authToken: "${AUTH_TOKEN}"
  apiVersion: "v4"
  projectPath: ""${PROJECT_PATH}""

claude:
  apiKey: "${API_KEY}"
  baseURL: "https://api.anthropic.com"
  modelID: "claude-sonnet-4.5-20250514"
  maxTokens: 8192
  temperature: 0.3

Вы можете использовать предоставленные шаблоны Go или метод интерполяции переменных окружения.

4. Добавление ключа API для Postman

Убедитесь, что config.yaml включает apiKey. Это будет использоваться для аутентификации запросов в Postman или любом внешнем клиенте.


Локальный запуск

cd kubernetes-claude-mcp
go run ./cmd/server/main.go

С отладочным журналированием:

LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml

Сервер запустится и привяжется к настроенному порту в config.yaml (по умолчанию: 8080).


Сборка и запуск с помощью Docker

1. Сборка образа

cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .

2. Запуск контейнера (включен второй вариант сборки)

cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d

Развертывание в производственной среде

В репозиторий включена диаграмма Helm для развертывания в Kubernetes:

1. Переход в каталог диаграммы Helm

cd kubernetes-claude-mcp/deployments/helm

2. Развертывание с помощью Helm

Обновите values.yaml соответствующими значениями и выполните:

helm install claude-mcp .

Для обновления:

helm upgrade claude-mcp .

Убедитесь, что секреты и карты конфигурации правильно смонтированы и защищены в кластере.


Документация API

Ниже приведены основные конечные точки, предоставляемые сервером MCP. Все запросы требуют заголовок X-API-Key:

Общие

  • Проверка работоспособности
    • GET /api/v1/health

Kubernetes

  • Список пространств имен
    • GET /api/v1/namespaces
  • Список ресурсов
    • GET /api/v1/resources/{kind}?namespace={ns}
  • Получение конкретного ресурса
    • GET /api/v1/resources/{kind}/{name}?namespace={ns}
  • Получение событий для ресурса
    • GET /api/v1/events?namespace={ns}&resource={kind}&name={name}

ArgoCD

  • Список приложений
    • GET /api/v1/argocd/applications

Конечные точки Claude MCP

  • Анализ ресурса
    • POST /api/v1/mcp/resource
  • Устранение неполадок ресурса
    • POST /api/v1/mcp/troubleshoot
  • Анализ коммита (GitLab)
    • POST /api/v1/mcp/commit
  • Общий запрос MCP
    • POST /api/v1/mcp

Все конечные точки POST принимают JSON-нагрузку, содержащую такие поля, как:

{
  "resource": "pod",
  "name": "example-pod",
  "namespace": "default",
  "query": "What’s wrong with this pod?"
}

Коллекция Postman

Готовая к использованию коллекция Postman будет доступна в ближайшее время.

Пожертвования

Пожалуйста, внесите вклад в наш кофейный фонд, чтобы помочь нам продолжать делать великие дела Купи мне кофе

Лицензия

Этот проект лицензирован в соответствии с лицензией MIT.


Участие

Документация будет расширена в ближайшее время. Если вы хотите внести свой вклад, смело открывайте pull request или создавайте issue!