Shipyard MCP Server

resmi

Shipyard 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:

AdAçıklamaTürVarsayılan Değer
branchDal adına göre filtrelestring
deletedSilinmiş ortamları döndürbooleanfalse
jsonTam JSON çıktısını yazdırbooleanfalse
nameUygulama adına göre filtrelestring
org-nameBirden fazla kuruluşun üyesiyseniz kuruluş adına göre filtrelestringvarsayılan kuruluşunuz
pageİstenen sayfa numarasıint1
page-sizeİstenen sayfa boyutuint20
pull-request-numberÇekme isteği numarasına göre filtrelestring
repo-nameDepo adına göre filtrelestring

Örnekler:

  • flask-backend deposunu main dalı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:

AdAçıklamaTürVarsayılan Değer
jsonTam JSON çıktısını yazdırbooleanfalse
org-nameBirden fazla kuruluşun üyesiyseniz kuruluş adına göre filtrelestringvarsayı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:

AdAçıklamaTürVarsayılan Değer
followGünlük çıktısını takip etbooleanfalse
tailGösterilecek son günlük satırı sayısıint3000

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ı listele
  • get_environment - Belirli ortam ayrıntılarını al
  • stop_environment - Çalışan bir ortamı durdur
  • restart_environment - Durdurulmuş bir ortamı yeniden başlat
  • rebuild_environment - En son commit ile yeniden derle
  • cancel_environment - Ortamın en son derlemesini iptal et
  • revive_environment - Silinmiş bir ortamı canlandır

Hizmet Yönetimi (2 araç)

  • get_services - Bir ortamdaki hizmetleri listele
  • get_logs - Bir hizmetten günlükleri al

Birim Yönetimi (5 araç)

  • get_volumes - Bir ortamdaki birimleri listele
  • reset_volume - Birimi başlangıç durumuna sıfırla
  • get_snapshots - Birim anlık görüntülerini listele
  • create_snapshot - Birim anlık görüntüsü oluştur
  • load_snapshot - Birim anlık görüntüsü yükle

Kuruluş Yönetimi (3 araç)

  • get_orgs - Tüm kuruluşları listele
  • get_org - Geçerli varsayılan kuruluşu al
  • set_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ır
  • port_forward - Hizmetleri yerel makineye port yönlendir
  • telepresence_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" }