Spinnaker · Capability

Spinnaker Continuous Delivery

Workflow capability for managing continuous delivery pipelines and deployments using the Spinnaker Gate API. Enables DevOps engineers and platform teams to manage application deployment lifecycles, trigger and control pipeline executions, monitor cluster state, and orchestrate multi-cloud deployments from a single interface.

Run with Naftiko SpinnakerContinuous DeliveryPipelinesDeploymentsCloud InfrastructureDevOpsMulti-Cloud

What You Can Do

GET
List applications — List all Spinnaker applications
/v1/applications
GET
Get application — Get application configuration and cluster summary
/v1/applications/{application}
GET
List pipeline executions — List recent pipeline executions
/v1/applications/{application}/pipelines
POST
Invoke pipeline — Trigger a pipeline by name
/v1/applications/{application}/pipelines
GET
Get pipeline execution — Get pipeline execution status and stage details
/v1/pipelines/{id}
PUT
Cancel pipeline — Cancel a running pipeline
/v1/pipelines/{id}/cancel
PUT
Pause pipeline — Pause a running pipeline
/v1/pipelines/{id}/pause
PUT
Resume pipeline — Resume a paused pipeline
/v1/pipelines/{id}/resume
GET
List clusters — List clusters for an application
/v1/clusters
GET
List load balancers — List load balancers for an application
/v1/load-balancers
GET
Search — Search Spinnaker resources
/v1/search

MCP Tools

list-applications

List all Spinnaker applications

read-only
get-application

Get configuration and cluster summary for a Spinnaker application

read-only
list-pipeline-configs

List all pipeline configurations for a Spinnaker application

read-only
list-pipeline-executions

List recent pipeline execution history with status for an application

read-only
get-pipeline-execution

Get full status, stage details, and outputs of a specific pipeline execution

read-only
invoke-pipeline

Trigger a Spinnaker pipeline execution by application and pipeline name

cancel-pipeline

Cancel a running pipeline execution

idempotent
pause-pipeline

Pause a running pipeline execution — it can be resumed later

idempotent
resume-pipeline

Resume a paused pipeline execution

idempotent
list-clusters

List all clusters for a Spinnaker application across cloud accounts

read-only
list-load-balancers

List load balancers associated with a Spinnaker application

read-only
search-resources

Search across all Spinnaker-managed resources by keyword and optional type

read-only

APIs Used

spinnaker

Capability Spec

continuous-delivery.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Spinnaker Continuous Delivery"
  description: >-
    Workflow capability for managing continuous delivery pipelines and deployments
    using the Spinnaker Gate API. Enables DevOps engineers and platform teams to
    manage application deployment lifecycles, trigger and control pipeline executions,
    monitor cluster state, and orchestrate multi-cloud deployments from a single interface.
  tags:
    - Spinnaker
    - Continuous Delivery
    - Pipelines
    - Deployments
    - Cloud Infrastructure
    - DevOps
    - Multi-Cloud
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      SPINNAKER_OAUTH_TOKEN: SPINNAKER_OAUTH_TOKEN

capability:
  consumes:
    - import: spinnaker
      location: ./shared/gate.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: spinnaker-cd-api
      description: "Unified REST API for Spinnaker continuous delivery workflows."
      resources:
        - path: /v1/applications
          name: applications
          description: "Application management"
          operations:
            - method: GET
              name: list-applications
              description: "List all Spinnaker applications"
              call: "spinnaker.list-applications"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/applications/{application}
          name: application
          description: "Application details"
          operations:
            - method: GET
              name: get-application
              description: "Get application configuration and cluster summary"
              call: "spinnaker.get-application"
              with:
                application: "rest.application"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/applications/{application}/pipelines
          name: pipeline-executions
          description: "Pipeline execution history"
          operations:
            - method: GET
              name: list-pipeline-executions
              description: "List recent pipeline executions"
              call: "spinnaker.list-pipeline-executions"
              with:
                application: "rest.application"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: invoke-pipeline
              description: "Trigger a pipeline by name"
              call: "spinnaker.invoke-pipeline"
              with:
                application: "rest.application"
                pipelineName: "rest.pipelineName"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/pipelines/{id}
          name: pipeline
          description: "Pipeline execution control"
          operations:
            - method: GET
              name: get-pipeline-execution
              description: "Get pipeline execution status and stage details"
              call: "spinnaker.get-pipeline-execution"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/pipelines/{id}/cancel
          name: pipeline-cancel
          description: "Cancel a pipeline execution"
          operations:
            - method: PUT
              name: cancel-pipeline
              description: "Cancel a running pipeline"
              call: "spinnaker.cancel-pipeline"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/pipelines/{id}/pause
          name: pipeline-pause
          description: "Pause a pipeline execution"
          operations:
            - method: PUT
              name: pause-pipeline
              description: "Pause a running pipeline"
              call: "spinnaker.pause-pipeline"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/pipelines/{id}/resume
          name: pipeline-resume
          description: "Resume a pipeline execution"
          operations:
            - method: PUT
              name: resume-pipeline
              description: "Resume a paused pipeline"
              call: "spinnaker.resume-pipeline"
              with:
                id: "rest.id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/clusters
          name: clusters
          description: "Cluster management"
          operations:
            - method: GET
              name: list-clusters
              description: "List clusters for an application"
              call: "spinnaker.list-clusters"
              with:
                application: "rest.application"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/load-balancers
          name: load-balancers
          description: "Load balancer management"
          operations:
            - method: GET
              name: list-load-balancers
              description: "List load balancers for an application"
              call: "spinnaker.list-load-balancers"
              with:
                application: "rest.application"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/search
          name: search
          description: "Resource search"
          operations:
            - method: GET
              name: search
              description: "Search Spinnaker resources"
              call: "spinnaker.search"
              with:
                q: "rest.q"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: spinnaker-cd-mcp
      transport: http
      description: "MCP server for AI-assisted continuous delivery and deployment management."
      tools:
        - name: list-applications
          description: "List all Spinnaker applications"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.list-applications"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-application
          description: "Get configuration and cluster summary for a Spinnaker application"
          hints:
            readOnly: true
          call: "spinnaker.get-application"
          with:
            application: "tools.application"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-pipeline-configs
          description: "List all pipeline configurations for a Spinnaker application"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.list-pipeline-configs"
          with:
            application: "tools.application"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-pipeline-executions
          description: "List recent pipeline execution history with status for an application"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.list-pipeline-executions"
          with:
            application: "tools.application"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-pipeline-execution
          description: "Get full status, stage details, and outputs of a specific pipeline execution"
          hints:
            readOnly: true
          call: "spinnaker.get-pipeline-execution"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: invoke-pipeline
          description: "Trigger a Spinnaker pipeline execution by application and pipeline name"
          hints:
            readOnly: false
          call: "spinnaker.invoke-pipeline"
          with:
            application: "tools.application"
            pipelineName: "tools.pipeline_name"
          outputParameters:
            - type: object
              mapping: "$."
        - name: cancel-pipeline
          description: "Cancel a running pipeline execution"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "spinnaker.cancel-pipeline"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: pause-pipeline
          description: "Pause a running pipeline execution — it can be resumed later"
          hints:
            readOnly: false
            idempotent: true
          call: "spinnaker.pause-pipeline"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: resume-pipeline
          description: "Resume a paused pipeline execution"
          hints:
            readOnly: false
            idempotent: true
          call: "spinnaker.resume-pipeline"
          with:
            id: "tools.id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-clusters
          description: "List all clusters for a Spinnaker application across cloud accounts"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.list-clusters"
          with:
            application: "tools.application"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-load-balancers
          description: "List load balancers associated with a Spinnaker application"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.list-load-balancers"
          with:
            application: "tools.application"
          outputParameters:
            - type: object
              mapping: "$."
        - name: search-resources
          description: "Search across all Spinnaker-managed resources by keyword and optional type"
          hints:
            readOnly: true
            openWorld: true
          call: "spinnaker.search"
          with:
            q: "tools.q"
            type: "tools.type"
          outputParameters:
            - type: object
              mapping: "$."