Shipyard MCP Server
oficialThe Shipyard CLI provides an MCP server for agents to manage Shipyard environments directly: by pulling logs, comparing branches, running tests, and stopping/starting environments..
Documentación
La CLI de Shipyard
Una herramienta para gestionar Entornos Efímeros en la plataforma Shipyard.
Instalación
-
Linux y macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Navega a la página de releases 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. Luego, la CLI guardará tu token de API en una configuración local. Ya estarás listo para empezar 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 contactarnos en [email protected] si deseas habilitar el acceso a la API para tu organización. Si tienes cualquier otra pregunta, 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 por defecto.
Cuando ejecutes la CLI por primera vez, creará una configuración vacía por defecto que luego podrás editar.
También puedes especificar una ruta de configuración no predeterminada con la bandera --config {path} añadida a cualquier comando.
Añade cualquier valor de configuración en tu archivo 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 sobrescriben 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
Banderas 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 org, si perteneces a varias orgs | string | tu org 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 pull request | string | |
| repo-name | Filtrar por nombre de repositorio | string |
Ejemplos:
- Listar todos los entornos ejecutando 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}
Banderas disponibles:
| Nombre | Descripción | Tipo | Valor predeterminado |
|---|---|---|---|
| json | Imprimir la salida JSON completa | boolean | false |
| org-name | Filtrar por nombre de org, si perteneces a varias orgs | string | tu org predeterminada |
Detener un entorno en ejecución
shipyard stop environment {environment_uuid}
Reiniciar un entorno detenido
shipyard restart environment {environment_uuid}
Cancelar la compilación en curso de un entorno
shipyard cancel environment {environment_uuid}
Recompilar un entorno
shipyard rebuild environment {environment_uuid}
Revivir un entorno eliminado
shipyard revive environment {environment_uuid}
Obtener todos los servicios y puertos expuestos de un entorno
shipyard get services --env {environment_uuid}
Ejecutar comandos en un servicio de un entorno en ejecución
Ejecuta cualquier comando con cualquier argumento y banderas 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
Redirigir un puerto de un servicio de un entorno en ejecución
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Obtener registros de un servicio de un entorno en ejecución
shipyard logs --env {environment_uuid} --service {service_name}
Visitar un entorno
shipyard visit {environment_uuid}
Banderas disponibles:
| Nombre | Descripción | Tipo | Valor predeterminado |
|---|---|---|---|
| follow | Seguir la salida de registros | boolean | false |
| tail | N.º 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 volumen 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}
Conectarse a telepresence
shipyard telepresence connect --env {environment_uuid}
Desde allí, podrás comunicarte directamente con todos los pods en el espacio de nombres. Es posible que tengas que usar el nombre de host del espacio de nombres para comunicarte con los servicios, el cual puedes obtener mediante telepresence status en el campo Namespace. Por ejemplo, para comunicarte con redis, usarías redis.shipyard-app-build-{uuid}
Compilar ejecutable desde el 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 aún, puedes instalarlo a través del gestor de paquetes de tu sistema operativo.
Para cargar los autocompletados en tu sesión de shell actual:
source <(shipyard completion bash)
Para cargar los autocompletados 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 autocompletado de shell no está habilitado aún en tu entorno, necesitarás habilitarlo. Puedes ejecutar lo siguiente una vez:
echo "autoload -U compinit; compinit" >> ~/.zshrc
Para cargar los autocompletados en tu sesión de shell actual:
source <(shipyard completion zsh); compdef _shipyard shipyard
Para cargar los autocompletados 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 autocompletados en tu sesión de shell actual:
$ shipyard completion fish | source
Para cargar los autocompletados en cada sesión, ejecuta una vez:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Para cargar los autocompletados en tu sesión de shell actual:
shipyard completion powershell | Out-String | Invoke-Expression
Para cargar los autocompletados en cada nueva sesión, ejecuta:
shipyard completion powershell > shipyard.ps1
y carga este archivo desde tu perfil de PowerShell.
Integración del Protocolo de Contexto del Modelo (MCP)
La CLI de Shipyard proporciona un servidor MCP para la integración con asistentes de IA. Esto permite que asistentes de IA como Claude gestionen entornos de Shipyard directamente.
Herramientas MCP compatibles
Gestión de entornos (7 herramientas)
get_environments- Listar entornos con filtradoget_environment- Obtener detalles de un entorno específicostop_environment- Detener un entorno en ejecuciónrestart_environment- Reiniciar un entorno detenidorebuild_environment- Recompilar con el último commitcancel_environment- Cancelar la última compilación del entornorevive_environment- Revivir un entorno eliminado
Gestión de servicios (2 herramientas)
get_services- Listar servicios en un entornoget_logs- Obtener registros de un servicio
Gestión de volúmenes (5 herramientas)
get_volumes- Listar volúmenes en un entornoreset_volume- Restablecer volumen a su estado inicialget_snapshots- Listar instantáneas de volumencreate_snapshot- Crear instantánea de volumenload_snapshot- Cargar instantánea de volumen
Gestión de organizaciones (3 herramientas)
get_orgs- Listar todas las organizacionesget_org- Obtener la organización predeterminada actualset_org- Establecer la organización predeterminada
Herramientas limitadas
Estas herramientas devuelven texto de ayuda dirigiendo a los usuarios a usar comandos de CLI en su lugar:
exec_service- Ejecutar comandos en contenedores de servicioport_forward- Redirigir puertos de servicios a la máquina localtelepresence_connect- Conectarse a telepresence
Añadir a Claude
Con token de API y nombre de organización:
claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve
Si ya está configurado con la CLI:
claude mcp add shipyard -- shipyard mcp serve
Añadir a Codex CLI
Edita ~/.codex/config.toml y añade:
[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }