
Secret MCP
io.github.yyeongjin由 GitHub 帳號 yyeongjin 發布v0.6.0更新於 Oct 24, 2026
Local MCP server for isolated, evidence-backed GDWEB design analysis and web search.
概覽
一個本機 MCP 伺服器,會搜尋 GDWEB 設計參考,並把每個結果分別轉成有證據支撐的設計規格文件。
- 可以做什麼
- Secret MCP 提供五個工具:generate-gdweb-design-indexes 會搜尋 GDWEB,為每個結果準備桌機與行動版截圖證據,並發出一次獨立的 LLM 取樣請求,產生 DESIGN_INDEX 規格文件;search-gdweb-designs 只回傳參考清單;full-web-search、get-web-search-summaries 與 get-single-web-page-content 負責一般網頁搜尋與全文擷取。每個作品依序單獨處理並存成獨立文件,執行清單會記錄每個作品的證據與狀態。另有本機網頁檢視器,可查看執行紀錄、證據圖片、量測座標與顏色、請求契約與產生的文件。
- 適用情境
- 適合需要把設計參考轉成面向實作的設計規格(版面、導覽、像素座標、顏色、元件、響應式行為)以用於新前端專案,或同時需要一般網頁搜尋與整頁擷取的情境。也適合希望每個參考各自產生一份規格、而不是合併摘要的使用者。
- 執行需求
- 需要 Node.js 20.19 或更新版本;以本機 stdio 程序執行,可透過 npx secret-design-mcp 或原始碼檢出啟動。MCP 用戶端必須支援 sampling/createMessage,否則需另備支援取樣的用戶端。選用環境變數包括 DESIGN_INDEX_OUTPUT_DIR、SECRET_MCP_WEB_ORIGIN、SECRET_MCP_WEB_HOST、SECRET_MCP_WEB_PORT、MCP_SAMPLING_TIMEOUT_MS 及瀏覽器相關設定。網頁檢視器預設使用 4317 埠;一般網頁擷取使用 Playwright 瀏覽器。僅支援桌機。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Secret MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
English | 한국어
Target Architecture
[Secret MCP target architecture]
Secret MCP
An evidence-grounded MCP server for web design analysis, screenshot-to-specification workflows, and frontend reconstruction planning.
Secret MCP is a local Model Context Protocol (MCP) server that searches GDWEB for recent design references and creates a separate LLM request and a separate DESIGN_INDEX file for every search result. Each file contains page- and route-specific layouts, navigation, pixel coordinates, colors, components, and responsive specifications traceable to the supplied visual evidence.
The name Secret MCP does not mean that the project provides secret features or private data. It was the project name used while experimenting in a private repository with the idea of building an MCP server around design websites. The project's current purpose is to extract reproducible structural evidence from public design references and turn it into one specification per work that an LLM can apply to a new project.
Images and descriptions from multiple works are never combined in a single LLM context or document. The server processes search results sequentially inside the server, creates an independent MCP sampling/createMessage request for each work, saves that work's file, and only then advances to the next work. A separate local web application lets you select one work at a time, inspect its source evidence, measured colors and coordinates, LLM contract, generation log, and final document, and manage the exclusion list for subsequent searches.
Research Note
Evidence-Isolated Multimodal Design Analysis through MCP Sampling
Working paper and implementation report · Secret MCP v0.6.0 · not peer reviewed
Abstract
Secret MCP implements an auditable pipeline for converting public webpage screenshots into implementation-oriented design specifications. The system prepares desktop and mobile visual evidence, records crop coordinates and representative pixel colors, and invokes client-side MCP sampling once per reference. Unlike workflows that concatenate several design references into one prompt, Secret MCP treats reference identity as both a request boundary and an artifact boundary: one reference produces one sampling request, one request contract, and one DESIGN_INDEX document. Each request asks for includeContext: none and applies the same 19-section specification contract covering routes, geometry, components, design tokens, responsive behavior, accessibility, implementation tasks, acceptance criteria, and uncertainty. This report evaluates protocol-level isolation and artifact production; it does not claim that one language model, prompt, or reconstruction method outperforms another. A live smoke test verifies the request boundary, while a preserved three-reference run provides descriptive measurements and a qualitative implementation case.
Research Questions
Formal System Model
For reference r_i, the prepared evidence set contains image tiles I, crop bounds B, representative-color measurements P, and source metadata M. The fixed specification contract is C; the independent request and resulting document are q_i and D_i.
Coordinates measured inside a prepared tile map back to the original screenshot as follows.
This is an operational isolation invariant, not a claim of statistical independence. The server and smoke test can inspect request contents and artifacts; they cannot prove what an arbitrary external model provider may retain outside the MCP message.
Empirical Results
Protocol Isolation
Figure 1. Live smoke test recorded on 2026-08-22 using the query 금융 (n = 2 sampled references after excluding gdweb-26905). Each request contained its own reference ID and visual evidence, no other sampled reference ID, and includeContext: none; the run produced two distinct Markdown files. The test verifies observable request composition and file separation, not model-memory behavior outside the protocol.
Recorded Run Measurements
Figure 2. Descriptive measurements from preserved run 2026-07-29T15-54-10-483Z-5c70317e (n = 3 references). The run prepared 12 evidence images totaling 816.9 decimal KB and recorded 96 representative-color measurements. It produced three DESIGN_INDEX documents totaling 27,391 whitespace-delimited tokens and 187.0 decimal KB. All three contain headings 1–19; heading presence does not establish semantic correctness.
Qualitative Case Study
Figure 3. A preserved qualitative trace from the GDWEB evidence viewer to the generated Korean Air DESIGN_INDEX and then to AEROFLOW. AEROFLOW intentionally introduces new branding, content, imagery, and functionality; this example illustrates specification use and is not a controlled visual-fidelity comparison.
Interpretation and Limitations
- The live isolation result has
n = 2; the recorded artifact analysis hasn = 3. Neither supports broad claims about design quality or model performance. - The current evaluation has no control group, human rating, repeated trials, confidence intervals, or comparison against screenshot-to-code baselines.
- Representative colors are measured after resizing, JPEG normalization, and channel quantization. They are screenshot evidence, not proof of the source website's CSS tokens.
- The 19/19 result measures required heading presence. A future benchmark must separately evaluate factual grounding, coordinate error, color difference, responsive behavior, and implementation fidelity.
- The qualitative implementation is an existence example, not evidence that Secret MCP improves reconstruction quality.
Usage
1. Install and Build
Node.js 20.19 or later is required.
The published MCP server can be launched with:
Clone the repository when you also need the local viewer or want to work on the source:
2. Start the Web Application
Set DESIGN_INDEX_OUTPUT_DIR to the same value for the MCP server and the web application so that both processes read the same output directory.
Open the following address in a browser.
The web application displays the generation-run list, per-work progress, GDWEB evidence images, measured coordinates and palettes, the specification contract sent to the LLM, the final Markdown, and generation timestamps. Documents and evidence are read-only; only Exclude from search and Remove exclusion change the filter used by subsequent searches.
3. Register the MCP Server
For a source checkout, replace command and args with "command": "node" and "args": ["/absolute/path/to/secret_mcp/dist/index.js"].
The MCP client must support sampling/createMessage. When a client does not support sampling, the server returns an explicit error instead of running a fallback that places multiple works in the same context.
The MCP stdio server itself does not open an HTTP port. The client launches node dist/index.js as a child process and exchanges JSON-RPC messages over stdio. Only the separate web viewer process uses port 4317 by default.
Direct Sampling Client for Hosts Without Sampling
The server does not need to be modified when the outer MCP host cannot answer sampling/createMessage. A separate MCP protocol client can connect directly to dist/index.js, advertise sampling: {}, and handle every sampling request by launching a fresh Codex LLM process in a fresh temporary workspace.
The sampling handler must copy only the current request's text blocks and evidence images into that workspace. It must not reuse a Codex conversation, process, working directory, response file, or message history from another work. The workspace launches one new Codex process, waits for its complete Markdown response, returns that response to the pending MCP sampling call, and can then be removed after the server has saved the work's contract, evidence, and document.
The server still controls the sequential queue: work 2 is not prepared until work 1 has returned and been saved. This makes the fresh process and workspace an execution-level equivalent of the protocol-level includeContext: none boundary without adding a combined fallback to the server. The direct client becomes the sampling-capable MCP host; it should use a tool-call timeout long enough for the per-work output budget and must never answer multiple sampling requests through one persistent LLM conversation.
4. Ask the LLM
A separate /web-design slash command is not required.
The host LLM calls the generate-gdweb-design-indexes tool once. The MCP server performs the search and separates the per-work LLM requests internally.
The manual tool-call format is shown below.
If outputDirectory is omitted, the tool uses the DESIGN_INDEX_OUTPUT_DIR environment variable. If that variable is also absent, it uses the design-index directory under the server's working directory.
maxTokens is a per-work output budget, not a budget shared by the run and not a budget divided equally between pages. A single work may contain multiple visible pages or routes, and every page must repeat the complete page-specific parts of the 19-section contract. The default and minimum are therefore 131072 tokens. Clients may request up to 262144 tokens for exceptionally large multi-page evidence sets.
With limit: 3, the default run can request up to three independent 131072-token outputs; the works do not share one 131072-token pool. The connected sampling client and selected model must support the requested output size. If the model returns stopReason: maxTokens, the server treats that work as failed instead of saving a truncated DESIGN_INDEX as complete.
When the tool completes, it returns the run ID, run-manifest path, per-work document paths, and web-viewer URL.
End-to-End Example: From GDWEB Specifications to a Godot Aviation Website
For the actual example, Secret MCP found three aviation award winners registered on GDWEB in 2026 and 2025, created a DESIGN_INDEX for each work through an independent LLM request, and then applied the structure of the Korean Air reference to a Godot aviation project website.
The finished AEROFLOW website is not a clone of the Korean Air website. It uses the information hierarchy, navigation, action panel, section arrangement, and responsive principles from the specification while introducing a new brand, copy, aviation imagery, and content. This example demonstrates that even when the resulting design differs from the reference, measurable structural evidence can still produce a polished website with a distinctive identity.
Run the Example
After starting the processes, open the following screens.
- Per-work specification web viewer: http://127.0.0.1:4317/?run=2026-07-29T15-54-10-483Z-5c70317e
- AEROFLOW result website: http://127.0.0.1:4320
1. Per-Work Specification Results
Select works one at a time from the run list on the left. The right side displays only the final DESIGN_INDEX for the selected work, without mixing in content from other works.
[Secret MCP web viewer with the Korean Air DESIGN_INDEX open]
2. Evidence Images and Measurements
The Evidence tab shows the desktop and mobile images sent to the independent LLM request, tile coordinates, reduction ratios, and representative colors.
[GDWEB desktop and mobile evidence images with representative colors]
3. Independent LLM Request Contract
The Request Contract records page separation, navigation, section bounds, HEX/RGB/HSL colors, components, the responsive matrix, and acceptance criteria. This contract prevents the result from ending as a superficial mood summary and makes it an implementation specification another LLM can use.
[Request contract containing page, coordinate, color, and responsive requirements]
4. Generation Process
The Generation Log shows the sequence from search and evidence preparation through the independent per-work LLM request, document save, and full-run completion. This run processed all three works with separate includeContext: none requests.
[Generation log from search through independent LLM requests and document saves]
5. Specification-Driven AEROFLOW First View
The bright aviation portal and action-panel structure observed in the Korean Air reference were adapted to a Godot project. The brand, aircraft imagery, copy, and functionality were created specifically for this result.
[AEROFLOW first view and flight-build selection panel]
6. Project Highlights
The reservation and promotion card structure was repurposed for core project content: flight regions, a glass cockpit, and real-time weather.
[Project highlights and new aviation image cards]
7. Development Log and Shortcuts
The source reference's notices and service shortcuts were restructured into build history, development progress, flight models, avionics, media, controls, and roadmap navigation.
[AEROFLOW development log and project shortcuts]
8. Media and Footer
The final area contains project media, development, support, and license links, followed by an independent-project footer.
[AEROFLOW flight-test media and footer]
What This Result Demonstrates
- A new project can use a validated information hierarchy and layout relationships without copying the reference's logo, trademarks, copy, or images.
- Converting static screenshots into navigation, pixel bounds, color tokens, components, and a responsive matrix gives another LLM enough detail to create a concrete implementation plan.
- Even with the same structural evidence, newly designed content, branding, and visual assets can create a distinctive identity that differs from the source.
- Secret MCP is intended to extract structural evidence from good design and use it to build a polished website suited to a new project, not to reproduce the source pixel for pixel.
Specification and Request Contract
- Korean Air DESIGN_INDEX specification
- Independent LLM request contract
- Run manifest
- Generated website source
These links point directly to the actual files included in the repository. The same artifacts are also grouped under tmp/showcase/aviation-godot through relative symbolic links for local execution and browsing.
Core Execution Architecture
The following boundaries are essential.
- Images or specification bodies from multiple works are never returned to the outer host LLM as one batch.
- With
limit: 3, the server performs exactly up to three mutually independent LLM sampling requests. - Every sampling request uses
includeContext: none. - A sampling request contains only one work's metadata and image tiles.
- The previous work's ID, images, and analysis document are never passed into the next work's request.
- Works excluded in the web viewer are removed from search results before any sampling request is created.
- The server starts the next work only after saving the current sampling response to a file.
- At the end, only generated file paths, the model used, and success or failure status are returned to the host.
In other words, this is not the earlier architecture in which the host LLM reads every result at once and produces a combined summary.
Web Viewer
The web viewer reads DESIGN_INDEX_OUTPUT_DIR/.secret-mcp-runs every 2.5 seconds. There is no separate database or debugging connection between the MCP generation process and the web server.
The interface contains the following areas.
- Generation runs: query, requested count, allowed years, and overall status
- Work list: progress and evidence-image count for each
gdweb-<work-number> - Work details: specification, evidence images and measurements, request contract, and generation log for one selected work
- Search exclusions: exclude the selected work from future searches, include it again, and manage the full exclusion list
When a run contains three works, it also produces three documents as shown below.
run.json is not a file that combines document bodies from multiple works. It is a viewer manifest containing only per-work file paths, status, timestamps, model, and evidence lists.
Search Exclusion List
Selecting Exclude from search in the web viewer saves the work number to the following file.
- Historical runs and generated documents are never deleted.
- New
generate-gdweb-design-indexesandsearch-gdweb-designsruns filter work numbers before selection. - To avoid returning too few results because of exclusions, the search reads additional GDWEB candidates and selects the requested
limitfrom the non-excluded works. - Selecting
Remove exclusionmakes the work eligible again starting with the next search. - The MCP server and web viewer must use the same
DESIGN_INDEX_OUTPUT_DIRto share the same exclusion list.
Image Processing
GDWEB's full desktop captures can be extremely tall and several megabytes in size. Sending the original base64 data directly in a sampling request can exceed MCP transport limits or cause a vision model to miss fine structural details.
Before creating the request for each work, gdweb-sampling-images.ts performs the following operations.
- Load the GDWEB desktop registration image with
sgbn=1 - Load the GDWEB mobile registration image with
sgbn=3 - Resize the desktop image to a maximum width of 1200px
- Split a long page into overlapping vertical tiles 1600px high
- Preserve the mobile image as separate evidence
- Compress the evidence as JPEG to reduce the MCP sampling-request size
- Record the original and prepared canvas dimensions, scale factor, prepared
x/y/width/heightcoordinates, source-space coordinates, and source URL for every tile - Measure eight representative colors from every tile and record HEX, RGB, HSL, and pixel coverage
Multiple tiles from one work are included in the same work-specific sampling request. Tiles from different works are never included in the same request.
Representative colors are measurements sampled from normalized screenshot pixels. They are precise evidence for visual comparison, but they must not be presented as the source site's CSS variables because JPEG error and image content affect the values. The generation contract distinguishes MEASURED colors from INFERRED implementation tokens.
The server does not open the work's live production website or crawl its DOM. Visual evidence is limited to the images and metadata registered on GDWEB.
GDWEB Search
Design search does not use browser automation, Bing, Brave, or DuckDuckGo.
Freshness Policy
- If
yearis omitted, the current runtime year is used. includePreviousYeardefaults totrue.- When run in 2026, only works registered in 2026 and 2025 are allowed by default.
- With
includePreviousYear: false, only the target year is allowed. awardOnlydefaults totrue, so works without an award name are excluded.limitcan be set from 1 through 10.
Work Metadata
DESIGN_INDEX Specification
Every independent sampling request includes the secret-mcp/design-index/v2 contract. The resulting filename is DESIGN_INDEX_gdweb-<strNo>.md.
There is one file per work, but each file begins with a page and route inventory and repeats a complete subsection for every verified page. The contract does not mistake sections in a long scrolling capture for separate pages; it splits pages only when the evidence collage visibly contains separate screens.
Every document must contain all 19 numbered sections below.
Every major judgment is marked with one of the following evidence levels.
OBSERVED: directly visible in a GDWEB image or metadataMEASURED: numerically verified from supplied pixel coordinates or the measured paletteINFERRED: reasonably inferred to reproduce the same resultUNKNOWN: cannot be verified from static evidence and must not be asserted as fact
Another LLM must be able to derive the component tree, tokens, responsive rules, assets, implementation order, and validation items from the completed document alone.
Exposed Tools
The server currently exposes five MCP tools.
Use generate-gdweb-design-indexes for design planning, layout analysis, implementation specifications, and DESIGN_INDEX requests. Use search-gdweb-designs only for lightweight list requests.
Source Structure
Development and Validation
The isolation smoke test connects a mock MCP client that supports sampling and verifies the following behavior.
- The number of search results equals the number of sampling requests.
- Each sampling request contains exactly one reference ID.
- No other work's ID is mixed into a request.
- Every request uses
includeContext: none. - Every request includes GDWEB images.
- Every result creates a separate Markdown file.
- An excluded work does not enter subsequent search results or sampling requests.
- The specification contract contains per-page, navigation, coordinate, and color requirements.
- The run-manifest evidence records tile coordinates and measured palettes.
Runtime Environment Variables
Documentation
- MCP API documentation
- Design competition and award website list
- Fresh-clone reverification record
- Yeong Coffee DESIGN_INDEX, Korean historical output
- Yorien DESIGN_INDEX, Korean historical output
- Ggublack Chicken DESIGN_INDEX, Korean historical output
- Korean Air DESIGN_INDEX specification, Korean historical output
- Korean Air independent request contract
Related Work and References
Secret MCP is positioned as an implementation artifact adjacent to multimodal UI understanding and screenshot-to-code research. It has not yet been evaluated on the datasets or metrics used by the papers below, so their results must not be interpreted as Secret MCP results.
- 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. Introduces real-world screenshot-to-code evaluation with visual and element-level metrics. Paper
- Bryan Wang, Gang Li, Xin Zhou, Zhourong Chen, Tovi Grossman, and Yang Li. Screen2Words: Automatic Mobile UI Summarization with Multimodal Learning. UIST 2021. Studies representations that combine screenshot, text, structure, and UI semantics. 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. Establishes the importance and difficulty of visually grounded web-agent evaluation. Paper
- Model Context Protocol. Sampling specification. Defines client-mediated
sampling/createMessage, including request messages, model preferences, token budgets, and context controls. Specification
Citation
Secret MCP is currently software with a working research note, not a peer-reviewed publication.
Research Paper
- Secret MCP: Evidence-Bounded and Context-Isolated Design Specification Generation from Web Screenshots — arXiv:2608.24944
來源:README.md,提交 e1b61a3
工具
0版本歷史
1- v0.6.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分