Secret MCP
English | 한국어
Целевая архитектура

Secret MCP
MCP-сервер, основанный на фактических данных, для анализа веб-дизайна, рабочих процессов «от скриншота к спецификации» и планирования восстановления фронтенда.
npx -y secret-design-mcpSecret MCP — это локальный сервер Model Context Protocol (MCP), который выполняет поиск по GDWEB в поисках свежих дизайн-референсов и создаёт отдельный LLM-запрос и отдельный файл DESIGN_INDEX для каждого результата поиска. Каждый файл содержит послойную разметку страниц и маршрутов, навигацию, пиксельные координаты, цвета, компоненты и адаптивные спецификации, которые можно проследить до предоставленных визуальных доказательств.
Название Secret MCP не означает, что проект предоставляет секретные функции или приватные данные. Это было рабочее название проекта, использовавшееся при экспериментах в приватном репозитории с идеей создания MCP-сервера вокруг дизайнерских веб-сайтов. Текущая цель проекта — извлекать воспроизводимые структурные доказательства из публичных дизайн-референсов и превращать их в одну спецификацию на каждую работу, которую LLM может применить к новому проекту.
Изображения и описания из нескольких работ никогда не объединяются в одном LLM-контексте или документе. Сервер обрабатывает результаты поиска последовательно внутри себя, создаёт независимый MCP-запрос sampling/createMessage для каждой работы, сохраняет файл этой работы и только затем переходит к следующей. Отдельное локальное веб-приложение позволяет выбрать одну работу за раз, просмотреть её исходные доказательства, измеренные цвета и координаты, LLM-контракт, журнал генерации и итоговый документ, а также управлять списком исключений для последующих поисков.
Related MCP server: Refero MCP
Исследовательская заметка
Мультимодальный анализ дизайна с изоляцией доказательств через MCP Sampling
Рабочий документ и отчёт о внедрении · Secret MCP v0.6.0 · не рецензировался
Аннотация
Secret MCP реализует аудируемый конвейер преобразования публичных скриншотов веб-страниц в ориентированные на реализацию спецификации дизайна. Система подготавливает визуальные доказательства для десктопа и мобильных устройств, записывает координаты обрезки и репрезентативные цвета пикселей и вызывает клиентский MCP sampling один раз на каждый референс. В отличие от рабочих процессов, которые объединяют несколько дизайн-референсов в один промпт, Secret MCP рассматривает идентичность референса и как границу запроса, и как границу артефакта: один референс порождает один sampling-запрос, один контракт запроса и один документ DESIGN_INDEX. Каждый запрос использует includeContext: none и применяет один и тот же контракт спецификации из 19 разделов, охватывающий маршруты, геометрию, компоненты, дизайн-токены, адаптивное поведение, доступность, задачи реализации, критерии приёмки и неопределённость. Этот отчёт оценивает изоляцию на уровне протокола и производство артефактов; он не утверждает, что одна языковая модель, промпт или метод восстановления превосходит другой. Живой smoke-тест проверяет границу запроса, а сохранённый прогон с тремя референсами предоставляет описательные измерения и качественный пример реализации.
Вопросы исследования
Вопрос | Текущие доказательства | Статус |
RQ1. Может ли MCP-инструмент анализа дизайна поддерживать изоляцию «один референс — один запрос»? | Живой smoke-тест с перекрёстной проверкой ID референсов и проверкой выходных файлов | Подтверждено в рамках теста |
RQ2. Можно ли преобразовать скриншоты в аудируемые пространственные, цветовые и документальные артефакты? | Сохранённый прогон с тремя референсами с манифестами доказательств, контрактами и сгенерированными документами | Подтверждено описательно |
RQ3. Может ли итоговая спецификация служить основой для отдельной реализации фронтенда? | Качественный пример AEROFLOW | Предварительно; без контролируемого сравнения |
Формальная модель системы
Для референса r_i подготовленный набор доказательств содержит тайлы изображений I, границы обрезки B, репрезентативные измерения цветов P и метаданные источника M. Фиксированный контракт спецификации — это C; независимый запрос и итоговый документ — это q_i и D_i.
E_i = { I_i,k, B_i,k, P_i,k, M_i }
q_i = sampling/createMessage(C, E_i; includeContext = none)
D_i = G_theta(q_i)
References(q_i) = { r_i }
For every i != j: referenceId(r_j) is absent from q_iКоординаты, измеренные внутри подготовленного тайла, сопоставляются с исходным скриншотом следующим образом.
x_source = (cropLeft + x_tile) / scaleX
y_source = (cropTop + y_tile) / scaleYЭто инвариант операционной изоляции, а не утверждение статистической независимости. Сервер и smoke-тест могут проверять содержимое запросов и артефактов; они не могут доказать, что произвольный внешний поставщик моделей сохраняет за пределами MCP-сообщения.
Эмпирические результаты
Изоляция протокола
flowchart LR
R1["gdweb-26522"] --> Q1["Request 1<br/>5 evidence images<br/>includeContext: none"] --> D1["DESIGN_INDEX_gdweb-26522.md"]
R2["gdweb-24516"] --> Q2["Request 2<br/>4 evidence images<br/>includeContext: none"] --> D2["DESIGN_INDEX_gdweb-24516.md"]Запрос на выборку |
|
| Выходные документы |
Запрос 1 | 1 | 0 | 1 |
Запрос 2 | 0 | 1 | 1 |
Рисунок 1. Живой smoke-тест, записанный 22.08.2026, с использованием запроса 금융 (n = 2 отобранных референсов после исключения gdweb-26905). Каждый запрос содержал собственный ID референса и визуальные доказательства, без других отобранных ID референсов и с includeContext: none; прогон создал два отдельных Markdown-файла. Тест проверяет наблюдаемый состав запросов и разделение файлов, а не поведение памяти модели за пределами протокола.
Измерения сохранённого прогона
xychart-beta
title "Prepared evidence images per reference"
x-axis ["gdweb-27294", "gdweb-25378", "gdweb-24234"]
y-axis "Evidence images" 0 --> 5
bar [3, 4, 5]Референс | Высота исходного десктопа | Подготовленные изображения | Размер изображений | Измерения цветов | Токенов в документе | Размер документа | Требуемых заголовков |
| 2 675 px | 3 | 126,6 КБ | 24 | 7 921 | 54,0 КБ | 19/19 |
| 7 043 px | 4 | 302,5 КБ | 32 | 9 953 | 69,8 КБ | 19/19 |
| 7 832 px | 5 | 387,8 КБ | 40 | 9 517 | 63,2 КБ | 19/19 |
Рисунок 2. Описательные измерения сохранённого прогона 2026-07-29T15-54-10-483Z-5c70317e (n = 3 референса). Прогон подготовил 12 изображений доказательств общим объёмом 816,9 десятичных КБ и записал 96 измерений репрезентативных цветов. Он создал три документа DESIGN_INDEX общим объёмом 27 391 токенов с разделителями-пробелами и 187,0 десятичных КБ. Все три содержат заголовки 1–19; наличие заголовков не подтверждает семантическую корректность.
Качественный пример
(a) Просмотр доказательств | (b) Пореференсный | (c) Реализация на основе спецификации |
|
|
|
Рисунок 3. Сохранённый качественный след от просмотра доказательств GDWEB к сгенерированному DESIGN_INDEX для Korean Air и затем к AEROFLOW. AEROFLOW намеренно вводит новый брендинг, контент, изображения и функциональность; этот пример иллюстрирует использование спецификации и не является контролируемым сравнением визуального соответствия.
Интерпретация и ограничения
Живой результат изоляции имеет
n = 2; сохранённый анализ артефактов имеетn = 3. Ни то, ни другое не подтверждает широких утверждений о качестве дизайна или производительности модели.Текущая оценка не имеет контрольной группы, оценки человеком, повторных прогонов, доверительных интервалов или сравнения с базовыми показателями «скриншот-в-код».
Репрезентативные цвета измеряются после изменения размера, нормализации JPEG и квантования каналов. Это доказательства на основе скриншотов, а не подтверждение CSS-токенов исходного веб-сайта.
Результат 19/19 измеряет наличие требуемых заголовков. Будущий бенчмарк должен отдельно оценивать фактическую обоснованность, ошибку координат, разницу цветов, адаптивное поведение и точность реализации.
Качественная реализация — это пример существования, а не доказательство того, что Secret MCP улучшает качество восстановления.
Использование
1. Установка и сборка
Требуется Node.js 20.19 или новее.
Опубликованный MCP-сервер можно запустить с помощью:
npx -y secret-design-mcpКлонируйте репозиторий, если вам также нужен локальный просмотрщик или вы хотите работать с исходным кодом:
git clone https://github.com/yyeongjin/secret_mcp.git
cd secret_mcp
npm install
npm run build2. Запуск веб-приложения
Установите для DESIGN_INDEX_OUTPUT_DIR одно и то же значение для MCP-сервера и веб-приложения, чтобы оба процесса читали одну и ту же выходную директорию.
DESIGN_INDEX_OUTPUT_DIR=/absolute/path/to/design-index npm run webОткройте следующий адрес в браузере.
http://127.0.0.1:4317Веб-приложение отображает список прогонов генерации, прогресс по каждой работе, изображения доказательств GDWEB, измеренные координаты и палитры, контракт спецификации, отправленный LLM, итоговый Markdown и временные метки генерации. Документы и доказательства доступны только для чтения; только Exclude from search и Remove exclusion изменяют фильтр, используемый последующими поисками.
3. Регистрация MCP-сервера
{
"mcpServers": {
"secret-mcp": {
"command": "npx",
"args": [
"-y",
"secret-design-mcp"
],
"env": {
"DESIGN_INDEX_OUTPUT_DIR": "/absolute/path/to/design-index",
"SECRET_MCP_WEB_ORIGIN": "http://127.0.0.1:4317"
}
}
}
}Для исходного кода из репозитория замените command и args на "command": "node" и "args": ["/absolute/path/to/secret_mcp/dist/index.js"].
MCP-клиент должен поддерживать sampling/createMessage. Если клиент не поддерживает sampling, сервер возвращает явную ошибку вместо выполнения запасного варианта, который помещает несколько работ в один контекст.
Сам MCP-сервер stdio не открывает HTTP-порт. Клиент запускает node dist/index.js как дочерний процесс и обменивается JSON-RPC-сообщениями через stdio. Только отдельный процесс веб-просмотрщика по умолчанию использует порт 4317.
Прямой sampling-клиент для хостов без поддержки sampling
Сервер не нужно модифицировать, когда внешний MCP-хост не может ответить на sampling/createMessage. Отдельный MCP-клиент протокола может подключиться напрямую к dist/index.js, объявить sampling: {} и обрабатывать каждый sampling-запрос запуском нового процесса Codex LLM в новой временной рабочей области.
const client = new Client(
{ name: 'secret-mcp-sampling-client', version: '1.0.0' },
{ capabilities: { sampling: {} } }
);
client.setRequestHandler(CreateMessageRequestSchema, async request => {
const workspace = await mkdtemp('secret-mcp-sampling-');
const response = await launchFreshCodex({
workspace,
messages: request.params.messages,
systemPrompt: request.params.systemPrompt,
});
return {
model: response.model,
role: 'assistant',
content: { type: 'text', text: response.markdown },
};
});Обработчик sampling должен копировать в эту рабочую область только текстовые блоки и изображения доказательств текущего запроса. Он не должен повторно использовать беседу Codex, процесс, рабочий каталог, файл ответа или историю сообщений от другой работы. Рабочая область запускает один новый процесс Codex, ожидает его полный Markdown-ответ, возвращает этот ответ ожидающему вызову MCP sampling и может быть удалена после того, как сервер сохранит контракт, доказательства и документ работы.
Сервер по-прежнему управляет последовательной очередью: работа 2 не подготавливается, пока работа 1 не вернулась и не была сохранена. Это делает свежий процесс и рабочую область эквивалентом на уровне исполнения границы includeContext: none на уровне протокола, без добавления комбинированного запасного варианта на сервер. Прямой клиент становится MCP-хостом с поддержкой sampling; он должен использовать таймаут вызова инструмента, достаточно длинный для бюджета вывода на одну работу, и никогда не должен отвечать на несколько sampling-запросов через один постоянный разговор с LLM.
4. Запрос к LLM
Отдельная слэш-команда /web-design не требуется.
Find three recent design references on GDWEB that are suitable for a Godot project website.
Analyze every search result through a completely independent LLM request,
and create one reproducible DESIGN_INDEX document for each result.
Inside each document, separate every visible page into its own page specification,
and specify everything from navigation and section coordinates to exact color formats and responsive values.Хост-LLM вызывает инструмент generate-gdweb-design-indexes один раз. MCP-сервер выполняет поиск и внутренне разделяет LLM-запросы по каждой работе.
Формат ручного вызова инструмента показан ниже.
{
"name": "generate-gdweb-design-indexes",
"arguments": {
"query": "game portfolio",
"limit": 3,
"awardOnly": true,
"includePreviousYear": true,
"language": "English",
"outputDirectory": "/absolute/path/to/design-index",
"maxTokens": 131072
}
}Если outputDirectory не указан, инструмент использует переменную окружения DESIGN_INDEX_OUTPUT_DIR. Если и эта переменная отсутствует, используется каталог design-index в рабочем каталоге сервера.
maxTokens — это бюджет вывода на одну работу, а не общий бюджет запуска и не бюджет, разделяемый поровну между страницами. Одна работа может содержать несколько видимых страниц или маршрутов, и каждая страница должна повторять полные части контракта из 19 разделов, относящиеся к конкретной странице. Поэтому значение по умолчанию и минимальное значение равны 131072 токенам. Клиенты могут запрашивать до 262144 токенов для исключительно больших многостраничных наборов доказательств.
При limit: 3 запуск по умолчанию может запросить до трёх независимых выходных данных по 131072 токенов; работы не используют один общий пул на 131072 токена. Подключённый клиент сэмплирования и выбранная модель должны поддерживать запрошенный размер вывода. Если модель возвращает stopReason: maxTokens, сервер считает эту работу неудачной, а не сохраняет усечённый DESIGN_INDEX как завершённый.
Когда инструмент завершает работу, он возвращает идентификатор запуска, путь к манифесту запуска, пути к документам по каждой работе и URL веб-просмотрщика.
Сквозной пример: от спецификаций GDWEB до веб-сайта авиационного проекта на Godot
В реальном примере Secret MCP нашёл три работы-победителя авиационной премии, зарегистрированные на GDWEB в 2026 и 2025 годах, создал DESIGN_INDEX для каждой работы с помощью независимого LLM-запроса, а затем применил структуру эталонного сайта Korean Air к веб-сайту авиационного проекта на Godot.
Готовый веб-сайт AEROFLOW не является клоном сайта Korean Air. Он использует иерархию информации, навигацию, панель действий, расположение разделов и принципы адаптивности из спецификации, добавляя при этом новый бренд, тексты, авиационные изображения и контент. Этот пример демонстрирует, что даже когда итоговый дизайн отличается от эталона, измеримые структурные доказательства всё равно позволяют создать качественный веб-сайт с узнаваемой индивидуальностью.
Запустите пример
# 1. Build
npm install
npm run build
# 2. Per-work document web viewer
DESIGN_INDEX_OUTPUT_DIR="$PWD/tmp/design-index/aviation-godot-20260730" npm run web
# 3. Specification-driven result website
python3 -m http.server 4320 \
--bind 127.0.0.1 \
--directory tmp/showcase/aviation-godot/generated-siteПосле запуска процессов откройте следующие экраны.
Веб-просмотрщик спецификаций по каждой работе: http://127.0.0.1:4317/?run=2026-07-29T15-54-10-483Z-5c70317e
Веб-сайт результата AEROFLOW: http://127.0.0.1:4320
1. Результаты спецификаций по каждой работе
Выбирайте работы по одной из списка запусков слева. Правая сторона отображает только итоговый DESIGN_INDEX для выбранной работы, не смешивая его с содержимым других работ.

2. Доказательные изображения и измерения
Вкладка Evidence показывает изображения рабочего стола и мобильного устройства, отправленные в независимый LLM-запрос, координаты тайлов, коэффициенты уменьшения и характерные цвета.

3. Контракт независимого LLM-запроса
Request Contract фиксирует разделение страниц, навигацию, границы разделов, цвета HEX/RGB/HSL, компоненты, адаптивную матрицу и критерии приёмки. Этот контракт не позволяет результату превратиться в поверхностное описание настроения и делает его спецификацией реализации, которую может использовать другая LLM.

4. Процесс генерации
Generation Log показывает последовательность от поиска и подготовки доказательств до независимого LLM-запроса по каждой работе, сохранения документа и завершения полного запуска. Этот запуск обработал все три работы с отдельными запросами includeContext: none.

5. Первый экран AEROFLOW на основе спецификации
Яркий авиационный портал и структура панели действий, наблюдаемые в эталонном сайте Korean Air, были адаптированы для проекта на Godot. Бренд, изображения самолётов, тексты и функциональность были созданы специально для этого результата.

6. Основные моменты проекта
Структура карточек бронирования и акций была перепрофилирована под основной контент проекта: регионы полётов, стеклянную кабину и погоду в реальном времени.

7. Журнал разработки и ярлыки
Уведомления и служебные ярлыки исходного эталона были перестроены в историю сборок, прогресс разработки, модели самолётов, авионику, медиа, управление и навигацию по дорожной карте.

8. Медиа и подвал
В финальной области находятся ссылки на медиа проекта, разработку, поддержку и лицензии, а затем подвал независимого проекта.

Что демонстрирует этот результат
Новый проект может использовать проверенную иерархию информации и взаимосвязи макета, не копируя логотип, товарные знаки, тексты или изображения эталона.
Преобразование статических скриншотов в навигацию, границы в пикселях, цветовые токены, компоненты и адаптивную матрицу даёт другой LLM достаточно деталей для создания конкретного плана реализации.
Даже с одними и теми же структурными доказательствами заново созданные контент, брендинг и визуальные материалы могут сформировать отличительную индивидуальность, которая отличается от источника.
Secret MCP предназначен для извлечения структурных доказательств из хорошего дизайна и использования их для создания качественного веб-сайта под новый проект, а не для воспроизведения источника пиксель в пиксель.
Спецификация и контракт запроса
Эти ссылки ведут непосредственно к фактическим файлам, включённым в репозиторий. Те же артефакты также сгруппированы в tmp/showcase/aviation-godot через относительные символические ссылки для локального запуска и просмотра.
Базовая архитектура выполнения
flowchart TD
User["User request"] --> Host["Host LLM"]
Host --> Tool["One generate-gdweb-design-indexes call"]
Tool --> Exclusions["Load the exclusion list managed in the web viewer"]
Exclusions --> Search["Search GDWEB internally and filter work IDs"]
Search --> Queue["Keep results inside the server"]
Queue --> R1["Work 1 images + specification contract"]
R1 --> S1["Independent sampling/createMessage request 1"]
S1 --> F1["Save DESIGN_INDEX_gdweb-1.md"]
F1 --> R2["Work 2 images + specification contract"]
R2 --> S2["Independent sampling/createMessage request 2"]
S2 --> F2["Save DESIGN_INDEX_gdweb-2.md"]
F2 --> More["Repeat sequentially for every work"]
More --> Manifest["Record per-work evidence and status in run.json"]
Manifest --> Web["Inspect one work at a time in the local web viewer"]
Manifest --> Status["Return only file paths and statuses to the host"]Следующие границы обязательны.
Изображения или тела спецификаций из нескольких работ никогда не возвращаются внешней хост-LLM одним пакетом.
При
limit: 3сервер выполняет не более трёх взаимно независимых LLM-запросов сэмплирования.Каждый запрос сэмплирования использует
includeContext: none.Запрос сэмплирования содержит только метаданные одной работы и тайлы изображений.
Идентификатор предыдущей работы, её изображения и аналитический документ никогда не передаются в запрос следующей работы.
Работы, исключённые в веб-просмотрщике, удаляются из результатов поиска до создания любого запроса сэмплирования.
Сервер начинает следующую работу только после сохранения текущего ответа сэмплирования в файл.
В конце хост-LLM возвращаются только пути к сгенерированным файлам, использованная модель и статус успеха или неудачи.
Иными словами, это не прежняя архитектура, в которой хост-LLM читает все результаты сразу и создаёт объединённую сводку.
Веб-просмотрщик
Веб-просмотрщик читает DESIGN_INDEX_OUTPUT_DIR/.secret-mcp-runs каждые 2,5 секунды. Между процессом генерации MCP и веб-сервером нет отдельной базы данных или отладочного соединения.
Интерфейс содержит следующие области.
Запуски генерации: запрос, запрошенное количество, разрешённые годы и общий статус
Список работ: прогресс и количество доказательных изображений для каждого
gdweb-<work-number>Детали работы: спецификация, доказательные изображения и измерения, контракт запроса и журнал генерации для одной выбранной работы
Исключения поиска: исключить выбранную работу из будущих поисков, снова включить её и управлять полным списком исключений
Когда запуск содержит три работы, он также создаёт три документа, как показано ниже.
.secret-mcp-runs/<run-id>/
├── run.json
├── contracts/
│ ├── gdweb-26905.md
│ ├── gdweb-26522.md
│ └── gdweb-xxxxx.md
├── evidence/
│ ├── gdweb-26905_desktop_01-of-05.jpg
│ ├── gdweb-26522_desktop_01-of-04.jpg
│ └── ...
└── documents/
├── DESIGN_INDEX_gdweb-26905.md
├── DESIGN_INDEX_gdweb-26522.md
└── DESIGN_INDEX_gdweb-xxxxx.mdrun.json — это не файл, объединяющий тела документов из нескольких работ. Это манифест просмотрщика, содержащий только пути к файлам по каждой работе, статус, временные метки, модель и списки доказательств.
Список исключений поиска
Выбор Exclude from search в веб-просмотрщике сохраняет номер работы в следующий файл.
DESIGN_INDEX_OUTPUT_DIR/.secret-mcp/exclusions.jsonИсторические запуски и сгенерированные документы никогда не удаляются.
Новые запуски
generate-gdweb-design-indexesиsearch-gdweb-designsфильтруют номера работ перед выбором.Чтобы избежать слишком малого количества результатов из-за исключений, поиск читает дополнительные кандидаты GDWEB и выбирает запрошенный
limitиз неисключённых работ.Выбор
Remove exclusionделает работу снова доступной, начиная со следующего поиска.MCP-сервер и веб-просмотрщик должны использовать один и тот же
DESIGN_INDEX_OUTPUT_DIR, чтобы использовать общий список исключений.
Обработка изображений
Полные снимки рабочего стола GDWEB могут быть чрезвычайно высокими и иметь размер в несколько мегабайт. Отправка исходных данных base64 непосредственно в запросе сэмплирования может превысить лимиты транспорта MCP или привести к тому, что модель зрения пропустит мелкие структурные детали.
Перед созданием запроса для каждой работы gdweb-sampling-images.ts выполняет следующие операции.
Загружает изображение регистрации рабочего стола GDWEB с
sgbn=1Загружает изображение регистрации мобильного устройства GDWEB с
sgbn=3Изменяет размер изображения рабочего стола до максимальной ширины 1200px
Разбивает длинную страницу на перекрывающиеся вертикальные тайлы высотой 1600px
Сохраняет мобильное изображение как отдельное доказательство
Сжимает доказательства в JPEG для уменьшения размера запроса сэмплирования MCP
Записывает исходные и подготовленные размеры холста, коэффициент масштабирования, подготовленные координаты
x/y/width/height, координаты в исходном пространстве и исходный URL для каждого тайлаИзмеряет восемь характерных цветов из каждого тайла и записывает HEX, RGB, HSL и покрытие в пикселях
Несколько тайлов из одной работы включаются в один и тот же запрос сэмплирования для конкретной работы. Тайлы из разных работ никогда не включаются в один запрос.
Характерные цвета — это измерения, полученные из нормализованных пикселей скриншотов. Они являются точным доказательством для визуального сравнения, но их нельзя представлять как CSS-переменные исходного сайта, поскольку ошибки JPEG и содержимое изображения влияют на значения. Контракт генерации различает цвета MEASURED и токены реализации INFERRED.
Сервер не открывает живой производственный веб-сайт работы и не обходит его DOM. Визуальные доказательства ограничены изображениями и метаданными, зарегистрированными на GDWEB.
Поиск по GDWEB
Поиск дизайнов не использует автоматизацию браузера, Bing, Brave или DuckDuckGo.
Query
-> POST https://www.gdweb.co.kr/sub/search.asp
-> form field: Txt_word=<query>
-> parse the GDWEB result HTML
-> collect work number, category, and registration year
-> retain only the current and previous year
-> load GDWEB detail metadata and registered imagesПолитика актуальности
Если
yearне указан, используется текущий год выполнения.includePreviousYearпо умолчанию равенtrue.При запуске в 2026 году по умолчанию разрешены только работы, зарегистрированные в 2026 и 2025 годах.
При
includePreviousYear: falseразрешён только целевой год.awardOnlyпо умолчанию равенtrue, поэтому работы без названия награды исключаются.limitможет быть установлен от 1 до 10.
Метаданные работы
Поле | Описание |
| Номер работы GDWEB, также используется в имени файла документа |
| Значение категории работы GDWEB |
| Название работы |
| Страница сведений о работе GDWEB |
| Дата регистрации и год, используемые для фильтрации |
| Название награды |
| Концепция дизайна |
| Основной цвет |
| Продакшн-компания |
| Снимок рабочего стола GDWEB ( |
| Мобильный снимок GDWEB ( |
Спецификация DESIGN_INDEX
Каждый независимый запрос на выборку включает контракт secret-mcp/design-index/v2. Имя результирующего файла — DESIGN_INDEX_gdweb-<strNo>.md.
На каждую работу приходится один файл, но каждый файл начинается с перечня страниц и маршрутов и повторяет полный подраздел для каждой проверенной страницы. Контракт не принимает секции длинного прокручиваемого снимка за отдельные страницы; он разделяет страницы только тогда, когда коллаж доказательств визуально содержит отдельные экраны.
Каждый документ должен содержать все 19 пронумерованных разделов, перечисленных ниже.
Область | Требуемая спецификация |
Цель реконструкции | Идентификатор ссылки, целевая точность, маршруты, целевые области просмотра и нецели |
Доказательства и система координат | Идентификаторы изображений, исходные/подготовленные размеры, масштаб, координаты тайлов, координаты исходного пространства и метод удаления перекрытий |
Карта сайта | Проверенные страницы и маршруты, назначение, изображения-доказательства, общая оболочка, активное меню и уверенность |
Общая оболочка приложения | Глобальный фон, контейнер, поля, оверлеи, хром страницы и контекст наложения |
Навигация | Высота для настольных и мобильных устройств, координаты логотипа/меню, отступы, сенсорные зоны и состояния активный/при наведении/в фокусе/открыт |
Спецификация по страницам и таблица координат | Модель холста, порядок секций, x/y/ширина/высота, макет, состояния, данные и уровень доказательств для каждой страницы |
Глубокое погружение в макет | DOM, grid/flex, треки, min/max, соотношения, отступы, переполнение, sticky, absolute и z-index |
Абстракция компонентов | Дерево компонентов, привязанное к странице, пропсы, варианты, слоты, состояние, события и контракты данных |
Токены и точные цвета | HEX/RGB/HSL/alpha, использование, координаты измерений, уверенность, допуск и CSS-переменные |
Типографика | Семейство шрифтов по роли, px/rem, насыщенность, межстрочный интервал, межбуквенный интервал, выравнивание, обрезка и адаптивные значения |
Ресурсы и иконки | Страница и секция, размер отображения, соотношение сторон, кадрирование, точка фокусировки, object-fit, загрузка и стратегия запасного варианта |
Адаптивная матрица | Контейнеры, колонки, порядок, видимость, навигация и отступы при 1440/1280/1024/768/390/360px |
Взаимодействие и анимация | Цвет, непрозрачность, transform, длительность, плавность, клавиатура и поведение reduced-motion для каждого состояния |
Доступность | Ориентиры на страницу, заголовки, фокус, семантика меню, подписи, альтернативный текст, контраст и сенсорные цели |
Данные и контент | Сущности страницы, поля, количество, порядок, форматы, локализация и фикстуры загрузки/пустого состояния/ошибок |
Архитектура фронтенда | Маршруты, каталоги, страничные/общие модули, токены, ресурсы, состояние и границы сервера/клиента |
Граф задач реализации | Измерение, оболочка, навигация, идентификаторы задач по страницам, зависимости, результаты и критерии завершения |
Критерии приемки по страницам | Допуски координат, цвета и типографики; сравнение областей просмотра; переполнение; ресурсы; клавиатура и производительность |
Неопределенности и решения | Неизвестные по страницам и секциям, принятые значения, альтернативы, уверенность и требуемые дополнительные доказательства |
Каждое важное суждение помечается одним из следующих уровней доказательств.
OBSERVED: непосредственно видно на изображении или в метаданных GDWEBMEASURED: численно проверено по предоставленным пиксельным координатам или измеренной палитреINFERRED: обоснованно выведено для воспроизведения того же результатаUNKNOWN: невозможно проверить по статическим доказательствам и не должно утверждаться как факт
Другая LLM должна иметь возможность вывести дерево компонентов, токены, адаптивные правила, ресурсы, порядок реализации и элементы проверки только из заполненного документа.
Доступные инструменты
Сервер в настоящее время предоставляет пять MCP-инструментов.
Инструмент | Назначение |
| Выполняет поиск по GDWEB, отправляет изолированный LLM-запрос по каждому результату и сохраняет документы |
| Возвращает список ссылок GDWEB без создания спецификаций |
| Выполняет поиск по общему вебу и извлекает полное содержимое страницы |
| Возвращает заголовки, URL-адреса и описания из общего поиска |
| Извлекает полное содержимое известной общей веб-страницы |
Используйте generate-gdweb-design-indexes для планирования дизайна, анализа макета, спецификаций реализации и запросов DESIGN_INDEX. Используйте search-gdweb-designs только для легковесных запросов списков.
Структура исходного кода
secret_mcp/
├── src/
│ ├── index.ts MCP tool registration and sampling requests
│ ├── dashboard-server.ts Local web server and document/exclusion APIs
│ ├── design-index-run-store.ts Run manifest and per-work artifact records
│ ├── design-exclusion-store.ts Add/remove persistent search exclusions
│ ├── design-index-paths.ts Shared MCP/viewer output-path resolution
│ ├── gdweb-design-search.ts GDWEB search, year filtering, and registered-image loading
│ ├── gdweb-design-index-generator.ts Sequential per-work generation and Markdown saving
│ ├── gdweb-sampling-images.ts Long-capture resizing, tiling, and compression
│ ├── design-spec-contract.ts Required DESIGN_INDEX specification contract
│ ├── search-engine.ts General Bing, Brave, and DuckDuckGo search
│ ├── enhanced-content-extractor.ts General webpage content extraction
│ ├── browser-pool.ts Browser pool for general content extraction
│ ├── rate-limiter.ts General-search request limits
│ ├── types.ts Search and tool types
│ └── utils.ts URL, text, and timestamp utilities
├── web/
│ ├── index.html Web viewer interface
│ ├── styles.css Desktop and mobile layout
│ └── app.js Run refresh and per-work document switching
├── .github/workflows/
│ ├── ci.yml Build, lint, and package validation
│ ├── gdweb-smoke.yml Live GDWEB search and image validation
│ └── release.yml Release-package generation
├── tmp/DESIGN_CONTEST_SITES.md Design competition and award website list
├── tmp/reconstructions/
│ └── gdweb-27294-godot/ Specification-driven AEROFLOW static website
├── tmp/showcase/aviation-godot/
│ ├── DESIGN_INDEX.md Relative symbolic link to the per-work specification
│ ├── REQUEST_CONTRACT.md Relative symbolic link to the independent request contract
│ ├── RUN_MANIFEST.json Relative symbolic link to the run manifest
│ ├── generated-site/ Relative symbolic link to the result website
│ └── screenshots/ Run and result screens used by this README
├── mcp.json MCP registration example
└── package.jsonРазработка и проверка
npm run build
npm run lint
npm run smoke:gdweb-isolation
npm run webИзоляционный смоук-тест подключает макетный MCP-клиент, поддерживающий выборку, и проверяет следующее поведение.
Количество результатов поиска равно количеству запросов на выборку.
Каждый запрос на выборку содержит ровно один идентификатор ссылки.
Идентификатор другой работы не смешивается с запросом.
Каждый запрос использует
includeContext: none.Каждый запрос включает изображения GDWEB.
Каждый результат создает отдельный файл Markdown.
Исключенная работа не попадает в последующие результаты поиска или запросы на выборку.
Контракт спецификации содержит требования к страницам, навигации, координатам и цветам.
Доказательства манифеста запуска фиксируют координаты тайлов и измеренные палитры.
Переменные среды выполнения
Имя | По умолчанию | Описание |
|
| Каталог, в котором хранятся сгенерированные документы |
|
| Адрес веб-просмотрщика, включаемый в результаты MCP |
|
| Адрес привязки веб-сервера |
|
| Порт веб-сервера |
|
| Тайм-аут для каждого независимого LLM-запроса по работе в миллисекундах |
|
| Максимальная длина тела страницы, извлекаемого с общей веб-страницы |
|
| Тайм-аут для общих HTTP- и браузерных запросов |
|
| Максимальное количество браузеров, используемых для общего извлечения |
|
| Браузеры, используемые для общего поиска и извлечения |
|
| Запускается ли Playwright в фоновом режиме |
|
| Сравнивать ли каждый движок во время общего поиска |
|
| Выводить ли журналы жизненного цикла браузера |
Документация
Ggublack Chicken DESIGN_INDEX, исторический вывод на корейском
Спецификация Korean Air DESIGN_INDEX, исторический вывод на корейском
Связанные работы и ссылки
Secret MCP позиционируется как артефакт реализации, примыкающий к исследованиям мультимодального понимания пользовательских интерфейсов и преобразования скриншотов в код. Он еще не был оценен на наборах данных или метриках, используемых в приведенных ниже статьях, поэтому их результаты не следует интерпретировать как результаты Secret MCP.
Chenglei Si, Yanzhe Zhang, Ryan Li, Zhengyuan Yang, Ruibo Liu, and Diyi Yang. Design2Code: Benchmarking Multimodal Code Generation for Automated Front-End Engineering. NAACL 2025. Представляет оценку преобразования реальных скриншотов в код с визуальными и элементными метриками. Paper
Bryan Wang, Gang Li, Xin Zhou, Zhourong Chen, Tovi Grossman, and Yang Li. Screen2Words: Automatic Mobile UI Summarization with Multimodal Learning. UIST 2021. Исследует представления, объединяющие скриншот, текст, структуру и семантику интерфейса. Paper
Jing Yu Koh, Robert Lo, Lawrence Jang, Vikram Duvvur, Ming Chong Lim, Po-Yu Huang, Graham Neubig, Shuyan Zhou, Ruslan Salakhutdinov, and Daniel Fried. VisualWebArena: Evaluating Multimodal Agents on Realistic Visually Grounded Web Tasks. ACL 2024. Устанавливает важность и сложность оценки веб-агентов на основе визуального восприятия. Paper
Model Context Protocol. Sampling. Определяет опосредованное клиентом создание выборки
samplingCreateMessage, включая запросы, предпочтения моделей, лимиты токенов и управление контекстом. Specification
Цитирование
Secret MCP — это программное обеспечение с рабочей исследовательской заметкой, а не рецензируемая публикация.
@software{jo2026secretmcp,
author = {{조영진}},
title = {Secret MCP: Evidence-Isolated Multimodal Design Analysis through MCP Sampling},
year = {2026},
version = {0.6.0},
url = {https://github.com/yyeongjin/secret_mcp},
note = {Software artifact and working implementation report}
}Available Tools
5 toolsfull-web-searchA
Search the web and fetch complete page content from top results. This is the most comprehensive web search tool. It searches the web and then follows the resulting links to extract their full page content, providing the most detailed and complete information available. Use get-web-search-summaries for a lightweight alternative.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return with full content (1-10) | |
| query | Yes | Search query to execute (recommended for comprehensive research) | |
| includeContent | No | Whether to fetch full page content (default: true) | |
| maxContentLength | No | Maximum characters per result content (0 = no limit). Usually not needed - content length is automatically optimized. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose a genuine behavioral trait: the tool performs a two-stage operation (search, then follow links to extract full page content), which tells the agent this is heavier than a plain search. However, it stops short of warning about the costs or failure modes of that behavior — latency, a slow underlying website, partial fetch successes, or content truncation — which an agent would benefit from knowing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each of which earns its place: the first defines the action, the second states the positioning and mechanism, and the third gives the explicit alternative routing. The content is dense yet minimal, with the most important facts appearing in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately simple 4-parameter tool with rich schema coverage, the description provides the essential facts and points to the correct alternative. The main missing piece is absence of an expected latency/failure profile for the full-page extraction step — coverage that would be especially useful given the 'fetches full content' behavior and the format of results is not specified. Still, what's missing is the optional, not-basic, information, and the definition is arguably strong enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (query, limit, includeContent, maxContentLength) is already documented at the schema level with sensible defaults. The description adds no meaningful information about parameters while also requiring none because the structured definitions do the heavy lifting. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a specific verb and resource: 'Search the web and fetch complete page content from top results.' It further clarifies its mechanism by explaining it 'follows the resulting links to extract their full page content,' which unambiguously distinguishes it from siblings like get-web-search-summaries and get-single-web-page-content. An agent can understand exactly what this tool does without opening any other definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly routes for the lightweight case: 'Use get-web-search-summaries for a lightweight alternative,' giving clear when-to-use guidance and naming the competing tool. It also positions itself as the right choice for comprehensive research. It does not, however, cover the case where a single known URL is already in hand and get-single-web-page-content should be used, so the exclusion guidance is slightly incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-gdweb-design-indexesA
Automatically use this tool when the user asks to find GDWEB references and create layout analysis, frontend specifications, implementation plans, or DESIGN_INDEX files. This tool applies the dashboard-managed exclusion list, performs the GDWEB search internally, and sends one completely separate MCP sampling/createMessage request per non-excluded result. Each isolated request contains only one result and has no previous-result context. It writes one page-by-page, measurement-first DESIGN_INDEX_gdweb-.md file before starting the next request, then returns only file paths and statuses to the calling LLM. Never replace this tool with search-gdweb-designs plus a combined summary. The connected MCP client must support sampling.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Target award/registration year. Defaults to the current runtime year. | |
| limit | No | Number of isolated result requests and output documents (1-10) | |
| query | Yes | Natural-language design query to search directly on GDWEB | |
| language | No | Language for every generated document. Defaults to English; choose Korean for Korean output. | English |
| awardOnly | No | Whether to require a non-empty GDWEB award field | |
| maxTokens | No | Per-work output budget for a complete multi-page specification (131,072-262,144 tokens; default 131,072) | |
| outputDirectory | No | Directory for generated DESIGN_INDEX files. Defaults to DESIGN_INDEX_OUTPUT_DIR or ./design-index. | |
| includePreviousYear | No | Whether to include the previous year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full disclosure burden and does so thoroughly. It reveals the internal exclusion list, the isolated per-result MCP sampling requests with no previous-result context, the file-writing sequence, the return format (only paths and statuses), and the client prerequisite of supporting sampling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded, opening with the trigger condition before moving to behavioral details. There is minor redundancy between 'one completely separate MCP sampling/createMessage request' and 'Each isolated request contains only one result,' but every sentence otherwise contributes non-obvious operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, eight parameters, no annotations, and no output schema, the description supplies the essential context: when to use it, how it executes, what it produces, what it returns, and what the client must support. An agent has enough information to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All eight parameters have schema descriptions at 100% coverage, so the schema already documents parameter meaning and defaults. The tool description adds workflow context but no additional parameter-level semantics, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a concrete verb-resource pair: it generates DESIGN_INDEX files from GDWEB references, and explicitly enumerates the deliverables (layout analysis, frontend specifications, implementation plans, DESIGN_INDEX files). It also differentiates the tool from search-gdweb-designs by stating it should never be replaced with that sibling plus a combined summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The first sentence gives an explicit automatic trigger condition: use whenever the user asks for GDWEB references with layout analysis, specifications, plans, or DESIGN_INDEX files. The last sentence provides a clear when-not rule naming the alternative, search-gdweb-designs plus a combined summary, which is exactly the routing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-single-web-page-contentA
Extract and return the full content from a single web page URL. This tool follows a provided URL and extracts the main page content. Useful for getting detailed content from a specific webpage without performing a search.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the web page to extract content from | |
| maxContentLength | No | Maximum characters for the extracted content (0 = no limit, undefined = use default limit). Usually not needed - content length is automatically optimized. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'follows a provided URL and extracts the main page content,' but lacks details on failure modes, handling of pagination/dynamic content, rate limits, or response structure. This is a significant gap for a read tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the primary action and then immediately provides the use case. Every word earns its place, and it is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool, the description is adequate but not complete. It does not describe the return format, error handling, or edge cases (e.g., redirects, large pages). Without an output schema, this missing information is more noticeable, though the tool's simplicity mitigates the impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add extra clarification for 'maxContentLength' or 'url' beyond what the schema already provides, but this is acceptable given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Extract and return the full content from a single web page URL') and distinguishes itself from search tools by noting it is 'without performing a search.' This effectively differentiates it from sibling tools like full-web-search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: when you have a specific URL and want detailed content, as opposed to searching. However, it does not explicitly name alternatives or state when NOT to use it, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-web-search-summariesA
Search the web and return only the search result snippets/descriptions without following links to extract full page content. This is a lightweight alternative to full-web-search for when you only need brief search results. For comprehensive information, use full-web-search instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of search results to return (1-10) | |
| query | Yes | Search query to execute (lightweight alternative) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It clearly discloses that the tool only returns snippets and does not follow links, which is useful behavioral context. It could add details about rate limits or exact response shape, but the core behavior is transparent and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core behavior, then immediately provides usage guidance and the alternative, making every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is complete: it explains what results look like (snippets/descriptions), when to choose it, and how it differs from the primary sibling. The schema covers parameter details, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both 'query' and 'limit' adequately. The description adds contextual framing ('lightweight alternative') but does not add new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search the web') and precise resource ('return only the search result snippets/descriptions'), clearly distinguishing it from full-web-search. It also names what it does not do: follow links to extract full page content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('lightweight alternative... when you only need brief search results') and when not to ('For comprehensive information, use full-web-search instead'). It directly names the main alternative, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-gdweb-designsA
Use this tool only when the user wants a lightweight list of GDWEB references. It applies the dashboard-managed exclusion list before returning results, returns metadata for multiple results, and does not generate implementation documents. For layout analysis, frontend specifications, DESIGN_INDEX files, or implementation planning, use generate-gdweb-design-indexes instead so every result is processed by a separate isolated LLM request.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Target award/registration year. Defaults to the current runtime year. | |
| limit | No | Number of GDWEB design results to return (1-10) | |
| query | Yes | Natural-language design reference query to search directly on GDWEB | |
| awardOnly | No | Whether to require a non-empty GDWEB award field. Defaults to true. | |
| includePreviousYear | No | Whether to include the previous year in addition to the target year. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the tool applies a dashboard-managed exclusion list, returns metadata for multiple results, and does not generate implementation documents. It does not describe response structure or any side effects, but the stated behaviors are meaningful for selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The usage condition is front-loaded, followed by behavioral boundaries and the alternative route. Every clause contributes selection or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete enough for tool selection and invocation: it explains purpose, usage boundary, exclusion behavior, and non-generation of implementation documents. Since there is no output schema, the exact metadata fields returned are left vague, but this is a minor gap for a lightweight search-list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters documented in the input schema. The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: returning a lightweight list of GDWEB references with metadata, and explicitly contrasts itself with generate-gdweb-design-indexes. It clearly identifies what the tool does and how it differs from the most relevant sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description begins with 'Use this tool only when the user wants a lightweight list of GDWEB references,' giving an explicit trigger condition. It then names the alternative tool and the conditions under which that sibling should be used, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.6.0- First observed
full-web-search - First observed
generate-gdweb-design-indexes - First observed
get-single-web-page-content - First observed
get-web-search-summaries - First observed
search-gdweb-designs
TDQS
The tools are largely distinct: full-web-search and get-web-search-summaries are explicit alternatives for comprehensive vs lightweight results, and get-single-web-page-content handles a specific URL without searching. The two GDWEB tools could be confused at first glance, but their descriptions strongly differentiate metadata listing from file generation.
Most tools follow a hyphenated verb-noun pattern (search-gdweb-designs, generate-gdweb-design-indexes, get-web-search-summaries, get-single-web-page-content). The exception is full-web-search, which uses an adjective-noun form rather than a verb, creating a minor inconsistency.
Five tools is a well-scoped set for a web search and GDWEB reference server. Each tool has a distinct role—comprehensive search, snippet search, single-page fetch, lightweight GDWEB listing, and GDWEB index generation—so none feel redundant.
The surface covers the core workflows: broad web search with two detail levels, direct page extraction, and the specialized GDWEB design-index generation pipeline. Minor gaps exist around managing the dashboard exclusion list or retrieving previously generated index files, but agents can work around these.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Focused full-screen UI references and hosted design materials for coding agents.
A design-style library for AI agents: search real styles, fetch a ready-to-apply design spec.
Curated design references for AI — real CSS values, typography specs, and color palettes.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides comprehensive design principles and best practices to help LLMs generate modern, accessible web pages through guidance on layouts, colors, and typography. It enables users to review design approaches and access expert recommendations for responsive design, component structure, and current industry trends.12323-

Refero MCPofficial
AlicenseAqualityBmaintenanceEnables searching the Refero design catalog in plain English and generates DESIGN.md files for any project.68313MIT- AlicenseNot gradedqualityBmaintenanceCaptures website design evidence across responsive conditions and packages it into a portable design system for reuse by other agents.2MIT
- AlicenseNot gradedqualityCmaintenanceProvides curated real website design references with structured JSON data on type, spacing, palette, and layout. Enables AI agents to search, browse, and analyze over 1,000 sites and their sections.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yyeongjin/secret_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server