Shipyard MCP Server

resmi

CLI Shipyard menyediakan server MCP bagi agen untuk mengelola lingkungan Shipyard secara langsung: dengan menarik log, membandingkan cabang, menjalankan pengujian, serta menghentikan/memulai lingkungan.

Dokumentasi

CLI Shipyard

Sebuah alat untuk mengelola Lingkungan Ephemeral di platform Shipyard.

Instalasi

  • Linux dan macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Buka halaman rilis dan unduh file eksekusi untuk Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Login

Jalankan shipyard login untuk menginisialisasi CLI. Ini akan meminta Anda untuk masuk ke Shipyard melalui peramban. CLI kemudian akan menyimpan token API Anda di konfigurasi lokal. Anda siap untuk mulai menjalankan perintah.

Atau Atur Token Anda Secara Manual

Atur token API Shipyard Anda sebagai nilai dari variabel lingkungan SHIPYARD_API_TOKEN.

Anda bisa mendapatkannya dengan membuka halaman profil Anda.

Anda dapat menghubungi kami di [email protected] jika Anda ingin mengaktifkan akses API untuk organisasi Anda. Jika Anda memiliki pertanyaan lain, silakan bergabung dengan komunitas Slack kami.

shipyard set token

Sebagai alternatif, Anda dapat menggunakan file konfigurasi yang disimpan di $HOME/.shipyard/config.yaml secara default. Saat Anda menjalankan CLI untuk pertama kalinya, ia akan membuat konfigurasi default kosong yang kemudian dapat Anda edit.

Anda juga dapat menentukan jalur konfigurasi non-default dengan menambahkan flag --config {path} ke perintah apa pun.

Tambahkan nilai konfigurasi apa pun di konfigurasi Anda dan pastikan file mengikuti sintaks YAML. Contohnya:

api_token: <your-token>
org: <your-non-default-org>

Nilai dari variabel lingkungan Anda akan menimpa nilai yang sesuai di konfigurasi.

Penggunaan dasar

Dapatkan semua organisasi tempat Anda menjadi anggota

shipyard get orgs

Atur organisasi default global

shipyard set org {org-name}

Dapatkan organisasi yang saat ini dikonfigurasi

shipyard get org

Daftar semua lingkungan

shipyard get environments

Flag yang tersedia:

NamaDeskripsiTipeNilai Default
branchFilter berdasarkan nama cabangstring
deletedKembalikan lingkungan yang dihapusbooleanfalse
jsonCetak output JSON lengkapbooleanfalse
nameFilter berdasarkan nama aplikasistring
org-nameFilter berdasarkan nama org, jika Anda bagian dari beberapa orgstringorg default Anda
pageNomor halaman yang dimintaint1
page-sizeUkuran halaman yang dimintaint20
pull-request-numberFilter berdasarkan nomor pull requeststring
repo-nameFilter berdasarkan nama repostring

Contoh:

  • Daftar semua lingkungan yang menjalankan repo flask-backend di cabang main:
shipyard get environments --repo-name flask-backend --branch main
  • Daftar semua lingkungan yang dihapus:
shipyard get environments --deleted

Dapatkan detail untuk lingkungan tertentu berdasarkan UUID-nya

shipyard get environment {environment_uuid}

Flag yang tersedia:

NamaDeskripsiTipeNilai Default
jsonCetak output JSON lengkapbooleanfalse
org-nameFilter berdasarkan nama org, jika Anda bagian dari beberapa orgstringorg default Anda

Hentikan lingkungan yang sedang berjalan

shipyard stop environment {environment_uuid}

Mulai ulang lingkungan yang dihentikan

shipyard restart environment {environment_uuid}

Batalkan build yang sedang berlangsung untuk suatu lingkungan

shipyard cancel environment {environment_uuid}

Bangun ulang suatu lingkungan

shipyard rebuild environment {environment_uuid}

Hidupkan kembali lingkungan yang dihapus

shipyard revive environment {environment_uuid}

Dapatkan semua layanan dan port yang terbuka untuk suatu lingkungan

shipyard get services --env {environment_uuid}

Exec ke dalam layanan lingkungan yang sedang berjalan

Jalankan perintah apa pun dengan argumen dan flag apa pun di layanan tertentu untuk lingkungan yang sedang berjalan. Lewati argumen perintah apa pun setelah garis miring ganda.

shipyard exec --env {environment_uuid} --service {service_name} -- bash

Port forward port layanan lingkungan yang sedang berjalan

shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}

Dapatkan log untuk layanan lingkungan yang sedang berjalan

shipyard logs --env {environment_uuid} --service {service_name}

Kunjungi suatu lingkungan

shipyard visit {environment_uuid}

Flag yang tersedia:

NamaDeskripsiTipeNilai Default
followIkuti output logbooleanfalse
tail# baris log terbaru untuk ditampilkanint3000

Bekerja dengan volume

Daftar semua volume di suatu lingkungan

shipyard get volumes --env {environment_uuid}

Daftar semua snapshot volume di suatu lingkungan

shipyard get snapshots --env {environment_uuid}

Reset volume di suatu lingkungan

shipyard reset volume --env {environment_uuid}

Buat snapshot di suatu lingkungan

shipyard create snapshot --env {environment_uuid}

Muat snapshot volume di suatu lingkungan

shipyard load snapshot --env {environment_uuid} --sequence-number {n}

Unggah file ke volume di suatu lingkungan

shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}

Hubungkan ke telepresence

shipyard telepresence connect --env {environment_uuid}

Dari sana, Anda akan dapat berkomunikasi langsung dengan semua pod di namespace. Anda mungkin harus menggunakan hostname namespace untuk berkomunikasi dengan layanan, yang bisa Anda dapatkan melalui telepresence status di bawah bidang Namespace. Misalnya, untuk berkomunikasi dengan redis, Anda akan menggunakan redis.shipyard-app-build-{uuid}

Bangun file eksekusi dari kode:

Anda dapat membuat file eksekusi dengan menjalankan perintah berikut:

make

Untuk menjalankan file eksekusi baru ini:

./shipyard

Aktifkan Autocompletion

Bash

Skrip ini bergantung pada paket bash-completion. Jika belum terinstal, Anda dapat menginstalnya melalui manajer paket OS Anda. Untuk memuat completion di sesi shell saat ini:

source <(shipyard completion bash)

Untuk memuat completion untuk setiap sesi baru, jalankan yang berikut ini sekali.

Di Linux:

shipyard completion bash > /etc/bash_completion.d/shipyard

Di macOS:

shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard

Zsh

Jika completion shell belum diaktifkan di lingkungan Anda, Anda perlu mengaktifkannya. Anda dapat menjalankan yang berikut ini sekali:

echo "autoload -U compinit; compinit" >> ~/.zshrc

Untuk memuat completion di sesi shell saat ini:

source <(shipyard completion zsh); compdef _shipyard shipyard

Untuk memuat completion untuk setiap sesi baru, jalankan yang berikut ini sekali.

Di Linux:

shipyard completion zsh > "${fpath[1]}/_shipyard"

Di macOS:

shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard

Anda perlu memulai shell baru agar pengaturan ini berlaku.

Fish

Untuk memuat completion di sesi shell saat ini:

$ shipyard completion fish | source

Untuk memuat completion untuk setiap sesi, jalankan sekali:

shipyard completion fish > ~/.config/fish/completions/shipyard.fish

PowerShell

Untuk memuat completion di sesi shell saat ini:

shipyard completion powershell | Out-String | Invoke-Expression

Untuk memuat completion untuk setiap sesi baru, jalankan:

shipyard completion powershell > shipyard.ps1

dan source file ini dari profil PowerShell Anda.

Integrasi Model Context Protocol (MCP)

CLI Shipyard menyediakan server MCP untuk integrasi asisten AI. Ini memungkinkan asisten AI seperti Claude untuk mengelola lingkungan Shipyard secara langsung.

Alat MCP yang Didukung

Manajemen Lingkungan (7 alat)

  • get_environments - Daftar lingkungan dengan filter
  • get_environment - Dapatkan detail lingkungan tertentu
  • stop_environment - Hentikan lingkungan yang sedang berjalan
  • restart_environment - Mulai ulang lingkungan yang dihentikan
  • rebuild_environment - Bangun ulang dengan komit terbaru
  • cancel_environment - Batalkan build terbaru lingkungan
  • revive_environment - Hidupkan kembali lingkungan yang dihapus

Manajemen Layanan (2 alat)

  • get_services - Daftar layanan di suatu lingkungan
  • get_logs - Dapatkan log dari suatu layanan

Manajemen Volume (5 alat)

  • get_volumes - Daftar volume di suatu lingkungan
  • reset_volume - Reset volume ke keadaan awal
  • get_snapshots - Daftar snapshot volume
  • create_snapshot - Buat snapshot volume
  • load_snapshot - Muat snapshot volume

Manajemen Organisasi (3 alat)

  • get_orgs - Daftar semua organisasi
  • get_org - Dapatkan organisasi default saat ini
  • set_org - Atur organisasi default

Alat Terbatas

Alat ini mengembalikan teks bantuan yang mengarahkan pengguna untuk menggunakan perintah CLI sebagai gantinya:

  • exec_service - Jalankan perintah di kontainer layanan
  • port_forward - Port forward layanan ke mesin lokal
  • telepresence_connect - Hubungkan ke telepresence

Menambahkan ke Claude

Dengan token API dan nama org:

claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve

Jika sudah dikonfigurasi dengan CLI:

claude mcp add shipyard -- shipyard mcp serve

Menambahkan ke Codex CLI

Edit ~/.codex/config.toml dan tambahkan:

[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }