Utilities

Bridge

SXL Studio Bridge: как установить и запустить локальную программу, которая связывает плагин в Figma с AI-инструментами и скриптами, подключить плагин через Remote Connect, настроить MCP-клиент, что можно поручить агенту и как устранить типовые проблемы.

SXL Studio Bridge — небольшая программа, которая запускается на вашем компьютере и связывает работающий плагин SXL Studio с внешними инструментами: Cursor, Claude Desktop и другими MCP-клиентами, а также скриптами. Через неё AI-агент может читать и менять токены, переменные, стили, композиции и данные в открытом файле Figma. Та же программа обслуживает Local Workspace и Local Storage.

Что даёт BridgeПример
Работа с токенами из AI-инструмента«Добавь токен color/brand/600 и экспортируй коллекцию Core в Figma»
Сборка и проверка макетов«Сгенерируй композицию Card и проверь расхождения с JSON»
Документация в Figma«Собери страницу с палитрой коллекции Projects»
Аудиты«Найди слои с сырыми цветами вместо переменных на этой странице»
Данные и Git«Обнови набор данных и запушь изменения в ветку»

Требования

КомпонентВерсия
Плагин SXL Studio2.9.2
Bridge (@sxl-studio/bridge)1.10.0
Node.js20 или новее

Для нескольких вкладок, управления Figma Desktop и опасных команд, которые включаются сами, нужны Bridge 1.11 и плагин 2.9.6.

Bridge слушает только локальный адрес 127.0.0.1: к нему нельзя подключиться с другого компьютера.

Установка и запуск

BASH
npm install -g @sxl-studio/bridge
BASH
sxl-bridge

Bridge занимает один порт, по умолчанию 37830. На нём работают подключение плагина, MCP-адрес http://127.0.0.1:37830/mcp и HTTP-запросы http://127.0.0.1:37830/api/.... Если порт занят, задайте другой через переменную окружения:

BASH
BRIDGE_PORT=39999 sxl-bridge

Тот же порт потом нужно указать в плагине и в настройках MCP-клиента.

Проверка, что программа запущена:

BASH
sxl-bridge health

Подключение плагина: Remote Connect

Remote Connect включается сам. При каждом запуске в режиме Design плагин подключается к Bridge на сохранённом порту и ждёт команд в фоне. Интерфейс плагина остаётся доступным, нажимать ничего не нужно. Если Bridge не запущен, плагин повторяет попытку: первая — через секунду, дальше всё реже, но не реже раза в 30 секунд. Он подключается, как только Bridge появится. Связь восстанавливается сама после перезапуска Bridge и после горячей перезагрузки сборки для разработки. Нужна лицензия Pro Plus.

Чтобы увидеть подключение:

  1. В подвале плагина нажмите кнопку Remote Connect. Плагин свернётся в компактную строку с состоянием подключения.
  2. Разверните строку кнопкой со стрелками, чтобы открыть окно подключения. В нём поле Port, поле Token для защищённого режима и переключатель Allow destructive commands.
  3. Состояние Connected — Waiting for commands означает, что агент может отправлять команды.

Компактная строка Remote Connect в подвале плагина: состояние подключения, Disconnect и кнопка разворота.

Окно Remote Connect: порт, токен, идентификаторы сессии и клиента, переключатель Allow destructive commands.

Пока открыто окно подключения, вкладки плагина скрыты. Disconnect отключает Remote Connect до следующего запуска плагина и возвращает обычный интерфейс. Плагин запоминает порт между сессиями.

Опасные команды

Опасные команды: удаление слоёв, переменных и коллекций, сброс идентификаторов синхронизации и hard pull. Они включаются сами, как только Bridge 1.11 или новее ответит на подключение, кроме защищённых файлов. Более старый Bridge не различает файлы, поэтому с ним опасные команды остаются выключенными, пока их не включат явно. Даже с разрешением агент обязан явно подтверждать каждую опасную команду.

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

  • переключателем Allow destructive commands;
  • командой агента set_session_policy с подтверждением файла: в confirmFile передаётся ключ или имя этого файла.

Файл считается защищённым, если в списке есть любой из его ключей. Он же считается защищённым, если плагин не может прочитать его ключ или сам список. Защиту ставит команда protect_file: для текущего файла, по ключу или по ссылке на файл. Снять её можно той же командой с protect: false и confirmFile — ключом или именем файла. Защита, поставленная из другой вкладки, выключает опасные команды в этом файле перед следующей опасной командой. Список хранится на этом компьютере и действует во всех файлах. Защищайте файлы с опубликованной библиотекой. Выбор, сделанный командой или переключателем, действует до конца сессии.

Перед export_variables можно проверить экспорт через preview_export_variables. Sort упорядочивает стили и их папки без смены ID; переставлять существующие коллекции, моды и переменные публичный API Figma не позволяет. Эти MCP-инструменты игнорируют старую настройку allowDestructiveReorder. Удаление осиротевших объектов остаётся отдельным опасным действием. См. Экспорт переменных и стилей.

Защищённый режим

Если Bridge запущен с переменной BRIDGE_AUTH_TOKEN, все подключения должны предъявить тот же токен: введите его в поле Token окна Remote Connect, в форму подключения Local Storage и в настройки MCP-клиента.

BASH
BRIDGE_AUTH_TOKEN=my-secret sxl-bridge

Несколько файлов и управление Figma

Bridge 1.11 держит плагин сразу в нескольких вкладках Figma. Команда уходит в один файл. Он выбирается в таком порядке:

  1. Явная цель: targetFileKey у любого MCP-инструмента, который работает с плагином, или fileKey в теле POST /api/command. Ответ показывает, куда ушла команда: bridgeTarget в MCP, target в HTTP.
  2. Текущий выбор — последнее из двух действий: выбор файла через select_plugin_session (по ключу, имени или ссылке) и открытие файла агентом через figma_open_file, figma_run_plugin или restart_plugin. Явный выбор отменяет файлы, открытые раньше и ещё не подключившиеся.
  3. Первый подключившийся незащищённый файл.
  4. Единственный подключённый незащищённый файл.

Если выбрать файл нельзя, команда отклоняется с ambiguous-target. Защищённый файл сам не выбирается: открытие файла и запуск в нём плагина его тоже не выбирают. Команды попадают в него только по явной цели или после select_plugin_session. Когда подключено несколько файлов, передавайте targetFileKey в каждой записи. Список подключённых файлов и текущую цель показывает list_plugin_sessions. Пока выбранный файл переподключается, например при перезапуске плагина, команда ждёт его до 20 секунд.

Figma Desktop на macOS агент ведёт сам:

ИнструментЧто делает
figma_desktop_statusПриложение, открытые и активная вкладки, сборки плагина для разработки, подключённые файлы, разрешения macOS
figma_launchЗапускает Figma Desktop
figma_open_fileОткрывает файл по ссылке или ключу и выводит Figma на передний план. Если файл уже открыт, переключает на его вкладку
figma_run_pluginОткрывает файл и запускает в нём SXL Studio через меню Plugins → Development. Если плагин там уже подключён, ничего не делает. Команду Run last plugin (⌘⌥P) использует только по явному запросу: allowRunLast: true
restart_pluginПерезапускает плагин. По умолчанию relaunch: закрыть и запустить снова через меню, только в этом файле. hot-reload — горячая перезагрузка сборки для разработки: плагин перезапустится во всех вкладках
get_session_policy, set_session_policy, protect_fileОпасные команды сессии и защищённые файлы, см. Опасные команды
disconnect_plugin, close_pluginВыключает Remote Connect до следующего запуска или закрывает плагин. Обе команды до 30 секунд ждут конца текущей операции и иначе отвечают busy. force пропускает ожидание, но начатую работу не отменяет

Для запуска плагина через меню процессу, в котором работает Bridge, нужно разрешение macOS: System Settings → Privacy & Security → Accessibility. Для Bridge, запущенного как служба, это его программа node, путь к ней показывает figma_desktop_status. Перед нажатием меню Bridge выводит Figma на передний план: в фоне Figma команду меню не выполняет. Открытие файлов и горячая перезагрузка работают без разрешения.

Пока окно Figma скрыто — в другом пространстве, свёрнуто или спрятано, — Figma приостанавливает работу с документом. Apply, Generate и экспорт ждут, хотя на другие команды плагин отвечает. figma_desktop_status показывает, видно ли окно. /api/status сообщает FIGMA_WINDOW_HIDDEN, если команда плагина идёт дольше 20 секунд при скрытом окне. Перед долгой работой выведите файл на экран: это делает figma_open_file.

Подключение AI-инструмента

Bridge работает по протоколу MCP. Для Cursor добавьте в .cursor/mcp.json:

JSON
{
  "mcpServers": {
    "sxl-studio": {
      "url": "http://127.0.0.1:37830/mcp"
    }
  }
}

Другие MCP-клиенты подключаются к тому же адресу. Запускайте Bridge до открытия чата с агентом, иначе инструменты не появятся в списке. Первое, что стоит попросить агента: вызвать get_operator_runbook, он описывает, с чего начинать, и get_plugin_status, он показывает, видит ли Bridge плагин.

Что может агент

ОбластьПримеры инструментов
Токены и файлыlist_token_files, get_token_file_content, save_token_file, export_variables
Переменные и стилиget_variables, create_variable, bind_variable, import_variable_spec, get_local_styles, import_style_spec
Композиции и экраныlist_compositions, generate_composition, apply_composition, build_screen, build_mockup
Документация в Figmabuild_token_documentation, bind_variable_palette, build_component_doc, build_doc_flow
Аудитanalyze_variable_usage, audit_variable_coverage, audit_style_coverage, audit_composition_drift
Данные Databaselist_datasets, save_dataset, save_mapping, apply_mapping, generate_instances
Gitgit_pull, git_push, git_hard_pull
Кодget_codegen, export_composition_json
Файлы Figma и плагинlist_plugin_sessions, select_plugin_session, get_session_policy, figma_open_file, figma_run_plugin, restart_plugin

Полный список отдаёт сам Bridge: инструмент list_tools или адрес http://127.0.0.1:37830/api/tools.

Инструменты предпросмотра и аудита ничего не меняют. Инструменты записи принимают dryRun: true для проверки без изменений. Большие ответы Bridge сокращает до сводки, полный вариант можно запросить отдельно.

Bridge и режимы Figma

Где открыт плагинЧтениеИзменения на холстеТокены, настройки, Git
DesignДаДаДа
Dev Mode, окно плагинаДаНет, плагин отвечает ошибкойДа
Dev Mode, панель CodeТолько генерация кодаНетНет

Local Workspace

Bridge читает и записывает файлы токенов и данных в папке на диске для режима Local Workspace и хранит большие файлы Local Storage для Git-подключений. Для этого не нужен Remote Connect: достаточно запущенного Bridge и включённого профиля в настройках синхронизации. Порт и токен задаются на вкладке Local Workspace окна Synchronization settings. Подробнее: Local Workspace и Local Storage.

Если что-то не работает

Что случилосьЧто делать
Агент получает ошибку «Failed to send to plugin», PLUGIN_NOT_CONNECTED или no-plugin-connectedПлагин не подключён. Откройте плагин в режиме Design: Remote Connect включится сам. Если до этого нажимали Disconnect, перезапустите плагин. На macOS агент может запустить его сам через figma_run_plugin
Команда отклонена с ambiguous-targetПлагин подключён в нескольких файлах, и цель не выбрана. Передайте targetFileKey или выберите файл через select_plugin_session. Защищённый файл выбирается только так
Команда ждёт и падает с target-not-connectedВ выбранном файле плагин не подключился за 20 секунд. Запустите плагин в этом файле или выберите другой файл
figma_run_plugin отвечает automation-permission-requiredРазрешите процессу Bridge Accessibility: System Settings → Privacy & Security → Accessibility. Путь к процессу есть в ответе и в figma_desktop_status
Меню нажато, но плагин не запустилсяFigma должна выйти на передний план: Bridge ждёт этого до нажатия и иначе отвечает ошибкой. Если сессия не появилась, проверьте, что в активной вкладке открыт файл, и повторите
При запуске Bridge пишет EADDRINUSEПорт занят. Запустите с BRIDGE_PORT=<другой порт> и укажите его в плагине и MCP-клиенте
Инструменты не появляются в чатеBridge запущен после открытия чата. Перезапустите чат или клиент
Ошибка авторизацииТокен в плагине или клиенте не совпадает с BRIDGE_AUTH_TOKEN
После перезапуска Bridge Local Workspace сообщает reload-requiredПерезапуск оборвал связь рабочей области с Bridge. Выполните reload_local_workspace или нажмите Reload в плагине
Команда долго не отвечает, /api/status сообщает FIGMA_WINDOW_HIDDENОкно Figma скрыто, и Figma приостановила работу с документом. Выведите Figma на экран или вызовите figma_open_file: команда продолжится сама
Команда удаления отклоненаФайл защищён или опасные команды выключены в этой сессии. Включите их командой set_session_policy (для защищённого файла с confirmFile) или переключателем Allow destructive commands и повторите с подтверждением
Плагин отвечает, что редактор только для чтенияФайл открыт в Dev Mode. Переключитесь в Design для изменений на холсте
Local Workspace не видит папкуПроверьте, что Bridge запущен на порту из настроек профиля, и нажмите Test на вкладке Local Workspace

Связанные страницы