Awwwards MCP — сервер, который даёт агентам визуальные примеры с Awwwards
📂 Исходный код на GitHubMCP-сервер, который даёт AI-кодинг-агентам визуальные примеры с сайтов Awwwards: поиск со скриншотами, разбор дизайна, съёмка анимаций и проверка собранного сайта. Бесплатная альтернатива Mobbin, без API-ключа.
awwwards-mcp — бесплатный MCP-сервер, который даёт AI-кодинг-агентам визуальные примеры с сайтов, получивших награды на Awwwards. Это бесплатная альтернатива Mobbin: агент ищет по обычной фразе, смотрит на настоящие скриншоты, разбирает «ДНК дизайна» выбранных сайтов, а потом проверяет по тем же материалам собственную сборку.
Ни API-ключа, ни аккаунта, ни оплаты. Нужен только Node.js версии 22.13 или новее.
Зачем это нужно
Агент умеет писать код, но плохо чувствует дизайн. Он не знает, как выглядит хороший hero-блок, какой ритм секций удерживает внимание и как должна вести себя анимация при прокрутке. Сервер закрывает этот пробел: он даёт агенту живые примеры и инструменты, чтобы не копировать их вслепую, а разобрать по частям.
Рабочий цикл выглядит так: поиск и отбор по скриншотам → разбор дизайна выбранных сайтов → съёмка и изучение движения → сборка → проверка сборки по эталону → исправление.
Инструменты
Поиск и разбор дизайна
| Инструмент | Что делает |
|---|---|
search_sites |
Поиск по цвету, тегам, технологиям, типу награды и свободному тексту. Полный ответ приходит со скриншотами каждого сайта, компактный — карточками с превью первых двух результатов. |
get_site_details |
Полное «ДНК дизайна» одного сайта: палитра, технологии, элементы, история наград, описание. |
compare_sites |
Сравнение дизайна и оценок жюри у 2–3 сайтов. Обычный JSON, без картинок. |
create_design_brief |
Дизайн-бриф по 2–5 отобранным сайтам и цели проекта: направление в Markdown плюс версионированный JSON со ссылками на источники. |
get_site_elements |
Поэлементные визуалы сайта: свой постер к каждому элементу (3D-модели, видео, мобильные раскладки, микротексты) плюс ссылки на видео. |
list_categories |
Все фильтры, по которым умеет искать агент: 200+ тегов и 27 цветов. |
search_elements |
Поиск по галерее готовых элементов (футер, hero, pricing, 404) с ранжированием BM25. |
get_element |
Одна запись элемента: название, категория, автор, стек, связанные элементы, ссылка на медиа. |
get_motion_dna |
«ДНК движения» живого сайта: библиотеки анимации, движки рендера, статистика ScrollTrigger, словарь easing и модель скролла. |
search_motion |
Поиск по ранее снятым слепкам движения — по библиотеке, модели скролла или easing. |
new_winners |
Победители дня (SOTD, Developer Award, Honorable Mention) и разница с прошлой проверкой. |
watch_site |
Постоянные наблюдения за студиями, тегами или конкретными сайтами с отчётом о новом. |
get_index_status |
Состояние локального индекса: число записей, ход обхода, последняя ошибка, свежесть. Сеть не трогает. |
Съёмка и анализ страниц
Все эти инструменты работают с любым URL, а не только с сайтами Awwwards.
| Инструмент | Что делает |
|---|---|
capture_live_site |
Скриншот страницы целиком. Ждёт загрузки и окна затихания, тяжёлые сайты не ломают. Размер окна: desktop 1440×900 или mobile 390×844. |
analyze_page_structure |
Карта секций страницы: тег, фон, смещение и высота каждой секции. Работает и с живым адресом, и с локальной сборкой через file://. Сравните карту своего сайта с картой эталона. |
record_site_motion |
Короткое видео прохода по странице: прелоадер, анимации при прокрутке, реакции на курсор. Отдаёт плёнку кадров и путь к .webm. |
analyze_scroll_map |
Перепись скролл-анимаций по элементам: путь селектора, источник триггера, анимируемые свойства, длительность, easing, флаги scrub и pin, обводка SVG. |
analyze_hover_census |
Перепись реакций на наведение: правила :hover из таблиц стилей плюс замеры до и после наведения на 20 интерактивных элементах. |
capture_component |
Один компонент страницы по CSS-селектору в портированный JSON-пак component-pack-v1: дерево DOM, 44 вычисленных стиля, шрифты, цвета, анимации элементов. |
capture_pose_3d |
Кадры hero-канваса превращаются в сетку положений камеры pose-grid-v1 — основу для повтора сцены в 3D. |
analyze_stack |
Определение стека страницы одним запросом HTML без браузера: фреймворк, CSS-фреймворк и честная оценка уверенности. |
Проверка и генерация кода
| Инструмент | Что делает |
|---|---|
verify_build |
Оценка собранного сайта по эталону: сравнение карт секций и отличий «ДНК движения». Итог — от 0 до 100, вердикт pass/warn/fail и список доказательств. |
build_gsap_stub |
Готовый одностраничный файл с GSAP и ScrollTrigger: по одной таймлайн-линии на каждую найденную скролл-анимацию, с easing, приведённым к ближайшему токену GSAP. |
build_pose_stub |
Автономная страница-повтор на three.js и GSAP: камера движется между снимками по мере прокрутки. |
Кроме этого, record_site_motion собирает лист доказательств движения: ключевые кадры, маски разницы между соседними кадрами, наложение «луковой шелухи», след курсора и хронология фаз. Видео превращается в документ, который модель действительно может прочитать. Если лист собрать не удалось, сама запись всё равно возвращается.
Установка
Сервер работает через stdio и запускается одной командой:
npx -y awwwards-mcp
Для Claude Code:
claude mcp add awwwards -- npx -y awwwards-mcp
Для Codex CLI:
codex mcp add awwwards -- npx -y awwwards-mcp
Для OpenCode (команда задаётся массивом):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"awwwards": {
"type": "local",
"command": ["npx", "-y", "awwwards-mcp"]
}
}
}
Claude Desktop, Cursor, Windsurf, Gemini CLI, Cline и Continue читают общий формат mcpServers:
{
"mcpServers": {
"awwwards": { "command": "npx", "args": ["-y", "awwwards-mcp"] }
}
}
Чтобы зафиксировать версию, укажите её явно: npx -y awwwards-mcp@1.9.0.
Съёмка страниц — capture_live_site, analyze_page_structure, record_site_motion, обе переписи движения, verify_build, capture_component и capture_pose_3d — требует браузер:
npm install -g playwright && npx playwright install chromium
record_site_motion дополнительно использует ffmpeg и сам подхватывает пакет ffmpeg-static, если он установлен.
Поиск и локальный индекс
Свободный текст ищется по локальной базе FTS5 со стеммингом Портера и ранжированием BM25: запрос «magazines» находит сайты с тегом Magazine, запрос из нескольких слов требует совпадения всех слов с одним и тем же сайтом. Скорость зависит от глубины индекса.
Индекс сайтов строится один раз и хранится в SQLite в каталоге ~/.awwwards-mcp/:
npx -y -p awwwards-mcp awwwards-index
Обход проходит по примерно 200 страницам тегов со скоростью один запрос в секунду и занимает около четырёх минут. Его можно прервать и продолжить: готовые страницы пропускаются. Сервер сам перестраивает индекс в фоне, если тому больше семи дней, и никогда не блокирует работу из-за этого. Индекс элементов — галереи футеров, hero-блоков и прочего — собирается отдельно и насчитывает 1500+ записей.
Скиллы
В пакете идут пять скиллов для агентов, которые следуют стандарту Agent Skills:
| Скилл | Чему учит |
|---|---|
awwwards-setup |
Первичная настройка: спрашивает предпочтения пользователя и сохраняет их. |
awwwards-inspiration |
Основной цикл: поиск, отбор по скриншотам, разбор дизайна, съёмка до сборки. |
awwwards-motion-study |
Разбор движения: что снимать, как читать кадры, как переснимать для проверки. |
awwwards-doctor |
Починка: поиск и исправление сломанных парсеров после изменений вёрстки Awwwards. |
awwwards-section-loop |
Пересборка по секциям: карта секций, съёмка, сборка, проверка, переход к следующей. |
Сайты, собранные на сервере
В репозитории лежат пять реальных проектов, сделанных через полный цикл сервера: витрина Ridge в швейцарском минимализме, редакционный журнал Fallow Press с горизонтальной прокруткой на GSAP ScrollTrigger, копия Cerebrium, совпавшая с оригиналом по высоте страницы с точностью до 1px, редакционный проект The Meridian и статичная копия NEUTOMNI.
Что показали эти сборки: постеры элементов врут. Первый сайт делали только по кадрам-постерам, и вращающееся 3D-кольцо превратилось в неподвижные карточки. Пересмотр видео элементов показал настоящее движение. Скриншот всей страницы показывал пустые секции у сайтов с появлением блоков при прокрутке. Текст в горизонтальных панелях пропадал на середине просмотра, потому что анимация возвращала его в исходное состояние. Все эти выводы перенесли в скиллы как правила.
Лицензия и этика
MIT. Сервер ходит только по публичным страницам Awwwards, соблюдает robots.txt и ограничивает себя одним запросом в секунду. Скриншоты и материалы остаются собственностью Awwwards и авторов сайтов: массово выкачивать и перепубликовывать их нельзя. Для коммерческого использования условия Awwwards стоит прочитать отдельно.
Участие в проекте — issues на GitHub, правила разработки — CONTRIBUTING.md, безопасность — SECURITY.md, лицензия — LICENSE.