Отдать кодовому агенту реестр Astra и референсы — смотреть, читать и добавлять компоненты, измерять анимации референсов, не выходя из диалога.
astra-rn-mcp выставляет реестр наружу инструментами
Model Context Protocol. Агент может
перечислить компоненты, прочитать их настоящий исходник и типы и скопировать их
к вам в проект — тот же реестр, что у CLI, и то же переписывание импортов.
А ещё он разбирает референсы: по ссылке на референс агент получает замеры анимации — длительности, кривые плавности, смещения, палитру и раскладку — и собирает такую же. Подробно — в разделе Анализ референсов.
npx astra-rn-mcppnpm dlx astra-rn-mcpyarn dlx astra-rn-mcpbunx --bun astra-rn-mcpОн говорит по MCP через stdio, то есть запускает его клиент. Запуск руками только напечатает строку готовности.
Настройка
Проект, над которым работают пишущие инструменты, — это каталог, в котором
стартовал сервер. Закрепите его флагом --root, если один клиент охватывает
несколько проектов, или передайте projectRoot в отдельном вызове.
| Флаг | Что делает |
|---|---|
--root <path> | проект, над которым работают пишущие инструменты |
--read-only | отдавать реестр, отказывать в любой записи |
--registry <origin> | читать из вашего зеркала; можно указать просто адрес сайта |
--cache <seconds> | время жизни кэша реестра |
--no-cache | всегда перезапрашивать |
ASTRA_MCP_ROOT, ASTRA_MCP_READ_ONLY=1 и
ASTRA_MCP_REGISTRY задают те же три вещи через окружение.
| Переменная | Что задаёт |
|---|---|
ASTRA_TOKEN | ключ Astra для Pro-компонентов; без неё берётся вход из astra-rn login |
ASTRA_SITE_URL | адрес сайта Astra (реестр и референсы) |
ASTRA_MCP_CACHE_DIR | где хранить скачанные видео референсов и кадры |
FFMPEG_PATH, FFPROBE_PATH | свой ffmpeg и ffprobe вместо тех, что ставятся вместе с MCP |
Инструменты
| Инструмент | Что возвращает |
|---|---|
get_usage_guide | весь порядок работы — прочитать один раз за сессию |
list_components | каталог с фильтром по категории или имени |
get_component | файлы одного компонента и признак, установлен ли он здесь |
get_component_source | полный исходник, файл за файлом |
get_component_types | опубликованные типы пропсов |
get_component_example | экран с примером |
get_config | разрешённый component.config.json |
init_config | записать component.config.json |
list_installed_components | что в проекте уже есть |
add_components | скопировать компоненты, переписав импорты |
diff_components | установленные файлы, разошедшиеся с реестром |
refresh_registry | сбросить кэш и перезапросить |
get_design_context | разбор референса: замеры анимации, палитра, раскладка, заготовки CSS и framer-motion |
browse_references | поиск референсов по тексту, категории и тегу |
list_reference_categories | все категории референсов |
get_frames | точные кадры референса в нужные моменты |
Вместе с ними идут два ресурса: astra://registry — весь каталог в
JSON, и astra://component/{name} — исходник одного компонента.
Добавление компонента
add_components принимает имена компонентов и те же переключатели, что и CLI —
dir, includeTypes, includeExamples, followDependencies, overwrite,
dryRun. Отвечает он в JSON:
status со значением blocked означает, что файлы уже есть и ничего не
записано: вызовите ещё раз с overwrite: true — а если могли их править, то
сперва прогоните diff_components. Файлы, которые отличаются только
лицензионными пометками или переводами строк, не блокируют добавление — они
обновляются и перечисляются в refreshedFiles.
Установленное записывается в .astra/components.json — в том же виде, что у
CLI, поэтому astra-rn update и astra-rn remove видят компоненты, добавленные
через MCP.
Pro-компоненты
Для Pro нужен ключ Astra: переменная ASTRA_TOKEN или вход, сохранённый командой
astra-rn login. Без ключа MCP сразу отвечает понятной ошибкой и не отправляет
на сервер ни одного запроса к Pro.
Каждая выданная Pro-копия персональная. В первой строке файла стоит пометка
Astra Pro — licensed to …, в последней — astra-license: …, а рядом с кодом
кладутся ASTRA-LICENSE.md и astra-license.json. Это лицензионные пометки —
их нельзя удалять (см. лицензию). diff_components их не
считает изменениями, а целостность Pro-файлов сверяется по исходнику без пометок.
Он никогда ничего не устанавливает
Недостающие пакеты возвращаются командой, которую запускаете вы, а не вызовом
в оболочке. Нативным зависимостям всё так же нужна пересборка —
npx expo run:ios, а не просто перезапуск Metro.
Чего он не сделает
- Не напишет за пределами корня проекта —
dir, который из него выходит, отклоняется. - Не перезапишет существующий файл без явного
overwrite: true. - Не выполнит команду оболочки, не поставит пакет и не тронет
package.json. - Не пропустит контрольную сумму: каждая загрузка сверяется с индексом реестра, Pro-файлы — по исходнику без лицензионных пометок.
--read-only оставляет весь каталог доступным для просмотра и отказывает в
любой записи — верное умолчание для общего клиента.
Анализ референсов
Скриншот показывает агенту один застывший кадр. По нему не понять, что меню
раскрывается за 240 мс, проскакивает на 7% и возвращается. Инструмент
get_design_context измеряет само видео референса и пишет ответ словами и
числами — около 2,5 тысячи токенов вместо десятков кадров.
Как пользоваться
- Один раз подключите MCP (раздел Настройка).
- Откройте любой референс. В панели справа (на телефоне — по кнопке с информацией) есть блок Astra MCP с готовой командой.
- Скопируйте её и вставьте в терминал:
Для Cursor и других клиентов в том же блоке есть обычный промпт — отправьте его в чат агента. Агент сам вызовет нужные инструменты.
Что понимает get_design_context
- ссылку на референс
…/references/<id>или его id; - ссылку на исходный пост в X/Twitter — MCP найдёт этот пост среди референсов Astra и разберёт видео, которое хранится у нас (сам x.com не запрашивается);
- категорию
…/references?category=…или её slug — вернётся список на выбор; - любую прямую ссылку на картинку, GIF или видео.
Что получает агент
- Таймлайн движения: паузы и переходы с длительностью, лучшая кривая
плавности с
cubic-bezierи точностью подгонки (R²), смещение в пикселях, перелёт (пружина это или обычное смягчение), где на экране происходит изменение, зацикливается ли анимация. - Палитра с контрастом и раскладка области с интерфейсом — фон-подложка вокруг работы отрезается автоматически.
- Заготовки CSS и framer-motion, с которых удобно начать.
- Кадры — по желанию:
detailbrief(только замеры),standard(+3 ключевых кадра) илиfull(+6 кадров и лист-обзор). Точный момент можно дозапросить черезget_frames.
Замеренное (время, размеры, цвета, смещения) — факты. Названия кривых и параметры пружины — подобранные приближения, хорошая отправная точка.
ffmpeg ставится сам
Видео измеряется локально, у вас на компьютере, с помощью ffmpeg. Отдельно его
ставить не нужно: npx astra-rn-mcp скачивает готовый ffmpeg под вашу систему
вместе с сервером. Свой ffmpeg можно указать через FFMPEG_PATH и
FFPROBE_PATH. Референсы, у которых есть только встроенный плеер (YouTube,
Vimeo, X) без файла, отдают описание, но движение по ним измерить нельзя.
Иконки
Анимированные иконки из раздела Иконки ставятся через реестр shadcn,
и агенту для этого не нужны отдельные инструменты. Полный список с категориями
и тарифами лежит в https://astra-ui.com/r/icons/index.json; бесплатную иконку
агент ставит командой npx shadcn@latest add https://astra-ui.com/r/icons/<имя>.json.
Попросите агента «поставь все бесплатные иконки из категории „Стрелки“» — он
прочитает индекс и выполнит команды по одной. Подробнее — в
документации по иконкам.
Документация как markdown
Каждая страница документации отдаётся и простым markdown — для агентов, которым
проще прочитать текст, чем звать инструмент. Допишите .mdx к любому адресу:
В шапке каждой страницы есть кнопка Скопировать Markdown — то же самое руками.
Сделано в Astra