Shipyard MCP Server
官方Shipyard CLI 提供了一個 MCP 伺服器,讓代理程式能直接管理 Shipyard 環境:包括拉取日誌、比較分支、執行測試,以及停止/啟動環境。
文件
Shipyard CLI
一個用於管理 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 存取,可以透過 [email protected] 與我們聯繫。如果您有任何其他問題,歡迎加入我們的社群 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 |
範例:
- 列出在分支
main上執行儲存庫flask-backend的所有環境:
shipyard get environments --repo-name flask-backend --branch main
- 列出所有已刪除的環境:
shipyard get environments --deleted
透過 UUID 取得特定環境的詳細資料
shipyard get environment {environment_uuid}
可用旗標:
| 名稱 | 說明 | 類型 | 預設值 |
|---|---|---|---|
| json | 列印完整的 JSON 輸出 | boolean | false |
| org-name | 依組織名稱篩選(若您屬於多個組織) | string | 您的預設組織 |
停止執行中的環境
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 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}
連線到 Telepresence
shipyard telepresence connect --env {environment_uuid}
從那時起,您將能夠直接與命名空間中的所有 Pod 通訊。您 可能 需要使用命名空間主機名稱來與服務通訊,您可以透過 telepresence status 在 Namespace 欄位下取得。例如,要與 redis 通訊,您會使用 redis.shipyard-app-build-{uuid}
從程式碼建置可執行檔:
您可以透過執行以下指令來建立可執行檔:
make
要執行這個新的可執行檔:
./shipyard
啟用自動完成
Bash
此腳本相依於 bash-completion 套件。如果尚未安裝,您可以透過作業系統的套件管理器安裝它。
要在目前的 shell 工作階段中載入自動完成:
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
如果您的環境中尚未啟用 shell 自動完成,您需要先啟用它。您可以執行以下指令一次:
echo "autoload -U compinit; compinit" >> ~/.zshrc
要在目前的 shell 工作階段中載入自動完成:
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
您需要啟動一個新的 shell 才能使此設定生效。
Fish
要在目前的 shell 工作階段中載入自動完成:
$ shipyard completion fish | source
要為每個工作階段載入自動完成,請執行一次:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
要在目前的 shell 工作階段中載入自動完成:
shipyard completion powershell | Out-String | Invoke-Expression
要為每個新工作階段載入自動完成,請執行:
shipyard completion powershell > shipyard.ps1
並從您的 PowerShell 設定檔中來源化此檔案。
模型上下文協定 (MCP) 整合
Shipyard CLI 提供一個 MCP 伺服器,用於 AI 助理整合。這讓像 Claude 這樣的 AI 助理能夠直接管理 Shipyard 環境。
支援的 MCP 工具
環境管理 (7 個工具)
get_environments- 列出環境並支援篩選get_environment- 取得特定環境詳細資料stop_environment- 停止執行中的環境restart_environment- 重新啟動已停止的環境rebuild_environment- 使用最新提交重建cancel_environment- 取消環境的最新建置revive_environment- 復原已刪除的環境
服務管理 (2 個工具)
get_services- 列出環境中的服務get_logs- 從服務取得日誌
磁碟區管理 (5 個工具)
get_volumes- 列出環境中的磁碟區reset_volume- 將磁碟區重設為初始狀態get_snapshots- 列出磁碟區快照create_snapshot- 建立磁碟區快照load_snapshot- 載入磁碟區快照
組織管理 (3 個工具)
get_orgs- 列出所有組織get_org- 取得目前的預設組織set_org- 設定預設組織
受限工具
這些工具會傳回說明文字,引導使用者改用 CLI 指令:
exec_service- 在服務容器中執行指令port_forward- 將服務連接埠轉發到本機telepresence_connect- 連線到 Telepresence
新增到 Claude
使用 API 權杖和組織名稱:
claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve
如果已使用 CLI 設定:
claude mcp add shipyard -- shipyard mcp serve
新增到 Codex CLI
編輯 ~/.codex/config.toml 並加入:
[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }