Octopus Deploy Official MCP Server

公式

Octopus MCP Serverは、AIアシスタントに強力なツールを提供し、Octopusインスタンス内の問題を調査、照会、診断できるようにすることで、究極のDevOpsパートナーへと変貌させます。

Octopus Deploy Official MCPで何ができますか?

  • URLからデプロイを検査 — OctopusのURLを貼り付けてデプロイを調査するよう依頼します。get_deployment_from_url がコンテキストとフォローアップ用のタスクIDを返します。
  • デプロイタスクログを検索 — grep_task_log を使用して、タスクのアクティビティログ内のエラーや失敗パターンを見つけます。数メガバイトの全体をダウンロードする必要はありません。
  • リリースの作成とデプロイ — プロジェクトの create_release を依頼し、その後 deploy_release で特定の環境(テナント付きデプロイを含む)にデプロイします。
  • 環境間でランブックを実行 — run_runbook を使用して、1つ以上の環境に対してランブックを実行します。テナント付き実行やプロンプト変数に対応しています。
  • 不足しているテナント変数の検索と修正 — get_missing_tenant_variables を使用して値が欠落しているテナント変数を特定し、get_tenant_variables でそれらを検査します。
  • Kubernetesのライブステータスを確認 — プロジェクトと環境のリソースについて get_kubernetes_live_status を依頼し、デプロイの問題を診断します。

ドキュメント

[!WARNING] 非推奨: このMCPサーバーは非推奨です。Remote MCP ServerはOctopus Server 2026.3以降で利用可能です。Remote MCP Serverのドキュメントを参照してください。

Octopus Deploy Logo

Octopus Deploy Official MCP Server

Octopusを使用すると、Kubernetes、マルチクラウド、オンプレミスインフラストラクチャ、その他あらゆる場所へのソフトウェア配信が簡単になります。他のツールにはない方法で大規模なCDを処理できるツールを使用して、ソフトウェアとAIワークロードのリリース、デプロイ、運用を自動化します。

Model Context Protocol(MCP)を使用すると、Claude CodeやChatGPTなど、日々の業務で使用するAIアシスタントが、所有するシステムやサービスに標準化された方法で接続し、それらのシステムやサービスから情報を取得して質問に答えたりタスクを実行したりできるようになります。

Octopus MCP Serverは、AIアシスタントに強力なツールを提供し、Octopusインスタンス内の問題を検査、照会、診断できるようにして、究極のDevOpsウィングメイトに変身させます。サポートされているユースケースとサンプルプロンプトの一覧については、ドキュメントを参照してください。

Octopus Server互換性

MCP Serverが公開するほとんどのツールは、Octopus Serverの少なくともバージョン2021.1以降で利用可能な安定したAPIを使用しています。新しいツールは、ドキュメントで最小サポートバージョンを指定します。あるいは、コマンドライン引数--list-tools-by-versionを使用して、特定のツールがOctopusのバージョンとどのように関連するかを確認できます。

🚀 インストール

Docker経由でのインストール

ホストのプロセス一覧で資格情報が公開されないように、資格情報は環境変数で指定する必要があります(ps aux / /proc/<pid>/cmdline)。OctopusサーバーのURLは、引き続き--server-urlフラグで指定できます。

docker run -i --rm -e OCTOPUS_API_KEY=your-key -e OCTOPUS_SERVER_URL=https://your-octopus.com octopusdeploy/mcp-server

完全な設定例(Claude Desktop、Claude Code、Cursor用):

{
  "mcpServers": {
    "octopus-deploy": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "OCTOPUS_SERVER_URL",
        "-e",
        "OCTOPUS_API_KEY",
        "octopusdeploy/mcp-server"
      ],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    },
  }
}

Apple Macユーザーの場合、DockerがLinuxプラットフォームを使用するように、設定に次の引数を追加する必要がある場合があります:

"--platform",
"linux/amd64",

まもなくネイティブARMビルドをリリースする予定なので、これらの引数は不要になります。

Node経由でのインストール

要件

  • Node.js >= v20.0.0
  • MCPサーバーがHTTPS経由でアクセスできるOctopus Deployインスタンス
  • Octopus Deploy APIキーまたはアクセストークン(下記の認証を参照)

設定

完全な設定例(Claude Desktop、Claude Code、Cursor用):

書き込みツール有効(デフォルト):

{
  "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"
      }
    }
  }
}

読み取り専用モード(本番環境に推奨):

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server", "--read-only"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Octopus MCP Serverは通常、選択したAIクライアント内で設定されます。

npmパッケージとしてパッケージ化され、Nodeのnpxコマンドで実行されます。資格情報(APIキーまたはアクセストークン)は環境変数で指定する必要があります。プロセス一覧でシークレットが公開されないように、コマンドライン引数としては受け付けられません。OctopusサーバーのURLは、OCTOPUS_SERVER_URL環境変数または--server-urlフラグのいずれかで指定できます。

OCTOPUS_API_KEY=API-KEY \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

または、コマンドラインでサーバーURLを指定する場合:

OCTOPUS_API_KEY=API-KEY \
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

認証

MCPサーバーは2つの認証方法をサポートしています。どちらも環境変数で指定されます。資格情報はコマンドラインでは受け付けられません。フラグはホストのプロセス一覧でローカルユーザーに表示されるためです。

APIキー(対話的な使用に推奨)

APIキーはOctopus Deployの標準的な認証方法です。Octopus Deployユーザープロファイルから生成できます。

OCTOPUS_API_KEY=API-XXXXXXXXXXXXXXXXXXXXXXXXXX \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

アクセストークン / ベアラートークン(自動化シナリオのみ)

サーバーは、APIキーの代替として、短命のアクセストークン(ベアラートークン)もサポートしています。この認証方法は、外部システムがMCPサーバーに短命のトークンを発行する自動化シナリオのみを対象としています(例:CI/CDパイプライン、自動オーケストレーション、マシン間ワークフロー)。長命のベアラートークンは使用しないでください。対話的または長時間実行されるセッションでは、代わりにAPIキーを使用してください。

OCTOPUS_ACCESS_TOKEN=your-short-lived-token \
OCTOPUS_SERVER_URL=https://your-octopus.com \
npx -y @octopusdeploy/mcp-server

アクセストークンを使用した完全な設定例:

{
  "mcpServers": {
    "octopusdeploy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@octopusdeploy/mcp-server"],
      "env": {
        "OCTOPUS_SERVER_URL": "https://your-octopus.com",
        "OCTOPUS_ACCESS_TOKEN": "YOUR_TOKEN"
      }
    }
  }
}

APIキーとアクセストークンの両方が指定された場合、アクセストークンが優先されます。アクティブな認証方法はログファイルに記録され(--log-fileで設定可能)、オペレーターはどの資格情報が使用されているかを確認できます。

設定オプション

Octopus MCP Serverは、利用可能なツールをカスタマイズするためのいくつかのコマンドラインオプションをサポートしています。

必要なツールがわからない場合は、追加のコマンドラインオプションなしで実行し、提供されているデフォルトを使用することをお勧めします。

ツールセット

--toolsetsパラメータを使用して、特定のツールグループを有効にします:

# Enable all toolsets (default)
npx -y @octopusdeploy/mcp-server

# Enable only specific toolsets
npx -y @octopusdeploy/mcp-server --toolsets projects,deployments

# Enable all toolsets explicitly
npx -y @octopusdeploy/mcp-server --toolsets all

利用可能なツールセット:

  • core - 基本操作(常に有効)
  • projects - プロジェクト操作
  • deployments - デプロイ操作
  • releases - リリース管理
  • runbooks - ランブックの検出と実行
  • tasks - タスク操作
  • tenants - マルチテナンシー操作
  • kubernetes - Kubernetes操作
  • machines - デプロイターゲット操作
  • certificates - 証明書操作
  • accounts - アカウント操作
  • interruptions - 手動介入と承認操作
  • featureToggles - 顧客フィーチャートグルの検査と調整
  • context - 認証済みユーザーとプロジェクトコンテキスト(現在のユーザー、Gitブランチ)

読み取り専用モード

サーバーはデフォルトで書き込みツールを有効にして実行されます。--read-onlyを渡すと、すべての書き込みツールが無効になり、executeバックストップを介したPOST/PUT/PATCH/DELETEがブロックされます。ほとんどのキュレートされたツールはすでに読み取り専用です。書き込みを実行するのは少数のツールのみです。

書き込み有効ツール(常時書き込み):

  • create_release - 新しいリリースを作成
  • deploy_release - リリースを環境とテナントにデプロイ
  • run_runbook - 1つ以上の環境(およびオプションのテナント)に対してランブックを実行
  • update_feature_toggle - 既存のフィーチャートグルの環境ごとの状態とロールアウト率を調整

条件付き書き込みツール: executeは構造化されたRESTバックストップであり、その階層(読み取り/書き込み/削除)は渡されたHTTPメソッドによって決定されます。詳細については、APIカタログとバックストップセクションを参照してください。

書き込みツールはMCPエリシテーションプロンプトによってゲートされます。エリシテーションをサポートするクライアントは、呼び出しが進む前に確認を求められます。エリシテーションをサポートしないクライアントは、ツール引数にconfirm: trueを渡す必要があります。そうしないと、ツールはエラーで中止されます。OCTOPUS_SKIP_ELICITATION=trueを設定すると、ゲートを完全にバイパスします(無人自動化を対象としています)。

サーバーは3層の読み取り/書き込み/削除分類を使用し、HTTPメソッドに基づいてサーバー側で強制されます(エージェントは意図について嘘をつくことでこれをバイパスできません):

  • 読み取り — 常に許可されます。executeを介したGETリクエスト、およびすべてのfind_* / get_* / list_*ツール。
  • 書き込み — executeを介したPOST/PUT/PATCH、および上記の常時書き込みツール。--read-onlyが設定されている場合はブロックされます。
  • 削除 — executeを介したDELETE。--allow-deletesが必要で、--read-onlyが設定されている場合はブロックされます。壊滅的な削除パス(例:DELETE /api/spaces/{id}、DELETE /api/users/{id})とAPIキーエンドポイントの小さなセットは、両方のフラグを無視するハードな機密拒否リストにあります。
# Default - write tools enabled (POST/PUT/PATCH)
npx -y @octopusdeploy/mcp-server

# Additionally permit DELETE requests through the execute tool
npx -y @octopusdeploy/mcp-server --allow-deletes

# Read-only mode - write/delete tools disabled
npx -y @octopusdeploy/mcp-server --read-only

セキュリティに関する注意: 適切な最小権限のAPIキーを使用してください。書き込み操作は、Octopusインスタンスでリリースを作成し、デプロイをトリガーできます。本番環境では、書き込みのための特定の制御されたユースケースがない限り、--read-onlyを渡すことを検討してください。--allow-deletesはデフォルトでオフです。エージェントがexecuteを介してDELETEリクエストを発行する必要がある場合にのみ有効にしてください。--allow-deletesを--read-onlyと一緒に渡すと、サーバーはstderrに起動警告を出力します。DELETEリクエストは読み取り専用ゲートによってブロックされたままになります。

完全な例

以下のすべての例は、OCTOPUS_API_KEYが環境に設定されていることを前提としています。--server-urlフラグは明確にするために示されていますが、OCTOPUS_SERVER_URLを介して提供することもできます。

# Development setup with only core and project tools
npx -y @octopusdeploy/mcp-server --toolsets core,projects --server-url https://your-octopus.com

# Production setup with all tools and read-only enforcement
npx -y @octopusdeploy/mcp-server --toolsets all --read-only --server-url https://your-octopus.com

# Default invocation - all tools and writes enabled
npx -y @octopusdeploy/mcp-server --server-url https://your-octopus.com

その他のコマンドライン引数

  • --read-only - 読み取り専用モードを有効にする:すべてのキュレートされた書き込みツールを無効にし、executeを介したPOST/PUT/PATCH/DELETEをブロックします。書き込みはデフォルトで有効です。このフラグでオフになります。読み取り専用モードを参照してください。
  • --allow-deletes - executeツールを介したDELETEリクエストを許可します。--read-onlyが設定されている場合は無視されます(起動警告付き)。デフォルトはfalseです。
  • --log-level <level> - 最小ログレベル(info、error)
  • --log-file <path> - ログファイルのパスまたはファイル名。指定しない場合、ログはコンソールにのみ書き込まれます
  • -q, --quiet - ファイルログを無効にし、エラーのみをコンソールに記録します
  • --list-tools-by-version - サポートされているOctopus Serverバージョンごとに登録されたすべてのツールを一覧表示して終了します

🔨 ツール

URLベースのツール

クイックスタート:手動でIDを抽出することなく、Octopus URLを直接貼り付けて問題を調査します。

  • get_deployment_from_url: デプロイURLからデプロイの詳細を取得します(フォローアップ用にtaskIdを返します)
  • get_task_from_url: タスクURLからタスクの詳細とログを取得します

デプロイ調査ワークフロー:

1. get_deployment_from_url with deployment URL
   → Returns deployment context + taskResourceUri + grepTaskLogHint

2a. Fetch the structured activity tree via resources/read (or read_resource)
    octopus://spaces/{spaceName}/tasks/{taskId}/details

2b. Or call grep_task_log with the taskId to search the raw log without
    fetching the full body:
       grep_task_log({ spaceName, taskId, pattern: "error|fail", caseInsensitive: true })

タスク調査(直接タスクURL):

get_task_from_url with task URL
→ Returns task details and logs immediately

これらのツールは、手動のID抽出を不要にします:

  • URLを自動的に解析
  • スペースIDをスペース名に解決
  • ID形式の検証
  • 明確なエラーメッセージの提供

URLの例:

  • デプロイ: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • タスク: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

詳細なワークフロー、例、ベストプラクティスについては、URLの操作を参照してください。

コアツール

  • list_spaces: Octopus Deployインスタンス内のすべてのスペースを一覧表示します
  • list_environments: 指定されたスペース内のすべての環境を一覧表示します

APIカタログとバックストップ

これらのツールとリソースを使用すると、エージェントは専用のキュレートされたツールがないOctopus RESTエンドポイントに到達でき、読み取り、書き込み、削除操作の間にハードなサーバー側のゲートがあります。

  • grep_llms_txt: Octopus APIカタログ(octopus://api/llms.txt)をgrepスタイルのセマンティクスで検索します(対応する最小Octopusバージョン: 2026.2.3916)。カタログ本文は大きいため(通常300KB以上)、リソース本文を直接読むのではなく、これを呼び出してください。パラメータはGNU grepを反映しています(pattern、caseInsensitive、invertMatch、fixedString、beforeContext、afterContext、maxCount)。エンドポイントの発見(POST /releases)、削除エンドポイントの列挙(DELETE )、書き込み操作のボディタイプの特定(Body: Create.*Command)に役立ちます。
  • execute: 構造化されたRESTバックストップ。/api配下の任意のOctopus RESTエンドポイントに到達します。HTTPメソッドは読み取り/書き込み/削除の分類における信頼できる判定基準であり、LLMが設定できるisWriteフラグではありません。メソッドのゲーティングはサーバー側でハードコードされています:
    • GETは常に許可されます(パス形状チェックと機密拒否リストの対象)。
    • POST/PUT/PATCHは、--read-onlyが設定されている場合にブロックされます。それ以外の場合は、ユーザー確認(elicitation)が必要です。
    • DELETEは--allow-deletesが必要で(--read-onlyが設定されている場合はブロック)、さらに強い「IRREVERSIBLE」elicitationメッセージが必要です。
    • 機密拒否リスト(APIキーエンドポイント、DELETE /api/spaces/{id}、DELETE /api/users/{id})は、両方のフラグがオンでも適用されます。
    • パスは/apiまたは/api/で始まる必要があります。絶対URL、SDK相対の~/api/...パス、/api外のホスト相対パス(例: /octopus/portal/...)は事前に拒否されるため、executeはOctopus REST APIサーフェスに限定されます。
    • ツールセットごとのパス許可リストは、--toolsetsが絞り込まれた場合のみ適用されます。 すべてのツールセットが有効な場合(デフォルト、または明示的な--toolsets all)、許可リストはバイパスされ、/api配下の任意のパスに上記のゲートの対象で到達できます。--toolsetsが絞り込まれると、許可リストがキルスイッチになります。パスは、その所有ツールセットが有効な場合のみ解決されるため、ツールセットを無効にすると(例: certificates)、そのパスはexecute経由ではGETでも到達不能になります。

カタログデータはMCPリソースとしても公開されています:

  • octopus://api/llms.txt — すべてのOctopus RESTエンドポイントのMarkdownカタログ(HTTPメソッド、パス、クエリパラメータ、リクエスト/レスポンスタイプ)。Octopus Server 2026.2.3916以降が必要です。設定されたサーバーURLをキーにした5分間のインメモリキャッシュ。本文を直接読むよりもgrep_llms_txtを優先してください。
  • octopus://api/capabilities — 実行中のセッションを説明するJSON:サーバーバージョン、有効なツールセット、利用可能なツール(そのminimumOctopusVersionを含む)、および--read-only / --allow-deletesがオンかどうか。エージェントがこのセッションで何に到達できるかを発見するのに役立ちます。

プロジェクト

  • list_projects: 指定されたスペース内のすべてのプロジェクトを一覧表示します

デプロイメント

  • deploy_release: リリースを環境にデプロイします(テナントあり・なしの両方のデプロイメントをサポート)
  • list_deployments: スペース内のデプロイメントをオプションのフィルタリング付きで一覧表示します

リリース

  • create_release: プロジェクトの新しいリリースを作成します
  • find_releases: スペース内のリリースを検索します(IDで特定のリリースを取得するか、プロジェクトでリリースを一覧/フィルタリングできます)

リリースの詳細は、octopus://spaces/{spaceName}/releases/{releaseId}のMCPリソースとしても利用できます。resources/read(またはread_resourceバックストップツール)で取得して、リリースノートや選択されたパッケージを含む完全なリリース本文を取得してください。

ランブック

  • find_runbooks: プロジェクト内のランブックを検索します(IDで特定のランブックを取得するか、部分名でランブックを一覧/フィルタリングできます)。各サマリーには、公開されたスナップショットID、マルチテナンシーモード、環境スコープが含まれるため、呼び出し元は実行前に有効なターゲットを選択できます。
  • run_runbook: 1つ以上の環境に対してランブックを実行します。テナント実行(テナント名またはテナントタグによる)、プロンプト変数、ガイド付き障害モード、スケジュールされた実行ウィンドウ、ステップまたはマシンの包含/除外をサポートします。runbookSnapshotIdが省略された場合は、ランブックの公開済みスナップショットがデフォルトになります。

完全なランブック本文(ランタイムポリシーフィールドを含む)は、octopus://spaces/{spaceName}/runbooks/{runbookId}のMCPリソースとして利用できます。

タスク

タスクデータは主にMCPリソースとして公開されています。resources/read(またはread_resourceバックストップツール)を次のいずれかと一緒に使用してください:

  • octopus://spaces/{spaceName}/tasks/{taskId} — 軽量メタデータ(状態、タイミング、完了フラグ)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — 完全なServerTaskDetails(Progress、ActivityLogsツリーなど)

ログ検索には、/logリソースではなくgrep_task_logツールを使用してください:

  • grep_task_log: 完全な本文を取得せずにタスクのアクティビティログを検索します。パラメータはGNU grepを反映しています(pattern、caseInsensitive、invertMatch、fixedString、beforeContext、afterContext、maxCount)。1から始まるlineNumber、オプションの前後コンテキスト配列、ログ全体のtotalMatchesカウントを含む一致行を返します。

意図的に/logリソースはありません。アクティビティログは数メガバイトになる可能性があり、アドレス可能なリソースがあると、grepがほぼ常に正しいプリミティブである場合に、呼び出し元が本文全体を取得してしまう誘惑にかられるためです。

テナント

  • find_tenants: スペース内のテナントを検索します(IDで特定のテナントを取得するか、フィルタでテナントを一覧/検索できます)
  • get_tenant_variables: タイプ別にテナント変数を取得します(すべて、共通、またはプロジェクト)
  • get_missing_tenant_variables: 値が欠落しているテナント変数を取得します

Kubernetes

  • get_kubernetes_live_status: プロジェクトと環境のKubernetesリソースのライブステータスを取得します(対応する最小バージョン: 2025.3)

マシン(デプロイメントターゲット)

  • find_deployment_targets: スペース内のデプロイメントターゲットを検索します(IDで特定のターゲットを取得するか、フィルタでターゲットを一覧/検索できます)

証明書

  • find_certificates: スペース内の証明書を検索します(IDで特定の証明書を取得するか、フィルタで証明書を一覧/検索できます)

アカウント

  • find_accounts: スペース内のアカウントを検索します(IDで特定のアカウントを取得するか、フィルタでアカウントを一覧/検索できます)

割り込み

  • find_interruptions: スペース内の保留中または履歴の割り込み(手動介入、承認、ガイド付き障害プロンプト)を検索します。タスク、プロジェクト、環境、関連ドキュメント、責任、保留状態でオプションでフィルタリングできます。スリムなサマリーを返します。完全なForm定義(コントロールタイプ、Markdown手順、ボタンオプション、送信されたForm.Values)については、octopus://spaces/{spaceName}/interruptions/{interruptionId}リソースを参照してください。

機能トグル

  • find_feature_toggles: プロジェクト内の顧客機能トグルを一覧表示します。各サマリーには、環境ごとの状態(isEnabled、rolloutPercentage、clientRolloutPercentage)とresourceUriが含まれるため、「Xはどこでオンになっているか」をリスト応答から回答できます。
  • update_feature_toggle: 既存のトグルを調整します。狭いサーフェス — 環境のオン/オフを切り替え、ロールアウト率を変更し、トグルレベルの説明/デフォルト状態を更新します。内部的に現在のトグルを取得し、パッチをメモリ内で適用し、マージされた本文をPUTするため、言及されていない環境とフィールドは保持されます。トグルにまだ設定されていない環境を参照するパッチは拒否されます。

完全なトグル本文(説明、テナント、セグメント、最小バージョン)は、octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}のMCPリソースとして利用できます。ロールアウトグループ本文は、読み取り専用の検査のためにoctopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId}でアドレス指定できます。

範囲外(Octopus UIを使用): 新しい機能トグルの作成、トグルの削除、名前変更または再タグ付け、ロールアウトグループの接続/切断、テナントターゲティング、セグメント、最小バージョンフィルタ、ロールアウトグループ/SDKクライアント識別子の管理。

追加ツール

  • get_deployment_process: プロジェクトまたはリリースのIDでデプロイメントプロセスを取得します
  • get_variables: プロジェクトのすべてのプロジェクト変数とライブラリ変数セット変数を取得します(gitRefを介したconfig-as-codeプロジェクトをサポート)
  • get_branches: バージョン管理されたプロジェクトのGitブランチを取得します(対応する最小バージョン: 2021.2)
  • get_current_user: 現在認証されているユーザーに関する情報を取得します

🔒 セキュリティに関する考慮事項

Octopus MCP Serverには読み取り操作と書き込み操作の両方が含まれています。重要なセキュリティに関する考慮事項:

読み取り操作

  • シークレットとしてマークされていない場合、本番シークレットを含む可能性のある完全なデプロイメントログを読み取ることができます
  • 機密設定データと変数へのアクセス
  • 完全に信頼していないツールやモデルに接続する場合は注意してください

書き込み操作

デフォルトでは、次の書き込み操作が利用可能です:

  • リリースの作成: プロジェクトの新しいリリースを作成できます
  • リリースのデプロイ: 環境(本番を含む)へのデプロイメントをトリガーできます
  • ランブックの実行: 環境とテナントに対してランブックを実行できます
  • 機能トグルの更新: 既存のトグルの環境ごとの状態を切り替え、ロールアウト率を変更できます
  • executeバックストップを介した任意のPOST/PUT/PATCH: /api配下のパスに制限され、常時オンの機密拒否リストがあります。ツールセットごとのパス許可リストは、--toolsetsが絞り込まれた場合のみ適用されます。すべてのツールセットが有効な場合(デフォルト)、唯一のパスゲートは/api境界と機密拒否リストです。

上記のすべてを無効にするには、--read-onlyを渡します。executeを介したDELETEリクエストには、追加の--allow-deletesフラグが必要です — これは不可逆操作に対する意図的なオプトインであり、--read-onlyが設定されている場合はブロックされたままです。

重要なセキュリティ対策:

  1. 最小権限: ユースケースに必要な最小限の権限を持つAPIキーを使用してください
  2. 読み取り専用モードへのオプトイン: 書き込みはデフォルトで有効です。本番環境では、書き込み操作のための特定の制御されたユースケースがない限り、--read-onlyを渡してください。DELETEには常に追加の--allow-deletesオプトインが必要です。
  3. メソッドゲーティングはサーバー側でハードコードされています: executeに渡されるHTTPメソッドが信頼できる分類子です。エージェントは呼び出しの内容を偽ってゲートをバイパスできません — POST/PUT/PATCH/DELETEリクエストは、リクエスト本文の文言に関係なく、階層固有のゲーティングを受けます。
  4. ツールセットフィルタリングはキルスイッチとしても機能します: --toolsetsを絞り込むと、無効なツールセットのキュレーションされたツールとそのパスの両方がexecute許可リストから削除されます。(許可リストはツールセットが絞り込まれた場合のみ参照されます。すべてのツールセットが有効な場合、executeは/api形状チェックと機密拒否リストによって制限されます。)
  5. プロンプトインジェクションのリスク: 完全に自動化された方法でエージェントを実行すると、プロンプトインジェクション攻撃に対して脆弱になる可能性があります

推奨事項: 本番環境では、書き込み操作のための特定の制御されたユースケースがない限り、--read-onlyを渡してください。executeを介してDELETEセマンティクスが特に必要な場合を除き、--allow-deletesはオフのままにしてください。

⚠️ 制限事項

データ分析

現在のAIチャットツールとMCPプロトコル自体の性質上、大量のデータを分析することは現実的ではありません。ほとんどのMCPクライアントは現在、ツール呼び出しの連鎖(あるツールの出力を次のツールの入力として使用する)をサポートしておらず、代わりに結果をトークンごとにコピーするため、幻覚が頻繁に発生します。分析目的でOctopusインスタンスから履歴データを処理したい場合は、APIを直接使用するか、ツール呼び出しの結果をプログラムで処理できる独自のMCPクライアントを作成することをお勧めします。

パフォーマンス

MCP Serverは技術的には既存のOctopus Server APIの薄いレイヤーにすぎません。そのため、大量のデータを取得できます(例: 数千のデプロイメントを要求するなど)。このようなクエリは、インスタンスのパフォーマンスに大きな影響を与える可能性があります。モデルには、必要な最小限のデータセットのみを取得するように指示してください(ほとんどのモデルはこれをすぐに得意とします)。

🤝 貢献

Contributions are welcome! :heart: Please read our Contributing Guide for information about how to get involved in this project.

We are eager to hear how you plan to use Octopus MCP Server and what features you would like to see included in future version.

Please use Issues to provide feedback, or request features.

If you are a current Octopus customer, please report any issues you experience using our MCP server to our support team. This will ensure you get a timely response within our standard support guarantees.

🙋 FAQ

Do you have plans to release a remote MCP server?

We are working on integrating an MCP server directly into Octopus Server. This will open up the door for us to build more complex MCP tools, as well as:

  • Giving Octopus Administrators more granular control over MCP clients
  • Natively support OAuth for client authentication
  • Integrating security scanning tools into the MCP output

If this is of interest to you, please register your interest on our roadmap item.

License

This project is licensed under the terms of Mozilla Public License 2.0 open source license.