Shipyard
公式Shipyard CLIは、エージェントがShipyard環境を直接管理するためのMCPサーバーを提供します。ログの取得、ブランチの比較、テストの実行、環境の停止/開始が可能です。
Shipyard MCPで何ができますか?
- List environments with filters —
shipyard get environmentsを使用して、リポジトリ、ブランチ、またはプルリクエストでフィルタリングされた環境を表示するよう要求します。 - Inspect environment details — 特定の環境UUIDの完全な情報を取得します。スクリプト用のバイパストークンも含まれます。
- Manage environment lifecycle — UUIDで環境を停止、再起動、ビルドキャンセル、再ビルド、または削除済み環境の復元を行います。
- Access services and logs — 公開ポートの取得、ログのストリーミング、コマンド実行、または実行中の環境のサービスへのポートフォワードを行います。
- Handle volumes and snapshots — 環境内のボリュームの一覧表示、リセット、スナップショット作成、ロード、またはファイルのアップロードを行います。
- Deploy detached environments — カスタムブランチオーバーライドと再ビルドポリシーを使用して、アプリケーションビルドをクローンします。
ドキュメント
Shipyard CLI
Shipyardプラットフォーム上でEphemeral Environmentsを管理するためのツールです。
AIアシスタントをお使いですか?CLIにはMCPサーバーが含まれています:AIアシスタントからShipyardを使用するを参照してください。
インストール
-
LinuxおよびmacOS
curl https://www.shipyard.sh/install.sh | bash -
Windows リリースページに移動し、Windows用の実行ファイルをダウンロードしてください。
-
Homebrew
brew tap shipyard/tap brew install shipyard
ログイン
shipyard loginを実行してCLIを初期化します。ブラウザでShipyardにログインするよう求められます。CLIはAPIトークンをローカル設定に保存します。これでコマンドの実行を開始できます。
またはトークンを手動で設定する
Shipyard APIトークンをSHIPYARD_API_TOKEN環境変数の値として設定してください。
トークンはプロフィールページから取得できます。
APIアクセスを組織で有効にしたい場合は、support@shipyard.buildまでご連絡ください。その他のご質問がある場合は、コミュニティSlackにご参加ください。
shipyard set token
あるいは、デフォルトで$HOME/.shipyard/config.yamlに保存される設定ファイルを使用することもできます。CLIを初めて実行すると、編集可能なデフォルトの空の設定ファイルが作成されます。
また、任意のコマンドに--config {path}フラグを追加することで、デフォルト以外の設定パスを指定することもできます。
設定ファイルに設定値を追加し、ファイルがYAML構文に従っていることを確認してください。例:
api_token: <your-token>
org: <your-non-default-org>
環境変数の値は、設定ファイル内の対応する値よりも優先されます。
基本的な使い方
所属するすべての組織を取得する
shipyard get orgs
グローバルデフォルトの組織を設定する
shipyard set org {org-name}
現在設定されている組織を取得する
shipyard get org
すべての環境を一覧表示する
shipyard get environments
利用可能なフラグ:
| 名前 | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| branch | ブランチ名でフィルタリング | string | |
| deleted | 削除された環境を返す | boolean | false |
| json | 完全なJSON出力を表示 | boolean | false |
| name | アプリケーション名でフィルタリング | string | |
| org-name | 複数の組織に所属している場合、組織名でフィルタリング | string | デフォルトの組織 |
| page | 要求されたページ番号 | int | 1 |
| page-size | 要求されたページサイズ | int | 20 |
| pull-request-number | プルリクエスト番号でフィルタリング | string | |
| repo-name | リポジトリ名でフィルタリング | string |
例:
flask-backendリポジトリのmainブランチで実行中のすべての環境を一覧表示する:
shipyard get environments --repo-name flask-backend --branch main
- 削除されたすべての環境を一覧表示する:
shipyard get environments --deleted
UUIDで特定の環境の詳細を取得する
shipyard get environment {environment_uuid}
利用可能なフラグ:
| 名前 | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| json | 完全なJSON出力を表示 | boolean | false |
| org | 複数の組織に所属している場合、環境の組織 | string | デフォルトの組織 |
| bypass-token | スクリプト用に環境のバイパストークンのみを表示 | boolean | false |
--bypass-tokenを使用すると、スクリプトがトークンを誰かが入力したり表示したりせずに使用できます:
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
実行中の環境を停止する
shipyard stop environment {environment_uuid}
停止した環境を再起動する
shipyard restart environment {environment_uuid}
環境の進行中のビルドをキャンセルする
shipyard cancel environment {environment_uuid}
環境を再ビルドする
shipyard rebuild environment {environment_uuid}
削除された環境を復元する
shipyard revive environment {environment_uuid}
デタッチされた環境をデプロイする
既存のアプリケーションビルドをクローンして、新しい独立した(「デタッチされた」)環境を作成します。 デタッチされた環境が組織で有効になっている必要があります。
shipyard detached deploy {application_build_uuid} --name my-detached-env
リポジトリごとにブランチを上書きし、デタッチされた環境が新しいコミットで再ビルドされるかどうかを制御します:
# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never
# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never
環境のすべてのサービスと公開ポートを取得する
shipyard get services --env {environment_uuid}
実行中の環境のサービスでコマンドを実行する
実行中の環境の指定されたサービスで、任意のコマンドを任意の引数とフラグで実行します。コマンド引数はダブルスラッシュの後に渡します。
shipyard exec --env {environment_uuid} --service {service_name} -- bash
実行中の環境のサービスのポートを転送する
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
実行中の環境のサービスのログを取得する
shipyard logs --env {environment_uuid} --service {service_name}
環境にアクセスする
shipyard visit {environment_uuid}
利用可能なフラグ:
| 名前 | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| follow | ログ出力を追跡する | boolean | false |
| tail | 表示する最近のログ行数 | int | 3000 |
ボリュームの操作
環境内のすべてのボリュームを一覧表示する
shipyard get volumes --env {environment_uuid}
環境内のすべてのボリュームスナップショットを一覧表示する
shipyard get snapshots --env {environment_uuid}
環境内のボリュームをリセットする
shipyard reset volume --env {environment_uuid}
環境内にスナップショットを作成する
shipyard create snapshot --env {environment_uuid}
環境内のボリュームスナップショットをロードする
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
環境内のボリュームにファイルをアップロードする
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
REST APIを直接呼び出す
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
パスは/api/v1または/api/v2で始まる必要があります。トークンと組織は自動的に追加されます。
bypass_tokenとkubeconfigの認証情報は、--include-secretsを渡さない限り編集されます。
telepresenceに接続する
shipyard telepresence connect --env {environment_uuid}
そこから、名前空間内のすべてのポッドと直接通信できるようになります。サービスと通信するには、名前空間のホスト名を使用する必要がある場合があります。これは、Namespaceフィールドの下のtelepresence statusで取得できます。たとえば、redisと通信するには、redis.shipyard-app-build-{uuid}を使用します。
コードから実行可能ファイルをビルドする:
次のコマンドを実行して実行可能ファイルを作成できます:
make
この新しい実行可能ファイルを実行するには:
./shipyard
オートコンプリートを有効にする
Bash
このスクリプトはbash-completionパッケージに依存しています。まだインストールされていない場合は、OSのパッケージマネージャーからインストールできます。
現在のシェルセッションで補完をロードするには:
source <(shipyard completion bash)
新しいセッションごとに補完をロードするには、次のコマンドを一度実行します。
Linuxの場合:
shipyard completion bash > /etc/bash_completion.d/shipyard
macOSの場合:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
シェル補完が環境でまだ有効になっていない場合は、有効にする必要があります。次のコマンドを一度実行できます:
echo "autoload -U compinit; compinit" >> ~/.zshrc
現在のシェルセッションで補完をロードするには:
source <(shipyard completion zsh); compdef _shipyard shipyard
新しいセッションごとに補完をロードするには、次のコマンドを一度実行します。
Linuxの場合:
shipyard completion zsh > "${fpath[1]}/_shipyard"
macOSの場合:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
この設定を有効にするには、新しいシェルを開始する必要があります。
Fish
現在のシェルセッションで補完をロードするには:
$ shipyard completion fish | source
セッションごとに補完をロードするには、一度実行します:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
現在のシェルセッションで補完をロードするには:
shipyard completion powershell | Out-String | Invoke-Expression
新しいセッションごとに補完をロードするには、次を実行します:
shipyard completion powershell > shipyard.ps1
そして、このファイルをPowerShellプロファイルからソースします。
AIアシスタントからShipyardを使用する(MCP)
shipyard mcp serveはModel Context Protocolサーバーを実行するため、Claude Code、Claude Desktop、Cursor、Codexなどのアシスタントが環境の一覧表示、検査、再ビルド、設定、サービスログの読み取り、ボリュームの管理、プッシュされた変更の環境に対する検証を行うことができます。
CLIにログインした状態で、Claude Codeに追加します:
claude mcp add shipyard -- shipyard mcp serve
その後、次のようなことを尋ねてみてください:
- 「
webリポジトリで実行中の環境はどれですか?」 - 「私のブランチの環境で
apiサービスのログを表示してください。」 - 「この環境に
FEATURE_FLAGS=betaを設定して、workerサービスを再起動してください。」 - 「プッシュしました。変更を環境に対して検証してください。」(または
/mcp__shipyard__verify)
他のクライアントでの設定、構成、完全なツールリスト、verifyプロンプト、トラブルシューティングについては、**MCPガイド**を参照してください。