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.

Dokümantasyon

Octopus Deploy Logo

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şturma
  • deploy_release - Sürümleri ortamlara ve kiracılara dağıtma
  • run_runbook - Bir veya daha fazla ortama (ve isteğe bağlı kiracılara) karşı bir runbook çalıştırma
  • update_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üm find_* / get_* / list_* araçları.
  • yazmaexecute ve yukarıdaki her zaman yazma araçları üzerinden POST/PUT/PATCH. --read-only ayarlandığında engellenir.
  • silmeexecute üzerinden DELETE. --allow-deletes gerektirir ve --read-only ayarlandığı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 ve execute üzerinden POST/PUT/PATCH/DELETE’i engelle. Yazmalar varsayılan olarak etkindir; bu bayrak onları kapatır. Bkz. Salt Okunur Mod.
  • --allow-deletes - execute aracı üzerinden DELETE isteklerine izin ver. --read-only ayarlandığında yok sayılır (başlangıç uyarısı ile). Varsayılan false.
  • --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ı listele
  • list_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. /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 denetimi sunucu tarafında sabit kodlanmıştır:
    • GET her zaman izin verilir (yol şekli kontrolüne + hassas engelleme listesine tabidir).
    • POST/PUT/PATCH, --read-only ayarlandığında engellenir; aksi takdirde ortaya çıkarma yoluyla kullanıcı onayı gerektirir.
    • DELETE, --allow-deletes gerektirir (ve --read-only ayarlandığı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 /api olması veya /api/ ile başlaması gerekir — 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üzeyine bağlı kalır.
    • Araç seti başına yol izin listesi yalnızca --toolsets daraltıldığında uygulanır. Her araç seti etkinken (varsayılan veya açık --toolsets all) izin listesi atlanır ve /api altındaki herhangi bir yol yukarıdaki denetimlere tabi olarak erişilebilirdir. --toolsets daraltı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 bile execute aracı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 Server 2026.2.3916 veya ü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 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 birlikte) ve --read-only / --allow-deletes açı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ştur
  • find_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. runbookSnapshotId atlanı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 dizinli lineNumber, isteğe bağlı önce/sonra bağlam dizileri ve tüm günlük boyunca bir totalMatches sayı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çin octopus://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ı bir resourceUri iç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 al
  • get_variables: Bir proje için tüm proje değişkenlerini ve kütüphane değişken seti değişkenlerini al (gitRef aracı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
  • execute yedeklemesi aracılığıyla keyfi POST/PUT/PATCH: /api altındaki yollarla sınırlı, her zaman açık hassas engelleme listesi ile. Araç seti başına yol izin listesi yalnızca --toolsets daraltıldığında uygulanır; tüm araç setleri etkinken (varsayılan) tek yol denetimleri /api sı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:

  1. En Az Ayrıcalık: Kullanım durumunuz için gereken minimum izinlere sahip API anahtarları kullanın
  2. 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-only iletin. DELETE her zaman ek --allow-deletes katılımını gerektirir.
  3. 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.
  4. Araç seti filtreleme sonlandırma anahtarı olarak ikiye katlanır: --toolsets daraltmak, devre dışı bırakılan araç setlerinin hem seçilmiş araçlarını hem de execute izin listesinden yollarını kaldırır. (İzin listesi yalnızca araç setleri daraltıldığında dikkate alınır; tüm araç setleri etkinken execute, /api şekil kontrolü ve hassas engelleme listesi ile sınırlıdır.)
  5. İ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.