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.
¿Qué puedes hacer con Kubernetes MCP?
- Inspeccionar recursos del clúster — Pide a tu asistente que liste espacios de nombres o recursos de cualquier tipo mediante
GET /api/v1/namespacesyGET /api/v1/resources/{kind}. - Solucionar problemas de un recurso específico — Haz que el asistente analice o solucione problemas de un pod como
example-podusando el endpointPOST /api/v1/mcp/troubleshoot. - Revisar commits de GitLab — Solicita un análisis de commits a través del endpoint
POST /api/v1/mcp/commitpara obtener información impulsada por IA. - Verificar aplicaciones de ArgoCD — Pide una lista de todas las aplicaciones de ArgoCD mediante
GET /api/v1/argocd/applications. - Consultas personalizadas de IA sobre recursos — Envía una solicitud MCP genérica (
POST /api/v1/mcp) con una consulta personalizada sobre cualquier recurso en tu clúster.
Documentación
Servidor MCP de Kubernetes para Claude
Un servidor de Protocolo de Contexto de Modelo (MCP) para la gestión de clústeres de Kubernetes con integración de ArgoCD y GitLab.
Este repositorio contiene el servidor MCP (Protocolo de Contexto de Modelo) de Kubernetes para Claude, construido en Go. El servidor se integra con ArgoCD, GitLab, Claude AI y Kubernetes para habilitar control avanzado y automatización de entornos Kubernetes.
Consulta 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 de API.
Requisitos Previos
- Go 1.20+
- Docker
- Clúster de Kubernetes y
~/.kube/configválido - Clúster EKS con AWS_PROFILE configurado localmente
- Credenciales de ArgoCD
- Token de acceso personal de GitLab
- Clave de 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
Exporta 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úrate de que haya un kubeconfig disponible:
export KUBECONFIG=~/.kube/config
3. Configurar config.yaml
Actualiza 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
Puedes usar las plantillas de Go proporcionadas o el método de interpolación de variables de entorno.
4. Agregar Clave de API para Postman
Asegúrate 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 (se incluye segunda opción de construcción)
cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d
Despliegue en Producción
Se incluye un gráfico de Helm en el repositorio para el despliegue en Kubernetes:
1. Navegar al Directorio del Gráfico de Helm
cd kubernetes-claude-mcp/deployments/helm
2. Desplegar con Helm
Actualiza values.yaml con los valores apropiados y ejecuta:
helm install claude-mcp .
Para actualizar:
helm upgrade claude-mcp .
Asegúrate de que los secretos y los mapas de configuración estén montados y asegurados correctamente en el clúster.
Documentación de la API
A continuación se presentan los endpoints principales expuestos por el servidor MCP. Todas las solicitudes requieren el encabezado X-API-Key:
General
- Verificación de Salud
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 MCP de Claude
- Analizar Recurso
POST /api/v1/mcp/resource
- Solucionar Problemas de un Recurso
POST /api/v1/mcp/troubleshoot
- Análisis de Confirmación (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
Una colección de Postman lista para usar estará disponible próximamente.
Donación
Contribuye 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á próximamente. Si deseas contribuir, ¡no dudes en abrir una solicitud de extracción o reportar un problema!