Shipyard MCP Server

offiziell

Der 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:

NameBeschreibungTypStandardwert
branchNach Branch-Namen filternstring
deletedGelöschte Umgebungen zurückgebenbooleanfalse
jsonDie vollständige JSON-Ausgabe ausgebenbooleanfalse
nameNach Anwendungsnamen filternstring
org-nameNach Organisationsnamen filtern, wenn Sie Mitglied mehrerer Organisationen sindstringIhre Standardorganisation
pageAngeforderte Seitennummerint1
page-sizeAngeforderte Seitengrößeint20
pull-request-numberNach Pull-Request-Nummer filternstring
repo-nameNach Repository-Namen filternstring

Beispiele:

  • Alle Umgebungen auflisten, die das Repository flask-backend auf Branch main ausfü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:

NameBeschreibungTypStandardwert
jsonDie vollständige JSON-Ausgabe ausgebenbooleanfalse
org-nameNach Organisationsnamen filtern, wenn Sie Mitglied mehrerer Organisationen sindstringIhre 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:

NameBeschreibungTypStandardwert
followDer Log-Ausgabe folgenbooleanfalse
tailAnzahl der anzuzeigenden letzten Logzeilenint3000

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 auflisten
  • get_environment - Details zu einer bestimmten Umgebung abrufen
  • stop_environment - Eine laufende Umgebung stoppen
  • restart_environment - Eine gestoppte Umgebung neu starten
  • rebuild_environment - Mit dem neuesten Commit neu bauen
  • cancel_environment - Den neuesten Build einer Umgebung abbrechen
  • revive_environment - Eine gelöschte Umgebung wiederherstellen

Dienstverwaltung (2 Tools)

  • get_services - Dienste in einer Umgebung auflisten
  • get_logs - Logs von einem Dienst abrufen

Volume-Verwaltung (5 Tools)

  • get_volumes - Volumes in einer Umgebung auflisten
  • reset_volume - Volume auf den Ausgangszustand zurücksetzen
  • get_snapshots - Volume-Snapshots auflisten
  • create_snapshot - Volume-Snapshot erstellen
  • load_snapshot - Volume-Snapshot laden

Organisationsverwaltung (3 Tools)

  • get_orgs - Alle Organisationen auflisten
  • get_org - Aktuelle Standardorganisation abrufen
  • set_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ühren
  • port_forward - Dienste per Portweiterleitung auf den lokalen Rechner umleiten
  • telepresence_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" }