• Экраны
  • Доки
1Online
ПодпискаКаталог

Начало

С чего начать
Установка
Использование

Справочник

Справочник CLI
Сервер MCP
Навыки агента
Анимированные иконки
Если что-то сломалось
Доступность

Проект

О проекте
Журнал изменений
Как участвовать
Лицензия

Сервер MCP

Отдать кодовому агенту реестр Astra и референсы — смотреть, читать и добавлять компоненты, измерять анимации референсов, не выходя из диалога.

astra-rn-mcp выставляет реестр наружу инструментами Model Context Protocol. Агент может перечислить компоненты, прочитать их настоящий исходник и типы и скопировать их к вам в проект — тот же реестр, что у CLI, и то же переписывание импортов.

А ещё он разбирает референсы: по ссылке на референс агент получает замеры анимации — длительности, кривые плавности, смещения, палитру и раскладку — и собирает такую же. Подробно — в разделе Анализ референсов.

npx astra-rn-mcp
pnpm dlx astra-rn-mcp
yarn dlx astra-rn-mcp
bunx --bun astra-rn-mcp

Он говорит по MCP через stdio, то есть запускает его клиент. Запуск руками только напечатает строку готовности.


Настройка

claude mcp add astra -- npx -y astra-rn-mcp
.mcp.json
{
  "mcpServers": {
    "astra": {
      "command": "npx",
      "args": ["-y", "astra-rn-mcp"]
    }
  }
}
.cursor/mcp.json
{
  "mcpServers": {
    "astra": {
      "command": "npx",
      "args": ["-y", "astra-rn-mcp"]
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "astra": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "astra-rn-mcp"]
    }
  }
}

Проект, над которым работают пишущие инструменты, — это каталог, в котором стартовал сервер. Закрепите его флагом --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": "written",
  "outDir": "src/shared/components",
  "filesWritten": ["src/shared/components/molecules/accordion/index.tsx"],
  "missingPackages": [{ "name": "expo-haptics", "usedBy": ["…/index.tsx"] }],
  "installCommand": "bun add expo-haptics"
}

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 тысячи токенов вместо десятков кадров.

Как пользоваться

  1. Один раз подключите MCP (раздел Настройка).
  2. Откройте любой референс. В панели справа (на телефоне — по кнопке с информацией) есть блок Astra MCP с готовой командой.
  3. Скопируйте её и вставьте в терминал:
claude "Проанализируй референс <адрес-сайта>/references/<id> через 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, с которых удобно начать.
  • Кадры — по желанию: detail brief (только замеры), 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 к любому адресу:

curl <адрес-сайта>/docs/installation.mdx

В шапке каждой страницы есть кнопка Скопировать Markdown — то же самое руками.

На этой странице

НастройкаИнструментыДобавление компонентаPro-компонентыЧего он не сделаетАнализ референсовКак пользоватьсяЧто понимает get_design_contextЧто получает агентИконкиДокументация как markdown

Сделано в Astra