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 banner

Spinnaker-MCP

npm CI Coverage Go Docker Pulls GitHub Stars License

Official MCP Registry Glama MCP Server MCPServers.org mcp.so ToolSDK Registry listed on awesome-mcp-servers mcpindex

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íaHerramientaDescripción
Aplicacioneslist_applicationsListar todas las aplicaciones de Spinnaker
get_applicationObtener información detallada de la aplicación (cuentas, clústeres, atributos)
Pipelineslist_pipelinesListar configuraciones de pipeline para una aplicación
get_pipelineObtener la configuración completa de un pipeline específico
trigger_pipelineDisparar un pipeline con parámetros opcionales
save_pipelineGuardar/crear una definición de pipeline
update_pipelineActualizar una definición de pipeline existente
delete_pipelineEliminar una definición de pipeline
get_pipeline_historyObtener historial de revisiones para una configuración de pipeline
Ejecucioneslist_executionsListar ejecuciones recientes, filtrables por estado
get_executionObtener detalles completos de ejecución (etapas, salidas, tiempos)
search_executionsBúsqueda avanzada por tipo de disparador, rango de tiempo, estado
cancel_executionCancelar una ejecución en curso con motivo opcional
pause_executionPausar una ejecución en curso en la etapa actual
resume_executionReanudar una ejecución pausada
restart_stageReiniciar una etapa fallida dentro de una ejecución
evaluate_expressionEvaluar una expresión SpEL contra una ejecución
Estrategiaslist_strategiesListar configuraciones de estrategia de despliegue
save_strategyCrear o actualizar una estrategia de despliegue
delete_strategyEliminar una estrategia de despliegue
Infraestructuralist_server_groupsListar grupos de servidores (objetivos de despliegue) con conteos de instancias
list_load_balancersListar balanceadores de carga en todas las cuentas y regiones
list_clustersListar nombres de clústeres agrupados por cuenta
get_clusterObtener detalles del clúster, incluidos grupos de servidores
get_scaling_activitiesObtener actividades de escalado para un clúster
get_target_server_groupBúsqueda de grupo de servidores basada en objetivo (más nuevo, más antiguo, etc.)
list_firewallsListar todos los firewalls/grupos de seguridad en todas las cuentas
get_firewallObtener detalles del firewall por cuenta, región y nombre
get_instanceObtener detalles de instancia (salud, metadatos, tiempo de lanzamiento)
get_console_outputObtener salida de consola de instancia para depuración
find_imagesBuscar imágenes de máquina por etiquetas, región, cuenta
get_image_tagsListar etiquetas de imagen para un repositorio
list_networksListar VPCs/redes por proveedor de nube
list_subnetsListar subredes por proveedor de nube
list_accountsListar todas las cuentas/credenciales de nube configuradas
get_accountObtener detalles de cuenta y permisos
Tareasget_taskObtener 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

VariablePredeterminadoDescripción
GATE_URLhttp://localhost:8084Endpoint 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_INSECUREfalseOmitir verificación de certificado TLS
TRANSPORT(vacío = HTTP)Establecer a stdio para transporte stdio
MCP_PORT8085Puerto de transporte HTTP (ignorado cuando TRANSPORT=stdio)
MCP_BIND_ADDR127.0.0.1Direcció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

@GeiserX.

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