Octopus Deploy Official MCP Server
resmiServer 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_urlmengembalikan konteks dan ID tugas untuk tindak lanjut. - Mencari log tugas deployment — Gunakan
grep_task_loguntuk 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_releaseuntuk sebuah proyek, laludeploy_releaseke lingkungan tertentu, termasuk deployment ber-tenant. - Menjalankan runbook di berbagai lingkungan — Gunakan
run_runbookuntuk 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_variablesuntuk mengidentifikasi variabel tenant yang tidak memiliki nilai, lalu periksa denganget_tenant_variables. - Memeriksa status langsung Kubernetes — Minta
get_kubernetes_live_statusdari 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 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 barudeploy_release- Men-deploy rilis ke lingkungan dan tenantrun_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 alatfind_*/get_*/list_*. - tulis — POST/PUT/PATCH melalui
executedan alat selalu-menulis di atas. Diblokir saat--read-onlydisetel. - hapus — DELETE melalui
execute. Memerlukan--allow-deletesdan diblokir saat--read-onlydisetel. Sejumlah kecil jalur hapus-bencana (misalnyaDELETE /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 melaluiexecute. Penulisan diaktifkan secara default; flag ini mematikannya. Lihat Mode Hanya-Baca.--allow-deletes- Izinkan permintaan DELETE melalui alatexecute. Diabaikan (dengan peringatan startup) saat--read-onlydisetel. Defaultfalse.--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 Deploylist_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 flagisWriteyang dapat diatur oleh LLM. Pembatasan metode dikodekan keras di sisi server:GETselalu diizinkan (tergantung pada pemeriksaan bentuk path + daftar blokir sensitif).POST/PUT/PATCHdiblokir saat--read-onlydiatur; jika tidak, keduanya memerlukan konfirmasi pengguna melalui elicitation.DELETEmemerlukan--allow-deletes(dan diblokir saat--read-onlydiatur) 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
/apiatau dimulai dengan/api/— URL absolut, path relatif SDK~/api/..., dan path relatif host di luar/api(misalnya/octopus/portal/...) ditolak di awal, sehinggaexecutetetap terbatas pada permukaan API REST Octopus. - Daftar izin path per-toolset hanya berlaku saat
--toolsetstelah dipersempit. Dengan semua toolset diaktifkan (default, atau--toolsets alleksplisit), daftar izin dilewati dan path mana pun di bawah/apidapat dijangkau sesuai dengan batasan di atas. Saat--toolsetsdipersempit, daftar izin menjadi saklar pemutus: path hanya dapat diselesaikan jika toolset pemiliknya diaktifkan, sehingga menonaktifkan toolset (misalnyacertificates) membuat path-nya tidak dapat dijangkau melaluiexecutebahkan padaGET.
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 Server2026.2.3916atau lebih baru. Cache dalam memori 5 menit yang dikunci pada URL server yang dikonfigurasi. Utamakangrep_llms_txtdaripada membaca body secara langsung.octopus://api/capabilities— JSON yang menjelaskan sesi yang berjalan: versi server, toolset yang diaktifkan, alat yang tersedia (denganminimumOctopusVersion-nya), dan apakah--read-only/--allow-deletesaktif. 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 proyekfind_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 jikarunbookSnapshotIddihilangkan.
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 denganlineNumberberindeks 1, array konteks sebelum/sesudah opsional, dan jumlahtotalMatchesdi 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 resourceoctopus://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) plusresourceUrisehingga "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 rilisget_variables: Dapatkan semua variabel proyek dan variabel set variabel pustaka untuk sebuah proyek (mendukung proyek config-as-code melaluigitRef)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--toolsetstelah dipersempit; dengan semua toolset diaktifkan (default), satu-satunya batasan path adalah batas/apidan 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:
- Hak Akses Paling Rendah: Gunakan kunci API dengan izin minimum yang diperlukan untuk kasus penggunaan Anda
- Pilih Mode Hanya-Baca: Operasi tulis diaktifkan secara default. Untuk produksi, berikan
--read-onlykecuali Anda memiliki kasus penggunaan spesifik dan terkontrol untuk operasi tulis. DELETE selalu memerlukan pilihan--allow-deletestambahan. - Pembatasan metode bersifat sisi-server dan dikodekan keras: Metode HTTP yang diteruskan ke
executeadalah 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. - Pemfilteran toolset berfungsi ganda sebagai saklar pemutus: Mempersempit
--toolsetsmenghapus baik alat kurasi toolset yang dinonaktifkan maupun path-nya dari daftar izinexecute. (Daftar izin hanya dikonsultasikan saat toolset dipersempit; dengan semua toolset diaktifkan,executedibatasi oleh pemeriksaan bentuk/apidan daftar blokir sensitif.) - 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.