mcpField
O
Octopus Deploy Official Mcp Server

Octopus Deploy Official Mcp Server

ローカル
github.com/OctopusDeployクラウド・インフラ1022 日前に更新

Octopus Deploy Official Mcp Server について

Octopus Deploy 公式の MCP サーバーで、AI アシスタントが Octopus インスタンスの状態を確認、照会し、問題を診断できます。このプロジェクトは非推奨であり、Octopus Server 2026.3 以降で提供されるリモートサーバーが後継となります。

主な機能

  1. 01Octopus インスタンスのデータの確認と照会
  2. 02デプロイとタスクの問題の診断
  3. 03URL からのデプロイとタスクの調査
  4. 04読み取り専用モードと書き込み時の確認
  5. 05ツールセット単位の機能有効化

活用シーン

  1. 01失敗したデプロイのタスクログの確認
  2. 02プロジェクト、環境、リリースの状態の照会
  3. 03本番環境でのデプロイ情報の読み取り専用での閲覧

MCP 対応

本プロジェクトは MCP サーバーであり、Claude Code、Claude Desktop、Cursor などの MCP クライアントに Octopus のツール、リソース、execute バックストップを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"octopusdeploy": {
"command": "npx",
"args": [
"-y",
"@octopusdeploy/mcp-server"
]
}
}
}
起動コマンドnpx -y @octopusdeploy/mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@octopusdeploy/mcp-server

ツール

25

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
partialNamestringいいえ
skipnumberいいえ
takenumberいいえ

詳細

警告

非推奨: この MCP サーバーは非推奨です。Octopus Server 2026.3 以降では、リモート MCP サーバーを利用できます。詳しくは、リモート MCP サーバーのドキュメントをご覧ください。

Octopus Deploy Logo

Octopus Deploy 公式 MCP サーバー

Octopus を使えば、Kubernetes、マルチクラウド、オンプレミスのインフラストラクチャなど、あらゆる場所にソフトウェアを簡単にデリバリーできます。ほかのツールにはない方法で大規模な CD に対応できるツールを使って、ソフトウェアや AI ワークロードのリリース、デプロイ、運用を自動化できます。

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

Octopus MCP サーバーは、Octopus インスタンス内の問題を調査、クエリ、診断するための強力なツールを AI アシスタントに提供し、究極の DevOps パートナーに変えます。対応するユースケースとプロンプトの例については、ドキュメントをご覧ください。

Octopus Server の互換性

MCP サーバーが公開するほとんどのツールは、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 サーバーは通常、任意の 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 ブランチ)
読み取り専用モード

サーバーでは、デフォルトで書き込みツールが有効になっています。すべての書き込みツールを無効にし、execute のバックストップを通じた POST/PUT/PATCH/DELETE をブロックするには、--read-only を指定します。厳選されたツールのほとんどはすでに読み取り専用で、書き込みを行うのは一部のツールのみです。

書き込み有効のツール(常に書き込み可能):

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

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

書き込みツールは、MCP のエリシテーションプロンプトによって制御されます。エリシテーションに対応しているクライアントには、呼び出しの実行前に確認が求められます。エリシテーションに対応していないクライアントは、ツールの引数に confirm: true を指定する必要があります。指定しない場合、ツールはエラーで中断します。ゲートを完全にバイパスするには、OCTOPUS_SKIP_ELICITATION=true を設定します(無人自動化を想定しています)。

サーバーは、HTTP メソッドに基づいてサーバー側で適用される、3 段階の読み取り/書き込み/削除分類を使用します(エージェントが意図を偽って回避することはできません)。

  • read — 常に許可されます。execute を通じた GET リクエスト、およびすべての find_*/get_*/list_* ツールが該当します。
  • write — execute を通じた POST/PUT/PATCH、および上記の常に書き込み可能なツールが該当します。--read-only が設定されている場合はブロックされます。
  • delete — 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 ベースのツール

クイックスタート:Octopus の URL を直接貼り付けると、ID を手動で抽出せずに問題を調査できます。

  • 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)。カタログ本文は大きく(通常 300 KB 以上)、リソース本文を直接読むのではなく、このツールを呼び出してください。パラメーターは GNU grep に準じます(pattern、caseInsensitive、invertMatch、fixedString、beforeContext、afterContext、maxCount)。エンドポイントの検索(POST /releases)、削除エンドポイントの列挙(DELETE )、書き込み操作の本文タイプの確認(Body: Create.*Command)などに便利です。
  • execute:構造化された REST バックストップです。/api 配下の任意の Octopus REST エンドポイントにアクセスします。HTTP メソッドが読み取り/書き込み/削除を判定する基準であり、LLM が設定可能な isWrite フラグは使用しません。メソッドの制御はサーバー側にハードコードされています。
    • GET は常に許可されます(パス形式のチェックと機密情報の拒否リストによる制限を受けます)。
    • --read-only が設定されている場合、POST/PUT/PATCH はブロックされます。設定されていない場合は、エリシテーションによるユーザー確認が必要です。
    • DELETE には --allow-deletes が必要です(--read-only が設定されている場合はブロックされます)。さらに、より強い「IRREVERSIBLE」エリシテーションメッセージが必要です。
    • 機密情報の拒否リスト(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)を無効にすると、GET であっても execute 経由でそのパスにアクセスできなくなります。

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

  • octopus://api/llms.txt — すべての Octopus REST エンドポイント(HTTP メソッド、パス、クエリパラメーター、リクエスト/レスポンスタイプ)を記載した Markdown カタログです。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を指定して特定のリリースを取得するか、プロジェクト別にリリースを一覧表示またはフィルターできます)

リリースの詳細は、MCP リソース octopus://spaces/{spaceName}/releases/{releaseId} からも利用できます。resources/read(または代替ツールの read_resource)で取得すると、リリースノートや選択したパッケージなど、リリースの全内容を確認できます。

ランブック
  • find_runbooks:プロジェクト内のランブックを検索します(IDを指定して特定のランブックを取得するか、部分一致する名前でランブックを一覧表示またはフィルターできます)。各概要には公開済みスナップショット ID、マルチテナントモード、環境スコープが含まれるため、実行前に有効な対象を選択できます。
  • run_runbook:1つ以上の環境に対してランブックを実行します。テナント名またはテナントタグによるテナントありの実行、プロンプトで指定する変数、ガイド付き失敗モード、スケジュールされた実行ウィンドウ、ステップやマシンの包含・除外に対応しています。runbookSnapshotId を省略した場合は、ランブックの公開済みスナップショットがデフォルトで使用されます。

ランブックの全内容(実行時ポリシーのフィールドを含む)は、MCP リソース octopus://spaces/{spaceName}/runbooks/{runbookId} から利用できます。

タスク

タスクデータは主に 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:スペース内の保留中または過去の中断(手動介入、承認、ガイド付き失敗のプロンプト)を検索します。任意でタスク、プロジェクト、環境、対象ドキュメント、担当者、または保留状態によるフィルターを指定できます。簡易概要を返します。octopus://spaces/{spaceName}/interruptions/{interruptionId} リソースを参照すると、完全な Form 定義(コントロールの種類、Markdown の指示、ボタンのオプション、送信済みの Form.Values)を確認できます。
機能トグル
  • find_feature_toggles:プロジェクト内の顧客向け機能トグルを一覧表示します。各概要には環境ごとの状態(isEnabled、rolloutPercentage、clientRolloutPercentage)とresourceUriが含まれるため、「Xが有効になっている場所はどこか」を一覧の応答から確認できます。
  • update_feature_toggle:既存のトグルを調整します。操作範囲を限定しており、環境の有効・無効の切り替え、ロールアウト率の変更、またはトグルレベルの説明/デフォルト状態の更新ができます。内部では現在のトグルを取得し、パッチをメモリ上で適用してから、マージした本文をPUTします。そのため、指定していない環境やフィールドは保持されます。トグルに設定されていない環境を参照するパッチは拒否されます。

トグルの完全な本文(説明、テナント、セグメント、最小バージョン)は、MCP リソースoctopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}で利用できます。ロールアウトグループの本文は、読み取り専用の確認用にoctopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId}から参照できます。

対象外(Octopus UIを使用してください): 機能トグルの新規作成、削除、名前の変更やタグの付け替え、ロールアウトグループの関連付け/解除、テナントのターゲット設定、セグメント、最小バージョンフィルター、およびロールアウトグループ/SDKクライアント識別子の管理。

その他のツール
  • get_deployment_process:プロジェクトまたはリリースのIDを指定して、デプロイプロセスを取得します
  • get_variables:プロジェクトのすべての変数とライブラリ変数セットの変数を取得します(gitRefによる構成をコードで管理するプロジェクトに対応)
  • 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 サーバーは技術的には、既存の Octopus Server API の上にある薄いレイヤーにすぎません。そのため、大量のデータ(たとえば、数千件のデプロイをリクエストするなど)を取得できます。このようなクエリは、インスタンスのパフォーマンスに大きな影響を与える可能性があります。必要最小限のデータのみを取得するようモデルに指示してください(ほとんどのモデルは、初期設定のままでもこの点に優れています)。

🤝 貢献

貢献を歓迎します! :heart: このプロジェクトへの参加方法については、貢献ガイドをお読みください。

Octopus MCP Server をどのように利用する予定か、また今後のバージョンにどのような機能を追加してほしいか、ぜひお聞かせください。

ご意見や機能のリクエストは、Issuesからお寄せください。

現在 Octopus をご利用のお客様は、MCP サーバーの利用中に発生した問題をサポートチームまでご報告ください。標準のサポート保証に基づき、速やかに回答いたします。

🙋 よくある質問

リモート MCP サーバーをリリースする予定はありますか?

Octopus Server に MCP サーバーを直接統合する作業を進めています。これにより、より複雑な MCP ツールを構築できるほか、次のことも可能になります。

  • Octopus 管理者が MCP クライアントをよりきめ細かく制御できるようにする
  • クライアント認証に OAuth をネイティブでサポートする
  • セキュリティスキャンツールを MCP の出力に統合する

ご関心がある場合は、ロードマップの項目に登録してください。

ライセンス

このプロジェクトは、オープンソースライセンスである Mozilla Public License 2.0 の条件に基づいてライセンスされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。