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 (
kubectlaccess)
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 filtradoapp_get- Obtener información detallada sobre una app específicaapp_create- Crear una nueva app de Giant Swarmapp_update- Actualizar una app existenteapp_delete- Eliminar una app
Gestión de Catálogos
catalog_list- Listar catálogos de apps disponiblescatalog_get- Obtener información detallada del catálogocatalog_refresh- Actualizar entradas del catálogocatalog_search- Buscar apps en todos los catálogos
Entradas de Catálogo de Apps
appcatalogentry_list- Listar apps de los catálogosappcatalogentry_get- Obtener información detallada de la appappcatalogentry_versions- Listar versiones disponiblesappcatalogentry_search- Buscar entradas del catálogo
Gestión de Configuración
config_get- Obtener configuración de la appconfig_create- Crear nueva configuraciónconfig_update- Actualizar configuraciónconfig_values- Obtener valores de configuración
Gestión de Organizaciones
organization_list- Listar organizacionesorganization_namespaces- Listar namespaces de organizacionesorganization_info- Obtener detalles del namespaceorganization_validate_access- Comprobar permisos de acceso
Gestión de Clústeres (CAPI)
cluster_list- Listar clústeres de trabajo disponiblescluster_get- Obtener información detallada del clústercluster_apps- Listar apps desplegadas en un clúster específico
Herramientas del Sistema
health- Comprobar estado del servidor y la conexiónkubernetes_contexts- Listar contextos disponibles
Recursos disponibles
El servidor expone varios recursos:
app://{namespace}/{name}- Detalles y estado de la appcatalog://{name}- Información del catálogoconfig://{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.