Shipyard MCP Server

официальный

CLI Shipyard предоставляет MCP-сервер для управления средами Shipyard напрямую: извлечение логов, сравнение веток, запуск тестов, остановка и запуск сред.

Документация

CLI Shipyard

Инструмент для управления эфемерными окружениями на платформе Shipyard.

Установка

  • Linux и macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Перейдите на страницу релизов и скачайте исполняемый файл для Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Вход в систему

Выполните shipyard login, чтобы инициализировать CLI. Вам будет предложено войти в Shipyard через браузер. Затем CLI сохранит ваш API-токен в локальной конфигурации. Вы готовы к выполнению команд.

Или задайте токен вручную

Укажите ваш API-токен Shipyard в качестве значения переменной окружения SHIPYARD_API_TOKEN.

Получить его можно на странице вашего профиля.

Вы можете связаться с нами по адресу [email protected], если хотите включить API-доступ для вашей организации. Если у вас есть другие вопросы, присоединяйтесь к нашему сообществу в Slack.

shipyard set token

В качестве альтернативы можно использовать файл конфигурации, который по умолчанию хранится в $HOME/.shipyard/config.yaml. При первом запуске CLI создаст пустую конфигурацию по умолчанию, которую вы затем сможете отредактировать.

Вы также можете указать нестандартный путь к конфигурации с помощью флага --config {path}, добавленного к любой команде.

Добавьте любые значения конфигурации в ваш файл и убедитесь, что он соответствует синтаксису YAML. Например:

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

Значения переменных окружения переопределяют соответствующие значения в файле конфигурации.

Основное использование

Получить все организации, в которых вы состоите

shipyard get orgs

Установить глобальную организацию по умолчанию

shipyard set org {org-name}

Получить текущую настроенную организацию

shipyard get org

Вывести список всех окружений

shipyard get environments

Доступные флаги:

НазваниеОписаниеТипЗначение по умолчанию
branchФильтр по названию веткиstring
deletedВернуть удалённые окруженияbooleanfalse
jsonВывести полный вывод в формате JSONbooleanfalse
nameФильтр по названию приложенияstring
org-nameФильтр по названию организации, если вы состоите в несколькихstringваша организация по умолчанию
pageЗапрошенный номер страницыint1
page-sizeЗапрошенный размер страницыint20
pull-request-numberФильтр по номеру pull requeststring
repo-nameФильтр по названию репозиторияstring

Примеры:

  • Вывести список всех окружений, запущенных с репозиторием flask-backend на ветке main:
shipyard get environments --repo-name flask-backend --branch main
  • Вывести список всех удалённых окружений:
shipyard get environments --deleted

Получить информацию о конкретном окружении по его UUID

shipyard get environment {environment_uuid}

Доступные флаги:

НазваниеОписаниеТипЗначение по умолчанию
jsonВывести полный вывод в формате JSONbooleanfalse
org-nameФильтр по названию организации, если вы состоите в несколькихstringваша организация по умолчанию

Остановить работающее окружение

shipyard stop environment {environment_uuid}

Перезапустить остановленное окружение

shipyard restart environment {environment_uuid}

Отменить текущую сборку для окружения

shipyard cancel environment {environment_uuid}

Пересобрать окружение

shipyard rebuild environment {environment_uuid}

Восстановить удалённое окружение

shipyard revive environment {environment_uuid}

Получить все сервисы и открытые порты для окружения

shipyard get services --env {environment_uuid}

Выполнить команду в сервисе работающего окружения

Выполните любую команду с любыми аргументами и флагами в указанном сервисе работающего окружения. Передавайте любые аргументы команды после двойного слеша.

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

Пробросить порт сервиса работающего окружения

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

Получить логи сервиса работающего окружения

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

Открыть окружение

shipyard visit {environment_uuid}

Доступные флаги:

НазваниеОписаниеТипЗначение по умолчанию
followСледовать за выводом логовbooleanfalse
tailКоличество последних строк лога для показаint3000

Работа с томами

Вывести список всех томов в окружении

shipyard get volumes --env {environment_uuid}

Вывести список всех снимков томов в окружении

shipyard get snapshots --env {environment_uuid}

Сбросить том в окружении

shipyard reset volume --env {environment_uuid}

Создать снимок в окружении

shipyard create snapshot --env {environment_uuid}

Загрузить снимок тома в окружении

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

Загрузить файл в том в окружении

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

Подключиться к telepresence

shipyard telepresence connect --env {environment_uuid}

После этого вы сможете напрямую взаимодействовать со всеми подами в пространстве имён. Возможно, вам придётся использовать имя хоста пространства имён для связи с сервисами, которое можно получить через telepresence status в поле Namespace. Например, для связи с redis вы будете использовать redis.shipyard-app-build-{uuid}

Сборка исполняемого файла из кода:

Вы можете создать исполняемый файл, выполнив следующую команду:

make

Чтобы запустить этот новый исполняемый файл:

./shipyard

Включение автодополнения

Bash

Этот скрипт зависит от пакета bash-completion. Если он ещё не установлен, вы можете установить его через менеджер пакетов вашей ОС. Чтобы загрузить дополнения в текущем сеансе оболочки:

source <(shipyard completion bash)

Чтобы загружать дополнения для каждого нового сеанса, выполните следующее один раз.

В Linux:

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

В macOS:

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

Zsh

Если автодополнение оболочки ещё не включено в вашем окружении, вам потребуется его включить. Вы можете выполнить следующее один раз:

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

Чтобы загрузить дополнения в текущем сеансе оболочки:

source <(shipyard completion zsh); compdef _shipyard shipyard

Чтобы загружать дополнения для каждого нового сеанса, выполните следующее один раз.

В Linux:

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

В macOS:

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

Вам потребуется запустить новую оболочку, чтобы эта настройка вступила в силу.

Fish

Чтобы загрузить дополнения в текущем сеансе оболочки:

$ shipyard completion fish | source

Чтобы загружать дополнения для каждого сеанса, выполните один раз:

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

PowerShell

Чтобы загрузить дополнения в текущем сеансе оболочки:

shipyard completion powershell | Out-String | Invoke-Expression

Чтобы загружать дополнения для каждого нового сеанса, выполните:

shipyard completion powershell > shipyard.ps1

и подключите этот файл в профиле PowerShell.

Интеграция с Model Context Protocol (MCP)

CLI Shipyard предоставляет MCP-сервер для интеграции с AI-ассистентами. Это позволяет AI-ассистентам, таким как Claude, управлять окружениями Shipyard напрямую.

Поддерживаемые инструменты MCP

Управление окружением (7 инструментов)

  • get_environments - Список окружений с фильтрацией
  • get_environment - Получить информацию о конкретном окружении
  • stop_environment - Остановить работающее окружение
  • restart_environment - Перезапустить остановленное окружение
  • rebuild_environment - Пересобрать с последним коммитом
  • cancel_environment - Отменить последнюю сборку окружения
  • revive_environment - Восстановить удалённое окружение

Управление сервисами (2 инструмента)

  • get_services - Список сервисов в окружении
  • get_logs - Получить логи сервиса

Управление томами (5 инструментов)

  • get_volumes - Список томов в окружении
  • reset_volume - Сбросить том до начального состояния
  • get_snapshots - Список снимков томов
  • create_snapshot - Создать снимок тома
  • load_snapshot - Загрузить снимок тома

Управление организацией (3 инструмента)

  • get_orgs - Список всех организаций
  • get_org - Получить текущую организацию по умолчанию
  • set_org - Установить организацию по умолчанию

Инструменты с ограниченной функциональностью

Эти инструменты возвращают текст справки, предлагая пользователям использовать команды CLI:

  • exec_service - Выполнение команд в контейнерах сервисов
  • port_forward - Проброс портов сервисов на локальную машину
  • telepresence_connect - Подключение к telepresence

Добавление в Claude

С API-токеном и названием организации:

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

Если уже настроено через CLI:

claude mcp add shipyard -- shipyard mcp serve

Добавление в Codex CLI

Отредактируйте ~/.codex/config.toml и добавьте:

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