Shipyard MCP Server
resmiCLI 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:
| Nama | Deskripsi | Tipe | Nilai Default |
|---|---|---|---|
| branch | Filter berdasarkan nama cabang | string | |
| deleted | Kembalikan lingkungan yang dihapus | boolean | false |
| json | Cetak output JSON lengkap | boolean | false |
| name | Filter berdasarkan nama aplikasi | string | |
| org-name | Filter berdasarkan nama org, jika Anda bagian dari beberapa org | string | org default Anda |
| page | Nomor halaman yang diminta | int | 1 |
| page-size | Ukuran halaman yang diminta | int | 20 |
| pull-request-number | Filter berdasarkan nomor pull request | string | |
| repo-name | Filter berdasarkan nama repo | string |
Contoh:
- Daftar semua lingkungan yang menjalankan repo
flask-backenddi cabangmain:
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:
| Nama | Deskripsi | Tipe | Nilai Default |
|---|---|---|---|
| json | Cetak output JSON lengkap | boolean | false |
| org-name | Filter berdasarkan nama org, jika Anda bagian dari beberapa org | string | org 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:
| Nama | Deskripsi | Tipe | Nilai Default |
|---|---|---|---|
| follow | Ikuti output log | boolean | false |
| tail | # baris log terbaru untuk ditampilkan | int | 3000 |
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 filterget_environment- Dapatkan detail lingkungan tertentustop_environment- Hentikan lingkungan yang sedang berjalanrestart_environment- Mulai ulang lingkungan yang dihentikanrebuild_environment- Bangun ulang dengan komit terbarucancel_environment- Batalkan build terbaru lingkunganrevive_environment- Hidupkan kembali lingkungan yang dihapus
Manajemen Layanan (2 alat)
get_services- Daftar layanan di suatu lingkunganget_logs- Dapatkan log dari suatu layanan
Manajemen Volume (5 alat)
get_volumes- Daftar volume di suatu lingkunganreset_volume- Reset volume ke keadaan awalget_snapshots- Daftar snapshot volumecreate_snapshot- Buat snapshot volumeload_snapshot- Muat snapshot volume
Manajemen Organisasi (3 alat)
get_orgs- Daftar semua organisasiget_org- Dapatkan organisasi default saat iniset_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 layananport_forward- Port forward layanan ke mesin lokaltelepresence_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" }