Skip to main content
Glama
OctopusDeploy

Octopus Deploy MCP Server

Official

Run a runbook in Octopus Deploy

run_runbook
Destructive

Execute operational runbooks (e.g., DB backups, smoke tests) in Octopus Deploy across one or more environments, with support for tenanted runs, snapshot or git ref selection, and optional scheduling.

Instructions

Run a runbook against one or more environments in Octopus Deploy.

Runbooks execute operational processes (DB backups, smoke tests, environment refresh, etc.) against the specified environments. For tenanted runs, supply tenants and/or tenantTags.

Two project kinds:

  • DB-backed projects: by default the runbook's published snapshot is used; pass runbookSnapshotId to pick a specific snapshot.

  • Config-as-Code projects: pass gitRef (branch name like 'main', tag, or commit SHA). Snapshots don't apply — the gitRef is the version pin. Use find_runbooks with the same gitRef to discover runbook names.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
spaceNameYesThe space name
projectNameYesThe project name
runbookNameYesThe runbook name (within the project)
environmentNamesYesArray of environment names. At least one environment must be provided.
tenantsNoArray of tenant names for tenanted runs (optional)
tenantTagsNoArray of tenant tags for tenanted runs (e.g., ['Region/US-West', 'Tier/Production'])
runbookSnapshotIdNoDB-backed runbooks only. Specific snapshot ID. Defaults to the runbook's published snapshot if omitted. Not applicable to Config-as-Code runbooks.
gitRefNoConfig-as-Code runbooks only. A branch name (e.g. 'main'), tag, or commit SHA. Use get_branches to list available refs. Mutually exclusive with runbookSnapshotId.
promptedVariableValuesNoPrompted variable values as key-value pairs
useGuidedFailureNoUse guided failure mode
forcePackageDownloadNoForce package download
specificMachineNamesNoRun on specific machines only
excludedMachineNamesNoExclude specific machines from the run
skipStepNamesNoSkip specific runbook steps
runAtNoSchedule run for later (ISO 8601 date string)
noRunAfterNoDon't run after this time (ISO 8601 date string)
confirmNoRequired only when the MCP client does not support elicitation. Set to true to confirm the run; otherwise the tool aborts.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed20 schema fields changedv2.3.1
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / confirm
      Added value: +{
      +  "description": "Required only when the MCP client does not support elicitation. Set to true to confirm the run; otherwise the tool aborts.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / environmentNames
      Added value: +{
      +  "description": "Array of environment names. At least one environment must be provided.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / excludedMachineNames
      Added value: +{
      +  "description": "Exclude specific machines from the run",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / forcePackageDownload
      Added value: +{
      +  "description": "Force package download",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / gitRef
      Added value: +{
      +  "description": "Config-as-Code runbooks only. A branch name (e.g. 'main'), tag, or commit SHA. Use get_branches to list available refs. Mutually exclusive with runbookSnapshotId.",
      +  "type": "string"
      +}
    • addedInput schema / properties / noRunAfter
      Added value: +{
      +  "description": "Don't run after this time (ISO 8601 date string)",
      +  "type": "string"
      +}
    • addedInput schema / properties / projectName
      Added value: +{
      +  "description": "The project name",
      +  "type": "string"
      +}
    • addedInput schema / properties / promptedVariableValues
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Prompted variable values as key-value pairs",
      +  "type": "object"
      +}
    • addedInput schema / properties / runAt
      Added value: +{
      +  "description": "Schedule run for later (ISO 8601 date string)",
      +  "type": "string"
      +}
    • addedInput schema / properties / runbookName
      Added value: +{
      +  "description": "The runbook name (within the project)",
      +  "type": "string"
      +}
    • addedInput schema / properties / runbookSnapshotId
      Added value: +{
      +  "description": "DB-backed runbooks only. Specific snapshot ID. Defaults to the runbook's published snapshot if omitted. Not applicable to Config-as-Code runbooks.",
      +  "type": "string"
      +}
    • addedInput schema / properties / skipStepNames
      Added value: +{
      +  "description": "Skip specific runbook steps",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / spaceName
      Added value: +{
      +  "description": "The space name",
      +  "type": "string"
      +}
    • addedInput schema / properties / specificMachineNames
      Added value: +{
      +  "description": "Run on specific machines only",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / tenantTags
      Added value: +{
      +  "description": "Array of tenant tags for tenanted runs (e.g., ['Region/US-West', 'Tier/Production'])",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / tenants
      Added value: +{
      +  "description": "Array of tenant names for tenanted runs (optional)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / useGuidedFailure
      Added value: +{
      +  "description": "Use guided failure mode",
      +  "type": "boolean"
      +}
    • addedInput schema / required
      Added value: +[
      +  "spaceName",
      +  "projectName",
      +  "runbookName",
      +  "environmentNames"
      +]
  2. Changed19 schema fields changedv2.3.0
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / confirm
      Removed value: -{
      -  "description": "Required only when the MCP client does not support elicitation. Set to true to confirm the run; otherwise the tool aborts.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / environmentNames
      Removed value: -{
      -  "description": "Array of environment names. At least one environment must be provided.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "minItems": 1,
      -  "type": "array"
      -}
    • removedInput schema / properties / excludedMachineNames
      Removed value: -{
      -  "description": "Exclude specific machines from the run",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / forcePackageDownload
      Removed value: -{
      -  "description": "Force package download",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / noRunAfter
      Removed value: -{
      -  "description": "Don't run after this time (ISO 8601 date string)",
      -  "type": "string"
      -}
    • removedInput schema / properties / projectName
      Removed value: -{
      -  "description": "The project name",
      -  "type": "string"
      -}
    • removedInput schema / properties / promptedVariableValues
      Removed value: -{
      -  "additionalProperties": {
      -    "type": "string"
      -  },
      -  "description": "Prompted variable values as key-value pairs",
      -  "type": "object"
      -}
    • removedInput schema / properties / runAt
      Removed value: -{
      -  "description": "Schedule run for later (ISO 8601 date string)",
      -  "type": "string"
      -}
    • removedInput schema / properties / runbookName
      Removed value: -{
      -  "description": "The runbook name (within the project)",
      -  "type": "string"
      -}
    • removedInput schema / properties / runbookSnapshotId
      Removed value: -{
      -  "description": "Specific snapshot ID. Defaults to the runbook's published snapshot if omitted.",
      -  "type": "string"
      -}
    • removedInput schema / properties / skipStepNames
      Removed value: -{
      -  "description": "Skip specific runbook steps",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / spaceName
      Removed value: -{
      -  "description": "The space name",
      -  "type": "string"
      -}
    • removedInput schema / properties / specificMachineNames
      Removed value: -{
      -  "description": "Run on specific machines only",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / tenantTags
      Removed value: -{
      -  "description": "Array of tenant tags for tenanted runs (e.g., ['Region/US-West', 'Tier/Production'])",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / tenants
      Removed value: -{
      -  "description": "Array of tenant names for tenanted runs (optional)",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / useGuidedFailure
      Removed value: -{
      -  "description": "Use guided failure mode",
      -  "type": "boolean"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "spaceName",
      -  "projectName",
      -  "runbookName",
      -  "environmentNames"
      -]
  3. Addedv2.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description notes that runbooks execute operational processes (potentially destructive, aligning with destructiveHint:true). It discloses key behavioral details: snapshot vs gitRef for project types, and the confirm parameter requirement when client lacks elicitation support. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two paragraphs, front-loaded with the main action. Every sentence adds value. Could be slightly more structured (e.g., bullet points for project types), but overall concise and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 17 parameters and no output schema, the description covers main variations: tenanted runs, project types, scheduling (runAt, noRunAfter), and references related tools (find_runbooks, get_branches). Might lack details about return values or error handling, but for a runbook execution tool, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds value beyond schema by explaining the mutual exclusivity of runbookSnapshotId and gitRef, and the context for using gitRef with Config-as-Code projects. This cross-parameter guidance improves semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a runbook against one or more environments, with examples of operational processes. It distinguishes two project kinds (DB-backed vs Config-as-Code) and implies differentiation from siblings like find_runbooks, deploy_release, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on tenanted runs (tenants/tenantTags) and project-specific parameters (runbookSnapshotId vs gitRef). Does not explicitly list alternatives or when not to use this tool, but context from sibling names makes it clear this is for executing existing runbooks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OctopusDeploy/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server