Shipyard MCP Server
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.
Dokumentation
Die Shipyard-CLI
Ein Tool zur Verwaltung von Ephemeral Environments auf der Shipyard-Plattform.
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 Befehle ausführen.
Oder setzen Sie Ihr Token manuell
Setzen Sie Ihr Shipyard-API-Token als Wert der Umgebungsvariable SHIPYARD_API_TOKEN.
Sie erhalten es auf Ihrer Profilseite.
Sie können uns unter [email protected] kontaktieren, wenn Sie den API-Zugriff für Ihre Organisation aktivieren möchten. Bei weiteren Fragen können Sie gerne unserem 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 dann bearbeiten können.
Sie können auch einen nicht standardmäßigen Konfigurationspfad mit dem Flag --config {path} angeben, das jedem Befehl hinzugefügt wird.
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, in denen Sie Mitglied sind
shipyard get orgs
Die globale Standardorganisation festlegen
shipyard set org {org-name}
Die aktuell konfigurierte Organisation abrufen
shipyard get org
Alle Umgebungen auflisten
shipyard get environments
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| branch | Nach Branch-Namen filtern | string | |
| deleted | Gelöschte Umgebungen zurückgeben | boolean | false |
| json | Die vollständige JSON-Ausgabe ausgeben | boolean | false |
| name | Nach Anwendungsnamen 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 Umgebungen auflisten, die das Repository
flask-backendauf Branchmainausführen:
shipyard get environments --repo-name flask-backend --branch main
- Alle gelöschten Umgebungen auflisten:
shipyard get environments --deleted
Details zu einer bestimmten Umgebung anhand ihrer UUID abrufen
shipyard get environment {environment_uuid}
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| json | Die vollständige JSON-Ausgabe ausgeben | boolean | false |
| org-name | Nach Organisationsnamen filtern, wenn Sie Mitglied mehrerer Organisationen sind | string | Ihre Standardorganisation |
Eine laufende Umgebung stoppen
shipyard stop environment {environment_uuid}
Eine gestoppte Umgebung neu starten
shipyard restart environment {environment_uuid}
Laufenden Build für eine Umgebung abbrechen
shipyard cancel environment {environment_uuid}
Eine Umgebung neu bauen
shipyard rebuild environment {environment_uuid}
Eine gelöschte Umgebung wiederherstellen
shipyard revive environment {environment_uuid}
Alle Dienste und exponierten Ports für eine Umgebung abrufen
shipyard get services --env {environment_uuid}
In den Dienst einer laufenden Umgebung einsteigen (exec)
Führen Sie einen beliebigen Befehl mit beliebigen Argumenten und Flags in einem bestimmten Dienst einer laufenden Umgebung aus. Übergeben Sie alle Befehlsargumente nach einem doppelten Schrägstrich.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Port eines Dienstes einer laufenden Umgebung weiterleiten
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Logs für den Dienst einer laufenden Umgebung abrufen
shipyard logs --env {environment_uuid} --service {service_name}
Eine Umgebung besuchen
shipyard visit {environment_uuid}
Verfügbare Flags:
| Name | Beschreibung | Typ | Standardwert |
|---|---|---|---|
| follow | Der Log-Ausgabe folgen | boolean | false |
| tail | Anzahl der anzuzeigenden letzten Logzeilen | int | 3000 |
Mit Volumes arbeiten
Alle Volumes in einer Umgebung auflisten
shipyard get volumes --env {environment_uuid}
Alle Volume-Snapshots in einer Umgebung auflisten
shipyard get snapshots --env {environment_uuid}
Ein Volume in einer Umgebung zurücksetzen
shipyard reset volume --env {environment_uuid}
Einen Snapshot in einer Umgebung erstellen
shipyard create snapshot --env {environment_uuid}
Einen Volume-Snapshot in einer Umgebung laden
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Eine Datei auf ein Volume in einer Umgebung hochladen
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
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, den Sie über telepresence status im Feld „Namespace“ erhalten. 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. Falls es noch nicht installiert ist, können Sie es über den Paketmanager Ihres Betriebssystems installieren.
Um die Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
source <(shipyard completion bash)
Um die 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
Falls 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 die Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
source <(shipyard completion zsh); compdef _shipyard shipyard
Um die 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 die Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
$ shipyard completion fish | source
Um die Vervollständigungen für jede Sitzung zu laden, führen Sie einmal aus:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Um die Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:
shipyard completion powershell | Out-String | Invoke-Expression
Um die Vervollständigungen für jede neue Sitzung zu laden, führen Sie aus:
shipyard completion powershell > shipyard.ps1
und binden Sie diese Datei in Ihr PowerShell-Profil ein.
Model Context Protocol (MCP) Integration
Die Shipyard-CLI bietet einen MCP-Server für die Integration von KI-Assistenten. Dies ermöglicht KI-Assistenten wie Claude, Shipyard-Umgebungen direkt zu verwalten.
Unterstützte MCP-Tools
Umgebungsverwaltung (7 Tools)
get_environments- Umgebungen mit Filterung auflistenget_environment- Details zu einer bestimmten Umgebung abrufenstop_environment- Eine laufende Umgebung stoppenrestart_environment- Eine gestoppte Umgebung neu startenrebuild_environment- Mit dem neuesten Commit neu bauencancel_environment- Den neuesten Build einer Umgebung abbrechenrevive_environment- Eine gelöschte Umgebung wiederherstellen
Dienstverwaltung (2 Tools)
get_services- Dienste in einer Umgebung auflistenget_logs- Logs von einem Dienst abrufen
Volume-Verwaltung (5 Tools)
get_volumes- Volumes in einer Umgebung auflistenreset_volume- Volume auf den Ausgangszustand zurücksetzenget_snapshots- Volume-Snapshots auflistencreate_snapshot- Volume-Snapshot erstellenload_snapshot- Volume-Snapshot laden
Organisationsverwaltung (3 Tools)
get_orgs- Alle Organisationen auflistenget_org- Aktuelle Standardorganisation abrufenset_org- Standardorganisation festlegen
Eingeschränkte Tools
Diese Tools geben Hilfetexte zurück, die Benutzer anweisen, stattdessen CLI-Befehle zu verwenden:
exec_service- Befehle in Dienstcontainern ausführenport_forward- Dienste per Portweiterleitung auf den lokalen Rechner umleitentelepresence_connect- Mit Telepresence verbinden
Zu Claude hinzufügen
Mit API-Token und Organisationsnamen:
claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve
Falls bereits mit der CLI konfiguriert:
claude mcp add shipyard -- shipyard mcp serve
Zur Codex-CLI hinzufügen
Bearbeiten Sie ~/.codex/config.toml und fügen Sie hinzu:
[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }