Shipyard MCP Server

oficial

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

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 org, si perteneces a varias orgsstringtu org predeterminada
pageNúmero de página solicitadoint1
page-sizeTamaño de página solicitadoint20
pull-request-numberFiltrar por número de pull requeststring
repo-nameFiltrar por nombre de repositoriostring

Ejemplos:

  • Listar todos los entornos ejecutando 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}

Banderas disponibles:

NombreDescripciónTipoValor predeterminado
jsonImprimir la salida JSON completabooleanfalse
org-nameFiltrar por nombre de org, si perteneces a varias orgsstringtu 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:

NombreDescripciónTipoValor predeterminado
followSeguir la salida de registrosbooleanfalse
tailN.º 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 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 filtrado
  • get_environment - Obtener detalles de un entorno específico
  • stop_environment - Detener un entorno en ejecución
  • restart_environment - Reiniciar un entorno detenido
  • rebuild_environment - Recompilar con el último commit
  • cancel_environment - Cancelar la última compilación del entorno
  • revive_environment - Revivir un entorno eliminado

Gestión de servicios (2 herramientas)

  • get_services - Listar servicios en un entorno
  • get_logs - Obtener registros de un servicio

Gestión de volúmenes (5 herramientas)

  • get_volumes - Listar volúmenes en un entorno
  • reset_volume - Restablecer volumen a su estado inicial
  • get_snapshots - Listar instantáneas de volumen
  • create_snapshot - Crear instantánea de volumen
  • load_snapshot - Cargar instantánea de volumen

Gestión de organizaciones (3 herramientas)

  • get_orgs - Listar todas las organizaciones
  • get_org - Obtener la organización predeterminada actual
  • set_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 servicio
  • port_forward - Redirigir puertos de servicios a la máquina local
  • telepresence_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" }