Octopus Deploy Official MCP Server

resmi

Server MCP Octopus menyediakan asisten AI Anda dengan alat-alat canggih yang memungkinkannya untuk memeriksa, menanyakan, dan mendiagnosis masalah dalam instance Octopus Anda, mengubahnya menjadi rekan DevOps utama Anda.

Apa yang bisa Anda lakukan dengan Octopus Deploy Official MCP?

  • Memeriksa deployment dari URL — Minta untuk menyelidiki deployment dengan menempelkan URL Octopus-nya; get_deployment_from_url mengembalikan konteks dan ID tugas untuk tindak lanjut.
  • Mencari log tugas deployment — Gunakan grep_task_log untuk menemukan pola kesalahan atau kegagalan dalam log aktivitas tugas tanpa mengunduh seluruh isi yang berukuran multi-megabita.
  • Membuat dan men-deploy rilis — Minta untuk create_release untuk sebuah proyek, lalu deploy_release ke lingkungan tertentu, termasuk deployment ber-tenant.
  • Menjalankan runbook di berbagai lingkungan — Gunakan run_runbook untuk mengeksekusi runbook terhadap satu atau lebih lingkungan, dengan dukungan untuk proses ber-tenant dan variabel yang diminta.
  • Menemukan dan memperbaiki variabel tenant yang hilang — Gunakan get_missing_tenant_variables untuk mengidentifikasi variabel tenant yang tidak memiliki nilai, lalu periksa dengan get_tenant_variables.
  • Memeriksa status langsung Kubernetes — Minta get_kubernetes_live_status dari sumber daya untuk sebuah proyek dan lingkungan guna mendiagnosis masalah deployment.

Dokumentasi

[!WARNING] Tidak digunakan lagi: Server MCP ini sudah tidak digunakan lagi. Remote MCP Server tersedia di Octopus Server 2026.3 dan versi yang lebih baru. Lihat dokumentasi Remote MCP Server.

Octopus Deploy Logo

Octopus Deploy Official MCP Server

Octopus memudahkan Anda mengirimkan perangkat lunak ke Kubernetes, multi-cloud, infrastruktur on-prem, dan di mana pun lainnya. Otomatiskan rilis, deployment, dan operasi perangkat lunak serta beban kerja AI Anda dengan alat yang dapat menangani CD dalam skala besar dengan cara yang tidak dapat dilakukan alat lain.

Model Context Protocol (MCP) memungkinkan asisten AI yang Anda gunakan dalam pekerjaan sehari-hari, seperti Claude Code, atau ChatGPT, terhubung ke sistem dan layanan yang Anda miliki dengan cara yang terstandarisasi, sehingga mereka dapat menarik informasi dari sistem dan layanan tersebut untuk menjawab pertanyaan dan menyelesaikan tugas.

Octopus MCP Server menyediakan alat yang hebat bagi asisten AI Anda untuk memeriksa, menanyakan, dan mendiagnosis masalah dalam instance Octopus Anda, mengubahnya menjadi rekan DevOps utama Anda. Untuk daftar kasus penggunaan yang didukung dan contoh prompt, lihat dokumentasi kami.

Kompatibilitas Octopus Server

Sebagian besar alat yang diekspos oleh MCP Server menggunakan API stabil yang telah tersedia setidaknya sejak versi 2021.1 dari Octopus Server. Alat yang lebih baru akan menentukan versi minimum yang didukung dalam dokumentasi. Alternatifnya, Anda dapat menggunakan argumen baris perintah --list-tools-by-version untuk memeriksa bagaimana alat tertentu berhubungan dengan versi Octopus.

🚀 Instalasi

Instal melalui Docker

Kredensial harus diberikan melalui variabel lingkungan untuk menghindari paparan dalam daftar proses host (ps aux / /proc/<pid>/cmdline). URL server Octopus masih dapat diberikan melalui flag --server-url.

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

Contoh konfigurasi lengkap (untuk Claude Desktop, Claude Code, dan 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"
      }
    },
  }
}

Untuk pengguna Apple Mac, Anda mungkin perlu menambahkan argumen berikut dalam konfigurasi untuk memaksa Docker menggunakan platform Linux:

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

Kami berencana merilis build ARM asli segera sehingga argumen tersebut tidak diperlukan lagi.

Instal melalui Node

Persyaratan

  • Node.js >= v20.0.0
  • Instance Octopus Deploy yang dapat diakses oleh server MCP melalui HTTPS
  • API Key atau Access Token Octopus Deploy (lihat Autentikasi di bawah)

Konfigurasi

Contoh konfigurasi lengkap (untuk Claude Desktop, Claude Code, dan Cursor):

Alat tulis diaktifkan (default):

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

Mode hanya-baca (disarankan untuk produksi):

{
  "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 biasanya dikonfigurasi dalam Klien AI pilihan Anda.

Dikemas sebagai paket npm dan dijalankan melalui perintah npx Node. Kredensial (API key atau access token) harus diberikan melalui variabel lingkungan — tidak diterima sebagai argumen baris perintah untuk menghindari paparan rahasia dalam daftar proses. URL server Octopus dapat diberikan melalui variabel lingkungan OCTOPUS_SERVER_URL atau flag --server-url.

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

Atau dengan URL server pada baris perintah:

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

Autentikasi

Server MCP mendukung dua metode autentikasi. Keduanya diberikan melalui variabel lingkungan — kredensial tidak diterima pada baris perintah karena flag terlihat dalam daftar proses host oleh pengguna lokal mana pun.

API Key (disarankan untuk penggunaan interaktif)

API key adalah metode autentikasi standar untuk Octopus Deploy. Anda dapat membuatnya dari profil pengguna Octopus Deploy Anda.

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

Access Token / Bearer Token (hanya untuk skenario otomatis)

Server juga mendukung access token berumur pendek (Bearer token) sebagai alternatif untuk API key. Metode autentikasi ini dimaksudkan hanya untuk skenario otomatis di mana sistem eksternal mengeluarkan token berumur pendek ke server MCP (misalnya, pipeline CI/CD, orkestrasi otomatis, atau alur kerja machine-to-machine). Jangan gunakan Bearer token berumur panjang — gunakan API key untuk sesi interaktif atau jangka panjang.

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

Contoh konfigurasi lengkap dengan access token:

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

Jika API key dan access token keduanya diberikan, access token akan diutamakan. Metode autentikasi yang aktif dicatat dalam file log (dapat dikonfigurasi dengan --log-file) sehingga operator dapat mengonfirmasi kredensial mana yang digunakan.

Opsi Konfigurasi

Octopus MCP Server mendukung beberapa opsi baris perintah untuk menyesuaikan alat mana yang tersedia.

Jika Anda tidak yakin alat mana yang Anda perlukan, kami menyarankan untuk menjalankan tanpa opsi baris perintah tambahan dan menggunakan default yang disediakan.

Toolset

Gunakan parameter --toolsets untuk mengaktifkan grup alat tertentu:

# 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

Toolset yang tersedia:

  • core - Operasi dasar (selalu diaktifkan)
  • projects - Operasi proyek
  • deployments - Operasi deployment
  • releases - Manajemen rilis
  • runbooks - Penemuan dan eksekusi runbook
  • tasks - Operasi tugas
  • tenants - Operasi multi-tenancy
  • kubernetes - Operasi Kubernetes
  • machines - Operasi target deployment
  • certificates - Operasi sertifikat
  • accounts - Operasi akun
  • interruptions - Operasi intervensi manual dan persetujuan
  • featureToggles - Memeriksa dan menyesuaikan feature toggle pelanggan
  • context - Konteks pengguna terautentikasi dan proyek (pengguna saat ini, cabang Git)

Mode Hanya-Baca

Server berjalan dengan alat tulis diaktifkan secara default. Berikan --read-only untuk menonaktifkan semua alat tulis dan memblokir POST/PUT/PATCH/DELETE melalui backstop execute. Sebagian besar alat yang dikurasi sudah hanya-baca; hanya sejumlah kecil yang melakukan penulisan.

Alat yang diaktifkan untuk menulis (selalu-menulis):

  • create_release - Membuat rilis baru
  • deploy_release - Men-deploy rilis ke lingkungan dan tenant
  • run_runbook - Menjalankan runbook terhadap satu atau lebih lingkungan (dan tenant opsional)
  • update_feature_toggle - Menyesuaikan status per-lingkungan dan persentase peluncuran pada feature toggle yang ada

Alat yang menulis secara kondisional: execute adalah backstop REST terstruktur yang tingkatannya (baca / tulis / hapus) ditentukan oleh metode HTTP yang diteruskan ke alat tersebut. Lihat bagian Katalog API & Backstop untuk detailnya.

Alat tulis dibatasi oleh prompt elicitation MCP: klien yang mendukung elicitation akan diminta konfirmasi sebelum panggilan dilanjutkan. Klien tanpa dukungan elicitation harus meneruskan confirm: true dalam argumen alat — jika tidak, alat akan berhenti dengan kesalahan. Setel OCTOPUS_SKIP_ELICITATION=true untuk melewati batasan sepenuhnya (dimaksudkan untuk otomatisasi tanpa pengawasan).

Server menggunakan klasifikasi tiga tingkat baca/tulis/hapus, yang diterapkan di sisi server berdasarkan metode HTTP (agen tidak dapat melewatinya dengan berbohong tentang niat):

  • baca — selalu diizinkan. Permintaan GET melalui execute, plus semua alat find_* / get_* / list_*.
  • tulis — POST/PUT/PATCH melalui execute dan alat selalu-menulis di atas. Diblokir saat --read-only disetel.
  • hapus — DELETE melalui execute. Memerlukan --allow-deletes dan diblokir saat --read-only disetel. Sejumlah kecil jalur hapus-bencana (misalnya DELETE /api/spaces/{id}, DELETE /api/users/{id}) dan endpoint API-key berada dalam daftar blokir sensitif keras yang mengabaikan kedua flag.
# 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

Catatan Keamanan: Gunakan API key dengan izin yang sesuai dan hak istimewa paling rendah — operasi tulis dapat membuat rilis dan memicu deployment di instance Octopus Anda. Untuk produksi, pertimbangkan untuk meneruskan --read-only kecuali Anda memiliki kasus penggunaan yang spesifik dan terkontrol untuk penulisan. --allow-deletes nonaktif secara default; hanya aktifkan saat agen harus mengeluarkan permintaan DELETE melalui execute. Jika Anda meneruskan --allow-deletes bersama dengan --read-only, server mencetak peringatan startup ke stderr — permintaan DELETE tetap diblokir oleh gerbang hanya-baca.

Contoh Lengkap

Semua contoh di bawah mengasumsikan OCTOPUS_API_KEY disetel di lingkungan. Flag --server-url ditampilkan untuk kejelasan tetapi juga dapat diberikan melalui 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

Argumen baris perintah lainnya

  • --read-only - Aktifkan mode hanya-baca: nonaktifkan semua alat tulis yang dikurasi dan blokir POST/PUT/PATCH/DELETE melalui execute. Penulisan diaktifkan secara default; flag ini mematikannya. Lihat Mode Hanya-Baca.
  • --allow-deletes - Izinkan permintaan DELETE melalui alat execute. Diabaikan (dengan peringatan startup) saat --read-only disetel. Default false.
  • --log-level <level> - Tingkat log minimum (info, error)
  • --log-file <path> - Jalur file log atau nama file. Jika tidak ditentukan, log ditulis ke konsol saja
  • -q, --quiet - Nonaktifkan pencatatan file, hanya catat error ke konsol
  • --list-tools-by-version - Daftar semua alat terdaftar berdasarkan versi Octopus Server yang didukung dan keluar

🔨 Alat

Alat Berbasis URL

Mulai cepat: Tempel URL Octopus secara langsung untuk menyelidiki masalah tanpa ekstraksi ID manual.

  • get_deployment_from_url: Dapatkan detail deployment dari URL deployment (mengembalikan taskId untuk tindak lanjut)
  • get_task_from_url: Dapatkan detail tugas dan log dari URL tugas

Alur kerja investigasi deployment:

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 })

Investigasi tugas (URL tugas langsung):

get_task_from_url with task URL
→ Returns task details and logs immediately

Alat-alat ini menghilangkan ekstraksi ID manual dengan:

  • Mengurai URL secara otomatis
  • Menyelesaikan ID ruang menjadi nama ruang
  • Memvalidasi format ID
  • Memberikan pesan error yang jelas

Contoh URL:

  • Deployment: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • Tugas: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

Lihat Bekerja dengan URL untuk alur kerja terperinci, contoh, dan praktik terbaik.

Alat Inti

  • list_spaces: Daftar semua ruang di instance Octopus Deploy
  • list_environments: Daftar semua lingkungan di ruang tertentu

Katalog API & Backstop

Alat dan sumber daya ini memungkinkan agen menjangkau endpoint REST Octopus yang tidak memiliki alat kurasi khusus, dengan gerbang keras di sisi server antara operasi baca, tulis, dan hapus.

  • grep_llms_txt: Cari katalog API Octopus (octopus://api/llms.txt) dengan semantik ala grep (versi Octopus minimum yang didukung: 2026.2.3916). Isi katalog berukuran besar (biasanya 300+ KB) — panggil ini daripada membaca isi resource secara langsung. Parameter meniru GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Berguna untuk menemukan endpoint (POST /releases), menghitung endpoint delete (DELETE ), atau menemukan tipe body untuk operasi tulis (Body: Create.*Command).
  • execute: Backstop REST terstruktur. Menjangkau endpoint REST Octopus mana pun di bawah /api. Metode HTTP adalah pengklasifikasi otoritatif baca/tulis/hapus — tidak pernah menjadi flag isWrite yang dapat diatur oleh LLM. Pembatasan metode dikodekan keras di sisi server:
    • GET selalu diizinkan (tergantung pada pemeriksaan bentuk path + daftar blokir sensitif).
    • POST/PUT/PATCH diblokir saat --read-only diatur; jika tidak, keduanya memerlukan konfirmasi pengguna melalui elicitation.
    • DELETE memerlukan --allow-deletes (dan diblokir saat --read-only diatur) plus pesan elicitation "IRREVERSIBLE" yang lebih kuat.
    • Daftar blokir sensitif (endpoint kunci API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) tetap diberlakukan meskipun kedua flag aktif.
    • Path diwajibkan berupa /api atau dimulai dengan /api/ — URL absolut, path relatif SDK ~/api/..., dan path relatif host di luar /api (misalnya /octopus/portal/...) ditolak di awal, sehingga execute tetap terbatas pada permukaan API REST Octopus.
    • Daftar izin path per-toolset hanya berlaku saat --toolsets telah dipersempit. Dengan semua toolset diaktifkan (default, atau --toolsets all eksplisit), daftar izin dilewati dan path mana pun di bawah /api dapat dijangkau sesuai dengan batasan di atas. Saat --toolsets dipersempit, daftar izin menjadi saklar pemutus: path hanya dapat diselesaikan jika toolset pemiliknya diaktifkan, sehingga menonaktifkan toolset (misalnya certificates) membuat path-nya tidak dapat dijangkau melalui execute bahkan pada GET.

Data katalog juga diekspos sebagai Resource MCP:

  • octopus://api/llms.txt — katalog markdown dari setiap endpoint REST Octopus (metode HTTP, path, parameter kueri, tipe permintaan/respons). Memerlukan Octopus Server 2026.2.3916 atau lebih baru. Cache dalam memori 5 menit yang dikunci pada URL server yang dikonfigurasi. Utamakan grep_llms_txt daripada membaca body secara langsung.
  • octopus://api/capabilities — JSON yang menjelaskan sesi yang berjalan: versi server, toolset yang diaktifkan, alat yang tersedia (dengan minimumOctopusVersion-nya), dan apakah --read-only / --allow-deletes aktif. Berguna bagi agen untuk menemukan apa yang dapat dijangkau dalam sesi ini.

Proyek

  • list_projects: Daftar semua proyek dalam ruang tertentu

Deployment

  • deploy_release: Deploy rilis ke lingkungan (mendukung deployment ber-tenant dan tanpa tenant)
  • list_deployments: Daftar deployment dalam ruang dengan pemfilteran opsional

Rilis

  • create_release: Buat rilis baru untuk sebuah proyek
  • find_releases: Temukan rilis dalam ruang (dapat mengambil rilis tertentu berdasarkan ID, atau mendaftar/memfilter rilis berdasarkan proyek)

Detail rilis juga tersedia sebagai Resource MCP di octopus://spaces/{spaceName}/releases/{releaseId} — ambil melalui resources/read (atau alat backstop read_resource) untuk mendapatkan body rilis lengkap, termasuk catatan rilis dan paket yang dipilih.

Runbook

  • find_runbooks: Temukan runbook dalam sebuah proyek (dapat mengambil runbook tertentu berdasarkan ID, atau mendaftar/memfilter runbook berdasarkan nama parsial). Setiap ringkasan menyertakan ID snapshot yang dipublikasikan, mode multi-tenancy, dan cakupan lingkungan sehingga pemanggil dapat memilih target yang valid sebelum menjalankan.
  • run_runbook: Jalankan runbook terhadap satu atau lebih lingkungan. Mendukung run ber-tenant (berdasarkan nama tenant atau tag tenant), variabel yang diminta, mode kegagalan terpandu, jendela waktu run terjadwal, serta inklusi/eksklusi langkah atau mesin. Default ke snapshot runbook yang dipublikasikan jika runbookSnapshotId dihilangkan.

Body runbook lengkap (termasuk kolom kebijakan runtime) tersedia sebagai Resource MCP di octopus://spaces/{spaceName}/runbooks/{runbookId}.

Tugas

Data tugas terutama diekspos sebagai Resource MCP. Gunakan resources/read (atau alat backstop read_resource) dengan salah satu dari:

  • octopus://spaces/{spaceName}/tasks/{taskId} — metadata ringan (status, waktu, flag penyelesaian)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — ServerTaskDetails lengkap (Progress, pohon ActivityLogs, dll.)

Untuk pencarian log, gunakan alat grep_task_log daripada resource /log:

  • grep_task_log: Cari log aktivitas tugas tanpa mengambil body lengkap. Parameter meniru GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Mengembalikan baris yang cocok dengan lineNumber berindeks 1, array konteks sebelum/sesudah opsional, dan jumlah totalMatches di seluruh log.

Sengaja tidak ada resource /log: log aktivitas bisa berukuran multi-megabyte, dan resource yang dapat dialamatkan akan menggoda pemanggil untuk mengambil seluruh body padahal grep hampir selalu merupakan primitif yang tepat.

Tenant

  • find_tenants: Temukan tenant dalam ruang (dapat mengambil tenant tertentu berdasarkan ID atau mendaftar/mencari tenant dengan filter)
  • get_tenant_variables: Dapatkan variabel tenant berdasarkan tipe (semua, umum, atau proyek)
  • get_missing_tenant_variables: Dapatkan variabel tenant yang nilainya hilang

Kubernetes

  • get_kubernetes_live_status: Dapatkan status langsung resource Kubernetes untuk proyek dan lingkungan (versi minimum yang didukung: 2025.3)

Mesin (Target Deployment)

  • find_deployment_targets: Temukan target deployment dalam ruang (dapat mengambil target tertentu berdasarkan ID atau mendaftar/mencari target dengan filter)

Sertifikat

  • find_certificates: Temukan sertifikat dalam ruang (dapat mengambil sertifikat tertentu berdasarkan ID atau mendaftar/mencari sertifikat dengan filter)

Akun

  • find_accounts: Temukan akun dalam ruang (dapat mengambil akun tertentu berdasarkan ID atau mendaftar/mencari akun dengan filter)

Interupsi

  • find_interruptions: Temukan interupsi yang tertunda atau historis (intervensi manual, persetujuan, prompt kegagalan terpandu) dalam ruang, opsional difilter berdasarkan tugas, proyek, lingkungan, dokumen terkait, tanggung jawab, atau status tertunda. Mengembalikan ringkasan ramping; dereferensi resource octopus://spaces/{spaceName}/interruptions/{interruptionId} untuk definisi Form lengkap (tipe kontrol, instruksi Markdown, opsi tombol, Form.Values yang dikirim).

Fitur Toggle

  • find_feature_toggles: Daftar fitur toggle pelanggan dalam sebuah proyek. Setiap ringkasan menyertakan status per-lingkungan (isEnabled, rolloutPercentage, clientRolloutPercentage) plus resourceUri sehingga "di mana X diaktifkan" dapat dijawab dari respons daftar.
  • update_feature_toggle: Sesuaikan toggle yang ada. Permukaan sempit — aktifkan/nonaktifkan lingkungan, ubah persentase peluncuran, atau perbarui deskripsi / status default tingkat toggle. Secara internal mengambil toggle saat ini, menerapkan patch Anda di memori, dan mengirim PUT pada body yang digabungkan, sehingga lingkungan yang tidak disebutkan dan kolom yang tidak disebutkan tetap dipertahankan. Patch yang merujuk lingkungan yang belum dikonfigurasi pada toggle akan ditolak.

Body toggle lengkap (deskripsi, tenant, segmen, versi minimum) tersedia sebagai Resource MCP di octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug}. Body grup peluncuran dapat dialamatkan di octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} untuk inspeksi hanya-baca.

Di luar cakupan (gunakan UI Octopus): membuat fitur toggle baru, menghapus toggle, mengganti nama atau menandai ulang, melampirkan/melepas grup peluncuran, penargetan tenant, segmen, filter versi minimum, dan manajemen grup peluncuran / pengidentifikasi klien SDK.

Alat Tambahan

  • get_deployment_process: Dapatkan proses deployment berdasarkan ID untuk proyek atau rilis
  • get_variables: Dapatkan semua variabel proyek dan variabel set variabel pustaka untuk sebuah proyek (mendukung proyek config-as-code melalui gitRef)
  • get_branches: Dapatkan cabang Git untuk proyek yang dikontrol versi (versi minimum yang didukung: 2021.2)
  • get_current_user: Dapatkan informasi tentang pengguna terautentikasi saat ini

🔒 Pertimbangan Keamanan

Octopus MCP Server mencakup operasi baca dan tulis. Pertimbangan keamanan penting:

Operasi Baca

  • Dapat membaca log deployment lengkap, yang dapat mencakup rahasia produksi jika tidak ditandai sebagai rahasia
  • Akses ke data konfigurasi sensitif dan variabel
  • Berhati-hatilah saat menghubungkan ke alat dan model yang tidak sepenuhnya Anda percayai

Operasi Tulis

Secara default, operasi tulis berikut tersedia:

  • Membuat rilis: Dapat membuat rilis baru untuk proyek
  • Men-deploy rilis: Dapat memicu deployment ke lingkungan (termasuk produksi)
  • Menjalankan runbook: Dapat mengeksekusi runbook terhadap lingkungan dan tenant
  • Memperbarui fitur toggle: Dapat mengubah status per-lingkungan dan persentase peluncuran pada toggle yang ada
  • POST/PUT/PATCH arbitrer melalui backstop execute: Terbatas pada path di bawah /api, dengan daftar blokir sensitif yang selalu aktif. Daftar izin path per-toolset hanya berlaku saat --toolsets telah dipersempit; dengan semua toolset diaktifkan (default), satu-satunya batasan path adalah batas /api dan daftar blokir sensitif.

Berikan --read-only untuk menonaktifkan semua hal di atas. Permintaan DELETE melalui execute memerlukan flag --allow-deletes tambahan — pilihan sadar untuk operasi yang tidak dapat dibatalkan — dan tetap diblokir saat --read-only diatur.

Langkah Keamanan Kritis:

  1. Hak Akses Paling Rendah: Gunakan kunci API dengan izin minimum yang diperlukan untuk kasus penggunaan Anda
  2. Pilih Mode Hanya-Baca: Operasi tulis diaktifkan secara default. Untuk produksi, berikan --read-only kecuali Anda memiliki kasus penggunaan spesifik dan terkontrol untuk operasi tulis. DELETE selalu memerlukan pilihan --allow-deletes tambahan.
  3. Pembatasan metode bersifat sisi-server dan dikodekan keras: Metode HTTP yang diteruskan ke execute adalah pengklasifikasi otoritatif. Agen tidak dapat melewati batasan dengan salah menggambarkan apa yang dilakukan panggilan — permintaan POST/PUT/PATCH/DELETE mendapatkan pembatasan berjenjang terlepas dari prosa dalam body permintaan.
  4. Pemfilteran toolset berfungsi ganda sebagai saklar pemutus: Mempersempit --toolsets menghapus baik alat kurasi toolset yang dinonaktifkan maupun path-nya dari daftar izin execute. (Daftar izin hanya dikonsultasikan saat toolset dipersempit; dengan semua toolset diaktifkan, execute dibatasi oleh pemeriksaan bentuk /api dan daftar blokir sensitif.)
  5. Risiko Injeksi Prompt: Menjalankan agen secara sepenuhnya otomatis dapat membuat Anda rentan terhadap serangan injeksi prompt

Rekomendasi: Untuk lingkungan produksi, berikan --read-only kecuali Anda memiliki kasus penggunaan spesifik dan terkontrol untuk operasi tulis. Biarkan --allow-deletes nonaktif kecuali Anda secara khusus memerlukan semantik DELETE melalui execute.

⚠️ Keterbatasan

Analisis Data

Sifat alat obrolan AI saat ini dan protokol MCP itu sendiri membuat analisis data dalam jumlah besar menjadi tidak praktis. Sebagian besar klien MCP saat ini tidak mendukung perantaian panggilan alat (menggunakan output satu alat sebagai input ke alat berikutnya) dan sebagai gantinya menyalin hasil token demi token, yang sering menyebabkan halusinasi. Jika Anda ingin memproses data historis dari instance Octopus untuk tujuan analisis, kami merekomendasikan menggunakan API secara langsung atau menulis klien MCP Anda sendiri yang mampu memproses hasil panggilan alat secara terprogram.

Kinerja

MCP Server secara teknis hanyalah lapisan tipis di atas API Octopus Server yang ada. Dengan demikian, ia mampu mengambil data dalam jumlah besar (misalnya, meminta ribuan deployment). Kueri semacam itu dapat memiliki efek signifikan pada kinerja instance Anda. Instruksikan model Anda untuk hanya mengambil kumpulan data minimum yang dibutuhkan (sebagian besar model sangat baik dalam hal ini secara bawaan).

🤝 Kontribusi

Kontribusi sangat diterima! :heart: Silakan baca Panduan Berkontribusi kami untuk informasi tentang cara terlibat dalam proyek ini.

Kami sangat ingin mendengar bagaimana Anda berencana menggunakan Octopus MCP Server dan fitur apa saja yang ingin Anda lihat disertakan dalam versi mendatang.

Silakan gunakan Issues untuk memberikan masukan, atau meminta fitur.

Jika Anda adalah pelanggan Octopus saat ini, silakan laporkan masalah apa pun yang Anda alami menggunakan server MCP kami ke tim dukungan kami. Ini akan memastikan Anda mendapatkan respons tepat waktu dalam jaminan dukungan standar kami.

🙋 FAQ

Apakah Anda memiliki rencana untuk merilis server MCP jarak jauh?

Kami sedang mengerjakan integrasi server MCP langsung ke dalam Octopus Server. Ini akan membuka jalan bagi kami untuk membangun alat MCP yang lebih kompleks, serta:

  • Memberikan kontrol yang lebih granular kepada Administrator Octopus atas klien MCP
  • Mendukung OAuth secara native untuk autentikasi klien
  • Mengintegrasikan alat pemindaian keamanan ke dalam keluaran MCP

Jika ini menarik bagi Anda, silakan daftarkan minat Anda pada item peta jalan kami.

Lisensi

Proyek ini dilisensikan di bawah ketentuan lisensi open source Mozilla Public License 2.0.