Octopus Deploy Official MCP Server
resmiOctopus 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.
Dokümantasyon
Octopus Deploy Resmi MCP Sunucusu
Octopus, yazılımı Kubernetes’e, çoklu buluta, şirket içi altyapıya ve başka her yere ulaştırmayı kolaylaştırır. Başka hiçbir aracın yapamayacağı şekilde ölçekte CD’yi yönetebilen bir araçla yazılım ve yapay zeka iş yüklerinizin sürüm, dağıtım ve operasyonlarını otomatikleştirin.
Model Context Protocol (MCP), Claude Code veya ChatGPT gibi günlük çalışmalarınızda kullandığınız yapay zeka asistanlarının, sahip olduğunuz sistem ve hizmetlere standart bir şekilde bağlanmasını sağlayarak soruları yanıtlamak ve görevleri yerine getirmek için bu sistem ve hizmetlerden bilgi çekmelerine olanak tanır.
Octopus MCP Sunucusu, yapay zeka asistanınıza Octopus örneğiniz içindeki sorunları incelemesi, sorgulaması ve teşhis etmesi için güçlü araçlar sunarak onu nihai DevOps kanat arkadaşınıza dönüştürür. Desteklenen kullanım durumları ve örnek istemler için dokümantasyonumuza bakın.
Octopus Sunucu Uyumluluğu
MCP Sunucusu tarafından sunulan araçların çoğu, Octopus Sunucusu’nun en az 2021.1 sürümünden itibaren kullanılabilen kararlı API’leri kullanır. Daha yeni araçlar, desteklenen minimum sürümü dokümantasyonda belirtecektir. 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ı argümanını kullanabilirsiniz.
🚀 Kurulum
Docker ile Kurulum
Kimlik bilgileri, ana bilgisayar süreç listesinde (ps aux / /proc/<pid>/cmdline) görünmelerini önlemek için ortam değişkenleri aracılığıyla sağlanmalıdır. Octopus sunucu URL’si yine de --server-url bayrağı ile 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 argümanları eklemeniz gerekebilir:
"--platform",
"linux/amd64",
Kısa süre içinde yerel bir ARM derlemesi yayınlamayı planlıyoruz, böylece bu argümanlar artık gerekmeyecek.
Node ile Kurulum
Gereksinimler
- Node.js >= v20.0.0
- MCP sunucusu tarafından HTTPS üzerinden erişilebilen bir 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 seçtiğiniz Yapay Zeka İstemcisi içinde yapılandırılır.
Bir npm paketi olarak paketlenir ve Node’un npx komutu ile ç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üreç listesinde gizli bilgilerin görünmesini önlemek için komut satırı argümanı 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, bayraklar ana bilgisayar süreç listesinde herhangi bir yerel kullanıcı tarafından görülebildiği için komut satırında kabul edilmez.
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, API anahtarlarına alternatif olarak kısa ömürlü erişim belirteçlerini (Taşıyıcı belirteçler) de destekler. Bu kimlik doğrulama yöntemi, yalnızca harici bir sistemin MCP sunucusuna kısa ömürlü bir belirteç verdiği otomatik senaryolar (ör. CI/CD iş hatları, otomatik orkestrasyon veya makineden makineye iş akışları) için tasarlanmıştır. Uzun ömürlü Taşıyıcı belirteçler kullanmayın — etkileşimli veya uzun süreli oturumlar için bunun yerine 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 belirteci ile 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 bir API anahtarı hem de bir erişim belirteci sağlanırsa, erişim belirteci öncelik kazanır. 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 çeşitli komut satırı seçeneklerini destekler.
Hangi araçlara ihtiyacınız olduğundan emin değilseniz, herhangi bir ek komut satırı seçeneği 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 - Çoklu kiracı işlemleri
- 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 geçişlerini inceleme ve ayarlama
- context - Kimliği doğrulanmış kullanıcı ve proje bağlamı (mevcut 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 durdurma aracı üzerinden POST/PUT/PATCH/DELETE’i engellemek için --read-only bayrağını geçirin. Seçilmiş araçların çoğu zaten salt okunurdur; yalnızca küçük bir küme yazma işlemi gerçekleştirir.
Yazma etkin araçlar (her zaman yazma):
create_release- Yeni sürümler oluşturmadeploy_release- Sürümleri ortamlara ve kiracılara dağıtmarun_runbook- Bir veya daha fazla ortama (ve isteğe bağlı kiracılara) karşı bir runbook çalıştırmaupdate_feature_toggle- Mevcut bir özellik geçişinde ortam başına durumu ve kullanıma sunma yüzdelerini ayarlama
Koşullu yazma aracı: execute, katmanı (okuma / yazma / silme) kendisine iletilen HTTP yöntemine göre belirlenen yapılandırılmış bir REST geri durdurma aracıdır. Ayrıntılar için API Kataloğu ve Geri Durdurma bölümüne bakın.
Yazma araçları bir MCP ortaya çıkarma istemi ile denetlenir: ortaya çıkarmayı destekleyen istemcilerden, çağrı devam etmeden önce onaylamaları istenir. Ortaya çıkarma desteği olmayan istemciler, araç argümanlarında confirm: true geçirmelidir — aksi takdirde araç bir hata ile iptal olur. Kapıyı tamamen atlamak için OCTOPUS_SKIP_ELICITATION=true ayarlayın (katılımsız otomasyon için tasarlanmıştır).
Sunucu, HTTP yöntemine dayalı olarak sunucu tarafında zorunlu kılınan üç katmanlı bir okuma/yazma/silme sınıflandırması kullanır (aracı, niyet hakkında yalan söyleyerek bunu atlatamaz):
- okuma — her zaman izin verilir.
executeüzerinden GET istekleri, artı tümfind_*/get_*/list_*araçları. - yazma —
executeve yukarıdaki her zaman yazma araçları üzerinden POST/PUT/PATCH.--read-onlyayarlandığında engellenir. - silme —
executeüzerinden DELETE.--allow-deletesgerektirir ve--read-onlyayarlandığında engellenir. Küçük bir felaket-silme yolu kümesi (ör.DELETE /api/spaces/{id},DELETE /api/users/{id}) ve API anahtarı uç noktaları, her iki bayrağı da yok sayan katı bir hassas engelleme 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ık izinlerine 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, kontrollü bir kullanım durumunuz yoksa --read-only geçirmeyi düşünün. --allow-deletes varsayılan olarak kapalıdır; yalnızca aracının execute üzerinden DELETE istekleri göndermesi gerektiğinde etkinleştirin. --allow-deletes ile birlikte --read-only geçirirseniz, sunucu başlangıçta stderr’e bir uyarı yazdırır — DELETE istekleri salt okunur kapı tarafından engellenmeye devam eder.
Tam Örnekler
Aşağıdaki tüm örnekler, OCTOPUS_API_KEY ortamda ayarlanmış olduğunu 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ı argümanları
--read-only- Salt okunur modu etkinleştir: tüm seçilmiş yazma araçlarını devre dışı bırak veexecuteüzerinden POST/PUT/PATCH/DELETE’i engelle. Yazmalar varsayılan olarak etkindir; bu bayrak onları kapatır. Bkz. Salt Okunur Mod.--allow-deletes-executearacı üzerinden DELETE isteklerine izin ver.--read-onlyayarlandığında yok sayılır (başlangıç uyarısı ile). Varsayılanfalse.--log-level <level>- Minimum günlük seviyesi (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, yalnızca hataları konsola günlükle--list-tools-by-version- Tüm kayıtlı araçları desteklenen Octopus Sunucu sürümlerine göre listele ve çık
🔨 Araçlar
URL Tabanlı Araçlar
Hızlı başlangıç: Manuel kimlik çıkarmaya gerek kalmadan 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 (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
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 şunları yaparak manuel kimlik çıkarmayı ortadan kaldırır:
- URL’leri otomatik olarak 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ı listelelist_environments: Belirli bir alandaki tüm ortamları listele
API Kataloğu ve Geri Durdurma
Bu araçlar ve kaynaklar, aracının özel bir seçilmiş aracı olmayan Octopus REST uç noktalarına ulaşmasını sağlar; okuma, yazma ve silme işlemleri arasında katı sunucu tarafı denetimi bulunur.
grep_llms_txt: Octopus API kataloğunda grep benzeri anlamlarla arama yapın (octopus://api/llms.txt) (desteklenen minimum 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 yedekleme./apialtı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 birisWritebayrağı değildir. Yöntem denetimi sunucu tarafında sabit kodlanmıştır:GETher zaman izin verilir (yol şekli kontrolüne + hassas engelleme listesine tabidir).POST/PUT/PATCH,--read-onlyayarlandığında engellenir; aksi takdirde ortaya çıkarma yoluyla kullanıcı onayı gerektirir.DELETE,--allow-deletesgerektirir (ve--read-onlyayarlandığında engellenir) artı daha güçlü bir "GERİ DÖNÜŞÜ OLMAYAN" ortaya çıkarma mesajı.- Hassas engelleme listesi (API anahtarı uç noktaları,
DELETE /api/spaces/{id},DELETE /api/users/{id}) her iki bayrak açıkken bile uygulanır. - Yolun
/apiolması veya/api/ile başlaması gerekir — mutlak URL'ler, SDK'ya göreli~/api/...yolları ve/apidışındaki ana bilgisayara göreli yollar (ör./octopus/portal/...) baştan reddedilir, böyleceexecute, Octopus REST API yüzeyine bağlı kalır. - Araç seti başına yol izin listesi yalnızca
--toolsetsdaraltıldığında uygulanır. Her araç seti etkinken (varsayılan veya açık--toolsets all) izin listesi atlanır ve/apialtındaki herhangi bir yol yukarıdaki denetimlere tabi olarak erişilebilirdir.--toolsetsdaraltıldığında izin listesi sonlandırma anahtarı haline gelir: yollar yalnızca sahip oldukları araç seti etkinse çözümlenir, bu nedenle bir araç setini devre dışı bırakmak (ör.certificates),GETüzerinde bileexecutearacılığıyla yollarını erişilemez kılar.
Katalog verileri 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 Server2026.2.3916veya üstünü gerektirir. Yapılandırılan sunucu URL'sine göre anahtarlanmış 5 dakikalık bellek içi önbellek. Gövdeyi doğrudan okumak yerinegrep_llms_txttercih edin.octopus://api/capabilities— çalışan oturumu açıklayan JSON: sunucu sürümü, etkin araç setleri, kullanılabilir araçlar (minimumOctopusVersionile birlikte) ve--read-only/--allow-deletesaçık olup olmadığı. Aracının bu oturumda neyin 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 (hem kiracılı hem de kiracısız dağıtımları destekler)list_deployments: Bir alandaki dağıtımları isteğe bağlı filtrelemeyle listele
Sürümler
create_release: Bir proje için yeni bir sürüm oluşturfind_releases: Bir alandaki sürümleri bul (belirli bir sürümü kimliğe göre alabilir veya sürümleri projeye göre listeleyebilir/filtreleyebilir)
Sürüm detayı ayrıca octopus://spaces/{spaceName}/releases/{releaseId} adresinde bir MCP Kaynağı olarak mevcuttur — sürüm notları ve seçili paketler dahil tam sürüm gövdesini almak için resources/read (veya read_resource yedek aracı) ile getirin.
Runbook'lar
find_runbooks: Bir projedeki runbook'ları bul (belirli bir runbook'u kimliğe göre alabilir veya runbook'ları kısmi ada göre listeleyebilir/filtreleyebilir). Her özet, yayınlanan anlık görüntü kimliğini, çoklu kiracılık modunu 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 ortama karşı çalıştır. Kiracılı çalıştırmaları (kiracı adına veya kiracı etiketine göre), istenen değişkenleri, yönlendirmeli hata modunu, zamanlanmış çalıştırma pencerelerini ve adım veya makine dahil etme/hariç tutmayı destekler.runbookSnapshotIdatlanırsa runbook'un yayınlanan 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 yedek 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 /log kaynağı yerine grep_task_log aracını kullanın:
grep_task_log: Tam gövdeyi getirmeden bir görevin etkinlik günlüğünde arama yapın. Parametreler GNU grep'i yansıtır (pattern,caseInsensitive,invertMatch,fixedString,beforeContext,afterContext,maxCount). 1 dizinlilineNumber, isteğe bağlı önce/sonra bağlam dizileri ve tüm günlük boyunca birtotalMatchessayısı ile eşleşen satırları döndürür.
Kasıtlı olarak /log kaynağı yoktur: etkinlik günlükleri çok megabaytlık olabilir ve adreslenebilir bir kaynak, grep neredeyse her zaman doğru temel olduğunda çağıranları tüm gövdeyi getirmeye teşvik eder.
Kiracılar
find_tenants: Bir alandaki kiracıları bul (belirli bir kiracıyı kimliğe göre alabilir veya kiracıları filtrelerle listeleyebilir/arayabilir)get_tenant_variables: Kiracı değişkenlerini türe göre al (tümü, ortak veya proje)get_missing_tenant_variables: Eksik değerleri olan kiracı değişkenlerini al
Kubernetes
get_kubernetes_live_status: Bir proje ve ortam için Kubernetes kaynaklarının canlı durumunu al (desteklenen minimum sürüm:2025.3)
Makineler (Dağıtım Hedefleri)
find_deployment_targets: Bir alandaki dağıtım hedeflerini bul (belirli bir hedefi kimliğe göre alabilir veya hedefleri filtrelerle listeleyebilir/arayabilir)
Sertifikalar
find_certificates: Bir alandaki sertifikaları bul (belirli bir sertifikayı kimliğe göre alabilir veya sertifikaları filtrelerle listeleyebilir/arayabilir)
Hesaplar
find_accounts: Bir alandaki hesapları bul (belirli bir hesabı kimliğe göre alabilir veya hesapları filtrelerle listeleyebilir/arayabilir)
Kesintiler
find_interruptions: Bir alandaki bekleyen veya geçmiş kesintileri (manuel müdahaleler, onaylar, yönlendirmeli hata istemleri) bul, isteğe bağlı olarak görev, proje, ortam, ilgili belge, sorumluluk veya bekleme durumuna göre filtrele. İnce özetler döndürür; tam Form tanımı (kontrol türleri, Markdown talimatları, düğme seçenekleri, gönderilen Form.Values) içinoctopus://spaces/{spaceName}/interruptions/{interruptionId}kaynağına başvurun.
Özellik Geçişleri
find_feature_toggles: Bir projedeki müşteri özellik geçişlerini listele. Her özet, ortam başına durumu (isEnabled,rolloutPercentage,clientRolloutPercentage) artı birresourceUriiçerir, böylece "X nerede açık" sorusu liste yanıtından yanıtlanabilir.update_feature_toggle: Mevcut bir geçişi ayarla. Dar yüzey — bir ortamı aç/kapat, dağıtım yüzdelerini değiştir veya geçiş düzeyinde açıklamayı / varsayılan durumu güncelle. Dahili olarak mevcut geçişi getirir, yamalarınızı bellekte uygular ve birleştirilmiş gövdeyi PUT eder, böylece belirtilmeyen ortamlar ve belirtilmeyen alanlar korunur. Geçişte zaten yapılandırılmamış bir ortama başvuran yamalar reddedilir.
Tam geçiş 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 Kullanıcı Arayüzünü kullanın): yeni özellik geçişleri oluşturma, geçişleri 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 dağıtım sürecini kimliğe göre alget_variables: Bir proje için tüm proje değişkenlerini ve kütüphane değişken seti değişkenlerini al (gitRefaracılığıyla yapılandırma olarak kod projelerini destekler)get_branches: Sürüm kontrollü bir proje için Git dallarını al (desteklenen minimum sürüm:2021.2)get_current_user: Mevcut kimliği doğrulanmış kullanıcı hakkında bilgi al
🔒 Güvenlik Hususları
Octopus MCP Sunucusu hem okuma hem de yazma işlemlerini içerir. Önemli güvenlik hususları:
Okuma İşlemleri
- Gizli 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 kullanılabilir:
- 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şı çalıştırabilir
- Özellik geçişlerini güncelleme: Mevcut geçişlerde ortam başına durumu değiştirebilir ve dağıtım yüzdelerini değiştirebilir
executeyedeklemesi aracılığıyla keyfi POST/PUT/PATCH:/apialtındaki yollarla sınırlı, her zaman açık hassas engelleme listesi ile. Araç seti başına yol izin listesi yalnızca--toolsetsdaraltıldığında uygulanır; tüm araç setleri etkinken (varsayılan) tek yol denetimleri/apisınırı ve hassas engelleme listesidir.
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önüşü olmayan işlemler için kasıtlı bir katılım — ve --read-only ayarlandığında engellenmeye devam eder.
Kritik Güvenlik Önlemleri:
- En Az Ayrıcalık: Kullanım durumunuz için gereken minimum izinlere sahip API anahtarları kullanın
- Salt Okunur Moda Katılın: Yazmalar varsayılan olarak etkindir. Üretim için, yazma işlemleri için belirli, kontrollü bir kullanım durumunuz yoksa
--read-onlyiletin. DELETE her zaman ek--allow-deleteskatılımını gerektirir. - Yöntem denetimi sunucu tarafında ve sabit kodlanmıştır:
execute'a iletilen HTTP yöntemi yetkili sınıflandırıcıdır. Aracı, çağrının ne yaptığını yanlış tanıtarak denetimi atlatamaz — POST/PUT/PATCH/DELETE istekleri, istek gövdesindeki düz yazıdan bağımsız olarak katman özel denetim alır. - Araç seti filtreleme sonlandırma anahtarı olarak ikiye katlanır:
--toolsetsdaraltmak, devre dışı bırakılan araç setlerinin hem seçilmiş araçlarını hem deexecuteizin listesinden yollarını kaldırır. (İzin listesi yalnızca araç setleri daraltıldığında dikkate alınır; tüm araç setleri etkinkenexecute,/apişekil kontrolü ve hassas engelleme listesi ile sınırlıdır.) - İstem Enjeksiyonu Riski: Aracıları tam otomatik şekilde çalıştırmak sizi istem enjeksiyonu 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. execute aracılığıyla DELETE anlamlarına özel olarak ihtiyacınız yoksa --allow-deletes 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 olmaktan çıkarır. Çoğu MCP istemcisi şu anda araç çağrılarını zincirlemeyi (bir aracın çıktısını bir sonrakine girdi olarak kullanmayı) desteklemez ve bunun yerine sonuçları belirteç belirteç kopyalamaya başvurur, bu da sıklıkla halüsinasyonlara yol açar. Analiz amacıyla Octopus örneğinizden geçmiş verileri işlemek istiyorsanız, API'yi doğrudan kullanmanızı veya araç çağrı sonuçlarını programlı olarak işleyebilen kendi MCP istemcinizi yazmanızı öneririz.
Performans
MCP Sunucusu teknik olarak mevcut Octopus Server API'sinin üzerinde ince bir katmandır. Bu nedenle büyük miktarda veri alabilir (örneğin, binlerce dağıtım talep etmek). 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 kutudan çıktığı gibi bu konuda gerçekten iyidir).
🤝 Katkılar
Katkılarınızı bekliyoruz! :heart: Bu projeye nasıl dahil olabileceğiniz hakkında bilgi almak için lütfen Katkı Rehberimizi okuyun.
Octopus MCP Server'ı nasıl kullanmayı planladığınızı ve gelecek sürümlerde hangi özellikleri görmek istediğinizi duymak için sabırsızlanıyoruz.
Geri bildirim sağlamak veya özellik talep etmek için lütfen Sorunlar bölümünü kullanın.
Mevcut bir Octopus müşterisiyseniz, MCP sunucumuzu kullanırken karşılaştığınız sorunları lütfen destek ekibimize bildirin. Bu, standart destek garantilerimiz kapsamında zamanında yanıt almanızı sağlayacaktır.
🙋 SSS
Uzak bir MCP sunucusu yayınlama planınız var mı?
Octopus Server'a doğrudan bir MCP sunucusu entegre etmek için çalışıyoruz. Bu, daha karmaşık MCP araçları oluşturmamızın yanı sıra şunların da önünü açacak:
- Octopus Yöneticilerine MCP istemcileri üzerinde daha ayrıntılı kontrol verme
- İstemci kimlik doğrulaması için OAuth'ı yerel olarak destekleme
- MCP çıktısına güvenlik tarama araçlarını entegre etme
Bu sizin için ilgi çekiciyse, lütfen yol haritası öğemize ilginizi kaydedin.
Lisans
Bu proje, Mozilla Public License 2.0 açık kaynak lisansı koşulları altında lisanslanmıştır.