From b32ba7ddb67e32a315c72b3682abffd085fe20b0 Mon Sep 17 00:00:00 2001 From: Egor Pavlikhin Date: Mon, 17 Aug 2026 17:20:00 +1000 Subject: [PATCH 1/2] Remote MCP docs --- .../img/octopus-ai/mcp/claude-screenshot.webp | Bin 0 -> 71092 bytes src/pages/docs/octopus-ai/mcp/index.md | 26 +++++ src/pages/docs/octopus-ai/mcp/index.mdx | 89 ------------------ src/pages/docs/octopus-ai/mcp/local/index.md | 85 +++++++++++++++++ .../docs/octopus-ai/mcp/local/use-cases.md | 70 ++++++++++++++ src/pages/docs/octopus-ai/mcp/remote/index.md | 82 ++++++++++++++++ .../docs/octopus-ai/mcp/remote/use-cases.md | 73 ++++++++++++++ src/pages/docs/octopus-ai/mcp/use-cases.md | 8 ++ src/pages/docs/octopus-ai/mcp/use-cases.mdx | 68 ------------- 9 files changed, 344 insertions(+), 157 deletions(-) create mode 100644 public/docs/img/octopus-ai/mcp/claude-screenshot.webp create mode 100644 src/pages/docs/octopus-ai/mcp/index.md delete mode 100644 src/pages/docs/octopus-ai/mcp/index.mdx create mode 100644 src/pages/docs/octopus-ai/mcp/local/index.md create mode 100644 src/pages/docs/octopus-ai/mcp/local/use-cases.md create mode 100644 src/pages/docs/octopus-ai/mcp/remote/index.md create mode 100644 src/pages/docs/octopus-ai/mcp/remote/use-cases.md create mode 100644 src/pages/docs/octopus-ai/mcp/use-cases.md delete mode 100644 src/pages/docs/octopus-ai/mcp/use-cases.mdx diff --git a/public/docs/img/octopus-ai/mcp/claude-screenshot.webp b/public/docs/img/octopus-ai/mcp/claude-screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..ba02731b5bbacb324aefbe729836376f0d965031 GIT binary patch literal 71092 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 literal 0 HcmV?d00001 diff --git a/src/pages/docs/octopus-ai/mcp/index.md b/src/pages/docs/octopus-ai/mcp/index.md new file mode 100644 index 0000000000..0678a60579 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/index.md @@ -0,0 +1,26 @@ +--- +layout: src/layouts/Default.astro +pubDate: 2025-04-04 +modDate: 2026-08-17 +title: Octopus MCP +navTitle: Overview +navSection: Octopus MCP +description: Connect AI assistants to Octopus Deploy with the remote or local Octopus MCP server. +navOrder: 2 +--- + +The Octopus Model Context Protocol (MCP) server connects AI assistants to your Octopus Deploy instance. It gives assistants tools to inspect and query your Octopus resources, diagnose problems, and perform supported tasks. + +## Octopus Remote MCP + +[Octopus Remote MCP](/docs/octopus-ai/mcp/remote) is hosted by your Octopus Deploy instance. It removes the need to install and manage the Octopus MCP server on your own machine and receives the latest MCP tools and features. + +## Local MCP + +[Local MCP](/docs/octopus-ai/mcp/local) runs as a package on your machine. The local server remains available for existing workflows, but it won't receive new features. + +## Related links + +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) +- [Octopus Remote MCP](/docs/octopus-ai/mcp/remote) +- [Local MCP](/docs/octopus-ai/mcp/local) diff --git a/src/pages/docs/octopus-ai/mcp/index.mdx b/src/pages/docs/octopus-ai/mcp/index.mdx deleted file mode 100644 index a374d9dc23..0000000000 --- a/src/pages/docs/octopus-ai/mcp/index.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -layout: src/layouts/Default.astro -pubDate: 2025-04-04 -modDate: 2026-06-19 -title: Octopus MCP -navTitle: Overview -navSection: Octopus MCP -description: An overview of the the Octopus MCP server, allowing AI clients to leverage the power of Octopus Deploy -navOrder: 2 ---- - -## Octopus MCP Server - -The Octopus MCP ([Model Context Protocol](https://modelcontextprotocol.io/)) server represents a significant leap forward in AI integration capabilities. Built on Anthropic's open standard for connecting AI assistants to external data sources and tools, the MCP server enables AI assistants like Claude to interact directly with your Octopus Deploy infrastructure. - -The Octopus MCP server provides similar capabilities to the Octopus AI Assistant, but provides further benefits: - -- You can use it with your client and model of choice. -- It can work alongside other MCP servers to accomplish more complex orchestrations across Octopus and your other essential software services. - -The MCP server provides tools designed to solve key use-cases within change management, troubleshooting, administration audit & compliance, and standardization at scale. - -The MCP server architecture ensures that your deployment data remains secure while enabling powerful AI-assisted workflows. All interactions are logged and auditable, maintaining the compliance and governance standards your organization requires. - -The Octopus MCP Server is open source, and anyone can contribute to it. It's available for free on Github at [https://github.com/OctopusDeploy/mcp-server](https://github.com/OctopusDeploy/mcp-server) - -## Security - -The Octopus MCP Server works by communicating with your Octopus instance's REST API via a secure HTTPS connection. It leverages Octopus Server's existing API Key security mechanism, ensuring all interactions are authenticated, authorized for the permissions associated with the API Key, and audited. - -To learn more, read our [Octopus REST API](/docs/octopus-rest-api) documentation. - -## Governance - -Use dedicated [Agent API keys](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) and [Agent Service Accounts](/docs/security/users-and-teams/service-accounts#agent-service-accounts) for agents connecting to your Octopus instance. These keep agent actions fully auditable in clear, filterable audit logs, so you can meet your compliance requirements. - -## 🚀 Installation - -### Requirements - -- Node.js >= v20.0.0 -- Octopus Deploy instance that can be accessed by the MCP server via HTTPS -- Octopus Deploy API key (we recommend creating a dedicated [Agent Service Account](/docs/security/users-and-teams/service-accounts#agent-service-accounts) and generating an [agent API key](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) under it — this gives the MCP server its own identity, scopes its permissions, and makes its activity identifiable in the audit log and on the API Keys page) - -### Configuration - -Full example configuration (for Claude Desktop, Claude Code, and Cursor): - -```json -{ - "mcpServers": { - "octopusdeploy": { - "type": "stdio", - "command": "npx", - "args": ["-y", "@octopusdeploy/mcp-server"], - "env": { - "OCTOPUS_SERVER_URL": "https://your-octopus.com", - "OCTOPUS_API_KEY": "YOUR_API_KEY" - } - } - } -} -``` - -The Octopus MCP Server is typically configured within your AI Client of choice. - -It is packaged as an npm package and executed via Node's `npx` command. Your configuration will include the command invocation `npx`, and a set of arguments that supply the Octopus MCP Server package and provide the Octopus Server URL and API key required, if they are not available as environment variables. - -The command line invocation you will be configuring will be one of the two following variants: - -```bash -npx -y @octopusdeploy/mcp-server -``` - -With configuration provided via environment variables: - -```bash -OCTOPUS_API_KEY=API-KEY -OCTOPUS_SERVER_URL=https://your-octopus.com -``` - -Or with configuration supplied via the command line: - -```bash -OCTOPUS_API_KEY=API-KEY \ -npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com -``` - -For detailed documentation visit [the official Github repo](https://github.com/OctopusDeploy/mcp-server). diff --git a/src/pages/docs/octopus-ai/mcp/local/index.md b/src/pages/docs/octopus-ai/mcp/local/index.md new file mode 100644 index 0000000000..0364a205c4 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/local/index.md @@ -0,0 +1,85 @@ +--- +layout: src/layouts/Default.astro +pubDate: 2025-04-04 +modDate: 2026-08-17 +title: Local Octopus MCP server +navTitle: Overview +navSection: Local MCP +description: Install and run the local Octopus MCP server to connect AI clients to Octopus Deploy. +navOrder: 2 +--- + +The local Octopus MCP server connects AI assistants to your Octopus Deploy infrastructure. It uses [Model Context Protocol](https://modelcontextprotocol.io/introduction), an open standard for connecting AI assistants to external data sources and tools. + +The local MCP server provides similar capabilities to the Octopus AI Assistant, with some additional benefits: + +- You can use it with your client and model of choice. +- It can work alongside other MCP servers to coordinate tasks across Octopus and your other software services. + +The server provides tools for change management, troubleshooting, administration, audit and compliance, and standardization at scale. + +The local Octopus MCP server remains available for existing workflows, but it won't receive new features. For the latest tools and features without a local installation, use [Octopus Remote MCP](/docs/octopus-ai/mcp/remote). + +The local Octopus MCP server is open source and available from the [Octopus MCP server GitHub repository](https://github.com/OctopusDeploy/mcp-server). + +## Security + +The local Octopus MCP server communicates with your Octopus instance's REST API over HTTPS. It uses Octopus Server's API key security, so interactions are authenticated, limited to the permissions associated with the API key, and audited. + +For more information, see the [Octopus REST API](/docs/octopus-rest-api) documentation. + +## Governance + +Use dedicated [Agent API keys](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) and [Agent Service Accounts](/docs/security/users-and-teams/service-accounts#agent-service-accounts) for agents connecting to your Octopus instance. These make agent actions identifiable and filterable in the audit log. + +## Installation + +### Requirements + +- Node.js 20 or later +- An Octopus Deploy instance that the MCP server can access over HTTPS +- An Octopus Deploy API key. We recommend creating a dedicated [Agent Service Account](/docs/security/users-and-teams/service-accounts#agent-service-accounts) and generating an [Agent API key](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) for it. This gives the MCP server its own identity, limits its permissions, and identifies its activity in the audit log and on the API Keys page. + +### Configuration + +The following example configures the server for Claude Desktop, Claude Code, and Cursor: + +```json +{ + "mcpServers": { + "octopusdeploy": { + "type": "stdio", + "command": "npx", + "args": ["-y", "@octopusdeploy/mcp-server"], + "env": { + "OCTOPUS_SERVER_URL": "https://your-octopus.com", + "OCTOPUS_API_KEY": "YOUR_API_KEY" + } + } + } +} +``` + +Configure the local Octopus MCP server in your chosen AI client. The server is published as an npm package and runs through Node.js with `npx`. The configuration must provide the Octopus Server URL and API key as environment variables or command-line arguments. + +Run the server with configuration supplied through environment variables: + +```bash +OCTOPUS_API_KEY=API-KEY \ +OCTOPUS_SERVER_URL=https://your-octopus.com \ +npx -y @octopusdeploy/mcp-server +``` + +Alternatively, supply the server URL as a command-line argument: + +```bash +OCTOPUS_API_KEY=API-KEY \ +npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com +``` + +For detailed configuration information, see the [Octopus MCP server GitHub repository](https://github.com/OctopusDeploy/mcp-server). + +## Related links + +- [Local MCP use cases](/docs/octopus-ai/mcp/local/use-cases) +- [Octopus Remote MCP](/docs/octopus-ai/mcp/remote) diff --git a/src/pages/docs/octopus-ai/mcp/local/use-cases.md b/src/pages/docs/octopus-ai/mcp/local/use-cases.md new file mode 100644 index 0000000000..df23c16065 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/local/use-cases.md @@ -0,0 +1,70 @@ +--- +layout: src/layouts/Default.astro +pubDate: 2025-04-04 +modDate: 2026-08-17 +title: Local MCP use cases +navTitle: Use cases +description: Example prompts for change management, troubleshooting, administration, audit, and compliance with Local MCP. +navOrder: 3 +--- + +These examples are a starting point for using the local Octopus MCP server. + +## Change management + +Reason about which changes have been deployed and where. This can help you understand which software versions your customers use in production. + +### Production version tracking + +Find the software version that a customer, represented by a tenant, is running in Production. You can also identify issues with their most recent deployment. + +**Example prompt** + +```text +Customer X has submitted a support ticket reporting a bug in the latest release of App. Which release are they using, when was it deployed, and were there any issues with the deployment? +``` + +## Troubleshooting + +Investigate failed deployments or unhealthy deployment targets to help restore service faster. + +### Deployment health analysis + +Check for failed deployments or unhealthy Kubernetes workloads, analyze the reasons for failure, and suggest solutions. + +**Example prompt** + +```text +Check the health of the {ServiceName} service in the {SpaceName} space and report any issues. Check the status of Kubernetes services to produce a comprehensive report. +``` + +Prompt for Kubernetes status to trigger a Kubernetes [live object status](/docs/kubernetes/live-object-status) check. + +## Administration, audit, and compliance + +Inspect your Octopus instance to help keep deployments healthy and configurations compliant. + +### Certificate expiry monitoring + +Identify unhealthy resources, expiring certificates, or unused projects in your Octopus instance. + +**Example prompt** + +```text +Find certificates in the {SpaceName} space that will expire soon. +``` + +### Resource access validation + +Find configured resources in your Octopus instance and check whether they can access the required targets. + +**Example prompt** + +```text +Check the accounts configured in the {SpaceName} space in my Octopus instance. Find the preproduction Azure account, then use the Azure MCP server to check which resources are available in that subscription. +``` + +## Related links + +- [Local Octopus MCP server](/docs/octopus-ai/mcp/local) +- [Octopus Remote MCP](/docs/octopus-ai/mcp/remote) diff --git a/src/pages/docs/octopus-ai/mcp/remote/index.md b/src/pages/docs/octopus-ai/mcp/remote/index.md new file mode 100644 index 0000000000..e952ac5c94 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/remote/index.md @@ -0,0 +1,82 @@ +--- +layout: src/layouts/Default.astro +pubDate: 2026-08-17 +modDate: 2026-08-17 +title: Octopus Remote MCP +navTitle: Remote MCP +navSection: Octopus Remote MCP +description: Connect AI assistants to your Octopus instance with the hosted Octopus Remote MCP server. +navOrder: 1 +--- + +Octopus Remote MCP connects the AI assistants you use in your day-to-day work to your Octopus Deploy instance. It gives those assistants access to Octopus tools and information through a standardized protocol. + +## Model Context Protocol + +[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) is an open standard that connects AI assistants, such as Claude Code and ChatGPT, to the systems and services you own. These connections let assistants retrieve information and perform tasks across those systems and services. + +## Octopus Remote MCP server + +The Octopus Remote MCP server provides tools that let an AI assistant inspect and query resources in your Octopus instance and help diagnose problems. This turns your assistant into a DevOps partner that can work with the deployment information already in Octopus. + +The remote server runs in your Octopus Deploy instance, so you don't need to install the MCP server locally or manage server versions. New tools and features will be delivered through the remote server. + +The [local Octopus MCP server](/docs/octopus-ai/mcp/local) will remain available for the foreseeable future, but it won't receive new features. + +:::figure +![Sample MCP session](/docs/img/octopus-ai/mcp/claude-screenshot.webp) +::: + +## Available tools + +Octopus Remote MCP exposes a different set of tools from [Local MCP](/docs/octopus-ai/mcp/local). Its tools have two layers: + +- Dedicated tools for common operations, such as `find_spaces` and `find_projects`. +- Contract tools that provide access to selected Octopus REST API operations. The AI assistant uses `search_contracts` to find a contract, `describe_contract` to inspect its schema, and then `execute_query` for read operations or `execute_command` for operations that make changes. + +Octopus Remote MCP initially supports a selected set of core Octopus features. We'll add more operations to the contract tools over time. + +## Getting Started + +### Requirements +- An Octopus Deploy instance that can be accessed over HTTPS +- An Octopus Deploy API key. We recommend creating a dedicated [Agent Service Account](/docs/security/users-and-teams/service-accounts#agent-service-accounts) and generating an [Agent API key](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) for it. This gives the MCP server its own identity, limits its permissions, and identifies its activity in the audit log and on the API Keys page. + +Set the `OCTOPUS_API_KEY` environment variable to your Agent API key, then run: + +```bash +claude mcp add --transport http \ + --header "X-Octopus-ApiKey:${OCTOPUS_API_KEY}" \ + octopus-deploy https://your-octopus-instance.com/mcp +``` + +Or in JSON format: +```json +"mcpServers": { + "octopus-deploy": { + "type": "http", + "url": "https://your-octopus-instance.com/mcp", + "headers": { + "X-Octopus-ApiKey": "${OCTOPUS_API_KEY}" + } + } +}, +``` + +### OAuth Support + +OAuth authentication flow is planned for a future release. + +## Security + +The Octopus MCP server operates within the same security boundary as our Rest API - user permissions still apply the same way. + +## Governance + +Use dedicated [Agent API keys](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) and [Agent Service Accounts](/docs/security/users-and-teams/service-accounts#agent-service-accounts) for agents connecting to your Octopus instance. These make agent actions identifiable and filterable in the audit log. + +## Related links + +- [Octopus Remote MCP use cases](/docs/octopus-ai/mcp/remote/use-cases) +- [Local MCP](/docs/octopus-ai/mcp/local) +- [Model Context Protocol](https://modelcontextprotocol.io/introduction) diff --git a/src/pages/docs/octopus-ai/mcp/remote/use-cases.md b/src/pages/docs/octopus-ai/mcp/remote/use-cases.md new file mode 100644 index 0000000000..a9e138cd22 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/remote/use-cases.md @@ -0,0 +1,73 @@ +--- +layout: src/layouts/Default.astro +pubDate: 2026-08-17 +modDate: 2026-08-17 +title: Octopus Remote MCP use cases +navTitle: Use cases +description: Explore how Octopus Remote MCP helps teams track releases, diagnose failures, automate deployments, audit changes, and manage tenants. +navOrder: 2 +--- + +Octopus Remote MCP lets your AI assistant work with the deployment information and operations in your Octopus instance. These use cases show how it can reduce investigation time, make release status easier to understand, and help teams act without manually piecing together information from different parts of Octopus. + +## Release visibility + +Release visibility connects a pull request (PR) or feature to its releases, deployments, environments, and tenants. This helps developers and support teams answer what shipped, where it shipped, and whether the deployment succeeded without tracing each item manually. + +Example prompts: + +- "Show me the deployment status for PR 1842 in the Payments API project. When was it deployed to the Acme tenant?" +- "When did the checkout timeout fix from PR 1842 reach Production?" +- "Which version of the Payments API is the Acme tenant running, and were there any problems with its latest deployment?" + +## Incident diagnosis + +Incident diagnosis brings together deployment and runbook task details, logs, and related Octopus resources. This gives responders a faster starting point for identifying the failed step, understanding the cause, and deciding what to investigate next. + +Example prompts: + +- "Investigate the latest failed deployment for the Payments API project and explain the likely cause." +- "Why did the Nightly database maintenance runbook fail, and which step should I investigate first?" +- "What changed in Production before the Payments API incident, when was each change deployed, and which deployment targets received it?" + +## Release progression + +Release progression covers the path from creating a release to promoting it through its lifecycle. Your assistant can explain lifecycle rules, preview a deployment before it starts, create and deploy releases, run runbooks, and generate release notes. + +Example prompts: + +- "Describe the Payments API lifecycle, including its phases and progression rules." +- "Preview release 2.4.1 of the Payments API for Test and summarize what will run." +- "Create release 2.4.1 of the Payments API and deploy it to Development." +- "Promote Payments API release 2.4.1 to the next lifecycle environment." +- "Generate release notes for release 2.4.1 and attach them to the release." +- "Run the Restart payment workers runbook in Production." + +Operations that make changes run with the permissions of the API key used to connect the assistant. Use a dedicated [Agent Service Account](/docs/security/users-and-teams/service-accounts#agent-service-accounts) and grant it only the permissions it needs. + +## Operational oversight + +Operational oversight summarizes activity across projects, tasks, deployment targets, and audit events. This helps platform teams identify unhealthy infrastructure, blocked work, and unusual changes without reviewing each project separately. + +Example prompts: + +- "Report deployment health across all projects over the last 7 days. Highlight recurring failures and the projects most affected." +- "List running, queued, and failed tasks across the instance. Group them by state and show how long they have been in that state." +- "Review deployment targets in Production and summarize their health, roles, and environments." +- "What changed in the Payments space in the last hour? Summarize the relevant audit events." + +## Tenant configuration + +Tenant configuration combines tenant details, tags, and variable status to help teams manage deployments at scale. This makes it easier to find inconsistent configuration before it causes a tenant-specific deployment failure. + +Example prompts: + +- "Find tenants in the Payments space with incomplete variable configuration and list the missing values." +- "Show me the tenant tag sets used in the Payments space and summarize how tenants are grouped." +- "Find the Acme tenant and show its connected projects, environments, tags, and configuration status." + +## Related links + +- [Octopus Remote MCP](/docs/octopus-ai/mcp/remote) +- [Agent Service Accounts](/docs/security/users-and-teams/service-accounts#agent-service-accounts) +- [Agent API keys](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) diff --git a/src/pages/docs/octopus-ai/mcp/use-cases.md b/src/pages/docs/octopus-ai/mcp/use-cases.md new file mode 100644 index 0000000000..4e26e9a697 --- /dev/null +++ b/src/pages/docs/octopus-ai/mcp/use-cases.md @@ -0,0 +1,8 @@ +--- +layout: src/layouts/Redirect.astro +title: Redirect +redirect: https://octopus.com/docs/octopus-ai/mcp/local/use-cases +pubDate: 2025-04-04 +navSearch: false +navSitemap: false +--- diff --git a/src/pages/docs/octopus-ai/mcp/use-cases.mdx b/src/pages/docs/octopus-ai/mcp/use-cases.mdx deleted file mode 100644 index aa2e95dc9c..0000000000 --- a/src/pages/docs/octopus-ai/mcp/use-cases.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -layout: src/layouts/Default.astro -pubDate: 2025-04-04 -modDate: 2025-08-01 -title: Use Cases -description: -navOrder: 1 ---- - -Below are some typical example use cases that might give you a good starting point to experiment with the Octopus Deploy MCP server. - -We are eager to hear how you use it and what features you would like to see included in future versions. - -## Capability: Change Management - -Reason about what changes have been deployed where, to help you understand what your customers are using in production. - -### Production Version Tracking - -Quickly find out what version of your software a customer, represented by a Tenant, is running in Production, and identify if there were any issues with their most recent deployment. - -#### 📝 Example Prompt - -```text -Customer X have submitted a support ticket complaining that there is a bug in the latest release of App. Can you tell me what release they are on, when it was deployed, and if there were any issues with the deployment? -``` - -## Capability: Troubleshooting - -Get to the root cause of failures or unhealthy deployment targets, allowing you to more quickly recover from failures. - -### Deployment Health Analysis - -Check for failed deployments or unhealthy kubernetes workloads, analyze the failure reasons and suggest solutions. - -#### 📝 Example Prompt: Deployment Health - -```text -Check health of the {ServiceName} service in the {SpaceName} space and report any issues found, check status of kubernetes services to produce a comprehensive report -``` - -#### 💡 Tips for customizing - -- Prompt for kubernetes status to trigger kubernetes [live object status](/docs/kubernetes/live-object-status) check - -## Capability: Administration, Audit, and Compliance - -Ensure your Octopus instance is in optimal shape, and that deployments continue to execute happily and healthily. - -### Certificate Expiry Monitoring - -Identify unhealthy resources, expiring certificates or find unused projects in your Octopus instance. - -#### 📝 Example Prompt: Certificate Expiry - -```text -Find certificates soon set to expire in {SpaceName} space -``` - -### Resource Access Validation - -Find configured resources in your Octopus instance and check if they have access to the desired targets. - -#### 📝 Example Prompt: Resource Access - -```text -Check accounts configured in {SpaceName} space in my Octopus instance, find the preproduction azure account and then check which resources are available in that subscription using the azure mcp -``` From 321c5f2548f1fba25a8f293ac0dc5afc0e23204b Mon Sep 17 00:00:00 2001 From: Egor Pavlikhin Date: Wed, 19 Aug 2026 11:18:10 +1000 Subject: [PATCH 2/2] A note about configuration --- public/docs/img/octopus-ai/mcp/mcp-settings.png | Bin 0 -> 29457 bytes src/pages/docs/octopus-ai/mcp/remote/index.md | 12 ++++++++++++ 2 files changed, 12 insertions(+) create mode 100644 public/docs/img/octopus-ai/mcp/mcp-settings.png diff --git a/public/docs/img/octopus-ai/mcp/mcp-settings.png b/public/docs/img/octopus-ai/mcp/mcp-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..b46b59ddd65c8375ed4417666a774efff8e2c022 GIT binary patch literal 29457 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 G^?v{@vVa%> literal 0 HcmV?d00001 diff --git a/src/pages/docs/octopus-ai/mcp/remote/index.md b/src/pages/docs/octopus-ai/mcp/remote/index.md index e952ac5c94..9aff8ed767 100644 --- a/src/pages/docs/octopus-ai/mcp/remote/index.md +++ b/src/pages/docs/octopus-ai/mcp/remote/index.md @@ -75,6 +75,18 @@ The Octopus MCP server operates within the same security boundary as our Rest AP Use dedicated [Agent API keys](/docs/octopus-rest-api/how-to-create-an-api-key#creating-an-agent-api-key) and [Agent Service Accounts](/docs/security/users-and-teams/service-accounts#agent-service-accounts) for agents connecting to your Octopus instance. These make agent actions identifiable and filterable in the audit log. +## Configuration + +Optionally, both the Remote MCP and the Local MCP can be disabled from **Configuration -> Settings -> MCP Controls** page. + +:::figure +![MCP Settings](/docs/img/octopus-ai/mcp/mcp-settings.png) +::: + +:::div{.warning} +Disabling the Local MCP will block incoming requests with the specific user agent string. A rogue AI agent could potentially replace this string with a different value and bypass the restriction. +::: + ## Related links - [Octopus Remote MCP use cases](/docs/octopus-ai/mcp/remote/use-cases)