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?

  • Selidiki deployment dari URL-nya — tempelkan URL deployment Octopus dan biarkan asisten mengambil detail serta ID tugas terkait melalui get_deployment_from_url.
  • Cari log tugas untuk menemukan error tanpa mengunduh log lengkap — gunakan grep_task_log dengan pola seperti “error|fail” untuk menemukan baris yang cocok dan konteksnya dalam log aktivitas tugas.
  • Temukan endpoint REST yang tersedia — panggil grep_llms_txt untuk mencari katalog API Octopus guna menemukan endpoint, body permintaan, atau operasi hapus sebelum menggunakan backstop execute.
  • Temukan dan periksa rilis — gunakan find_releases untuk menemukan rilis berdasarkan proyek atau ID, lalu ambil body lengkapnya (catatan rilis, paket) melalui resource octopus://spaces/{spaceName}/releases/{releaseId}.
  • Periksa status resource Kubernetes untuk proyek dan lingkungan — panggil get_kubernetes_live_status untuk mengambil status langsung resource Kubernetes (memerlukan Octopus 2025.3+).
  • Kelola status fitur toggle di berbagai lingkungan — daftarkan toggle dengan find_feature_toggles dan sesuaikan status aktif per lingkungan atau persentase peluncuran dengan update_feature_toggle.

Dokumentasi

Octopus Deploy Logo

Octopus Deploy Official MCP Server

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

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

Octopus MCP Server menyediakan asisten AI Anda dengan alat canggih yang memungkinkannya untuk memeriksa, menanyakan, dan mendiagnosis masalah dalam instans Octopus Anda, mengubahnya menjadi rekan DevOps andalan 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 dari versi 2021.1 Octopus Server. Alat yang lebih baru akan menentukan versi minimum yang didukung dalam dokumentasi. Atau, Anda dapat menggunakan argumen baris perintah --list-tools-by-version untuk memeriksa bagaimana alat tertentu terkait dengan versi Octopus.

🚀 Instalasi

Instalasi melalui Docker

Kredensial harus diberikan melalui variabel lingkungan untuk menghindari mengeksposnya 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 untuk merilis build ARM asli segera sehingga argumen tersebut tidak diperlukan lagi.

Instalasi melalui Node

Persyaratan

  • Node.js >= v20.0.0
  • Instans Octopus Deploy yang dapat diakses oleh server MCP melalui HTTPS
  • Kunci API Octopus Deploy atau Token Akses (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 (direkomendasikan 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.

Ini dikemas sebagai paket npm dan dieksekusi melalui perintah npx Node. Kredensial (kunci API atau token akses) harus diberikan melalui variabel lingkungan — mereka tidak diterima sebagai argumen baris perintah untuk menghindari mengekspos 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.

Kunci API (direkomendasikan untuk penggunaan interaktif)

Kunci API 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

Token Akses / Token Bearer (hanya skenario otomatis)

Server juga mendukung token akses berumur pendek (token Bearer) sebagai alternatif untuk kunci API. Metode autentikasi ini dimaksudkan hanya untuk skenario otomatis di mana sistem eksternal menerbitkan token berumur pendek ke server MCP (misalnya, pipeline CI/CD, orkestrasi otomatis, atau alur kerja mesin-ke-mesin). Jangan gunakan token Bearer berumur panjang — gunakan kunci API untuk sesi interaktif atau berjalan lama.

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

Contoh konfigurasi lengkap dengan token akses:

{
  "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 kunci API dan token akses keduanya diberikan, token akses 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 sarankan untuk menjalankan tanpa opsi baris perintah tambahan dan menggunakan default yang disediakan.

Perangkat Alat

Gunakan parameter --toolsets untuk mengaktifkan kelompok 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

Perangkat alat yang tersedia:

  • core - Operasi dasar (selalu diaktifkan)
  • projects - Operasi proyek
  • deployments - Operasi penerapan
  • releases - Manajemen rilis
  • runbooks - Penemuan dan eksekusi runbook
  • tasks - Operasi tugas
  • tenants - Operasi multi-penyewaan
  • kubernetes - Operasi Kubernetes
  • machines - Operasi target penerapan
  • certificates - Operasi sertifikat
  • accounts - Operasi akun
  • interruptions - Operasi intervensi manual dan persetujuan
  • featureToggles - Periksa dan sesuaikan fitur toggle pelanggan
  • context - Konteks pengguna dan proyek yang diautentikasi (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 pengaman execute. Sebagian besar alat yang dikurasi sudah hanya-baca; hanya sebagian kecil yang melakukan penulisan.

Alat dengan tulis diaktifkan (selalu-tulis):

  • create_release - Buat rilis baru
  • deploy_release - Terapkan rilis ke lingkungan dan penyewa
  • run_runbook - Jalankan runbook terhadap satu atau lebih lingkungan (dan penyewa opsional)
  • update_feature_toggle - Sesuaikan status per-lingkungan dan persentase peluncuran pada fitur toggle yang ada

Alat penulisan bersyarat: execute adalah pengaman REST terstruktur yang tingkatannya (baca / tulis / hapus) ditentukan oleh metode HTTP yang diteruskan padanya. Lihat bagian Katalog API & Pengaman untuk detailnya.

Alat tulis dijaga oleh prompt elisitasi MCP: klien yang mendukung elisitasi akan diminta untuk mengonfirmasi sebelum panggilan dilanjutkan. Klien tanpa dukungan elisitasi harus memberikan confirm: true dalam argumen alat — jika tidak, alat akan dibatalkan dengan kesalahan. Atur OCTOPUS_SKIP_ELICITATION=true untuk melewati penjagaan sepenuhnya (dimaksudkan untuk otomatisasi tanpa pengawasan).

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

  • baca — selalu diizinkan. Permintaan GET melalui execute, ditambah semua alat find_* / get_* / list_*.
  • tulis — POST/PUT/PATCH melalui execute dan alat selalu-tulis di atas. Diblokir ketika --read-only diatur.
  • hapus — DELETE melalui execute. Memerlukan --allow-deletes dan diblokir ketika --read-only diatur. Sejumlah kecil jalur penghapusan katastropik (misalnya DELETE /api/spaces/{id}, DELETE /api/users/{id}) dan titik akhir kunci API berada dalam daftar tolak 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 kunci API dengan izin yang sesuai dan hak istimewa paling rendah — operasi tulis dapat membuat rilis dan memicu penerapan di instans Octopus Anda. Untuk produksi, pertimbangkan untuk memberikan --read-only kecuali Anda memiliki kasus penggunaan tulis yang spesifik dan terkendali. --allow-deletes dinonaktifkan secara default; hanya aktifkan ketika agen harus mengeluarkan permintaan DELETE melalui execute. Jika Anda memberikan --allow-deletes bersamaan 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 diatur dalam 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) ketika --read-only diatur. Default false.
  • --log-level <level> - Tingkat log minimum (info, error)
  • --log-file <path> - Jalur atau nama file log. Jika tidak ditentukan, log ditulis ke konsol saja
  • -q, --quiet - Nonaktifkan pencatatan file, hanya catat kesalahan ke konsol
  • --list-tools-by-version - Daftar semua alat yang terdaftar berdasarkan versi Octopus Server yang didukung dan keluar

🔨 Alat

Alat Berbasis URL

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

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

Alur kerja investigasi penerapan:

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 ke nama ruang
  • Memvalidasi format ID
  • Memberikan pesan kesalahan yang jelas

Contoh URL:

  • Penerapan: 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 dalam instans Octopus Deploy
  • list_environments: Daftar semua lingkungan dalam ruang tertentu

Katalog API & Pengaman

Alat dan sumber daya ini memungkinkan agen untuk mencapai titik akhir REST Octopus yang tidak memiliki alat kurasi khusus, dengan penjagaan ketat di sisi server antara operasi baca, tulis, dan hapus.

  • grep_llms_txt: Cari katalog API Octopus (octopus://api/llms.txt) dengan semantik gaya grep (versi Octopus minimum yang didukung: 2026.2.3916). Isi katalog berukuran besar (biasanya 300+ KB) — panggil ini daripada membaca isi sumber daya secara langsung. Parameter mencerminkan GNU grep (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Berguna untuk menemukan endpoint (POST /releases), menghitung endpoint penghapusan (DELETE ), atau menemukan tipe body untuk operasi tulis (Body: Create.*Command).
  • execute: Backstop REST terstruktur. Menjangkau endpoint REST Octopus apa pun di bawah /api. Metode HTTP adalah pengklasifikasi baca/tulis/hapus yang otoritatif — bukan flag isWrite yang dapat diatur oleh LLM. Pembatasan metode dikodekan secara keras di sisi server:
    • GET selalu diizinkan (tunduk pada pemeriksaan bentuk jalur + daftar tolak sensitif).
    • POST/PUT/PATCH diblokir ketika --read-only diatur; jika tidak, mereka memerlukan konfirmasi pengguna melalui elisitasi.
    • DELETE memerlukan --allow-deletes (dan diblokir ketika --read-only diatur) ditambah pesan elisitasi "IRREVERSIBLE" yang lebih kuat.
    • Daftar tolak sensitif (endpoint kunci API, DELETE /api/spaces/{id}, DELETE /api/users/{id}) ditegakkan bahkan dengan kedua flag aktif.
    • Jalur harus berupa /api atau dimulai dengan /api/ — URL absolut, jalur relatif SDK ~/api/..., dan jalur relatif host di luar /api (mis. /octopus/portal/...) ditolak di awal, sehingga execute tetap terbatas pada permukaan REST API Octopus.
    • Daftar izin jalur per set alat hanya berlaku ketika --toolsets telah dipersempit. Dengan setiap set alat diaktifkan (default, atau --toolsets all eksplisit) daftar izin dilewati dan jalur apa pun di bawah /api dapat dijangkau tunduk pada pembatasan di atas. Ketika --toolsets dipersempit, daftar izin menjadi saklar pemutus: jalur hanya terselesaikan jika set alat pemiliknya diaktifkan, sehingga menonaktifkan set alat (mis. certificates) membuat jalurnya tidak dapat dijangkau melalui execute bahkan pada GET.

Data katalog juga diekspos sebagai Sumber Daya MCP:

  • octopus://api/llms.txt — katalog markdown dari setiap endpoint REST Octopus (metode HTTP, jalur, 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. Lebih suka grep_llms_txt daripada membaca body secara langsung.
  • octopus://api/capabilities — JSON yang menjelaskan sesi yang berjalan: versi server, set alat yang diaktifkan, alat yang tersedia (dengan minimumOctopusVersion mereka), 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 di ruang tertentu

Deployment

  • deploy_release: Deploy rilis ke lingkungan (mendukung deployment bertenan dan tidak bertenan)
  • list_deployments: Daftar deployment di ruang dengan filter opsional

Rilis

  • create_release: Buat rilis baru untuk proyek
  • find_releases: Temukan rilis di ruang (dapatkan rilis tertentu berdasarkan ID, atau daftar/filter rilis berdasarkan proyek)

Detail rilis juga tersedia sebagai Sumber Daya 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 di proyek (dapatkan runbook tertentu berdasarkan ID, atau daftar/filter runbook berdasarkan nama parsial). Setiap ringkasan menyertakan ID snapshot yang dipublikasikan, mode multi-tenansi, dan cakupan lingkungan sehingga pemanggil dapat memilih target yang valid sebelum menjalankan.
  • run_runbook: Jalankan runbook terhadap satu atau lebih lingkungan. Mendukung run bertenan (berdasarkan nama tenant atau tag tenant), variabel yang diminta, mode kegagalan terpandu, jendela run terjadwal, dan penyertaan/pengecualian langkah atau mesin. Default ke snapshot runbook yang dipublikasikan jika runbookSnapshotId dihilangkan.

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

Tugas

Data tugas terutama diekspos sebagai Sumber Daya 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 sumber daya /log:

  • grep_task_log: Cari log aktivitas tugas tanpa mengambil body lengkap. Parameter mencerminkan 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 sumber daya /log: log aktivitas bisa berukuran multi-megabyte, dan sumber daya yang dapat dialamatkan akan menggoda pemanggil untuk mengambil seluruh body ketika grep hampir selalu merupakan primitif yang tepat.

Tenant

  • find_tenants: Temukan tenant di ruang (dapatkan tenant tertentu berdasarkan ID atau daftar/cari 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 sumber daya Kubernetes untuk proyek dan lingkungan (versi minimum yang didukung: 2025.3)

Mesin (Target Deployment)

  • find_deployment_targets: Temukan target deployment di ruang (dapatkan target tertentu berdasarkan ID atau daftar/cari target dengan filter)

Sertifikat

  • find_certificates: Temukan sertifikat di ruang (dapatkan sertifikat tertentu berdasarkan ID atau daftar/cari sertifikat dengan filter)

Akun

  • find_accounts: Temukan akun di ruang (dapatkan akun tertentu berdasarkan ID atau daftar/cari akun dengan filter)

Interupsi

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

Sakelar Fitur

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

Body sakelar lengkap (deskripsi, tenant, segmen, versi minimum) tersedia sebagai Sumber Daya 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 sakelar fitur baru, menghapus sakelar, mengganti nama atau menandai ulang, melampirkan/melepaskan 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 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
  • Mendeploy rilis: Dapat memicu deployment ke lingkungan (termasuk produksi)
  • Menjalankan runbook: Dapat mengeksekusi runbook terhadap lingkungan dan tenant
  • Memperbarui sakelar fitur: Dapat membalik status per lingkungan dan mengubah persentase peluncuran pada sakelar yang ada
  • POST/PUT/PATCH sewenang-wenang melalui backstop execute: Terbatas pada jalur di bawah /api, dengan daftar tolak sensitif yang selalu aktif. Daftar izin jalur per set alat hanya berlaku ketika --toolsets telah dipersempit; dengan semua set alat diaktifkan (default) satu-satunya pembatasan jalur adalah batas /api dan daftar tolak sensitif.

Berikan --read-only untuk menonaktifkan semua hal di atas. Permintaan DELETE melalui execute memerlukan flag --allow-deletes tambahan — keikutsertaan yang disengaja untuk operasi ireversibel — dan tetap diblokir ketika --read-only diatur.

Langkah Keamanan Kritis:

  1. Hak Istimewa Terendah: Gunakan kunci API dengan izin minimum yang diperlukan untuk kasus penggunaan Anda
  2. Pilih Mode Hanya-Baca: Tulis diaktifkan secara default. Untuk produksi, berikan --read-only kecuali Anda memiliki kasus penggunaan khusus dan terkendali untuk operasi tulis. DELETE selalu memerlukan keikutsertaan --allow-deletes tambahan.
  3. Pembatasan metode ada di sisi server dan dikodekan secara keras: Metode HTTP yang diteruskan ke execute adalah pengklasifikasi otoritatif. Agen tidak dapat melewati pembatasan dengan salah menggambarkan apa yang dilakukan panggilan — permintaan POST/PUT/PATCH/DELETE mendapatkan pembatasan spesifik tingkat terlepas dari prosa di body permintaan.
  4. Pemfilteran set alat berfungsi ganda sebagai saklar pemutus: Mempersempit --toolsets menghapus baik alat terkurasi set alat yang dinonaktifkan maupun jalurnya dari daftar izin execute. (Daftar izin hanya dikonsultasikan ketika set alat dipersempit; dengan semua set alat diaktifkan execute dibatasi oleh pemeriksaan bentuk /api dan daftar tolak sensitif sebagai gantinya.)
  5. Risiko Injeksi Prompt: Menjalankan agen secara otomatis penuh dapat membuat Anda rentan terhadap serangan injeksi prompt

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

⚠️ Keterbatasan

Analisis Data

Sifat alat obrolan AI saat ini dan protokol MCP itu sendiri membuatnya tidak praktis untuk menganalisis data dalam jumlah besar. Sebagian besar klien MCP saat ini tidak mendukung rantai panggilan alat (menggunakan output satu alat sebagai input ke alat berikutnya) dan malah jatuh kembali ke menyalin hasil token demi token, yang sering menyebabkan halusinasi. Jika Anda ingin memproses data historis dari instans Octopus Anda untuk tujuan analisis, kami sarankan 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 instans Anda. Instruksikan model Anda untuk hanya mengambil set data minimum yang dibutuhkannya (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 yang ingin Anda lihat disertakan di versi mendatang.

Silakan gunakan Issues untuk memberikan umpan balik, atau meminta fitur.

Jika Anda adalah pelanggan Octopus saat ini, silakan laporkan masalah apa pun yang Anda alami saat menggunakan server MCP kami kepada 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 berupaya mengintegrasikan server MCP langsung ke dalam Octopus Server. Ini akan membuka peluang bagi kami untuk membangun alat MCP yang lebih kompleks, serta:

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

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

Lisensi

Proyek ini dilisensikan di bawah ketentuan lisensi sumber terbuka Mozilla Public License 2.0.