spinnaker-mcp
Servidor MCP que expone la plataforma CD de Spinnaker a través de la API de Gate para la gestión de pipelines y despliegues.
Documentación
Spinnaker-MCP
Un puente que expone cualquier instancia de Spinnaker como un servidor MCP v1 a través de la API Gate, escrito en Go.
Lo que obtienes
| Categoría | Herramienta | Descripción |
|---|---|---|
| Aplicaciones | list_applications | Listar todas las aplicaciones de Spinnaker |
get_application | Obtener información detallada de la aplicación (cuentas, clústeres, atributos) | |
| Pipelines | list_pipelines | Listar configuraciones de pipeline para una aplicación |
get_pipeline | Obtener la configuración completa de un pipeline específico | |
trigger_pipeline | Disparar un pipeline con parámetros opcionales | |
save_pipeline | Guardar/crear una definición de pipeline | |
update_pipeline | Actualizar una definición de pipeline existente | |
delete_pipeline | Eliminar una definición de pipeline | |
get_pipeline_history | Obtener historial de revisiones para una configuración de pipeline | |
| Ejecuciones | list_executions | Listar ejecuciones recientes, filtrables por estado |
get_execution | Obtener detalles completos de ejecución (etapas, salidas, tiempos) | |
search_executions | Búsqueda avanzada por tipo de disparador, rango de tiempo, estado | |
cancel_execution | Cancelar una ejecución en curso con motivo opcional | |
pause_execution | Pausar una ejecución en curso en la etapa actual | |
resume_execution | Reanudar una ejecución pausada | |
restart_stage | Reiniciar una etapa fallida dentro de una ejecución | |
evaluate_expression | Evaluar una expresión SpEL contra una ejecución | |
| Estrategias | list_strategies | Listar configuraciones de estrategia de despliegue |
save_strategy | Crear o actualizar una estrategia de despliegue | |
delete_strategy | Eliminar una estrategia de despliegue | |
| Infraestructura | list_server_groups | Listar grupos de servidores (objetivos de despliegue) con conteos de instancias |
list_load_balancers | Listar balanceadores de carga en todas las cuentas y regiones | |
list_clusters | Listar nombres de clústeres agrupados por cuenta | |
get_cluster | Obtener detalles del clúster, incluidos grupos de servidores | |
get_scaling_activities | Obtener actividades de escalado para un clúster | |
get_target_server_group | Búsqueda de grupo de servidores basada en objetivo (más nuevo, más antiguo, etc.) | |
list_firewalls | Listar todos los firewalls/grupos de seguridad en todas las cuentas | |
get_firewall | Obtener detalles del firewall por cuenta, región y nombre | |
get_instance | Obtener detalles de instancia (salud, metadatos, tiempo de lanzamiento) | |
get_console_output | Obtener salida de consola de instancia para depuración | |
find_images | Buscar imágenes de máquina por etiquetas, región, cuenta | |
get_image_tags | Listar etiquetas de imagen para un repositorio | |
list_networks | Listar VPCs/redes por proveedor de nube | |
list_subnets | Listar subredes por proveedor de nube | |
list_accounts | Listar todas las cuentas/credenciales de nube configuradas | |
get_account | Obtener detalles de cuenta y permisos | |
| Tareas | get_task | Obtener estado de tareas de orquestación (desplegar, redimensionar, revertir) |
Todo se expone a través de JSON-RPC. Los LLMs y agentes pueden: initialize -> listTools -> callTool e interactuar con tus despliegues de Spinnaker.
Inicio rápido
npm (transporte stdio)
npx spinnaker-mcp
O instalar globalmente:
npm install -g spinnaker-mcp
spinnaker-mcp
Esto descarga el binario Go precompilado para tu plataforma y lo ejecuta con transporte stdio.
Docker
docker run --rm -e GATE_URL=http://spin-gate:8084 -e TRANSPORT=stdio drumsergio/spinnaker-mcp:0.3.1
Compilación local
git clone https://github.com/GeiserX/spinnaker-mcp
cd spinnaker-mcp
cp .env.example .env && $EDITOR .env
go run ./cmd/server
Configuración
| Variable | Predeterminado | Descripción |
|---|---|---|
GATE_URL | http://localhost:8084 | Endpoint de la API Gate de Spinnaker (sin / final) |
GATE_TOKEN | (vacío) | Token Bearer para autenticación |
GATE_USER | (vacío) | Nombre de usuario de autenticación básica (alternativa al token) |
GATE_PASS | (vacío) | Contraseña de autenticación básica |
GATE_CERT_FILE | (vacío) | Ruta al certificado de cliente x509 (PEM) |
GATE_KEY_FILE | (vacío) | Ruta a la clave de cliente x509 (PEM) |
GATE_INSECURE | false | Omitir verificación de certificado TLS |
TRANSPORT | (vacío = HTTP) | Establecer a stdio para transporte stdio |
MCP_PORT | 8085 | Puerto de transporte HTTP (ignorado cuando TRANSPORT=stdio) |
MCP_BIND_ADDR | 127.0.0.1 | Dirección de enlace de transporte HTTP (establecer a 0.0.0.0 para escuchar en todas las interfaces) |
Prioridad de autenticación: Token Bearer > Autenticación básica > Certificado de cliente x509 > Sin autenticación.
Colócalas en un archivo .env (desde .env.example) o establécelas en el entorno.
Configuración de Claude Code / Claude Desktop
{
"mcpServers": {
"spinnaker": {
"command": "npx",
"args": ["-y", "spinnaker-mcp"],
"env": {
"GATE_URL": "https://spin-gate.example.com",
"GATE_TOKEN": "your-token-here"
}
}
}
}
Pruebas
go test -v -race ./...
Probado con Inspector. Antes de hacer un PR, asegúrate de que este servidor MCP se comporte bien con esa herramienta.
Créditos
Spinnaker -- plataforma de entrega continua de código abierto
MCP-GO -- implementación de Go MCP
GoReleaser -- lanzamientos multi-arquitectura sin dolor
Mantenedores
Contribuciones
¡Siéntete libre de sumergirte! Abre un issue o envía PRs.
Spinnaker-MCP sigue el Contributor Covenant Código de Conducta.
Otros Servidores MCP por GeiserX
- genieacs-mcp -- gestión de dispositivos TR-069
- cashpilot-mcp -- monitoreo de ingresos pasivos
- duplicacy-mcp -- monitoreo de salud de respaldos
- lynxprompt-mcp -- planos de configuración de IA
- pumperly-mcp -- precios de combustible y carga EV
- telegram-archive-mcp -- archivo de mensajes de Telegram