Prefire MCP

MCP-сервер и CLI: агент рендерит SwiftUI-превью в PNG на разных устройствах и сам проверяет вид экрана после правок

  • 535 ★ репозитория
  • Последний коммит
  • Apache-2.0
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Рендер запускает `xcodebuild` и тесты проекта на вашем Mac
  • Агент получает скриншоты экранов приложения, на них бывают данные тестовых аккаунтов
Все причины и проверки

barredewe/prefire

Установка

Ручная установка

brew install barredewe/prefire/prefire

Сначала ставится CLI, затем сервер подключается командой из следующего пункта в папке проекта с .prefire.yml. Нужны Xcode 16 и Swift 6.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Рендер запускает `xcodebuild` и тесты проекта на вашем Mac
  • Агент получает скриншоты экранов приложения, на них бывают данные тестовых аккаунтов

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Prefire превращает блоки #Preview из SwiftUI в снапшот-тесты, каталог компонентов Playbook и изображения, которые видит ИИ-агент. Команда `prefire render` собирает приложение и сохраняет каждое превью как PNG вместе с JSON-описанием: устройство, размер, пользовательская история, состояние и ошибка, если превью не отрисовалось. Команда `prefire mcp` отдает то же самое по MCP. Агент перечисляет превью, рендерит нужные на выбранных iPhone или iPad, в светлой или темной теме, с крупным шрифтом, и получает картинки прямо в разговоре. Скилл swiftui-preview из плагина для Claude Code подсказывает, когда и как рендерить. Команда `prefire board` раскладывает последний рендер по `previewUserStory` в HTML-доску. Рендер идет через сгенерированные снапшот-тесты в режиме записи: эталонные картинки не сравниваются и не меняются. Сами тесты, Playbook и шаблоны Stencil работают и без агента.

Для кого. iOS-разработчикам на SwiftUI, которые поручают агенту правку экранов и хотят, чтобы он сам видел результат. Дизайнерам и тестировщикам пригодится Playbook со всеми состояниями.

Подходит, если

  • Агент поправил отступы, и надо убедиться, что на маленьком iPhone SE ничего не обрезано
  • Темную тему и крупный шрифт Dynamic Type проверяют без ручного запуска симулятора
  • Команда хочет, чтобы сборка падала при смене отступа до релиза: снапшот-тесты берутся из уже написанных #Preview
  • Дизайнеру нужен каталог всех компонентов и сценариев приложения с состояниями
  • Для ревью нужна HTML-доска экранов, сгруппированных по пользовательским историям

Не подходит, если

  • Нужен прогон сценариев в запущенном приложении с нажатиями: Prefire только рисует превью, для управления симулятором в каталоге есть `mobile-mcp`
  • Задача — сборка и запуск всего проекта: этим занимается XcodeBuildMCP
  • Проект без SwiftUI-превью или на старом Xcode: рендер опирается на сгенерированные снапшот-тесты, нужны Swift 6 и Xcode 16 или новее
  • Нет Mac: рендер вызывает `xcodebuild`

Пример запроса к агенту

Отрисуй превью экрана Sign in на iPhone SE и iPad в темной теме и скажи, что съехало после правки отступов

MCP

Транспорт
stdio
Авторизация
не нужна

Ограничения

Рендер собирает проект и гоняет снапшот-тесты, поэтому занимает столько же времени, сколько тестовый прогон; просите у агента только затронутые превью. Нужны Swift 6.0, Xcode 16 и iOS 14 или новее, на macOS работают только снапшот-тесты. В `.prefire.yml` надо описать `render_configuration` со схемой, а проект подключает пакет Prefire с плагином `PrefireTestsPlugin` на тестовой цели. В один каталог пишет один рендер, второй ждет очереди. Тесты, сгенерированные старой версией Prefire, завершают рендер ошибкой.

Как отключить. Уберите сервер командой `claude mcp remove prefire`, плагин через `/plugin uninstall prefire@prefire`. Пакет Prefire и плагин тестов удаляются из `Package.swift`, CLI командой `brew uninstall prefire`.

Частые вопросы

Как подключить Prefire к Claude Code?

Поставьте CLI через `brew install barredewe/prefire/prefire`, затем в папке проекта выполните `claude mcp add prefire -- prefire mcp`. Для скилла, который подсказывает агенту, когда рендерить, добавьте плагин: `/plugin marketplace add BarredEwe/Prefire`, потом `/plugin install prefire@prefire`.

Нужно ли писать тесты руками?

Нет. Prefire генерирует снапшот-тесты из ваших блоков #Preview при сборке тестовой цели. В проект подключают библиотеку Prefire с плагином `PrefireTestsPlugin` и swift-snapshot-testing.

Что агент получает от рендера?

PNG каждого превью и JSON с именем, устройством, размером, масштабом, пользовательской историей, состоянием и текстом ошибки. Картинок прикладывается до шести за вызов, остальные лежат по путям из ответа.

Какие устройства и режимы доступны?

Устройства из `snapshot_devices` проекта: параметр `--device` принимает iPhone и iPad. Режим `--color-scheme` принимает light или dark, `--dynamic-type` идет от xSmall до accessibility5. На macOS устройства игнорируются.

Работает ли с Cursor и Codex?

Да. Для Cursor в документации есть кнопка добавления, для Codex команда `codex mcp add prefire -- prefire mcp`, для VS Code `code --add-mcp`. Каждый релиз выходит и как пакет `.mcpb` для клиентов вроде Claude Desktop, сервер внесен в реестр MCP.

Чем рендер отличается от Xcode Previews?

Рендер собирает приложение заново и показывает актуальный код на выбранных устройствах обычными PNG, а холст Xcode Previews может держать устаревшую или упавшую версию. Платой служит время: рендер идет как тестовый прогон.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер управляет реальным iPhone через macOS iPhone Mirroring: агент видит экран, нажимает, листает и вводит текст

MCP-серверШирокий доступ291Звезды репозитория

Плагин показывает агенту и вам Compose Preview в браузере и перерисовывает их через секунду после сохранения, без Android Studio.

ПлагинРасширенный доступ100Звезды репозитория
Официальный

Скилл и MCP-сервер с библиотекой готовых SwiftUI-компонентов и рецептов, чтобы агент собирал iOS-экраны из проверенного кода, а не писал их с нуля

СкиллРасширенный доступ3,3 тыс.Звезды репозитория

CLI проверяет экраны SwiftUI и гоняет тесты iOS без Симулятора: агент читает дерево доступности и правит вьюхи за 2 секунды.

CLIРасширенный доступ52Звезды репозитория

Скилл, который для SwiftUI-приложения собирает встроенную съемку экранов и элементов и прогоняет ее по всем локалям для App Store

СкиллРасширенный доступ264Звезды репозитория

Агент рендерит превью Jetpack Compose в PNG и видит итог правок: плагин, CLI, расширение VS Code и MCP.

ПлагинРасширенный доступ127Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Prefire (эта карточка)нетне нужна535
XcodeBuildMCP (теперь MobileBuildMCP)дане нужна6 565собирает, запускает и тестирует проекты Xcode целиком, превью экранов не рисует
Mobile MCPнетне нужна10 529управляет симуляторами и устройствами и нажимает кнопки в запущенном приложении
SwiftUI Expert Skillнет3 893советы по написанию кода SwiftUI без рендера результата

Коротко о README

В описании сначала три возможности: снапшот-тесты, Playbook и рендер для ИИ-агентов. Дальше быстрый старт на пакете Swift, таблица способов установки (плагин SPM, плагин сборки Xcode, CLI через brew, Mint в бете) и разделы о выборе превью, пользовательских историях и состояниях. Отдельный документ об ИИ описывает `render_configuration`, команду `prefire render` и подключение MCP.

Бейдж для README

Сообщить о проблеме