trackmcp
Back to directory
GeiserX

spinnaker-mcp

View on GitHub

MCP Server for Spinnaker — manage applications, pipelines, and deployments via the Model Context Protocol

5 stars GoOthers Updated Aug 24, 2026
aiautomationci-cdcloud-nativecontinuous-deliverydeploymentdevopsdockergogolanginfrastructurekubernetesllmmcpmcp-servermodel-context-protocolpipelineself-hostedspinnakerspinnaker-gate

Documentation

Spinnaker-MCP

A bridge that exposes any Spinnaker instance as an MCP v1 server via the Gate API, written in Go.


What you get

CategoryToolDescription
Applications`list_applications`List all Spinnaker applications
`get_application`Get detailed application info (accounts, clusters, attributes)
Pipelines`list_pipelines`List pipeline configurations for an application
`get_pipeline`Get a specific pipeline's full configuration
`trigger_pipeline`Trigger a pipeline with optional parameters
`save_pipeline`Save/create a pipeline definition
`update_pipeline`Update an existing pipeline definition
`delete_pipeline`Delete a pipeline definition
`get_pipeline_history`Get revision history for a pipeline config
Executions`list_executions`List recent executions, filterable by status
`get_execution`Get full execution details (stages, outputs, timing)
`search_executions`Rich search by trigger type, time range, status
`cancel_execution`Cancel a running execution with optional reason
`pause_execution`Pause a running execution at the current stage
`resume_execution`Resume a paused execution
`restart_stage`Restart a failed stage within an execution
`evaluate_expression`Evaluate a SpEL expression against an execution
Strategies`list_strategies`List deployment strategy configurations
`save_strategy`Create or update a deployment strategy
`delete_strategy`Delete a deployment strategy
Infrastructure`list_server_groups`List server groups (deployment targets) with instance counts
`list_load_balancers`List load balancers across all accounts and regions
`list_clusters`List cluster names grouped by account
`get_cluster`Get cluster details including server groups
`get_scaling_activities`Get scaling activities for a cluster
`get_target_server_group`Target-based server group lookup (newest, oldest, etc.)
`list_firewalls`List all firewalls/security groups across accounts
`get_firewall`Get firewall details by account, region, and name
`get_instance`Get instance details (health, metadata, launch time)
`get_console_output`Get instance console output for debugging
`find_images`Search for machine images by tags, region, account
`get_image_tags`List image tags for a repository
`list_networks`List VPCs/networks by cloud provider
`list_subnets`List subnets by cloud provider
`list_accounts`List all configured cloud accounts/credentials
`get_account`Get account details and permissions
Tasks`get_task`Get orchestration task status (deploy, resize, rollback)

Everything is exposed over JSON-RPC. LLMs and agents can: `initialize` -> `listTools` -> `callTool` and interact with your Spinnaker deployments.


Quick-start

npm (stdio transport)

sh
npx spinnaker-mcp

Or install globally:

sh
npm install -g spinnaker-mcp
spinnaker-mcp

This downloads the pre-built Go binary for your platform and runs it with stdio transport.

Docker

sh
docker run --rm -e GATE_URL=http://spin-gate:8084 -e TRANSPORT=stdio drumsergio/spinnaker-mcp:0.3.1

Local build

sh
git clone https://github.com/GeiserX/spinnaker-mcp
cd spinnaker-mcp

cp .env.example .env && $EDITOR .env

go run ./cmd/server

Configuration

VariableDefaultDescription
`GATE_URL``http://localhost:8084`Spinnaker Gate API endpoint (without trailing /)
`GATE_TOKEN`_(empty)_Bearer token for authentication
`GATE_USER`_(empty)_Basic auth username (alternative to token)
`GATE_PASS`_(empty)_Basic auth password
`GATE_CERT_FILE`_(empty)_Path to x509 client certificate (PEM)
`GATE_KEY_FILE`_(empty)_Path to x509 client key (PEM)
`GATE_INSECURE``false`Skip TLS certificate verification
`TRANSPORT`_(empty = HTTP)_Set to `stdio` for stdio transport
`MCP_PORT``8085`HTTP transport port (ignored when TRANSPORT=stdio)
`MCP_BIND_ADDR``127.0.0.1`HTTP transport bind address (set to `0.0.0.0` to listen on all interfaces)

Authentication priority: Bearer token > Basic auth > x509 client cert > No auth.

Put them in a `.env` file (from `.env.example`) or set them in the environment.

Claude Code / Claude Desktop configuration

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

Testing

sh
go test -v -race ./...

Tested with Inspector. Before making a PR, make sure this MCP server behaves well via that tool.

Credits

Spinnaker -- open-source continuous delivery platform

MCP-GO -- Go MCP implementation

GoReleaser -- painless multi-arch releases

Maintainers

@GeiserX.

Contributing

Feel free to dive in! Open an issue or submit PRs.

Spinnaker-MCP follows the Contributor Covenant Code of Conduct.

Other MCP Servers by GeiserX

Frequently asked questions

What is spinnaker-mcp?

spinnaker-mcp is MCP Server for Spinnaker — manage applications, pipelines, and deployments via the Model Context Protocol

How do I install spinnaker-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is spinnaker-mcp open source?

Yes — it is hosted on GitHub at https://github.com/GeiserX/spinnaker-mcp and has 5 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP