# GeiserX/spinnaker-mcp [Health: Active]

**Category:** ☁️ Cloud Platforms  
**Repository:** https://github.com/GeiserX/spinnaker-mcp  
**GitHub Stars:** 5  
**npm Downloads (last month):** 1457  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/geiserx-spinnaker-mcp

## Description
A bridge that exposes any Spinnaker instance as an MCP server via the Gate API, enabling management of applications, pipelines, executions, and cloud infrastructure.

## Tools
Capabilities this server exposes over MCP:

- **cancel_execution** — Cancel a running pipeline execution by its ID, optionally providing a reason. Use this to stop a deployment in progress — for example, when a bad build was triggered. Does not roll back completed stages. Returns a confirmation message.
- **delete_pipeline** — Permanently delete a pipeline configuration from Spinnaker. Use this only when a pipeline is no longer needed — this action cannot be undone. Does not affect past executions. Returns a confirmation message on success.
- **delete_strategy** — Permanently delete a deployment strategy configuration from Spinnaker. Use this only when a strategy is no longer needed — this action cannot be undone. Returns a confirmation message on success.
- **evaluate_expression** — Evaluate a Spring Expression Language (SpEL) expression against a pipeline execution context. Use this to inspect pipeline variables, stage outputs, or computed values during debugging. Dangerous patterns (reflection, class instantiation) are blocked for security. Returns the evaluated expression result as JSON.
- **find_images** — Search for machine images (AMIs, GCE images, Docker images) available in Spinnaker for a given cloud provider. Use this to find images for a deployment or verify which image versions are available. Supports filtering by query string, region, and account. Returns JSON array of matching image objects.
- **get_account** — Get details for a specific Spinnaker account by name, including its cloud provider type, permissions, and regions. Use this to verify account configuration or check permissions before deploying. Returns JSON with full account metadata.
- **get_application** — Get detailed information about a single Spinnaker application including its accounts, clusters, and custom attributes. Use this to inspect an application's configuration before modifying its pipelines or infrastructure. Returns JSON with application metadata, associated cloud accounts, and cluster details.
- **get_cluster** — Get details for a specific cluster in a Spinnaker application by account and cluster name. Use this to inspect server groups, load balancers, and instance counts within a cluster. Returns JSON with cluster metadata and its constituent server groups.
- **get_console_output** — Get the console output (boot log) for a specific compute instance. Use this to debug instance startup failures or inspect early boot messages. Requires account, region, and instance ID. Returns the raw console output text.
- **get_execution** — Get the full details of a single pipeline execution by its ID, including all stage statuses, outputs, variables, and timing. Use this to debug a failed deployment or inspect execution progress. Returns comprehensive JSON with per-stage results. Obtain the execution_id from trigger_pipeline, list_executions, or search_executions.
- **get_firewall** — Get details for a specific firewall rule (security group) by account, region, and name. Use this to inspect inbound/outbound rules and associated resources. Returns JSON with the firewall's full rule set and metadata.
- **get_image_tags** — Get available tags for a Docker image repository registered in Spinnaker. Use this to list version tags before triggering a pipeline with a specific image tag. Returns JSON array of tag strings for the specified repository.
- **get_instance** — Get details for a specific compute instance by account, region, and instance ID. Use this to inspect instance health, metadata, launch time, and cloud-specific attributes. Returns JSON with full instance details including health indicators.
- **get_pipeline** — Get the full configuration of a specific pipeline by application and pipeline name. Use this to inspect pipeline stages, triggers, and parameters before triggering or modifying it. Returns the complete pipeline JSON definition including all stage configurations.
- **get_pipeline_history** — Get the version history of a pipeline configuration showing past revisions. Use this to audit changes to a pipeline or compare previous configurations. Returns JSON array of historical pipeline versions ordered by update time.
- **get_scaling_activities** — Get scaling activities for a server group in a Spinnaker cluster. Use this to audit recent auto-scaling events (scale-up, scale-down) and diagnose capacity issues. Returns JSON array of scaling activity records with timestamps, descriptions, and status.
- **get_target_server_group** — Get a specific server group in a Spinnaker cluster using a target selection strategy (e.g., newest, oldest, largest, smallest, fail). Use this when you need the most recently deployed or a specific server group without knowing its exact name. Returns JSON with the matched server group details.
- **get_task** — Get the status and details of a Spinnaker orchestration task (e.g., deploy, resize, rollback, delete). Use this to monitor the progress of a long-running infrastructure operation. Returns JSON with task status, start/end times, retry info, and step-by-step execution details.
- **list_accounts** — List all configured Spinnaker accounts (cloud provider integrations). Use this to discover available cloud accounts before querying infrastructure or deploying. Returns JSON array of account objects with provider type, environment, and permissions.
- **list_applications** — List all Spinnaker applications with their metadata. Use this as a starting point to discover available applications before querying pipelines or infrastructure. Returns JSON array of application objects with name, email, accounts, and cloud providers.
- **list_clusters** — List all cluster names for a Spinnaker application, grouped by account. Use this to discover clusters before drilling into a specific one with get_cluster. Returns JSON object mapping account names to arrays of cluster names.
- **list_executions** — List recent pipeline executions for a Spinnaker application, optionally filtered by status. Use this to monitor deployment activity or find a specific execution ID. Returns JSON array of execution summaries with status, timing, and trigger info. Use get_execution for full details of a specific run.
- **list_firewalls** — List all firewall rules (security groups) across all Spinnaker accounts and regions. Use this to audit network security posture or find a specific security group before inspecting it with get_firewall. Returns JSON array of firewall objects grouped by account and region.
- **list_load_balancers** — List all load balancers for a Spinnaker application across all accounts and regions. Use this to inspect network routing and health check configuration for an application. Returns JSON array of load balancer objects with listener, health check, and attached server group details.
- **list_networks** — List all networks (VPCs) across all Spinnaker accounts and cloud providers. Use this to discover available networks when configuring deployment targets or security groups. Returns JSON array of network objects with provider, account, and CIDR details.
- **list_pipelines** — List all pipeline configurations for a Spinnaker application. Use this to discover available pipelines before triggering or inspecting a specific one. Returns JSON array of pipeline configuration objects with name, stages, triggers, and parameters.
- **list_server_groups** — List all server groups (ASGs, instance groups, replica sets) for a Spinnaker application. Use this to view active deployment targets and their instance counts across regions and accounts. Returns JSON array of server group objects with instance counts, cloud provider details, and region info.
- **list_strategies** — List all deployment strategy configurations for a Spinnaker application. Use this to discover available strategies (e.g., red/black, rolling, canary) before saving or modifying one. Returns JSON array of strategy configuration objects.
- **list_subnets** — List all subnets for a given cloud provider across Spinnaker accounts. Use this to discover available subnets when configuring server groups or deployment targets. Returns JSON array of subnet objects with CIDR, availability zone, and VPC association.
- **pause_execution** — Pause a running pipeline execution at the current stage boundary. Use this to temporarily halt a deployment for manual review before it continues to the next stage. The execution can be resumed later with resume_execution. Returns a confirmation message.
- **restart_stage** — Restart a specific failed or completed stage within a pipeline execution. Use this to retry a stage that failed due to a transient error without re-running the entire pipeline. Requires the execution ID and stage ID. Returns a confirmation message.
- **resume_execution** — Resume a previously paused pipeline execution, continuing from where it was halted. Use this after pause_execution once the manual review or intervention is complete. Returns a confirmation message.
- **save_pipeline** — Save a new pipeline configuration to Spinnaker. Use this to create a brand-new pipeline definition — use update_pipeline instead to modify an existing one. Accepts a full pipeline JSON definition and returns a confirmation. This is a mutating operation that creates a new pipeline visible in the Spinnaker UI.
- **save_strategy** — Save a new deployment strategy configuration to Spinnaker. Use this to create a reusable deployment strategy (e.g., red/black, rolling push, canary) — use delete_strategy to remove one. Accepts a full strategy JSON definition and returns a confirmation.
- **search_executions** — Search pipeline executions across an application with rich filters such as status, trigger type, and time range. Use this instead of list_executions when you need to find executions matching specific criteria. Returns JSON array of matching execution summaries.
- **trigger_pipeline** — Trigger a new pipeline execution with optional parameters. Use this to start a deployment, build, or any configured pipeline workflow. Returns the execution reference ID that can be passed to get_execution or list_executions to monitor progress. This is a mutating operation that starts a real pipeline run.
- **update_pipeline** — Update an existing pipeline configuration in Spinnaker. Use this to modify stages, triggers, or parameters of a pipeline that already exists — use save_pipeline instead to create a new one. Accepts a full pipeline JSON definition and returns a confirmation. This is a mutating operation that overwrites the current pipeline config.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "spinnaker-mcp": {
    "command": "npx",
    "args": ["-y","spinnaker-mcp"],
    "env": {
      "GATE_URL": "",
      "GATE_TOKEN": ""
    }
  }
}
```

**Requires environment variables:** `GATE_URL`, `GATE_TOKEN` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What GeiserX/spinnaker-mcp does

GeiserX/spinnaker-mcp connects an MCP-compatible AI client to a Spinnaker installation through the Gate API. It exposes tools for discovering and inspecting applications, pipelines, executions, accounts, clusters, server groups, load balancers, firewalls, networks, subnets, images, and instances.

The toolset also covers operational changes. Agents can cancel or pause pipeline executions, delete pipeline and deployment-strategy configurations, inspect orchestration tasks, and evaluate Spring Expression Language expressions against execution context. Pipeline workflows include reading configurations, listing executions, reviewing history, and the broader feature set includes triggering, saving, updating, resuming, and restarting pipeline-related operations.

## How it works

The server acts as an MCP-to-Gate bridge. An MCP client sends tool calls, and the server makes corresponding requests to the configured Spinnaker Gate endpoint. Results are returned as JSON for structured Spinnaker data, with raw text used for instance console output.

It can communicate with clients through stdio or HTTP. HTTP listens on `127.0.0.1` by default. The npm package launches the Go binary over stdio, and Docker images and multi-architecture Go binaries are also available.

## Setup and configuration

The npm quick-start requires Node.js 18 or newer. Configure an MCP client with the `spinnaker-mcp` package and provide the Gate URL and token as environment variables:

```json
{
  "mcpServers": {
    "spinnaker": {
      "command": "npx",
      "args": ["-y", "spinnaker-mcp"],
      "env": {
        "GATE_URL": "https://spin-gate.example.com",
        "GATE_TOKEN": "your-token-here"
      }
    }
  }
}
```

Authentication can use a bearer token, basic authentication, an x509 client certificate, or a Gate session cookie obtained with `spinnaker-mcp login`. Placeholder-only values such as `${GATE_TOKEN}` are treated as unset. Docker, Helm, local builds, HTTP endpoints, and client-specific configuration are also supported by the project.

## Tools and capabilities

- Discover applications, accounts, pipelines, clusters, networks, subnets, firewalls, and load balancers.
- Inspect pipeline definitions, revisions, executions, orchestration tasks, server groups, instances, images, and console output.
- Monitor executions and scaling activity, evaluate SpEL, and select a target server group by strategy.
- Pause or cancel executions and remove pipeline or deployment-strategy configurations.
- Work with infrastructure details across configured Spinnaker accounts and regions.
- Use a read-only toolset when only inspection and search operations should be exposed.

## Limitations and notes

Deletion of pipelines and deployment strategies is permanent and does not remove past executions. Cancelling an execution stops a running pipeline but does not roll back stages that have already completed. Pausing occurs at the current stage boundary and can be resumed later. SpEL evaluation blocks reflection and class-instantiation patterns. Operations that query infrastructure require the relevant Spinnaker account, region, application, cluster, or resource identifiers.

_Full upstream README: https://allmcps.com/mcp/geiserx-spinnaker-mcp/readme_

