Shipyard
oficialLa 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:
| Nombre | Descripción | Tipo | Valor predeterminado |
|---|---|---|---|
| branch | Filtrar por nombre de rama | string | |
| deleted | Devolver entornos eliminados | boolean | false |
| json | Imprimir la salida JSON completa | boolean | false |
| name | Filtrar por nombre de la aplicación | string | |
| org-name | Filtrar por nombre de organización, si eres parte de múltiples organizaciones | string | tu organización predeterminada |
| page | Número de página solicitado | int | 1 |
| page-size | Tamaño de página solicitado | int | 20 |
| pull-request-number | Filtrar por número de solicitud de extracción | string | |
| repo-name | Filtrar por nombre de repositorio | string |
Ejemplos:
- Listar todos los entornos que ejecutan el repositorio
flask-backenden la ramamain:
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:
| Nombre | Descripción | Tipo | Valor predeterminado |
|---|---|---|---|
| json | Imprimir la salida JSON completa | boolean | false |
| org | Organización del entorno, si eres parte de múltiples organizaciones | string | tu organización predeterminada |
| bypass-token | Imprimir solo el token de bypass del entorno, para scripts | boolean | false |
--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:
| Nombre | Descripción | Tipo | Valor predeterminado |
|---|---|---|---|
| follow | Seguir la salida de registros | boolean | false |
| tail | # de líneas de registro recientes a mostrar | int | 3000 |
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
apien el entorno de mi rama." - "Establece
FEATURE_FLAGS=betaen este entorno y reinicia el servicioworker." - "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.