Shipyard MCP Server
oficialO 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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| branch | Filtrar por nome do branch | string | |
| deleted | Retornar ambientes deletados | boolean | false |
| json | Imprimir a saída JSON completa | boolean | false |
| name | Filtrar por nome da aplicação | string | |
| org-name | Filtrar por nome da org, se você faz parte de várias orgs | string | sua org padrão |
| page | Número da página solicitada | int | 1 |
| page-size | Tamanho da página solicitado | int | 20 |
| pull-request-number | Filtrar por número do pull request | string | |
| repo-name | Filtrar por nome do repositório | string |
Exemplos:
- Listar todos os ambientes executando o repositório
flask-backendno branchmain:
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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| json | Imprimir a saída JSON completa | boolean | false |
| org-name | Filtrar por nome da org, se você faz parte de várias orgs | string | sua 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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| follow | Seguir a saída dos logs | boolean | false |
| tail | Nº de linhas de log recentes a mostrar | int | 3000 |
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 filtrosget_environment- Obter detalhes de um ambiente específicostop_environment- Parar um ambiente em execuçãorestart_environment- Reiniciar um ambiente paradorebuild_environment- Reconstruir com o commit mais recentecancel_environment- Cancelar a build mais recente do ambienterevive_environment- Reativar um ambiente deletado
Gerenciamento de Serviços (2 ferramentas)
get_services- Listar serviços em um ambienteget_logs- Obter logs de um serviço
Gerenciamento de Volumes (5 ferramentas)
get_volumes- Listar volumes em um ambientereset_volume- Resetar volume para o estado inicialget_snapshots- Listar snapshots de volumecreate_snapshot- Criar snapshot de volumeload_snapshot- Carregar snapshot de volume
Gerenciamento de Organização (3 ferramentas)
get_orgs- Listar todas as organizaçõesget_org- Obter a organização padrão atualset_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çoport_forward- Fazer port forward de serviços para a máquina localtelepresence_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" }