Kubernetes MCP Server
oficialUn servidor MCP de Kubernetes para Claude, construido en Go. El servidor se integra con ArgoCD, GitLab, Claude AI y Kubernetes para permitir control avanzado y automatización de entornos Kubernetes.
Documentación
Claude Kubernetes MCP Server
Un servidor del Protocolo de Contexto de Modelo (MCP) para la gestión de clústeres Kubernetes con integración de ArgoCD y GitLab.
Este repositorio contiene el servidor Claude Kubernetes MCP (Protocolo de Contexto de Modelo), construido en Go. El servidor se integra con ArgoCD, GitLab, Claude AI y Kubernetes para permitir un control y automatización avanzados de entornos Kubernetes.
Consulte nuestra documentación aquí
Tabla de Contenidos
- Descripción general
- Requisitos previos
- Instrucciones de configuración
- Configuración
- Ejecución local
- Construcción y ejecución con Docker
- Despliegue en producción
- Documentación de la API
- Colección de Postman
- Licencia
Descripción general
Este servidor está diseñado para orquestar cargas de trabajo de Kubernetes utilizando Claude AI, GitLab, ArgoCD y Vault. Expone una API REST que permite la interacción programática con estos sistemas, impulsada por un config.yaml configurado y autenticada mediante una clave API.
Requisitos previos
- Go 1.20+
- Docker
- Clúster Kubernetes y
~/.kube/configválido - Clúster EKS con AWS_PROFILE configurado localmente
- Credenciales de ArgoCD
- Token de acceso personal de GitLab
- Clave API de Claude (Anthropic)
- Credenciales de Vault (opcional, según el uso)
Instrucciones de configuración
1. Clonar el repositorio
git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server
2. Exportar las variables de entorno requeridas
Exporte las credenciales para ArgoCD, GitLab y 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"
Asegúrese de que un kubeconfig esté disponible:
export KUBECONFIG=~/.kube/config
3. Configurar config.yaml
Actualice kubernetes-claude-mcp/config.yaml con las credenciales y preferencias del servidor:
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
Puede usar las plantillas Go proporcionadas o el método de interpolación de variables de entorno.
4. Agregar clave API para Postman
Asegúrese de que un config.yaml incluya un apiKey. Esto se usará para autenticar solicitudes en Postman o cualquier cliente externo.
Ejecución local
cd kubernetes-claude-mcp
go run ./cmd/server/main.go
Con registro de depuración:
LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml
El servidor se iniciará y se vinculará al puerto configurado en config.yaml (predeterminado: 8080).
Construcción y ejecución con Docker
1. Construir la imagen
cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .
2. Ejecutar el contenedor (segunda opción de construcción incluida)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
Despliegue en producción
Se incluye un chart de Helm en el repositorio para el despliegue en Kubernetes:
1. Navegar al directorio del chart de Helm
cd kubernetes-claude-mcp/deployments/helm
2. Desplegar con Helm
Actualice values.yaml con los valores apropiados y ejecute:
helm install claude-mcp .
Para actualizar:
helm upgrade claude-mcp .
Asegúrese de que los secretos y mapas de configuración estén correctamente montados y protegidos en el clúster.
Documentación de la API
A continuación se muestran los endpoints principales expuestos por el servidor MCP. Todas las solicitudes requieren el encabezado X-API-Key:
General
- Verificación de estado
GET /api/v1/health
Kubernetes
- Listar espacios de nombres
GET /api/v1/namespaces
- Listar recursos
GET /api/v1/resources/{kind}?namespace={ns}
- Obtener recurso específico
GET /api/v1/resources/{kind}/{name}?namespace={ns}
- Obtener eventos de un recurso
GET /api/v1/events?namespace={ns}&resource={kind}&name={name}
ArgoCD
- Listar aplicaciones
GET /api/v1/argocd/applications
Endpoints de Claude MCP
- Analizar recurso
POST /api/v1/mcp/resource
- Solucionar problemas de recurso
POST /api/v1/mcp/troubleshoot
- Análisis de commit (GitLab)
POST /api/v1/mcp/commit
- Solicitud MCP genérica
POST /api/v1/mcp
Todos los endpoints POST aceptan una carga útil JSON que contiene campos como:
{
"resource": "pod",
"name": "example-pod",
"namespace": "default",
"query": "What’s wrong with this pod?"
}
Colección de Postman
Pronto estará disponible una colección de Postman lista para usar.
Donación
Contribuya a nuestro fondo de café para ayudarnos a seguir haciendo grandes cosas Cómprame un café
Licencia
Este proyecto está licenciado bajo la Licencia MIT.
Contribuciones
La documentación se ampliará pronto. Si desea contribuir, ¡no dude en abrir una solicitud de extracción o reportar un problema!