Secret MCP
Inglés | 한국어
Arquitectura objetivo

Secret MCP
Un servidor MCP basado en evidencia para análisis de diseño web, flujos de trabajo de captura de pantalla a especificación y planificación de reconstrucción frontend.
npx -y secret-design-mcpSecret MCP es un servidor local de Protocolo de Contexto de Modelo (MCP) que busca en GDWEB referencias de diseño recientes y crea una solicitud LLM separada y un archivo DESIGN_INDEX separado para cada resultado de búsqueda. Cada archivo contiene diseños específicos de página y ruta, navegación, coordenadas de píxeles, colores, componentes y especificaciones responsivas trazables hasta la evidencia visual proporcionada.
El nombre Secret MCP no significa que el proyecto proporcione funciones secretas o datos privados. Fue el nombre del proyecto utilizado mientras se experimentaba en un repositorio privado con la idea de construir un servidor MCP en torno a sitios web de diseño. El propósito actual del proyecto es extraer evidencia estructural reproducible de referencias de diseño públicas y convertirla en una especificación por trabajo que un LLM pueda aplicar a un nuevo proyecto.
Las imágenes y descripciones de múltiples trabajos nunca se combinan en un solo contexto o documento LLM. El servidor procesa los resultados de búsqueda secuencialmente dentro del servidor, crea una solicitud independiente de sampling/createMessage de MCP para cada trabajo, guarda el archivo de ese trabajo y solo entonces avanza al siguiente trabajo. Una aplicación web local separada le permite seleccionar un trabajo a la vez, inspeccionar su evidencia fuente, colores y coordenadas medidos, contrato LLM, registro de generación y documento final, y gestionar la lista de exclusión para búsquedas posteriores.
Related MCP server: Refero MCP
Nota de investigación
Análisis de diseño multimodal aislado por evidencia mediante muestreo MCP
Documento de trabajo e informe de implementación · Secret MCP v0.6.0 · no revisado por pares
Resumen
Secret MCP implementa un pipeline auditable para convertir capturas de pantalla de páginas web públicas en especificaciones de diseño orientadas a la implementación. El sistema prepara evidencia visual de escritorio y móvil, registra coordenadas de recorte y colores de píxeles representativos, e invoca el muestreo MCP del lado del cliente una vez por referencia. A diferencia de los flujos de trabajo que concatenan varias referencias de diseño en un solo prompt, Secret MCP trata la identidad de la referencia como un límite de solicitud y un límite de artefacto: una referencia produce una solicitud de muestreo, un contrato de solicitud y un documento DESIGN_INDEX. Cada solicitud pide includeContext: none y aplica el mismo contrato de especificación de 19 secciones que cubre rutas, geometría, componentes, tokens de diseño, comportamiento responsivo, accesibilidad, tareas de implementación, criterios de aceptación e incertidumbre. Este informe evalúa el aislamiento a nivel de protocolo y la producción de artefactos; no afirma que un modelo de lenguaje, prompt o método de reconstrucción supere a otro. Una prueba de humo en vivo verifica el límite de solicitud, mientras que una ejecución preservada de tres referencias proporciona mediciones descriptivas y un caso de implementación cualitativo.
Preguntas de investigación
Pregunta | Evidencia actual | Estado |
RQ1. ¿Puede una herramienta de análisis de diseño MCP mantener el aislamiento de una referencia por solicitud? | Prueba de humo de muestreo en vivo con inspección de ID de referencia cruzada y comprobaciones de archivos de salida | Verificado dentro del alcance de la prueba |
RQ2. ¿Puede la evidencia de capturas de pantalla transformarse en artefactos espaciales, de color y documentales auditables? | Ejecución preservada de tres referencias con manifiestos de evidencia, contratos y documentos generados | Verificado descriptivamente |
RQ3. ¿Puede la especificación resultante guiar una implementación frontend distinta? | Estudio de caso cualitativo AEROFLOW | Preliminar; sin comparación controlada |
Modelo formal del sistema
Para la referencia r_i, el conjunto de evidencia preparado contiene mosaicos de imagen I, límites de recorte B, mediciones de color representativas P y metadatos de fuente M. El contrato de especificación fijo es C; la solicitud independiente y el documento resultante son q_i y 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_iLas coordenadas medidas dentro de un mosaico preparado se asignan de vuelta a la captura de pantalla original de la siguiente manera.
x_source = (cropLeft + x_tile) / scaleX
y_source = (cropTop + y_tile) / scaleYEste es un invariante de aislamiento operativo, no una afirmación de independencia estadística. El servidor y la prueba de humo pueden inspeccionar el contenido de las solicitudes y los artefactos; no pueden probar lo que un proveedor de modelos externo arbitrario pueda retener fuera del mensaje MCP.
Resultados empíricos
Aislamiento de protocolo
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"]Solicitud de muestreo |
|
| Documentos de salida |
Solicitud 1 | 1 | 0 | 1 |
Solicitud 2 | 0 | 1 | 1 |
Figura 1. Prueba de humo en vivo registrada el 2026-08-22 usando la consulta 금융 (n = 2 referencias muestreadas después de excluir gdweb-26905). Cada solicitud contenía su propio ID de referencia y evidencia visual, ningún otro ID de referencia muestreado, y includeContext: none; la ejecución produjo dos archivos Markdown distintos. La prueba verifica la composición observable de la solicitud y la separación de archivos, no el comportamiento de la memoria del modelo fuera del protocolo.
Mediciones de la ejecución registrada
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]Referencia | Altura de fuente de escritorio | Imágenes preparadas | Carga útil de imagen | Mediciones de color | Tokens del documento | Tamaño del documento | Encabezados requeridos |
| 2,675px | 3 | 126.6KB | 24 | 7,921 | 54.0KB | 19/19 |
| 7,043px | 4 | 302.5KB | 32 | 9,953 | 69.8KB | 19/19 |
| 7,832px | 5 | 387.8KB | 40 | 9,517 | 63.2KB | 19/19 |
Figura 2. Mediciones descriptivas de la ejecución preservada 2026-07-29T15-54-10-483Z-5c70317e (n = 3 referencias). La ejecución preparó 12 imágenes de evidencia con un total de 816.9 KB decimales y registró 96 mediciones de color representativas. Produjo tres documentos DESIGN_INDEX con un total de 27,391 tokens separados por espacios y 187.0 KB decimales. Los tres contienen los encabezados 1–19; la presencia de encabezados no establece la corrección semántica.
Estudio de caso cualitativo
(a) Evidencia y mediciones | (b) | (c) Implementación impulsada por especificación |
|
|
|
Figura 3. Un rastro cualitativo preservado desde el visor de evidencia de GDWEB hasta el DESIGN_INDEX de Korean Air generado y luego a AEROFLOW. AEROFLOW introduce intencionalmente nueva marca, contenido, imágenes y funcionalidad; este ejemplo ilustra el uso de la especificación y no es una comparación controlada de fidelidad visual.
Interpretación y limitaciones
El resultado de aislamiento en vivo tiene
n = 2; el análisis de artefactos registrado tienen = 3. Ninguno respalda afirmaciones amplias sobre la calidad del diseño o el rendimiento del modelo.La evaluación actual no tiene grupo de control, calificación humana, ensayos repetidos, intervalos de confianza o comparación con líneas base de captura de pantalla a código.
Los colores representativos se miden después del redimensionamiento, la normalización JPEG y la cuantificación de canales. Son evidencia de captura de pantalla, no prueba de los tokens CSS del sitio web fuente.
El resultado 19/19 mide la presencia de encabezados requeridos. Un benchmark futuro debe evaluar por separado el fundamento factual, el error de coordenadas, la diferencia de color, el comportamiento responsivo y la fidelidad de implementación.
La implementación cualitativa es un ejemplo de existencia, no evidencia de que Secret MCP mejore la calidad de reconstrucción.
Uso
1. Instalar y compilar
Se requiere Node.js 20.19 o posterior.
El servidor MCP publicado se puede lanzar con:
npx -y secret-design-mcpClone el repositorio cuando también necesite el visor local o quiera trabajar en el código fuente:
git clone https://github.com/yyeongjin/secret_mcp.git
cd secret_mcp
npm install
npm run build2. Iniciar la aplicación web
Establezca DESIGN_INDEX_OUTPUT_DIR al mismo valor para el servidor MCP y la aplicación web para que ambos procesos lean el mismo directorio de salida.
DESIGN_INDEX_OUTPUT_DIR=/absolute/path/to/design-index npm run webAbra la siguiente dirección en un navegador.
http://127.0.0.1:4317La aplicación web muestra la lista de ejecuciones de generación, el progreso por trabajo, las imágenes de evidencia de GDWEB, las coordenadas y paletas medidas, el contrato de especificación enviado al LLM, el Markdown final y las marcas de tiempo de generación. Los documentos y la evidencia son de solo lectura; solo Exclude from search y Remove exclusion cambian el filtro utilizado por búsquedas posteriores.
3. Registrar el servidor 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"
}
}
}
}Para una copia del código fuente, reemplace command y args con "command": "node" y "args": ["/ruta/absoluta/a/secret_mcp/dist/index.js"].
El cliente MCP debe admitir sampling/createMessage. Cuando un cliente no admite el muestreo, el servidor devuelve un error explícito en lugar de ejecutar un respaldo que coloque múltiples trabajos en el mismo contexto.
El servidor MCP stdio en sí no abre un puerto HTTP. El cliente lanza node dist/index.js como un proceso hijo e intercambia mensajes JSON-RPC a través de stdio. Solo el proceso del visor web separado usa el puerto 4317 por defecto.
Cliente de muestreo directo para hosts sin muestreo
El servidor no necesita modificarse cuando el host MCP externo no puede responder a sampling/createMessage. Un cliente de protocolo MCP separado puede conectarse directamente a dist/index.js, anunciar sampling: {} y manejar cada solicitud de muestreo lanzando un proceso LLM de Codex nuevo en un espacio de trabajo temporal nuevo.
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 },
};
});El manejador de muestreo debe copiar solo los bloques de texto y las imágenes de evidencia de la solicitud actual en ese espacio de trabajo. No debe reutilizar una conversación de Codex, proceso, directorio de trabajo, archivo de respuesta o historial de mensajes de otro trabajo. El espacio de trabajo lanza un nuevo proceso de Codex, espera su respuesta completa en Markdown, devuelve esa respuesta a la llamada de muestreo MCP pendiente y puede eliminarse después de que el servidor haya guardado el contrato, la evidencia y el documento del trabajo.
El servidor aún controla la cola secuencial: el trabajo 2 no se prepara hasta que el trabajo 1 haya regresado y se haya guardado. Esto hace que el proceso y el espacio de trabajo nuevos sean un equivalente a nivel de ejecución del límite includeContext: none a nivel de protocolo sin agregar un respaldo combinado al servidor. El cliente directo se convierte en el host MCP capaz de muestrear; debe usar un tiempo de espera de llamada de herramienta lo suficientemente largo para el presupuesto de salida por trabajo y nunca debe responder múltiples solicitudes de muestreo a través de una conversación LLM persistente.
4. Preguntar al LLM
No se requiere un comando de barra /web-design separado.
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.El LLM anfitrión llama a la herramienta generate-gdweb-design-indexes una sola vez. El servidor MCP realiza la búsqueda y separa internamente las solicitudes LLM por obra.
El formato manual de llamada a la herramienta se muestra a continuación.
{
"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
}
}Si se omite outputDirectory, la herramienta usa la variable de entorno DESIGN_INDEX_OUTPUT_DIR. Si esa variable tampoco existe, usa el directorio design-index bajo el directorio de trabajo del servidor.
maxTokens es un presupuesto de salida por obra, no un presupuesto compartido por la ejecución ni un presupuesto dividido equitativamente entre páginas. Una sola obra puede contener múltiples páginas o rutas visibles, y cada página debe repetir las partes específicas de la página del contrato de 19 secciones. Por lo tanto, el valor predeterminado y el mínimo son 131072 tokens. Los clientes pueden solicitar hasta 262144 tokens para conjuntos de evidencia multipágina excepcionalmente grandes.
Con limit: 3, la ejecución predeterminada puede solicitar hasta tres salidas independientes de 131072 tokens; las obras no comparten un único grupo de 131072 tokens. El cliente de muestreo conectado y el modelo seleccionado deben admitir el tamaño de salida solicitado. Si el modelo devuelve stopReason: maxTokens, el servidor trata esa obra como fallida en lugar de guardar un DESIGN_INDEX truncado como completo.
Cuando la herramienta se completa, devuelve el ID de ejecución, la ruta del manifiesto de ejecución, las rutas de los documentos por obra y la URL del visor web.
Ejemplo de extremo a extremo: de las especificaciones de GDWEB a un sitio web de aviación en Godot
Para el ejemplo real, Secret MCP encontró tres ganadores de premios de aviación registrados en GDWEB en 2026 y 2025, creó un DESIGN_INDEX para cada obra mediante una solicitud LLM independiente y luego aplicó la estructura de la referencia de Korean Air a un sitio web de proyecto de aviación en Godot.
El sitio web terminado AEROFLOW no es un clon del sitio web de Korean Air. Utiliza la jerarquía de información, la navegación, el panel de acciones, la disposición de secciones y los principios de diseño responsivo de la especificación, al tiempo que introduce una nueva marca, textos, imágenes de aviación y contenido. Este ejemplo demuestra que incluso cuando el diseño resultante difiere de la referencia, la evidencia estructural medible puede producir un sitio web pulido con una identidad distintiva.
Ejecutar el ejemplo
# 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-siteDespués de iniciar los procesos, abre las siguientes pantallas.
Visor web de especificaciones por obra: http://127.0.0.1:4317/?run=2026-07-29T15-54-10-483Z-5c70317e
Sitio web de resultados de AEROFLOW: http://127.0.0.1:4320
1. Resultados de especificaciones por obra
Selecciona las obras una a la vez de la lista de ejecuciones a la izquierda. El lado derecho muestra solo el DESIGN_INDEX final de la obra seleccionada, sin mezclar contenido de otras obras.

2. Imágenes de evidencia y mediciones
La pestaña Evidence muestra las imágenes de escritorio y móvil enviadas a la solicitud LLM independiente, las coordenadas de los mosaicos, los índices de reducción y los colores representativos.

3. Contrato de solicitud LLM independiente
El Request Contract registra la separación de páginas, la navegación, los límites de secciones, los colores HEX/RGB/HSL, los componentes, la matriz responsiva y los criterios de aceptación. Este contrato evita que el resultado termine como un resumen de ambiente superficial y lo convierte en una especificación de implementación que otro LLM puede usar.

4. Proceso de generación
El Generation Log muestra la secuencia desde la búsqueda y la preparación de la evidencia hasta la solicitud LLM independiente por obra, el guardado del documento y la finalización completa de la ejecución. Esta ejecución procesó las tres obras con solicitudes separadas de includeContext: none.

5. Primera vista de AEROFLOW impulsada por la especificación
El portal de aviación brillante y la estructura de panel de acciones observados en la referencia de Korean Air se adaptaron a un proyecto de Godot. La marca, las imágenes de aeronaves, los textos y la funcionalidad se crearon específicamente para este resultado.

6. Destacados del proyecto
La estructura de tarjetas de reserva y promoción se reutilizó para el contenido principal del proyecto: regiones de vuelo, cabina de vidrio y clima en tiempo real.

7. Registro de desarrollo y accesos directos
Los avisos y accesos directos de servicio de la referencia de origen se reestructuraron en historial de compilación, progreso de desarrollo, modelos de vuelo, aviónica, medios, controles y navegación de hoja de ruta.

8. Medios y pie de página
El área final contiene enlaces de medios del proyecto, desarrollo, soporte y licencia, seguidos de un pie de página de proyecto independiente.

Qué demuestra este resultado
Un proyecto nuevo puede usar una jerarquía de información validada y relaciones de diseño sin copiar el logotipo, las marcas comerciales, los textos o las imágenes de la referencia.
Convertir capturas de pantalla estáticas en navegación, límites de píxeles, tokens de color, componentes y una matriz responsiva le da a otro LLM suficiente detalle para crear un plan de implementación concreto.
Incluso con la misma evidencia estructural, el contenido, la marca y los activos visuales recién diseñados pueden crear una identidad distintiva que difiere de la fuente.
Secret MCP está diseñado para extraer evidencia estructural de un buen diseño y usarla para construir un sitio web pulido adecuado para un proyecto nuevo, no para reproducir la fuente píxel por píxel.
Especificación y contrato de solicitud
Estos enlaces apuntan directamente a los archivos reales incluidos en el repositorio. Los mismos artefactos también se agrupan bajo tmp/showcase/aviation-godot mediante enlaces simbólicos relativos para la ejecución y navegación local.
Arquitectura de ejecución principal
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"]Los siguientes límites son esenciales.
Las imágenes o los cuerpos de especificación de múltiples obras nunca se devuelven al LLM anfitrión externo como un solo lote.
Con
limit: 3, el servidor realiza exactamente hasta tres solicitudes de muestreo LLM mutuamente independientes.Cada solicitud de muestreo usa
includeContext: none.Una solicitud de muestreo contiene solo los metadatos y los mosaicos de imágenes de una obra.
El ID, las imágenes y el documento de análisis de la obra anterior nunca se pasan a la solicitud de la siguiente obra.
Las obras excluidas en el visor web se eliminan de los resultados de búsqueda antes de que se cree cualquier solicitud de muestreo.
El servidor inicia la siguiente obra solo después de guardar la respuesta de muestreo actual en un archivo.
Al final, solo se devuelven al anfitrión las rutas de los archivos generados, el modelo utilizado y el estado de éxito o fracaso.
En otras palabras, esta no es la arquitectura anterior en la que el LLM anfitrión lee todos los resultados a la vez y produce un resumen combinado.
Visor web
El visor web lee DESIGN_INDEX_OUTPUT_DIR/.secret-mcp-runs cada 2,5 segundos. No hay una base de datos separada ni una conexión de depuración entre el proceso de generación MCP y el servidor web.
La interfaz contiene las siguientes áreas.
Ejecuciones de generación: consulta, cantidad solicitada, años permitidos y estado general
Lista de obras: progreso y cantidad de imágenes de evidencia para cada
gdweb-<número-de-obra>Detalles de la obra: especificación, imágenes de evidencia y mediciones, contrato de solicitud y registro de generación para una obra seleccionada
Exclusiones de búsqueda: excluir la obra seleccionada de búsquedas futuras, incluirla nuevamente y administrar la lista completa de exclusiones
Cuando una ejecución contiene tres obras, también produce tres documentos como se muestra a continuación.
.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 no es un archivo que combine los cuerpos de documentos de múltiples obras. Es un manifiesto del visor que contiene solo rutas de archivos por obra, estado, marcas de tiempo, modelo y listas de evidencia.
Lista de exclusión de búsqueda
Seleccionar Exclude from search en el visor web guarda el número de obra en el siguiente archivo.
DESIGN_INDEX_OUTPUT_DIR/.secret-mcp/exclusions.jsonLas ejecuciones históricas y los documentos generados nunca se eliminan.
Las nuevas ejecuciones de
generate-gdweb-design-indexesysearch-gdweb-designsfiltran los números de obra antes de la selección.Para evitar devolver muy pocos resultados debido a exclusiones, la búsqueda lee candidatos adicionales de GDWEB y selecciona el
limitsolicitado de las obras no excluidas.Seleccionar
Remove exclusionhace que la obra vuelva a ser elegible a partir de la siguiente búsqueda.El servidor MCP y el visor web deben usar el mismo
DESIGN_INDEX_OUTPUT_DIRpara compartir la misma lista de exclusiones.
Procesamiento de imágenes
Las capturas de escritorio completas de GDWEB pueden ser extremadamente altas y de varios megabytes. Enviar los datos base64 originales directamente en una solicitud de muestreo puede exceder los límites de transporte de MCP o hacer que un modelo de visión pase por alto detalles estructurales finos.
Antes de crear la solicitud para cada obra, gdweb-sampling-images.ts realiza las siguientes operaciones.
Carga la imagen de registro de escritorio de GDWEB con
sgbn=1Carga la imagen de registro móvil de GDWEB con
sgbn=3Redimensiona la imagen de escritorio a un ancho máximo de 1200px
Divide una página larga en mosaicos verticales superpuestos de 1600px de alto
Conserva la imagen móvil como evidencia separada
Comprime la evidencia como JPEG para reducir el tamaño de la solicitud de muestreo MCP
Registra las dimensiones originales y preparadas del lienzo, el factor de escala, las coordenadas preparadas
x/y/width/height, las coordenadas del espacio de origen y la URL de origen para cada mosaicoMide ocho colores representativos de cada mosaico y registra HEX, RGB, HSL y cobertura de píxeles
Múltiples mosaicos de una obra se incluyen en la misma solicitud de muestreo específica de la obra. Los mosaicos de diferentes obras nunca se incluyen en la misma solicitud.
Los colores representativos son mediciones muestreadas de píxeles de capturas de pantalla normalizadas. Son evidencia precisa para la comparación visual, pero no deben presentarse como las variables CSS del sitio de origen porque el error JPEG y el contenido de la imagen afectan los valores. El contrato de generación distingue los colores MEASURED de los tokens de implementación INFERRED.
El servidor no abre el sitio web de producción en vivo de la obra ni rastrea su DOM. La evidencia visual se limita a las imágenes y los metadatos registrados en GDWEB.
Búsqueda en GDWEB
La búsqueda de diseño no usa automatización de navegador, Bing, Brave ni 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 imagesPolítica de frescura
Si se omite
year, se usa el año de ejecución actual.includePreviousYeartiene como valor predeterminadotrue.Cuando se ejecuta en 2026, solo se permiten por defecto las obras registradas en 2026 y 2025.
Con
includePreviousYear: false, solo se permite el año objetivo.awardOnlytiene como valor predeterminadotrue, por lo que las obras sin nombre de premio se excluyen.limitse puede establecer de 1 a 10.
Metadatos de la obra
Campo | Descripción |
| Número de trabajo de GDWEB, también usado en el nombre del archivo del documento |
| Valor de categoría de trabajo de GDWEB |
| Título del trabajo |
| Página de detalle del trabajo en GDWEB |
| Fecha de registro y año usado para el filtrado |
| Nombre del premio |
| Concepto de diseño |
| Color principal |
| Empresa de producción |
| Captura de escritorio de GDWEB ( |
| Captura móvil de GDWEB ( |
Especificación de DESIGN_INDEX
Cada solicitud de muestreo independiente incluye el contrato secret-mcp/design-index/v2. El nombre de archivo resultante es DESIGN_INDEX_gdweb-<strNo>.md.
Hay un archivo por trabajo, pero cada archivo comienza con un inventario de páginas y rutas y repite una subsección completa para cada página verificada. El contrato no confunde secciones de una captura de desplazamiento largo con páginas separadas; solo divide páginas cuando el collage de evidencia muestra visiblemente pantallas separadas.
Cada documento debe contener las 19 secciones numeradas que se indican a continuación.
Área | Especificación requerida |
Objetivo de reconstrucción | ID de referencia, fidelidad objetivo, rutas, viewports objetivo y no objetivos |
Evidencia y sistema de coordenadas | IDs de imagen, dimensiones originales/preparadas, escala, coordenadas de teselas, coordenadas del espacio de origen y método de eliminación de solapamientos |
Mapa del sitio | Páginas y rutas verificadas, propósito, imágenes de evidencia, shell compartido, menú activo y confianza |
Shell de aplicación compartido | Fondo global, contenedor, márgenes, superposiciones, marco de página y contexto de apilamiento |
Navegación | Alturas de escritorio y móvil, coordenadas de logotipo/menú, espacios, áreas táctiles y estados activo/hover/focus/abierto |
Especificación por página y tabla de coordenadas | Modelo de lienzo, orden de secciones, x/y/ancho/alto, diseño, estados, datos y nivel de evidencia para cada página |
Análisis profundo del diseño | DOM, grid/flex, pistas, min/max, proporciones, espacios, desbordamiento, sticky, absoluto y z-index |
Abstracción de componentes | Árbol de componentes vinculado a páginas, props, variantes, slots, estado, eventos y contratos de datos |
Tokens y colores exactos | HEX/RGB/HSL/alfa, uso, coordenadas de medición, confianza, tolerancia y variables CSS |
Tipografía | Familia de fuentes por rol, px/rem, peso, interlineado, espaciado entre letras, alineación, truncamiento y valores responsivos |
Recursos e iconos | Página y sección, tamaño de visualización, relación de aspecto, recorte, punto focal, object-fit, carga y estrategia de respaldo |
Matriz responsiva | Contenedores, columnas, orden, visibilidad, navegación y espaciado a 1440/1280/1024/768/390/360px |
Interacción y movimiento | Color, opacidad, transform, duración, easing, teclado y comportamiento de movimiento reducido para cada estado |
Accesibilidad | Landmarks por página, encabezados, foco, semántica de menús, etiquetas, texto alternativo, contraste y objetivos táctiles |
Datos y contenido | Entidades de página, campos, recuentos, ordenación, formatos, localización y fixtures de carga/vacío/error |
Arquitectura frontend | Rutas, directorios, módulos de página/compartidos, tokens, recursos, estado y límites servidor/cliente |
Grafo de tareas de implementación | Medición, shell, navegación, IDs de tareas por página, dependencias, entregables y criterios de finalización |
Criterios de aceptación por página | Tolerancias de coordenadas, color y tipografía; comparación de viewport; desbordamiento; recursos; teclado y rendimiento |
Incertidumbres y decisiones | UNKNOWNs por página y por sección, valores adoptados, alternativas, confianza y evidencia adicional requerida |
Cada juicio importante se marca con uno de los siguientes niveles de evidencia.
OBSERVED: directamente visible en una imagen o metadato de GDWEBMEASURED: verificado numéricamente a partir de coordenadas de píxeles proporcionadas o de la paleta medidaINFERRED: inferido razonablemente para reproducir el mismo resultadoUNKNOWN: no puede verificarse a partir de evidencia estática y no debe afirmarse como hecho
Otro LLM debe poder derivar el árbol de componentes, los tokens, las reglas responsivas, los recursos, el orden de implementación y los elementos de validación únicamente a partir del documento completado.
Herramientas Expuestas
El servidor expone actualmente cinco herramientas MCP.
Herramienta | Propósito |
| Buscar en GDWEB, hacer una solicitud LLM aislada por resultado y guardar documentos |
| Devolver una lista de referencias de GDWEB sin generar especificaciones |
| Buscar en la web general y extraer el contenido completo de la página |
| Devolver títulos, URLs y descripciones de una búsqueda general |
| Extraer el contenido completo de una página web general conocida |
Usa generate-gdweb-design-indexes para planificación de diseño, análisis de diseño, especificaciones de implementación y solicitudes de DESIGN_INDEX. Usa search-gdweb-designs solo para solicitudes de listas ligeras.
Estructura de la Fuente
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.jsonDesarrollo y Validación
npm run build
npm run lint
npm run smoke:gdweb-isolation
npm run webLa prueba de aislamiento conecta un cliente MCP simulado que admite muestreo y verifica el siguiente comportamiento.
El número de resultados de búsqueda es igual al número de solicitudes de muestreo.
Cada solicitud de muestreo contiene exactamente un ID de referencia.
Ningún ID de otro trabajo se mezcla en una solicitud.
Cada solicitud usa
includeContext: none.Cada solicitud incluye imágenes de GDWEB.
Cada resultado crea un archivo Markdown separado.
Un trabajo excluido no entra en resultados de búsqueda ni solicitudes de muestreo posteriores.
El contrato de especificación contiene requisitos por página, de navegación, de coordenadas y de color.
La evidencia del manifiesto de ejecución registra coordenadas de teselas y paletas medidas.
Variables de Entorno en Tiempo de Ejecución
Nombre | Valor por defecto | Descripción |
|
| Directorio donde se almacenan los documentos generados |
|
| Dirección del visor web incluida en los resultados de MCP |
|
| Dirección de enlace del servidor web |
|
| Puerto del servidor web |
|
| Tiempo de espera para cada solicitud LLM independiente por trabajo, en milisegundos |
|
| Longitud máxima del cuerpo de página extraído de una página web general |
|
| Tiempo de espera para solicitudes HTTP y de navegador generales |
|
| Número máximo de navegadores usados para la extracción general |
|
| Navegadores usados para búsqueda y extracción generales |
|
| Si Playwright se ejecuta en modo headless |
|
| Si se comparan todos los motores durante la búsqueda general |
|
| Si se imprimen registros del ciclo de vida del navegador |
Documentación
Trabajo Relacionado y Referencias
Secret MCP se posiciona como un artefacto de implementación adyacente a la comprensión multimodal de interfaces de usuario y a la investigación de captura de pantalla a código. Aún no se ha evaluado en los conjuntos de datos o métricas utilizados por los artículos a continuación, por lo que sus resultados no deben interpretarse como resultados de 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. Introduce una evaluación de conversión de capturas de pantalla a código en el mundo real con métricas visuales y a nivel de elementos. Paper
Bryan Wang, Gang Li, Xin Zhou, Zhourong Chen, Tovi Grossman, and Yang Li. Screen2Words: Automatic Mobile UI Summarization with Multimodal Learning. UIST 2021. Estudia representaciones que combinan captura de pantalla, texto, estructura y semántica de la interfaz de usuario. 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. Establece la importancia y la dificultad de la evaluación de agentes web con base visual. Paper
Model Context Protocol. Sampling specification. Define
sampling/createMessagemediado por el cliente, incluidos los mensajes de solicitud, las preferencias de modelo, los presupuestos de tokens y los controles de contexto. Specification
Cita
Secret MCP es actualmente software con una nota de investigación en curso, no una publicación revisada por pares.
@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