Shipyard MCP Server

oficial

O CLI do Shipyard fornece um servidor MCP para agentes gerenciarem ambientes Shipyard diretamente: puxando logs, comparando branches, executando testes e parando/iniciando ambientes.

Documentação

A CLI do Shipyard

Uma ferramenta para gerenciar Ambientes Efêmeros na plataforma Shipyard.

Instalação

  • Linux e macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Navegue até a página de releases e baixe o executável para Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Login

Execute shipyard login para inicializar a CLI. Isso solicitará que você faça login no Shipyard pelo navegador. A CLI então salvará seu token de API em uma configuração local. Você estará pronto para começar a executar comandos.

Ou Defina Seu Token Manualmente

Defina seu token de API do Shipyard como o valor da variável de ambiente SHIPYARD_API_TOKEN.

Você pode obtê-lo acessando sua página de perfil.

Você pode entrar em contato conosco pelo [email protected] se desejar habilitar o acesso à API para sua organização. Se tiver outras dúvidas, sinta-se à vontade para participar do nosso Slack da comunidade.

shipyard set token

Alternativamente, você pode usar um arquivo de configuração armazenado em $HOME/.shipyard/config.yaml por padrão. Quando você executa a CLI pela primeira vez, ela criará uma configuração padrão vazia que você pode editar.

Você também pode especificar um caminho de configuração não padrão com a flag --config {path} adicionada a qualquer comando.

Adicione quaisquer valores de configuração em sua configuração e garanta que o arquivo siga a sintaxe YAML. Por exemplo:

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

Os valores das suas variáveis de ambiente sobrescrevem seus valores correspondentes na configuração.

Uso básico

Obter todas as organizações das quais você é membro

shipyard get orgs

Definir a organização padrão global

shipyard set org {org-name}

Obter a organização atualmente configurada

shipyard get org

Listar todos os ambientes

shipyard get environments

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
branchFiltrar por nome do branchstring
deletedRetornar ambientes deletadosbooleanfalse
jsonImprimir a saída JSON completabooleanfalse
nameFiltrar por nome da aplicaçãostring
org-nameFiltrar por nome da org, se você faz parte de várias orgsstringsua org padrão
pageNúmero da página solicitadaint1
page-sizeTamanho da página solicitadoint20
pull-request-numberFiltrar por número do pull requeststring
repo-nameFiltrar por nome do repositóriostring

Exemplos:

  • Listar todos os ambientes executando o repositório flask-backend no branch main:
shipyard get environments --repo-name flask-backend --branch main
  • Listar todos os ambientes deletados:
shipyard get environments --deleted

Obter detalhes de um ambiente específico pelo seu UUID

shipyard get environment {environment_uuid}

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
jsonImprimir a saída JSON completabooleanfalse
org-nameFiltrar por nome da org, se você faz parte de várias orgsstringsua org padrão

Parar um ambiente em execução

shipyard stop environment {environment_uuid}

Reiniciar um ambiente parado

shipyard restart environment {environment_uuid}

Cancelar a build em andamento de um ambiente

shipyard cancel environment {environment_uuid}

Reconstruir um ambiente

shipyard rebuild environment {environment_uuid}

Reativar um ambiente deletado

shipyard revive environment {environment_uuid}

Obter todos os serviços e portas expostas de um ambiente

shipyard get services --env {environment_uuid}

Executar em um serviço de ambiente em execução

Execute qualquer comando com quaisquer argumentos e flags em um determinado serviço de um ambiente em execução. Passe quaisquer argumentos de comando após uma barra dupla.

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

Fazer port forward da porta de um serviço de ambiente em execução

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

Obter logs de um serviço de ambiente em execução

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

Visitar um ambiente

shipyard visit {environment_uuid}

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
followSeguir a saída dos logsbooleanfalse
tailNº de linhas de log recentes a mostrarint3000

Trabalhar com volumes

Listar todos os volumes em um ambiente

shipyard get volumes --env {environment_uuid}

Listar todos os snapshots de volume em um ambiente

shipyard get snapshots --env {environment_uuid}

Resetar um volume em um ambiente

shipyard reset volume --env {environment_uuid}

Criar um snapshot em um ambiente

shipyard create snapshot --env {environment_uuid}

Carregar um snapshot de volume em um ambiente

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

Fazer upload de um arquivo para um volume em um ambiente

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

Conectar ao telepresence

shipyard telepresence connect --env {environment_uuid}

A partir daí, você poderá se comunicar diretamente com todos os pods no namespace. Você pode precisar usar o hostname do namespace para se comunicar com os serviços, que você pode obter via telepresence status no campo Namespace. Por exemplo, para se comunicar com o redis, você usaria redis.shipyard-app-build-{uuid}

Compilar executável a partir do código:

Você pode criar um executável executando o seguinte comando:

make

Para executar este novo executável:

./shipyard

Habilitar Autocompletar

Bash

Este script depende do pacote bash-completion. Se não estiver instalado, você pode instalá-lo via gerenciador de pacotes do seu SO. Para carregar os completions na sua sessão atual do shell:

source <(shipyard completion bash)

Para carregar os completions para cada nova sessão, execute o seguinte uma vez.

No Linux:

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

No macOS:

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

Zsh

Se o autocompletar do shell ainda não estiver habilitado no seu ambiente, você precisará habilitá-lo. Você pode executar o seguinte uma vez:

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

Para carregar os completions na sua sessão atual do shell:

source <(shipyard completion zsh); compdef _shipyard shipyard

Para carregar os completions para cada nova sessão, execute o seguinte uma vez.

No Linux:

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

No macOS:

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

Você precisará iniciar um novo shell para que essa configuração tenha efeito.

Fish

Para carregar os completions na sua sessão atual do shell:

$ shipyard completion fish | source

Para carregar os completions para cada sessão, execute uma vez:

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

PowerShell

Para carregar os completions na sua sessão atual do shell:

shipyard completion powershell | Out-String | Invoke-Expression

Para carregar os completions para cada nova sessão, execute:

shipyard completion powershell > shipyard.ps1

e dê source neste arquivo a partir do seu perfil do PowerShell.

Integração com Model Context Protocol (MCP)

A CLI do Shipyard fornece um servidor MCP para integração com assistentes de IA. Isso permite que assistentes de IA como o Claude gerenciem ambientes Shipyard diretamente.

Ferramentas MCP Suportadas

Gerenciamento de Ambiente (7 ferramentas)

  • get_environments - Listar ambientes com filtros
  • get_environment - Obter detalhes de um ambiente específico
  • stop_environment - Parar um ambiente em execução
  • restart_environment - Reiniciar um ambiente parado
  • rebuild_environment - Reconstruir com o commit mais recente
  • cancel_environment - Cancelar a build mais recente do ambiente
  • revive_environment - Reativar um ambiente deletado

Gerenciamento de Serviços (2 ferramentas)

  • get_services - Listar serviços em um ambiente
  • get_logs - Obter logs de um serviço

Gerenciamento de Volumes (5 ferramentas)

  • get_volumes - Listar volumes em um ambiente
  • reset_volume - Resetar volume para o estado inicial
  • get_snapshots - Listar snapshots de volume
  • create_snapshot - Criar snapshot de volume
  • load_snapshot - Carregar snapshot de volume

Gerenciamento de Organização (3 ferramentas)

  • get_orgs - Listar todas as organizações
  • get_org - Obter a organização padrão atual
  • set_org - Definir a organização padrão

Ferramentas Limitadas

Estas ferramentas retornam texto de ajuda direcionando os usuários a usar comandos da CLI:

  • exec_service - Executar comandos em contêineres de serviço
  • port_forward - Fazer port forward de serviços para a máquina local
  • telepresence_connect - Conectar ao telepresence

Adicionando ao Claude

Com token de API e nome da org:

claude mcp add shipyard --env SHIPYARD_API_TOKEN=your-token-here --env SHIPYARD_ORG=your-org-name -- shipyard mcp serve

Se já estiver configurado com a CLI:

claude mcp add shipyard -- shipyard mcp serve

Adicionando ao Codex CLI

Edite ~/.codex/config.toml e adicione:

[mcp_servers.shipyard]
command = "shipyard"
args = ["mcp", "serve"]
env = { "SHIPYARD_API_TOKEN" = "your-token-here", "SHIPYARD_ORG" = "your-org-name" }