Shipyard
offiziellDer Shipyard CLI bietet einen MCP-Server, mit dem Agenten Shipyard-Umgebungen direkt verwalten können: durch Abrufen von Logs, Vergleichen von Branches, Ausführen von Tests und Stoppen/Starten von Umgebungen.
Was kann man mit Shipyard MCP machen?
- Liste von Umgebungen mit Filtern anzeigen — Fordern Sie an, Umgebungen gefiltert nach Repository, Branch oder Pull-Request über
shipyard get environmentsanzuzeigen. - Umgebungsdetails einsehen — Rufen Sie vollständige Informationen für eine bestimmte Umgebungs-UUID ab, einschließlich des Bypass-Tokens für Skripting.
- Lebenszyklus der Umgebung verwalten — Stoppen, neu starten, Builds abbrechen, neu erstellen oder gelöschte Umgebungen per UUID wiederherstellen.
- Auf Dienste und Protokolle zugreifen — Exponierte Ports abrufen, Protokolle streamen, Befehle ausführen oder Port-Forwarding in den Dienst einer laufenden Umgebung durchführen.
- Volumes und Snapshots verwalten — Dateien in Volumes innerhalb einer Umgebung auflisten, zurücksetzen, snapshotten, laden oder hochladen.
- Abgekoppelte Umgebungen bereitstellen — Einen Anwendungs-Build mit benutzerdefinierten Branch-Überschreibungen und Wiederaufbau-Richtlinien klonen.
Dokumentation
Die Shipyard-CLI
Ein Tool zur Verwaltung von Ephemeral Environments auf der Shipyard-Plattform.
Nutzen Sie einen KI-Assistenten? Die CLI enthält einen MCP-Server: siehe Shipyard über einen KI-Assistenten verwenden.
Installation
-
Linux und macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Navigieren Sie zur Releases-Seite und laden Sie die ausführbare Datei für Windows herunter.
-
Homebrew
brew tap shipyard/tap brew install shipyard
Anmeldung
Führen Sie shipyard login aus, um die CLI zu initialisieren. Sie werden aufgefordert, sich im Browser bei Shipyard anzumelden. Die CLI speichert dann
Ihr API-Token in einer lokalen Konfiguration. Sie können nun mit der Ausführung von Befehlen beginnen.
Oder legen Sie Ihr Token manuell fest
Setzen Sie Ihr Shipyard-API-Token als Wert der Umgebungsvariable SHIPYARD_API_TOKEN.
Sie erhalten es über Ihre Profilseite.
Sie können uns unter support@shipyard.build kontaktieren, wenn Sie den API-Zugriff für Ihre Organisation aktivieren möchten. Bei weiteren Fragen können Sie gerne unserer Community Slack beitreten.
shipyard set token
Alternativ können Sie eine Konfigurationsdatei verwenden, die standardmäßig unter $HOME/.shipyard/config.yaml gespeichert wird.
Wenn Sie die CLI zum ersten Mal ausführen, wird eine leere Standardkonfiguration erstellt, die Sie anschließend bearbeiten können.
Sie können auch einen nicht standardmäßigen Konfigurationspfad mit dem Flag --config {path} angeben, das Sie zu jedem Befehl hinzufügen können.
Fügen Sie beliebige Konfigurationswerte in Ihre Konfiguration ein und stellen Sie sicher, dass die Datei der YAML-Syntax folgt. Zum Beispiel:
api_token: <your-token>
org: <your-non-default-org>
Die Werte Ihrer Umgebungsvariablen überschreiben die entsprechenden Werte in der Konfiguration.
Grundlegende Verwendung
Alle Organisationen abrufen, deren Mitglied Sie sind
shipyard get orgs
Die globale Standardorganisation festlegen
shipyard set org {org-name}
Die aktuell konfigurierte Organisation abrufen
shipyard get org
Alle Environments auflisten
shipyard get environments
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| branch | Nach Branchnamen filtern | string | |
| deleted | Gelöschte Environments zurückgeben | boolean | false |
| json | Die vollständige JSON-Ausgabe ausgeben | boolean | false |
| name | Nach Namen der Anwendung filtern | string | |
| org-name | Nach Organisationsnamen filtern, wenn Sie Mitglied mehrerer Organisationen sind | string | Ihre Standardorganisation |
| page | Angeforderte Seitennummer | int | 1 |
| page-size | Angeforderte Seitengröße | int | 20 |
| pull-request-number | Nach Pull-Request-Nummer filtern | string | |
| repo-name | Nach Repository-Namen filtern | string |
Beispiele:
- Alle Environments auflisten, die das Repository
flask-backendauf dem Branchmainausführen:
shipyard get environments --repo-name flask-backend --branch main
- Alle gelöschten Environments auflisten:
shipyard get environments --deleted
Details für ein bestimmtes Environment anhand seiner UUID abrufen
shipyard get environment {environment_uuid}
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| json | Die vollständige JSON-Ausgabe ausgeben | boolean | false |
| org | Organisation des Environments, wenn Sie Mitglied mehrerer Organisationen sind | string | Ihre Standardorganisation |
| bypass-token | Nur das Bypass-Token des Environments ausgeben, für Skripte | boolean | false |
--bypass-token ermöglicht es einem Skript, das Token zu verwenden, ohne dass jemand es eingibt oder ausgibt:
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
Ein laufendes Environment stoppen
shipyard stop environment {environment_uuid}
Ein gestopptes Environment neu starten
shipyard restart environment {environment_uuid}
Laufenden Build für ein Environment abbrechen
shipyard cancel environment {environment_uuid}
Ein Environment neu erstellen
shipyard rebuild environment {environment_uuid}
Ein gelöschtes Environment wiederherstellen
shipyard revive environment {environment_uuid}
Ein abgetrenntes Environment bereitstellen
Erstellen Sie ein neues, unabhängiges („abgetrenntes") Environment, indem Sie einen vorhandenen Anwendungs-Build klonen. Erfordert, dass abgetrennte Environments für Ihre Organisation aktiviert sind.
shipyard detached deploy {application_build_uuid} --name my-detached-env
Branches pro Repository überschreiben und steuern, ob das abgetrennte Environment bei neuen Commits neu erstellt wird:
# 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
Alle Dienste und freigegebenen Ports für ein Environment abrufen
shipyard get services --env {environment_uuid}
In einen Dienst eines laufenden Environments ausführen
Führen Sie beliebige Befehle mit beliebigen Argumenten und Flags in einem bestimmten Dienst für ein laufendes Environment aus. Übergeben Sie Befehlsargumente nach einem doppelten Schrägstrich.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Portweiterleitung für einen Dienst eines laufenden Environments
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Protokolle für einen Dienst eines laufenden Environments abrufen
shipyard logs --env {environment_uuid} --service {service_name}
Ein Environment besuchen
shipyard visit {environment_uuid}
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| follow | Der Protokollausgabe folgen | boolean | false |
| tail | Anzahl der anzuzeigenden letzten Protokollzeilen | int | 3000 |
Mit Volumes arbeiten
Alle Volumes in einem Environment auflisten
shipyard get volumes --env {environment_uuid}
Alle Volume-Snapshots in einem Environment auflisten
shipyard get snapshots --env {environment_uuid}
Ein Volume in einem Environment zurücksetzen
shipyard reset volume --env {environment_uuid}
Einen Snapshot in einem Environment erstellen
shipyard create snapshot --env {environment_uuid}
Einen Volume-Snapshot in einem Environment laden
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Eine Datei in ein Volume in einem Environment hochladen
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
Die REST-API direkt aufrufen
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
Pfade müssen mit /api/v1 oder /api/v2 beginnen; Ihr Token und Ihre Organisation werden automatisch hinzugefügt.
bypass_token und kubeconfig-Anmeldeinformationen werden geschwärzt, es sei denn, Sie übergeben --include-secrets.
Mit Telepresence verbinden
shipyard telepresence connect --env {environment_uuid}
Von dort aus können Sie direkt mit allen Pods im Namespace kommunizieren. Möglicherweise müssen Sie den
Namespace-Hostnamen verwenden, um mit Diensten zu kommunizieren. Diesen erhalten Sie über telepresence status im Feld Namespace. Um beispielsweise mit Redis zu kommunizieren, würden Sie redis.shipyard-app-build-{uuid} verwenden.
Ausführbare Datei aus Code erstellen:
Sie können eine ausführbare Datei erstellen, indem Sie den folgenden Befehl ausführen:
make
Um diese neue ausführbare Datei auszuführen:
./shipyard
Autovervollständigung aktivieren
Bash
Dieses Skript hängt vom Paket bash-completion ab. Wenn es noch nicht installiert ist, können Sie es über den Paketmanager
Ihres Betriebssystems installieren.
Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
source <(shipyard completion bash)
Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes einmal aus.
Unter Linux:
shipyard completion bash > /etc/bash_completion.d/shipyard
Unter macOS:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
Wenn die Shell-Vervollständigung in Ihrer Umgebung noch nicht aktiviert ist, müssen Sie sie aktivieren. Sie können Folgendes einmal ausführen:
echo "autoload -U compinit; compinit" >> ~/.zshrc
Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
source <(shipyard completion zsh); compdef _shipyard shipyard
Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes einmal aus.
Unter Linux:
shipyard completion zsh > "${fpath[1]}/_shipyard"
Unter macOS:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
Sie müssen eine neue Shell starten, damit diese Einrichtung wirksam wird.
Fish
Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
$ shipyard completion fish | source
Um Vervollständigungen für jede Sitzung zu laden, führen Sie Folgendes einmal aus:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
shipyard completion powershell | Out-String | Invoke-Expression
Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes aus:
shipyard completion powershell > shipyard.ps1
und binden Sie diese Datei in Ihr PowerShell-Profil ein.
Shipyard über einen KI-Assistenten verwenden (MCP)
shipyard mcp serve führt einen Model Context Protocol-Server aus, sodass ein
Assistent wie Claude Code, Claude Desktop, Cursor oder Codex Ihre Environments auflisten, prüfen, neu erstellen und konfigurieren,
Dienstprotokolle lesen, Volumes verwalten und eine gepushte Änderung gegen ihr Environment verifizieren kann.
Wenn die CLI angemeldet ist, fügen Sie sie zu Claude Code hinzu:
claude mcp add shipyard -- shipyard mcp serve
Fragen Sie dann zum Beispiel:
- „Welche Environments laufen für das Repository
web?" - „Zeig mir die Protokolle des Dienstes
apiim Environment meines Branches." - „Setze
FEATURE_FLAGS=betaauf diesem Environment und starte den Dienstworkerneu." - „Ich habe gerade gepusht. Verifiziere die Änderung gegen ihr Environment." (oder
/mcp__shipyard__verify)
Siehe den MCP-Leitfaden für die Einrichtung in anderen Clients, Konfiguration, die vollständige Werkzeugliste,
den verify-Prompt und die Fehlerbehebung.