Giant Swarm App Platform

Un servidor para gestionar implementaciones de Giant Swarm App Platform usando credenciales de Kubernetes.

Documentación

Servidor MCP para Giant Swarm App Platform

Un servidor MCP (Model Context Protocol) que proporciona herramientas y recursos para gestionar despliegues de Giant Swarm App Platform.

Características

  • Gestión de Apps: Crear, actualizar, listar y eliminar apps de Giant Swarm
  • Soporte de Catálogos: Explorar y buscar catálogos de apps y versiones disponibles
  • Gestión de Configuración: Manejar configuraciones de apps mediante ConfigMaps y Secrets
  • Soporte Multi-namespace: Trabajar con namespaces basados en organizaciones
  • Integración CAPI: Soporte para despliegues de apps en clústeres de trabajo
  • Prompts: Guías interactivas para operaciones comunes

Requisitos previos

  • Go 1.21 o posterior
  • Acceso a un clúster de gestión de Giant Swarm
  • Credenciales de Kubernetes configuradas (kubectl access)

Instalación

Requisitos previos

  • Go 1.21 o posterior
  • Acceso a un clúster de gestión de Giant Swarm
  • kubeconfig válido para autenticación

Compilar desde el código fuente

# Clone the repository
git clone https://github.com/giantswarm/mcp-giantswarm-apps.git
cd mcp-giantswarm-apps

# Install dependencies
make deps

# Build the server
make build

# Install to $GOPATH/bin
make install

Uso

Ejecutar el servidor

El servidor se ejecuta usando transporte stdio por defecto:

# Run directly
./build/mcp-giantswarm-apps

# Or if installed
mcp-giantswarm-apps

Configuración

El servidor usa el contexto de tu kubeconfig actual por defecto. Puedes especificar un contexto diferente:

export KUBECONFIG=/path/to/kubeconfig
mcp-giantswarm-apps

Integración con asistentes de IA

Para usar con Claude Desktop u otros clientes compatibles con MCP, añade a tu configuración:

{
  "mcpServers": {
    "giantswarm-apps": {
      "command": "mcp-giantswarm-apps",
      "args": []
    }
  }
}

Herramientas disponibles

Gestión de Apps

  • app_list - Listar apps de Giant Swarm con opciones de filtrado
  • app_get - Obtener información detallada sobre una app específica
  • app_create - Crear una nueva app de Giant Swarm
  • app_update - Actualizar una app existente
  • app_delete - Eliminar una app

Gestión de Catálogos

  • catalog_list - Listar catálogos de apps disponibles
  • catalog_get - Obtener información detallada del catálogo
  • catalog_refresh - Actualizar entradas del catálogo
  • catalog_search - Buscar apps en todos los catálogos

Entradas de Catálogo de Apps

  • appcatalogentry_list - Listar apps de los catálogos
  • appcatalogentry_get - Obtener información detallada de la app
  • appcatalogentry_versions - Listar versiones disponibles
  • appcatalogentry_search - Buscar entradas del catálogo

Gestión de Configuración

  • config_get - Obtener configuración de la app
  • config_create - Crear nueva configuración
  • config_update - Actualizar configuración
  • config_values - Obtener valores de configuración

Gestión de Organizaciones

  • organization_list - Listar organizaciones
  • organization_namespaces - Listar namespaces de organizaciones
  • organization_info - Obtener detalles del namespace
  • organization_validate_access - Comprobar permisos de acceso

Gestión de Clústeres (CAPI)

  • cluster_list - Listar clústeres de trabajo disponibles
  • cluster_get - Obtener información detallada del clúster
  • cluster_apps - Listar apps desplegadas en un clúster específico

Herramientas del Sistema

  • health - Comprobar estado del servidor y la conexión
  • kubernetes_contexts - Listar contextos disponibles

Recursos disponibles

El servidor expone varios recursos:

  • app://{namespace}/{name} - Detalles y estado de la app
  • catalog://{name} - Información del catálogo
  • config://{namespace}/{app}/values - Configuración de la app

Ejemplos de uso

Listar clústeres de trabajo

# List all clusters
mcp cluster_list

# List clusters for an organization
mcp cluster_list --organization giantswarm

# List only ready clusters
mcp cluster_list --ready-only

Desplegar app en clúster de trabajo

# Deploy app to a specific workload cluster
mcp app_create \
  --name nginx-ingress \
  --namespace org-giantswarm \
  --catalog giantswarm \
  --app nginx-ingress-controller \
  --version 2.1.0 \
  --cluster prod-cluster

Listar apps en un clúster de trabajo

# List all apps in a specific cluster
mcp cluster_apps --cluster prod-cluster --organization giantswarm

Desarrollo

Estructura del proyecto

.
├── cmd/mcp-server/      # Main server entry point
├── pkg/
│   ├── app/            # App management logic
│   ├── catalog/        # Catalog handling
│   └── config/         # Configuration management
├── internal/
│   └── k8s/           # Kubernetes client utilities
└── Makefile           # Build automation

Ejecutar pruebas

make test

Contribuciones

Consulta CONTRIBUTING.md para las directrices.

Licencia

Este proyecto está licenciado bajo la Apache License 2.0 - consulta el archivo LICENSE para más detalles.

Soporte

Para problemas y solicitudes de funciones, utiliza el rastreador de incidencias de GitHub.