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 | Вернуть удалённые окружения | boolean | false |
| json | Вывести полный вывод в формате JSON | boolean | false |
| name | Фильтр по названию приложения | string | |
| org-name | Фильтр по названию организации, если вы состоите в нескольких | string | ваша организация по умолчанию |
| page | Запрошенный номер страницы | int | 1 |
| page-size | Запрошенный размер страницы | int | 20 |
| pull-request-number | Фильтр по номеру pull request | string | |
| 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 | Вывести полный вывод в формате JSON | boolean | false |
| 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 | Следовать за выводом логов | boolean | false |
| tail | Количество последних строк лога для показа | int | 3000 |
Работа с томами
Вывести список всех томов в окружении
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" }