Shipyard

oficial

La CLI de Shipyard proporciona un servidor MCP para que los agentes gestionen entornos Shipyard directamente: extrayendo registros, comparando ramas, ejecutando pruebas y deteniendo/iniciando entornos.

¿Qué puedes hacer con Shipyard MCP?

  • Listar entornos con filtros — Solicita mostrar entornos filtrados por repositorio, rama o solicitud de extracción mediante shipyard get environments.
  • Inspeccionar detalles del entorno — Recupera información completa de un UUID de entorno específico, incluido su token de bypass para scripting.
  • Gestionar el ciclo de vida del entorno — Detener, reiniciar, cancelar compilaciones, reconstruir o revivir entornos eliminados por UUID.
  • Acceder a servicios y registros — Obtén puertos expuestos, transmite registros, ejecuta comandos o reenvía puertos hacia el servicio de un entorno en ejecución.
  • Manejar volúmenes y instantáneas — Listar, restablecer, crear instantáneas, cargar o subir archivos a volúmenes dentro de un entorno.
  • Implementar entornos desacoplados — Clona una compilación de aplicación con anulaciones de rama personalizadas y políticas de reconstrucción.

Documentación

La CLI de Shipyard

Una herramienta para gestionar Entornos Efímeros en la plataforma Shipyard.

¿Usas un asistente de IA? La CLI incluye un servidor MCP: consulta Usar Shipyard desde un asistente de IA.

Instalación

  • Linux y macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Navega a la página de versiones y descarga el ejecutable para Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Inicio de sesión

Ejecuta shipyard login para inicializar la CLI. Esto te pedirá que inicies sesión en Shipyard en el navegador. La CLI luego guardará tu token de API en una configuración local. Estás listo para comenzar a ejecutar comandos.

O establece tu token manualmente

Establece tu token de API de Shipyard como el valor de la variable de entorno SHIPYARD_API_TOKEN.

Puedes obtenerlo yendo a tu página de perfil.

Puedes ponerte en contacto con nosotros en support@shipyard.build si deseas habilitar el acceso a la API para tu organización. Si tienes otras preguntas, no dudes en unirte a nuestro Slack comunitario.

shipyard set token

Alternativamente, puedes usar un archivo de configuración almacenado en $HOME/.shipyard/config.yaml de forma predeterminada. Cuando ejecutas la CLI por primera vez, creará una configuración vacía predeterminada que luego puedes editar.

También puedes especificar una ruta de configuración no predeterminada con la bandera --config {path} añadida a cualquier comando.

Agrega cualquier valor de configuración en tu configuración y asegúrate de que el archivo siga la sintaxis YAML. Por ejemplo:

api_token: <your-token>
org: <your-non-default-org>

Los valores de tus variables de entorno anulan sus valores correspondientes en la configuración.

Uso básico

Obtener todas las organizaciones de las que eres miembro

shipyard get orgs

Establecer la organización predeterminada global

shipyard set org {org-name}

Obtener la organización configurada actualmente

shipyard get org

Listar todos los entornos

shipyard get environments

Bandas disponibles:

NombreDescripciónTipoValor predeterminado
branchFiltrar por nombre de ramastring
deletedDevolver entornos eliminadosbooleanfalse
jsonImprimir la salida JSON completabooleanfalse
nameFiltrar por nombre de la aplicaciónstring
org-nameFiltrar por nombre de organización, si eres parte de múltiples organizacionesstringtu organización predeterminada
pageNúmero de página solicitadoint1
page-sizeTamaño de página solicitadoint20
pull-request-numberFiltrar por número de solicitud de extracciónstring
repo-nameFiltrar por nombre de repositoriostring

Ejemplos:

  • Listar todos los entornos que ejecutan el repositorio flask-backend en la rama main:
shipyard get environments --repo-name flask-backend --branch main
  • Listar todos los entornos eliminados:
shipyard get environments --deleted

Obtener detalles de un entorno específico por su UUID

shipyard get environment {environment_uuid}

Bandas disponibles:

NombreDescripciónTipoValor predeterminado
jsonImprimir la salida JSON completabooleanfalse
orgOrganización del entorno, si eres parte de múltiples organizacionesstringtu organización predeterminada
bypass-tokenImprimir solo el token de bypass del entorno, para scriptsbooleanfalse

--bypass-token permite que un script use el token sin que nadie lo escriba o imprima:

SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
  export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/

Detener un entorno en ejecución

shipyard stop environment {environment_uuid}

Reiniciar un entorno detenido

shipyard restart environment {environment_uuid}

Cancelar una compilación en curso para un entorno

shipyard cancel environment {environment_uuid}

Reconstruir un entorno

shipyard rebuild environment {environment_uuid}

Revivir un entorno eliminado

shipyard revive environment {environment_uuid}

Desplegar un entorno desacoplado

Crea un entorno nuevo e independiente ("desacoplado") clonando una compilación de aplicación existente. Requiere que los entornos desacoplados estén habilitados para tu organización.

shipyard detached deploy {application_build_uuid} --name my-detached-env

Anula ramas por repositorio y controla si el entorno desacoplado se reconstruye con nuevas confirmaciones:

# 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

Obtener todos los servicios y puertos expuestos de un entorno

shipyard get services --env {environment_uuid}

Ejecutar en el servicio de un entorno en ejecución

Ejecuta cualquier comando con cualquier argumento y bandera en un servicio dado para un entorno en ejecución. Pasa cualquier argumento de comando después de una doble barra.

shipyard exec --env {environment_uuid} --service {service_name} -- bash

Reenviar el puerto del servicio de un entorno en ejecución

shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}

Obtener registros del servicio de un entorno en ejecución

shipyard logs --env {environment_uuid} --service {service_name}

Visitar un entorno

shipyard visit {environment_uuid}

Bandas disponibles:

NombreDescripciónTipoValor predeterminado
followSeguir la salida de registrosbooleanfalse
tail# de líneas de registro recientes a mostrarint3000

Trabajar con volúmenes

Listar todos los volúmenes en un entorno

shipyard get volumes --env {environment_uuid}

Listar todas las instantáneas de volúmenes en un entorno

shipyard get snapshots --env {environment_uuid}

Restablecer un volumen en un entorno

shipyard reset volume --env {environment_uuid}

Crear una instantánea en un entorno

shipyard create snapshot --env {environment_uuid}

Cargar una instantánea de volumen en un entorno

shipyard load snapshot --env {environment_uuid} --sequence-number {n}

Subir un archivo a un volumen en un entorno

shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}

Llamar a la API REST directamente

shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json

Las rutas deben comenzar con /api/v1 o /api/v2; tu token y organización se agregan por ti. bypass_token y las credenciales de kubeconfig se redactan a menos que pases --include-secrets.

Conectar a telepresence

shipyard telepresence connect --env {environment_uuid}

Desde allí, podrás comunicarte directamente con todos los pods en el namespace. Es posible que tengas que usar el nombre de host del namespace para comunicarte con los servicios, que puedes obtener mediante telepresence status en el campo Namespace. Por ejemplo, para comunicarte con redis, usarías redis.shipyard-app-build-{uuid}

Crear ejecutable desde código:

Puedes crear un ejecutable ejecutando el siguiente comando:

make

Para ejecutar este nuevo ejecutable:

./shipyard

Habilitar autocompletado

Bash

Este script depende del paquete bash-completion. Si no está instalado ya, puedes instalarlo mediante el gestor de paquetes de tu sistema operativo. Para cargar los completados en tu sesión de shell actual:

source <(shipyard completion bash)

Para cargar los completados en cada nueva sesión, ejecuta lo siguiente una vez.

En Linux:

shipyard completion bash > /etc/bash_completion.d/shipyard

En macOS:

shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard

Zsh

Si el completado de shell no está habilitado en tu entorno, deberás habilitarlo. Puedes ejecutar lo siguiente una vez:

echo "autoload -U compinit; compinit" >> ~/.zshrc

Para cargar los completados en tu sesión de shell actual:

source <(shipyard completion zsh); compdef _shipyard shipyard

Para cargar los completados en cada nueva sesión, ejecuta lo siguiente una vez.

En Linux:

shipyard completion zsh > "${fpath[1]}/_shipyard"

En macOS:

shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard

Necesitarás iniciar una nueva shell para que esta configuración surta efecto.

Fish

Para cargar los completados en tu sesión de shell actual:

$ shipyard completion fish | source

Para cargar los completados en cada sesión, ejecuta una vez:

shipyard completion fish > ~/.config/fish/completions/shipyard.fish

PowerShell

Para cargar los completados en tu sesión de shell actual:

shipyard completion powershell | Out-String | Invoke-Expression

Para cargar los completados en cada nueva sesión, ejecuta:

shipyard completion powershell > shipyard.ps1

y carga este archivo desde tu perfil de PowerShell.

Usar Shipyard desde un asistente de IA (MCP)

shipyard mcp serve ejecuta un servidor Model Context Protocol, por lo que un asistente como Claude Code, Claude Desktop, Cursor o Codex puede listar, inspeccionar, reconstruir y configurar tus entornos, leer registros de servicios, gestionar volúmenes y verificar un cambio enviado contra su entorno.

Con la CLI iniciada sesión, agrégalo a Claude Code:

claude mcp add shipyard -- shipyard mcp serve

Luego pregunta cosas como:

  • "¿Qué entornos están en ejecución para el repositorio web?"
  • "Muéstrame los registros del servicio api en el entorno de mi rama."
  • "Establece FEATURE_FLAGS=beta en este entorno y reinicia el servicio worker."
  • "Acabo de enviar un cambio. Verifica el cambio contra su entorno." (o /mcp__shipyard__verify)

Consulta la guía de MCP para configurarlo en otros clientes, configuración, la lista completa de herramientas, el prompt verify y la resolución de problemas.