Kubernetes MCP Server
официальныйСервер MCP для Kubernetes на Claude, написанный на Go. Сервер интегрируется с ArgoCD, GitLab, Claude AI и Kubernetes, обеспечивая расширенное управление и автоматизацию сред Kubernetes.
Документация
Claude Kubernetes MCP Server
Сервер Model Context Protocol (MCP) для управления кластерами Kubernetes с интеграцией ArgoCD и GitLab.
Этот репозиторий содержит сервер Claude Kubernetes MCP (Model Context Protocol), написанный на Go. Сервер интегрируется с ArgoCD, GitLab, Claude AI и Kubernetes для обеспечения расширенного контроля и автоматизации сред Kubernetes.
Содержание
- Обзор
- Предварительные требования
- Инструкции по настройке
- Конфигурация
- Локальный запуск
- Сборка и запуск с помощью Docker
- Развертывание в production
- Документация по API
- Коллекция Postman
- Лицензия
Обзор
Этот сервер предназначен для оркестрации рабочих нагрузок 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
Развертывание в production
В репозиторий включен 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 скоро будет доступна.
Пожертвование
Пожалуйста, внесите вклад в наш кофейный фонд, чтобы помочь нам продолжать делать великие дела Buy Me Coffee
Лицензия
Этот проект лицензирован в соответствии с MIT License.
Участие в разработке
Документация скоро будет расширена. Если вы хотите внести свой вклад, не стесняйтесь открывать pull request или создавать issue!