Skip to main content
Glama
OctopusDeploy

Octopus Deploy MCP Server

Official

Execute an Octopus REST request (backstop)

execute
Destructive

Execute custom REST API calls to Octopus Deploy endpoints not covered by curated tools, with method-based read/write/delete gating and path validation.

Instructions

Reach Octopus REST endpoints not covered by the curated tools. Use this only after grep_llms_txt has shown you the right method and path.

Method gating is hard-coded server-side, three tiers:

  • GET → read tier: always allowed (subject to toolset allowlist + sensitive denylist).

  • POST/PUT/PATCH → write tier: blocked when --read-only is set; requires user confirmation via elicitation otherwise.

  • DELETE → delete tier: requires --allow-deletes (and is blocked when --read-only is set) AND a stronger user confirmation.

The HTTP method enum is the gate. The tool will not honour any 'isRead' flag the agent invents — the runtime classifies based on the actual method.

Other gates (in order): 0. Path shape: must be '/api' or start with '/api/'. Absolute URLs, '~/api/...', '/octopus/portal/...', query strings, fragments, '..' segments, and percent-encoded slashes are all rejected up front.

  1. Sensitive denylist: API key endpoints and catastrophic deletes (DELETE /api/users/{id}, DELETE /api/spaces/{id}) are always blocked.

  2. Path allowlist — only applied when --toolsets has narrowed the active set. With every toolset enabled (the default, or explicit --toolsets all) any path under /api is reachable subject to the other gates; when toolsets are narrowed, paths only resolve if their owning toolset is enabled so disabling a toolset (e.g. 'certificates') makes its endpoints unreachable even on GET.

  3. Elicitation on every non-GET, with a stronger message for DELETE.

Discover endpoints with grep_llms_txt. Use octopus://api/capabilities to see which toolsets are enabled and whether write/delete modes are on.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
methodYesHTTP method. The method itself is the read/write/delete classifier — GET is read-only, POST/PUT/PATCH are blocked when --read-only is set, DELETE additionally requires --allow-deletes. The agent cannot bypass this by lying about intent.
pathYesServer-relative path under the Octopus REST API. MUST be exactly '/api' or start with '/api/' — e.g. '/api/spaces/Spaces-1/feeds' or '/api/Spaces-1/projects'. Do NOT pass an absolute URL ('https://octopus.example/api/...'), an SDK-relative path ('~/api/...'), or a host-relative path outside /api ('/octopus/portal/...'); they are all rejected. Query parameters go in `query`, not in this string. Discover valid paths via grep_llms_txt.
queryNoOptional query-string parameters as a flat object.
bodyNoOptional request body for POST/PUT/PATCH calls.
asCsvNoIf true, request 'text/csv' for tabular GET responses. The Octopus API honours this for endpoints that support CSV output.
confirmNoRequired only when the MCP client does not support elicitation. Set to true to confirm a non-GET call; otherwise the tool aborts.
Behavior5/5

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

Annotations already indicate destructive+!readOnly, but description provides detailed method gating, path constraints, sensitive denylist, toolset allowlist, and elicitation requirements. Discloses that invented flags are ignored.

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?

Long but well-structured with sections and bullet points. Could be slightly more concise, but every part serves a purpose. Front-loaded with core purpose and access conditions.

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?

Covers purpose, usage, behavioral details, and parameter semantics thoroughly. Lacks explicit mention of response format (e.g., JSON) and error handling, but given no output schema, this is a minor gap in an otherwise comprehensive description.

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

Parameters5/5

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

Schema coverage is 100% but description adds extensive context: method gating, path shape rules, confirm parameter elicitation, etc. Enriches each parameter beyond schema descriptions.

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?

Description clearly states it executes Octopus REST requests not covered by curated tools, positioning it as a backstop. Distinguishes from siblings by referencing specific alternative tools like grep_llms_txt for discovery.

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

Usage Guidelines5/5

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

Explicitly says 'Use this only after grep_llms_txt has shown you the right method and path' and includes instructions for discovery and mode checking. Context implies when not to use (when sibling exists).

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

Install Server

Other Tools

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