Shipyard MCP Server
resmiShipyard CLI, aracıların Shipyard ortamlarını doğrudan yönetmesi için bir MCP sunucusu sağlar: günlükleri çekme, dalları karşılaştırma, testleri çalıştırma ve ortamları durdurma/başlatma gibi işlemlerle.
Dokümantasyon
Shipyard CLI
Shipyard platformunda Geçici Ortamları yönetmek için bir araç.
Kurulum
-
Linux ve macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Sürümler sayfasına gidin ve Windows için çalıştırılabilir dosyayı indirin.
-
Homebrew
brew tap shipyard/tap brew install shipyard
Giriş
CLI'ı başlatmak için shipyard login komutunu çalıştırın. Bu, tarayıcıda Shipyard'a giriş yapmanızı isteyecektir. CLI daha sonra
API anahtarınızı yerel bir yapılandırmaya kaydedecektir. Komutları çalıştırmaya başlamaya hazırsınız.
Veya Anahtarınızı Manuel Olarak Ayarlayın
Shipyard API anahtarınızı SHIPYARD_API_TOKEN ortam değişkeninin değeri olarak ayarlayın.
Bunu profil sayfanıza giderek alabilirsiniz.
Kuruluşunuz için API erişimini etkinleştirmek isterseniz bizimle [email protected] adresinden iletişime geçebilirsiniz. Başka sorularınız varsa, topluluk Slack kanalımıza katılmaktan çekinmeyin.
shipyard set token
Alternatif olarak, varsayılan olarak $HOME/.shipyard/config.yaml konumunda saklanan bir yapılandırma dosyası kullanabilirsiniz.
CLI'ı ilk kez çalıştırdığınızda, daha sonra düzenleyebileceğiniz varsayılan boş bir yapılandırma oluşturacaktır.
Ayrıca herhangi bir komuta eklenen --config {path} bayrağı ile varsayılan olmayan bir yapılandırma yolu belirtebilirsiniz.
Yapılandırmanıza herhangi bir yapılandırma değeri ekleyin ve dosyanın YAML sözdizimini takip ettiğinden emin olun. Örneğin:
api_token: <your-token>
org: <your-non-default-org>
Ortam değişkenlerinizin değerleri, yapılandırmadaki karşılık gelen değerleri geçersiz kılar.
Temel kullanım
Üyesi olduğunuz tüm kuruluşları alın
shipyard get orgs
Genel varsayılan kuruluşu ayarlayın
shipyard set org {org-name}
Şu anda yapılandırılmış kuruluşu alın
shipyard get org
Tüm ortamları listeleyin
shipyard get environments
Kullanılabilir bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| branch | Dal adına göre filtrele | string | |
| deleted | Silinmiş ortamları döndür | boolean | false |
| json | Tam JSON çıktısını yazdır | boolean | false |
| name | Uygulama adına göre filtrele | string | |
| org-name | Birden fazla kuruluşun üyesiyseniz kuruluş adına göre filtrele | string | varsayılan kuruluşunuz |
| page | İstenen sayfa numarası | int | 1 |
| page-size | İstenen sayfa boyutu | int | 20 |
| pull-request-number | Çekme isteği numarasına göre filtrele | string | |
| repo-name | Depo adına göre filtrele | string |
Örnekler:
flask-backenddeposunumaindalında çalıştıran tüm ortamları listeleyin:
shipyard get environments --repo-name flask-backend --branch main
- Tüm silinmiş ortamları listeleyin:
shipyard get environments --deleted
UUID'sine göre belirli bir ortamın ayrıntılarını alın
shipyard get environment {environment_uuid}
Kullanılabilir bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| json | Tam JSON çıktısını yazdır | boolean | false |
| org-name | Birden fazla kuruluşun üyesiyseniz kuruluş adına göre filtrele | string | varsayılan kuruluşunuz |
Çalışan bir ortamı durdurun
shipyard stop environment {environment_uuid}
Durdurulmuş bir ortamı yeniden başlatın
shipyard restart environment {environment_uuid}
Bir ortam için devam eden derlemeyi iptal edin
shipyard cancel environment {environment_uuid}
Bir ortamı yeniden derleyin
shipyard rebuild environment {environment_uuid}
Silinmiş bir ortamı canlandırın
shipyard revive environment {environment_uuid}
Bir ortam için tüm hizmetleri ve açık portları alın
shipyard get services --env {environment_uuid}
Çalışan bir ortamın hizmetinde komut çalıştırın
Çalışan bir ortamda belirli bir hizmet için herhangi bir komutu, argümanları ve bayrakları çalıştırın. Komut argümanlarını çift eğik çizgiden sonra iletin.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Çalışan bir ortamın hizmetinin portunu yönlendirin
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Çalışan bir ortamın hizmeti için günlükleri alın
shipyard logs --env {environment_uuid} --service {service_name}
Bir ortamı ziyaret edin
shipyard visit {environment_uuid}
Kullanılabilir bayraklar:
| Ad | Açıklama | Tür | Varsayılan Değer |
|---|---|---|---|
| follow | Günlük çıktısını takip et | boolean | false |
| tail | Gösterilecek son günlük satırı sayısı | int | 3000 |
Birimlerle çalışma
Bir ortamdaki tüm birimleri listeleyin
shipyard get volumes --env {environment_uuid}
Bir ortamdaki tüm birim anlık görüntülerini listeleyin
shipyard get snapshots --env {environment_uuid}
Bir ortamdaki bir birimi sıfırlayın
shipyard reset volume --env {environment_uuid}
Bir ortamda anlık görüntü oluşturun
shipyard create snapshot --env {environment_uuid}
Bir ortamda birim anlık görüntüsü yükleyin
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Bir ortamdaki bir birime dosya yükleyin
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
Telepresence'a bağlanın
shipyard telepresence connect --env {environment_uuid}
Buradan itibaren, ad alanındaki tüm pod'larla doğrudan iletişim kurabileceksiniz. Hizmetlerle iletişim kurmak için ad alanı ana bilgisayar adını kullanmanız gerekebilir, bunu telepresence status altındaki Namespace alanından alabilirsiniz. Örneğin, redis ile iletişim kurmak için redis.shipyard-app-build-{uuid} kullanırsınız.
Koddan çalıştırılabilir dosya oluşturma:
Aşağıdaki komutu çalıştırarak bir çalıştırılabilir dosya oluşturabilirsiniz:
make
Bu yeni çalıştırılabilir dosyayı çalıştırmak için:
./shipyard
Otomatik Tamamlamayı Etkinleştirme
Bash
Bu betik bash-completion paketine bağlıdır. Henüz kurulu değilse, işletim sisteminizin paket yöneticisi aracılığıyla kurabilirsiniz.
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
source <(shipyard completion bash)
Her yeni oturum için tamamlamaları yüklemek üzere aşağıdakini bir kez çalıştırın.
Linux'ta:
shipyard completion bash > /etc/bash_completion.d/shipyard
macOS'ta:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
Ortamınızda kabuk tamamlama henüz etkin değilse, etkinleştirmeniz gerekecektir. Aşağıdakini bir kez çalıştırabilirsiniz:
echo "autoload -U compinit; compinit" >> ~/.zshrc
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
source <(shipyard completion zsh); compdef _shipyard shipyard
Her yeni oturum için tamamlamaları yüklemek üzere aşağıdakini bir kez çalıştırın.
Linux'ta:
shipyard completion zsh > "${fpath[1]}/_shipyard"
macOS'ta:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
Bu kurulumun etkili olması için yeni bir kabuk başlatmanız gerekecektir.
Fish
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
$ shipyard completion fish | source
Her oturum için tamamlamaları yüklemek üzere bir kez çalıştırın:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Geçerli kabuk oturumunuzda tamamlamaları yüklemek için:
shipyard completion powershell | Out-String | Invoke-Expression
Her yeni oturum için tamamlamaları yüklemek üzere şunu çalıştırın:
shipyard completion powershell > shipyard.ps1
ve bu dosyayı PowerShell profilinizden kaynak olarak alın.
Model Bağlam Protokolü (MCP) Entegrasyonu
Shipyard CLI, AI asistan entegrasyonu için bir MCP sunucusu sağlar. Bu, Claude gibi AI asistanlarının Shipyard ortamlarını doğrudan yönetmesine olanak tanır.
Desteklenen MCP Araçları
Ortam Yönetimi (7 araç)
get_environments- Filtreleme ile ortamları listeleget_environment- Belirli ortam ayrıntılarını alstop_environment- Çalışan bir ortamı durdurrestart_environment- Durdurulmuş bir ortamı yeniden başlatrebuild_environment- En son commit ile yeniden derlecancel_environment- Ortamın en son derlemesini iptal etrevive_environment- Silinmiş bir ortamı canlandır
Hizmet Yönetimi (2 araç)
get_services- Bir ortamdaki hizmetleri listeleget_logs- Bir hizmetten günlükleri al
Birim Yönetimi (5 araç)
get_volumes- Bir ortamdaki birimleri listelereset_volume- Birimi başlangıç durumuna sıfırlaget_snapshots- Birim anlık görüntülerini listelecreate_snapshot- Birim anlık görüntüsü oluşturload_snapshot- Birim anlık görüntüsü yükle
Kuruluş Yönetimi (3 araç)
get_orgs- Tüm kuruluşları listeleget_org- Geçerli varsayılan kuruluşu alset_org- Varsayılan kuruluşu ayarla
Sınırlı Araçlar
Bu araçlar, kullanıcıları bunun yerine CLI komutlarını kullanmaya yönlendiren yardım metni döndürür:
exec_service- Hizmet konteynerlerinde komut çalıştırport_forward- Hizmetleri yerel makineye port yönlendirtelepresence_connect- Telepresence'a bağlan
Claude'a Ekleme
API anahtarı ve kuruluş adı ile:
claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve
CLI ile zaten yapılandırılmışsa:
claude mcp add shipyard -- shipyard mcp serve
Codex CLI'ye Ekleme
~/.codex/config.toml dosyasını düzenleyin ve şunu ekleyin:
[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }