Kubernetes MCP Server

oficial

Un 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/namespaces y GET /api/v1/resources/{kind}.
  • Solucionar problemas de un recurso específico — Haz que el asistente analice o solucione problemas de un pod como example-pod usando el endpoint POST /api/v1/mcp/troubleshoot.
  • Revisar commits de GitLab — Solicita un análisis de commits a través del endpoint POST /api/v1/mcp/commit para 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

Blank Cut

Servidor MCP de Kubernetes para Claude

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

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

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/config vá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!