Octopus Deploy Official MCP Server

resmi

Octopus MCP Sunucusu, yapay zeka asistanınıza Octopus örneğinizdeki sorunları inceleme, sorgulama ve teşhis etme olanağı tanıyan güçlü araçlar sağlayarak onu nihai DevOps yardımcınıza dönüştürür.

Octopus Deploy Official MCP ile neler yapabilirsiniz?

  • URL'den dağıtımları incele — Octopus URL'sini yapıştırarak bir dağıtımı araştırmasını isteyin; get_deployment_from_url bağlam ve takip için bir görev kimliği döndürür.
  • Dağıtım görev günlüklerini ara — Çok megabaytlık gövdenin tamamını indirmeden bir görevin etkinlik günlüğünde hata veya başarısızlık desenlerini bulmak için grep_task_log kullanın.
  • Sürümler oluştur ve dağıt — Bir proje için create_release yapmasını isteyin, ardından belirli ortamlara, kiracılı dağıtımlar dahil, deploy_release ile dağıtın.
  • Runbook'ları ortamlar arasında çalıştır — Bir runbook'u bir veya daha fazla ortamda çalıştırmak için run_runbook kullanın; kiracılı çalıştırmaları ve istemli değişkenleri destekler.
  • Eksik kiracı değişkenlerini bul ve düzelt — Değeri olmayan kiracı değişkenlerini belirlemek için get_missing_tenant_variables kullanın, ardından bunları get_tenant_variables ile inceleyin.
  • Kubernetes canlı durumunu kontrol et — Dağıtım sorunlarını teşhis etmek için bir proje ve ortam için kaynakların get_kubernetes_live_status durumunu isteyin.

Dokümantasyon

[!WARNING] Kullanımdan kaldırıldı: Bu MCP sunucusu kullanımdan kaldırılmıştır. Remote MCP Sunucusu, Octopus Server 2026.3 ve sonraki sürümlerde kullanılabilir. Remote MCP Sunucusu belgelerine bakın.

Octopus Deploy Logo

Octopus Deploy Official MCP Server

Octopus, yazılımı Kubernetes, çoklu bulut, şirket içi altyapı ve başka her yere teslim etmeyi kolaylaştırır. Yazılımınızın ve yapay zeka iş yüklerinizin sürüm, dağıtım ve operasyonlarını, başka hiçbir aracın yapamayacağı şekilde ölçekte CD'yi yönetebilen bir araçla otomatikleştirin.

Model Context Protocol (MCP), Claude Code veya ChatGPT gibi günlük işlerinizde kullandığınız yapay zeka asistanlarının, sahip olduğunuz sistemlere ve hizmetlere standart bir şekilde bağlanmasını sağlar; böylece bu sistemlerden ve hizmetlerden bilgi çekerek soruları yanıtlayabilir ve görevleri yerine getirebilirler.

Octopus MCP Sunucusu, yapay zeka asistanınıza Octopus örneğinizdeki sorunları inceleme, sorgulama ve teşhis etme olanağı sağlayan güçlü araçlar sunar ve onu nihai DevOps yardımcınıza dönüştürür. Desteklenen kullanım senaryoları ve örnek istemler listesi için belgelerimize bakın.

Octopus Server Uyumluluğu

MCP Sunucusu tarafından sunulan araçların çoğu, Octopus Server'ın en az 2021.1 sürümünden beri kullanılabilen kararlı API'leri kullanır. Daha yeni araçlar, belgelerde minimum desteklenen sürümü belirtir. Alternatif olarak, belirli araçların Octopus sürümleriyle nasıl ilişkili olduğunu kontrol etmek için --list-tools-by-version komut satırı bağımsız değişkenini kullanabilirsiniz.

🚀 Kurulum

Docker ile Kurulum

Kimlik bilgileri, ana bilgisayar işlem listesinde açığa çıkmamaları için ortam değişkenleri aracılığıyla sağlanmalıdır (ps aux / /proc/<pid>/cmdline). Octopus sunucu URL'si yine de --server-url bayrağı aracılığıyla sağlanabilir.

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

Tam örnek yapılandırma (Claude Desktop, Claude Code ve Cursor için):

{
  "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 kullanıcıları için, Docker'ı Linux platformunu kullanmaya zorlamak amacıyla yapılandırmaya aşağıdaki bağımsız değişkenleri eklemeniz gerekebilir:

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

Yakında bu bağımsız değişkenlerin artık gerekmeyeceği yerel bir ARM derlemesi yayınlamayı planlıyoruz.

Node ile Kurulum

Gereksinimler

  • Node.js >= v20.0.0
  • MCP sunucusu tarafından HTTPS üzerinden erişilebilen Octopus Deploy örneği
  • Octopus Deploy API Anahtarı veya Erişim Belirteci (aşağıdaki Kimlik Doğrulama bölümüne bakın)

Yapılandırma

Tam örnek yapılandırma (Claude Desktop, Claude Code ve Cursor için):

Yazma araçları etkin (varsayılan):

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

Salt okunur mod (üretim için önerilir):

{
  "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 Sunucusu genellikle tercih ettiğiniz Yapay Zeka İstemcinizde yapılandırılır.

Bir npm paketi olarak paketlenir ve Node'un npx komutuyla çalıştırılır. Kimlik bilgileri (API anahtarı veya erişim belirteci) ortam değişkenleri aracılığıyla sağlanmalıdır — sırların işlem listesinde açığa çıkmaması için komut satırı bağımsız değişkenleri olarak kabul edilmezler. Octopus sunucu URL'si OCTOPUS_SERVER_URL ortam değişkeni veya --server-url bayrağı aracılığıyla sağlanabilir.

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

Veya sunucu URL'si komut satırında:

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

Kimlik Doğrulama

MCP sunucusu iki kimlik doğrulama yöntemini destekler. Her ikisi de ortam değişkenleri aracılığıyla sağlanır — kimlik bilgileri komut satırında kabul edilmez çünkü bayraklar ana bilgisayar işlem listesinde herhangi bir yerel kullanıcı tarafından görülebilir.

API Anahtarı (etkileşimli kullanım için önerilir)

API anahtarları, Octopus Deploy için standart kimlik doğrulama yöntemidir. Octopus Deploy kullanıcı profilinizden bir tane oluşturabilirsiniz.

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

Erişim Belirteci / Taşıyıcı Belirteç (yalnızca otomatik senaryolar)

Sunucu ayrıca API anahtarlarına alternatif olarak kısa ömürlü erişim belirteçlerini (Taşıyıcı belirteçler) destekler. Bu kimlik doğrulama yöntemi yalnızca otomatik senaryolar için tasarlanmıştır; burada harici bir sistem MCP sunucusuna kısa ömürlü bir belirteç verir (ör. CI/CD boru hatları, otomatik orkestrasyon veya makineden makineye iş akışları). Uzun ömürlü Taşıyıcı belirteçler kullanmayın — etkileşimli veya uzun süreli oturumlar için API anahtarlarını kullanın.

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

Erişim belirteciyle tam örnek yapılandırma:

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

Hem API anahtarı hem de erişim belirteci sağlanırsa, erişim belirteci önceliklidir. Etkin kimlik doğrulama yöntemi, operatörlerin hangi kimlik bilgisinin kullanıldığını doğrulayabilmesi için günlük dosyasına kaydedilir (--log-file ile yapılandırılabilir).

Yapılandırma Seçenekleri

Octopus MCP Sunucusu, hangi araçların kullanılabilir olduğunu özelleştirmek için birkaç komut satırı seçeneğini destekler.

Hangi araçlara ihtiyacınız olduğundan emin değilseniz, ek komut satırı seçenekleri olmadan çalıştırmanızı ve sağlanan varsayılanları kullanmanızı öneririz.

Araç Setleri

Belirli araç gruplarını etkinleştirmek için --toolsets parametresini kullanın:

# 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

Kullanılabilir araç setleri:

  • core - Temel işlemler (her zaman etkin)
  • projects - Proje işlemleri
  • deployments - Dağıtım işlemleri
  • releases - Sürüm yönetimi
  • runbooks - Runbook keşfi ve yürütme
  • tasks - Görev işlemleri
  • tenants - Çok kiracılı işlemler
  • kubernetes - Kubernetes işlemleri
  • machines - Dağıtım hedefi işlemleri
  • certificates - Sertifika işlemleri
  • accounts - Hesap işlemleri
  • interruptions - Manuel müdahale ve onay işlemleri
  • featureToggles - Müşteri özellik anahtarlarını inceleme ve ayarlama
  • context - Kimliği doğrulanmış kullanıcı ve proje bağlamı (geçerli kullanıcı, Git dalları)

Salt Okunur Mod

Sunucu varsayılan olarak yazma araçları etkin şekilde çalışır. Tüm yazma araçlarını devre dışı bırakmak ve execute geri durdurucusu aracılığıyla POST/PUT/PATCH/DELETE'i engellemek için --read-only değerini iletin. Hazırlanmış araçların çoğu zaten salt okunurdur; yalnızca küçük bir set yazma işlemi gerçekleştirir.

Yazma etkin araçlar (her zaman yazar):

  • create_release - Yeni sürümler oluşturur
  • deploy_release - Sürümleri ortamlara ve kiracılara dağıtır
  • run_runbook - Bir runbook'u bir veya daha fazla ortama (ve isteğe bağlı kiracılara) karşı çalıştırır
  • update_feature_toggle - Mevcut bir özellik anahtarında ortam başına durumu ve dağıtım yüzdelerini ayarlar

Koşullu yazan araç: execute, katmanı (okuma / yazma / silme) kendisine iletilen HTTP yöntemi tarafından belirlenen yapılandırılmış bir REST geri durdurucusudur. Ayrıntılar için API Kataloğu ve Geri Durdurucu bölümüne bakın.

Yazma araçları bir MCP istem istemiyle korunur: istem desteği olan istemcilerden, çağrı devam etmeden önce onay istenir. İstem desteği olmayan istemciler, araç bağımsız değişkenlerinde confirm: true değerini iletmelidir — aksi takdirde araç bir hatayla sonlandırılır. Kapıyı tamamen atlamak için OCTOPUS_SKIP_ELICITATION=true değerini ayarlayın (gözetimsiz otomasyon için tasarlanmıştır).

Sunucu, sunucu tarafında HTTP yöntemine göre uygulanan üç katmanlı bir okuma/yazma/silme sınıflandırması kullanır (ajan, niyet hakkında yalan söyleyerek bunu atlatamaz):

  • okuma — her zaman izin verilir. execute aracılığıyla GET istekleri ve tüm find_* / get_* / list_* araçları.
  • yazma — execute aracılığıyla POST/PUT/PATCH ve yukarıdaki her zaman yazan araçlar. --read-only ayarlandığında engellenir.
  • silme — execute aracılığıyla DELETE. --allow-deletes gerektirir ve --read-only ayarlandığında engellenir. Küçük bir yıkıcı silme yolu seti (ör. DELETE /api/spaces/{id}, DELETE /api/users/{id}) ve API anahtarı uç noktaları, her iki bayrağı da yok sayan sabit bir hassas engellenenler listesindedir.
# 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

Güvenlik Notu: Uygun, en az ayrıcalıklı izinlere sahip bir API anahtarı kullanın — yazma işlemleri Octopus örneğinizde sürümler oluşturabilir ve dağıtımları tetikleyebilir. Üretim için, yazmalar için belirli ve kontrollü bir kullanım durumunuz yoksa --read-only değerini iletmeyi düşünün. --allow-deletes varsayılan olarak kapalıdır; yalnızca ajanın execute aracılığıyla DELETE istekleri göndermesi gerektiğinde etkinleştirin. --allow-deletes ile birlikte --read-only değerini iletirseniz, sunucu stderr'e bir başlangıç uyarısı yazdırır — DELETE istekleri salt okunur kapı tarafından engellenmeye devam eder.

Tam Örnekler

Aşağıdaki tüm örnekler, ortamda OCTOPUS_API_KEY değerinin ayarlandığını varsayar. --server-url bayrağı netlik için gösterilmiştir ancak OCTOPUS_SERVER_URL aracılığıyla da sağlanabilir.

# 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

Diğer komut satırı bağımsız değişkenleri

  • --read-only - Salt okunur modu etkinleştir: hazırlanmış tüm yazma araçlarını devre dışı bırakır ve execute aracılığıyla POST/PUT/PATCH/DELETE'i engeller. Yazmalar varsayılan olarak etkindir; bu bayrak onları kapatır. Salt Okunur Mod bölümüne bakın.
  • --allow-deletes - execute aracılığıyla DELETE isteklerine izin ver. --read-only ayarlandığında yok sayılır (başlangıç uyarısıyla). Varsayılan false.
  • --log-level <level> - Minimum günlük düzeyi (info, error)
  • --log-file <path> - Günlük dosyası yolu veya dosya adı. Belirtilmezse, günlükler yalnızca konsola yazılır
  • -q, --quiet - Dosya günlüğünü devre dışı bırakır, yalnızca hataları konsola kaydeder
  • --list-tools-by-version - Kayıtlı tüm araçları desteklenen Octopus Server sürümlerine göre listeler ve çıkar

🔨 Araçlar

URL Tabanlı Araçlar

Hızlı başlangıç: Manuel kimlik çıkarma olmadan sorunları araştırmak için Octopus URL'lerini doğrudan yapıştırın.

  • get_deployment_from_url: Dağıtım URL'sinden dağıtım ayrıntılarını alır (takip için taskId döndürür)
  • get_task_from_url: Görev URL'sinden görev ayrıntılarını ve günlüklerini alır

Dağıtım araştırma iş akışı:

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

Görev araştırması (doğrudan görev URL'si):

get_task_from_url with task URL
→ Returns task details and logs immediately

Bu araçlar, manuel kimlik çıkarmayı şu şekilde ortadan kaldırır:

  • URL'leri otomatik ayrıştırma
  • Alan kimliklerini alan adlarına çözümleme
  • Kimlik biçimlerini doğrulama
  • Net hata mesajları sağlama

Örnek URL'ler:

  • Dağıtım: https://your-octopus.com/app#/Spaces-1/projects/my-app/deployments/Deployments-123
  • Görev: https://your-octopus.com/app#/Spaces-1/tasks/ServerTasks-456

Ayrıntılı iş akışları, örnekler ve en iyi uygulamalar için URL'lerle Çalışma bölümüne bakın.

Temel Araçlar

  • list_spaces: Octopus Deploy örneğindeki tüm alanları listeler
  • list_environments: Belirli bir alandaki tüm ortamları listeler

API Kataloğu ve Geri Durdurucu

Bu araçlar ve kaynaklar, ajanın adanmış hazırlanmış bir aracı olmayan Octopus REST uç noktalarına ulaşmasını sağlar; okuma, yazma ve silme işlemleri arasında sunucu tarafında sıkı kapı kontrolü uygulanır.

  • grep_llms_txt: Octopus API kataloğunu (octopus://api/llms.txt) grep tarzı semantiklerle arayın (minimum desteklenen Octopus sürümü: 2026.2.3916). Katalog gövdesi büyüktür (genellikle 300+ KB) — kaynak gövdesini doğrudan okumak yerine bunu çağırın. Parametreler GNU grep'i yansıtır (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). Uç noktaları keşfetmek (POST /releases), silme uç noktalarını listelemek (DELETE ) veya bir yazma işlemi için gövde türünü bulmak (Body: Create.*Command) için kullanışlıdır.
  • execute: Yapılandırılmış REST güvenlik ağı. /api altındaki herhangi bir Octopus REST uç noktasına ulaşır. HTTP yöntemi, yetkili okuma/yazma/silme sınıflandırıcısıdır — asla LLM'nin ayarlayabileceği bir isWrite bayrağı değildir. Yöntem kapısı sunucu tarafında sabit kodlanmıştır:
    • GET her zaman izinlidir (yol şekli kontrolü + hassas kara listeye tabidir).
    • POST/PUT/PATCH, --read-only ayarlandığında engellenir; aksi takdirde kullanıcı onayı gerektirir (elicitation yoluyla).
    • DELETE, --allow-deletes gerektirir (ve --read-only ayarlandığında engellenir) ayrıca daha güçlü bir "GERİ DÖNDÜRÜLEMEZ" elicitation mesajı gerektirir.
    • Hassas kara liste (API anahtarı uç noktaları, DELETE /api/spaces/{id}, DELETE /api/users/{id}) her iki bayrak açık olsa bile uygulanır.
    • Yolun /api olması veya /api/ ile başlaması zorunludur — mutlak URL'ler, SDK'ya göreli ~/api/... yolları ve /api dışındaki ana bilgisayara göreli yollar (ör. /octopus/portal/...) baştan reddedilir, böylece execute Octopus REST API yüzeyiyle sınırlı kalır.
    • Araç seti başına yol izin listesi yalnızca --toolsets daraltıldığında geçerlidir. Tüm araç setleri etkinleştirildiğinde (varsayılan veya açık --toolsets all) izin listesi atlanır ve /api altındaki herhangi bir yol yukarıdaki kapılara tabi olarak erişilebilir. --toolsets daraltıldığında izin listesi kapatma anahtarı haline gelir: yollar yalnızca sahip oldukları araç seti etkinse çözümlenir; bu nedenle bir araç setini devre dışı bırakmak (ör. certificates) yollarını execute üzerinden GET üzerinde bile erişilemez hale getirir.

Katalog verileri ayrıca MCP Kaynakları olarak da sunulur:

  • octopus://api/llms.txt — her Octopus REST uç noktasının (HTTP yöntemi, yol, sorgu parametreleri, istek/yanıt türleri) markdown kataloğu. Octopus Server 2026.2.3916 veya sonrasını gerektirir. Yapılandırılmış sunucu URL'sine göre 5 dakikalık bellek içi önbellek. Gövdeyi doğrudan okumak yerine grep_llms_txt tercih edin.
  • octopus://api/capabilities — çalışan oturumu açıklayan JSON: sunucu sürümü, etkin araç setleri, kullanılabilir araçlar (minimumOctopusVersion ile) ve --read-only / --allow-deletes açık olup olmadığı. Ajanın bu oturumda neye erişilebilir olduğunu keşfetmesi için kullanışlıdır.

Projeler

  • list_projects: Belirli bir alandaki tüm projeleri listele

Dağıtımlar

  • deploy_release: Bir sürümü ortamlara dağıtın (kiracılı ve kiracısız dağıtımları destekler)
  • list_deployments: İsteğe bağlı filtrelemeyle bir alandaki dağıtımları listele

Sürümler

  • create_release: Bir proje için yeni bir sürüm oluşturun
  • find_releases: Bir alandaki sürümleri bulun (kimliğe göre belirli bir sürümü alabilir veya projeye göre sürümleri listeleyebilir/filtreleyebilir)

Sürüm ayrıntıları ayrıca octopus://spaces/{spaceName}/releases/{releaseId} adresinde bir MCP Kaynağı olarak mevcuttur — sürüm notları ve seçilen paketler dahil tam sürüm gövdesini almak için resources/read (veya read_resource güvenlik ağı aracı) ile getirin.

Runbook'lar

  • find_runbooks: Bir projedeki runbook'ları bulun (kimliğe göre belirli bir runbook'u alabilir veya kısmi ada göre runbook'ları listeleyebilir/filtreleyebilir). Her özet, yayınlanmış anlık görüntü kimliğini, çok kiracılı modu ve ortam kapsamını içerir; böylece çağıranlar çalıştırmadan önce geçerli hedefleri seçebilir.
  • run_runbook: Bir runbook'u bir veya daha fazla ortamda çalıştırın. Kiracılı çalıştırmaları (kiracı adına veya kiracı etiketine göre), istemli değişkenleri, kılavuzlu hata modunu, zamanlanmış çalıştırma pencerelerini ve adım veya makine dahil etme/hariç tutmayı destekler. runbookSnapshotId atlanırsa runbook'un yayınlanmış anlık görüntüsünü varsayılan olarak kullanır.

Tam runbook gövdesi (çalışma zamanı ilkesi alanları dahil) octopus://spaces/{spaceName}/runbooks/{runbookId} adresinde bir MCP Kaynağı olarak mevcuttur.

Görevler

Görev verileri öncelikle MCP Kaynakları olarak sunulur. Aşağıdakilerden biriyle resources/read (veya read_resource güvenlik ağı aracı) kullanın:

  • octopus://spaces/{spaceName}/tasks/{taskId} — hafif meta veriler (durum, zamanlama, tamamlanma bayrakları)
  • octopus://spaces/{spaceName}/tasks/{taskId}/details — tam ServerTaskDetails (İlerleme, ActivityLogs ağacı vb.)

Günlük araması için grep_task_log aracını bir /log kaynağı yerine kullanın:

  • grep_task_log: Tam gövdeyi getirmeden bir görevin etkinlik günlüğünü arayın. Parametreler GNU grep'i yansıtır (pattern, caseInsensitive, invertMatch, fixedString, beforeContext, afterContext, maxCount). 1 tabanlı lineNumber ile eşleşen satırları, isteğe bağlı önce/sonra bağlam dizilerini ve tüm günlük boyunca bir totalMatches sayısını döndürür.

Kasıtlı olarak /log kaynağı yoktur: etkinlik günlükleri birkaç megabayt olabilir ve adreslenebilir bir kaynak, grep neredeyse her zaman doğru ilkel olduğunda çağıranları tüm gövdeyi getirmeye teşvik eder.

Kiracılar

  • find_tenants: Bir alandaki kiracıları bulun (kimliğe göre belirli bir kiracıyı alabilir veya filtrelerle kiracıları listeleyebilir/arayabilir)
  • get_tenant_variables: Kiracı değişkenlerini türe göre alın (tümü, ortak veya proje)
  • get_missing_tenant_variables: Değerleri eksik olan kiracı değişkenlerini alın

Kubernetes

  • get_kubernetes_live_status: Bir proje ve ortam için Kubernetes kaynaklarının canlı durumunu alın (minimum desteklenen sürüm: 2025.3)

Makineler (Dağıtım Hedefleri)

  • find_deployment_targets: Bir alandaki dağıtım hedeflerini bulun (kimliğe göre belirli bir hedefi alabilir veya filtrelerle hedefleri listeleyebilir/arayabilir)

Sertifikalar

  • find_certificates: Bir alandaki sertifikaları bulun (kimliğe göre belirli bir sertifikayı alabilir veya filtrelerle sertifikaları listeleyebilir/arayabilir)

Hesaplar

  • find_accounts: Bir alandaki hesapları bulun (kimliğe göre belirli bir hesabı alabilir veya filtrelerle hesapları listeleyebilir/arayabilir)

Kesintiler

  • find_interruptions: Bir alandaki bekleyen veya geçmiş kesintileri (manuel müdahaleler, onaylar, kılavuzlu hata istemleri) bulun; isteğe bağlı olarak göreve, projeye, ortama, ilgili belgeye, sorumluluğa veya bekleyen duruma göre filtrelenir. Özet özetler döndürür; tam Form tanımı için octopus://spaces/{spaceName}/interruptions/{interruptionId} kaynağını referans alın (kontrol türleri, Markdown talimatları, düğme seçenekleri, gönderilen Form.Values).

Özellik Anahtarları

  • find_feature_toggles: Bir projedeki müşteri özellik anahtarlarını listeleyin. Her özet, ortam başına durumu (isEnabled, rolloutPercentage, clientRolloutPercentage) ve bir resourceUri içerir; böylece "X nerede açık" sorusu liste yanıtından yanıtlanabilir.
  • update_feature_toggle: Mevcut bir anahtarı ayarlayın. Dar yüzey — bir ortamı açın/kapatın, dağıtım yüzdelerini değiştirin veya anahtar düzeyindeki açıklamayı / varsayılan durumu güncelleyin. Dahili olarak geçerli anahtarı getirir, yamalarınızı bellekte uygular ve birleştirilmiş gövdeyi PUT eder; böylece bahsedilmeyen ortamlar ve bahsedilmeyen alanlar korunur. Anahtarda zaten yapılandırılmamış bir ortama başvuran yamalar reddedilir.

Tam anahtar gövdesi (açıklama, kiracılar, segmentler, minimum sürümler) octopus://spaces/{spaceName}/projects/{projectId}/featuretoggles/{slug} adresinde bir MCP Kaynağı olarak mevcuttur. Dağıtım grubu gövdeleri, salt okunur inceleme için octopus://spaces/{spaceName}/projects/{projectId}/rolloutgroups/{rolloutGroupId} adresinde adreslenebilir.

Kapsam dışı (Octopus UI kullanın): yeni özellik anahtarları oluşturma, anahtarları silme, yeniden adlandırma veya yeniden etiketleme, dağıtım gruplarını ekleme/çıkarma, kiracı hedefleme, segmentler, minimum sürüm filtreleri ve dağıtım grubu / SDK istemci tanımlayıcı yönetimi.

Ek Araçlar

  • get_deployment_process: Projeler veya sürümler için kimliğe göre dağıtım sürecini alın
  • get_variables: Bir proje için tüm proje değişkenlerini ve kitaplık değişken seti değişkenlerini alın (config-as-code projelerini gitRef ile destekler)
  • get_branches: Sürüm kontrollü bir proje için Git dallarını alın (minimum desteklenen sürüm: 2021.2)
  • get_current_user: Geçerli kimliği doğrulanmış kullanıcı hakkında bilgi alın

🔒 Güvenlik Hususları

Octopus MCP Sunucusu hem okuma hem de yazma işlemlerini içerir. Önemli güvenlik hususları:

Okuma İşlemleri

  • Sır olarak işaretlenmemişlerse üretim sırlarını içerebilecek tam dağıtım günlüklerini okuyabilir
  • Hassas yapılandırma verilerine ve değişkenlere erişim
  • Tam olarak güvenmediğiniz araçlara ve modellere bağlanırken dikkatli olun

Yazma İşlemleri

Varsayılan olarak aşağıdaki yazma işlemleri mevcuttur:

  • Sürüm oluşturma: Projeler için yeni sürümler oluşturabilir
  • Sürüm dağıtma: Ortamlara (üretim dahil) dağıtımları tetikleyebilir
  • Runbook çalıştırma: Runbook'ları ortamlara ve kiracılara karşı yürütebilir
  • Özellik anahtarlarını güncelleme: Ortam başına durumu değiştirebilir ve mevcut anahtarlardaki dağıtım yüzdelerini değiştirebilir
  • execute güvenlik ağı aracılığıyla rastgele POST/PUT/PATCH: /api altındaki yollarla sınırlıdır, her zaman açık hassas kara listeyle. Araç seti başına yol izin listesi yalnızca --toolsets daraltıldığında geçerlidir; tüm araç setleri etkinleştirildiğinde (varsayılan) tek yol kapıları /api sınırı ve hassas kara listedir.

Yukarıdakilerin tümünü devre dışı bırakmak için --read-only iletin. execute aracılığıyla DELETE istekleri ek bir --allow-deletes bayrağı gerektirir — geri döndürülemez işlemler için kasıtlı bir opt-in — ve --read-only ayarlandığında engellenmiş kalır.

Kritik Güvenlik Önlemleri:

  1. En Az Ayrıcalık: Kullanım durumunuz için gereken minimum izinlere sahip API anahtarları kullanın
  2. Salt Okunur Moda Opt-in: Yazmalar varsayılan olarak etkindir. Üretim için, yazma işlemleri için belirli, kontrollü bir kullanım durumunuz yoksa --read-only iletin. DELETE her zaman ek --allow-deletes opt-in gerektirir.
  3. Yöntem kapısı sunucu tarafındadır ve sabit kodlanmıştır: execute öğesine iletilen HTTP yöntemi yetkili sınıflandırıcıdır. Ajan, çağrının ne yaptığını yanlış tanıtarak kapıyı atlayamaz — POST/PUT/PATCH/DELETE istekleri, istek gövdesindeki düzyazıdan bağımsız olarak katman özel kapılandırma alır.
  4. Araç seti filtreleme bir kapatma anahtarı görevi görür: --toolsets daraltmak, devre dışı bırakılan araç setlerinin seçilmiş araçlarını ve yollarını execute izin listesinden kaldırır. (İzin listesi yalnızca araç setleri daraltıldığında danışılır; tüm araç setleri etkinleştirildiğinde execute bunun yerine /api şekil kontrolü ve hassas kara listeyle sınırlandırılır.)
  5. Prompt Enjeksiyon Riski: Ajanları tam otomatik modda çalıştırmak sizi prompt enjeksiyon saldırılarına karşı savunmasız bırakabilir

Öneri: Üretim ortamları için, yazma işlemleri için belirli, kontrollü bir kullanım durumunuz yoksa --read-only iletin. --allow-deletes öğesini, execute aracılığıyla DELETE semantiklerine özel olarak ihtiyaç duymadıkça kapalı bırakın.

⚠️ Sınırlamalar

Veri Analizi

Mevcut AI sohbet araçlarının ve MCP protokolünün doğası, büyük miktarda veriyi analiz etmeyi pratik değil kılar. Çoğu MCP istemcisi şu anda araç çağrılarını zincirlemeyi (bir aracın çıktısını sonrakine girdi olarak kullanmayı) desteklemez ve bunun yerine sonuçları belirteç belirteç kopyalamaya geri döner; bu da sıklıkla halüsinasyonlara yol açar. Octopus örneğinizden analiz amacıyla geçmiş verileri işlemek istiyorsanız, API'yi doğrudan kullanmanızı veya araç çağrısı sonuçlarını programlı olarak işleyebilen kendi MCP istemcinizi yazmanızı öneririz.

Performans

MCP Sunucusu teknik olarak mevcut Octopus Sunucu API'sinin üzerinde ince bir katmandır. Bu nedenle büyük miktarda veri alabilir (örneğin, binlerce dağıtım isteme). Bu tür sorgular örneğinizin performansı üzerinde önemli bir etkiye sahip olabilir. Modellerinize yalnızca ihtiyaç duyduğu minimum veri kümesini almasını söyleyin (çoğu model bunu kutudan çıktığı gibi çok iyi yapar).

🤝 Katkılar

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

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

Please use Issues to provide feedback, or request features.

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

🙋 SSS

Uzaktan bir MCP sunucusu yayınlama planınız var mı?

Octopus Server'a doğrudan bir MCP sunucusu entegre etmek üzerinde çalışıyoruz. Bu, daha karmaşık MCP araçları oluşturmamızın kapısını açacak ve ayrıca:

  • Octopus Yöneticilerine MCP istemcileri üzerinde daha ayrıntılı kontrol sağlama
  • İstemci kimlik doğrulaması için OAuth'u yerel olarak destekleme
  • Güvenlik tarama araçlarını MCP çıktısına entegre etme

Eğer bu ilginizi çekiyorsa, lütfen yol haritamızdaki öğeye ilginizi kaydedin.

Lisans

Bu proje, Mozilla Public License 2.0 açık kaynak lisansı koşulları altında lisanslanmıştır.