Labsco
MCP SERVER

Spinnaker MCP

by GeiserX

Drive Spinnaker from an agent — pipelines listed, triggered and edited, executions paused, resumed, cancelled and restarted, and the cloud infrastructure behind them read.

Build Systems & CI/CDVerified
Summary
It does not just read your pipelines — it can change and run them.

`save_pipeline`, `update_pipeline`, `delete_pipeline` and `trigger_pipeline` write to your delivery configuration and start real deploys, and the execution tools stop and restart work that is already in flight. Give it a Gate credential scoped to what you actually intend, and note the authentication order: with no token, user or certificate set, it connects unauthenticated rather than refusing. On the read side, `evaluate_expression` and `get_console_output` are the two that turn a failed deploy into an explanation instead of a screenshot.

What it is

A Go bridge that exposes a Spinnaker instance through its Gate API as an MCP server. It covers the continuous-delivery loop end to end: applications and pipeline configuration, execution control while a deploy is running, and the cloud resources a deploy targets — server groups, clusters, load balancers, firewalls, images, networks and accounts.

What you get
  • Applications listed and opened with their accounts, clusters and attributes — `list_applications`, `get_application`
  • Pipeline configurations listed, read in full, created, updated and deleted, with revision history — `list_pipelines`, `get_pipeline`, `save_pipeline`, `update_pipeline`, `delete_pipeline`, `get_pipeline_history`
  • A pipeline triggered with parameters — `trigger_pipeline`
  • Executions listed and filtered by status, searched by trigger type, time range and status, and opened with their stages, outputs and timing — `list_executions`, `search_executions`, `get_execution`
  • A running execution controlled rather than watched: paused at its current stage, resumed, cancelled with a reason, or a failed stage restarted — `pause_execution`, `resume_execution`, `cancel_execution`, `restart_stage`
  • A SpEL expression evaluated against an execution, which is how you debug a pipeline that resolved the wrong value — `evaluate_expression`
  • Deployment strategies listed, saved and deleted — `list_strategies`, `save_strategy`, `delete_strategy`
  • The infrastructure behind a deploy: server groups with instance counts, clusters by account, load balancers across accounts and regions, scaling activities, and target-based server group lookup by newest or oldest — `list_server_groups`, `list_clusters`, `get_cluster`, `list_load_balancers`, `get_scaling_activities`, `get_target_server_group`
  • Firewalls and security groups listed and opened, instance health and metadata read, and an instance's console output pulled for debugging — `list_firewalls`, `get_firewall`, `get_instance`, `get_console_output`
  • Machine images searched by tag, region and account with their tags listed, networks and subnets enumerated by cloud provider, and configured cloud accounts read with their permissions — `find_images`, `get_image_tags`, `list_networks`, `list_subnets`, `list_accounts`, `get_account`
  • Orchestration task status for deploys, resizes and rollbacks — `get_task`
Requirements

A reachable Spinnaker Gate endpoint in `GATE_URL`, which is the one required setting. Authentication is tried in a fixed order — bearer token in `GATE_TOKEN`, then basic auth via `GATE_USER` and `GATE_PASS`, then an x509 client certificate through `GATE_CERT_FILE` and `GATE_KEY_FILE`, then none at all — so an unset credential silently means unauthenticated rather than an error. Run it with `npx spinnaker-mcp`, which fetches the prebuilt Go binary for your platform, or from `drumsergio/spinnaker-mcp` on Docker, or build the Go source. Transport is HTTP unless `TRANSPORT` is set to `stdio`; `MCP_PORT` and `MCP_BIND_ADDR` control the HTTP listener, which binds to 127.0.0.1 by default. The published version is 0.3.3.

Setup effort

One command — npx spinnaker-mcp