<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yeongjin Jo</title>
    <description>The latest articles on DEV Community by Yeongjin Jo (@yyeongjin).</description>
    <link>https://dev.to/yyeongjin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4090129%2Fc53d4ed9-4570-4cfd-b696-8f2a334674da.png</url>
      <title>DEV Community: Yeongjin Jo</title>
      <link>https://dev.to/yyeongjin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yyeongjin"/>
    <language>en</language>
    <item>
      <title>I Turned 3 Web Design References into 3 Build-Ready Specs with One MCP Prompt</title>
      <dc:creator>Yeongjin Jo</dc:creator>
      <pubDate>Mon, 24 Aug 2026 15:52:28 +0000</pubDate>
      <link>https://dev.to/yyeongjin/i-turned-3-web-design-references-into-3-build-ready-specs-with-one-mcp-prompt-3bj5</link>
      <guid>https://dev.to/yyeongjin/i-turned-3-web-design-references-into-3-build-ready-specs-with-one-mcp-prompt-3bj5</guid>
      <description>&lt;p&gt;My old design-research workflow had six steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search design galleries.&lt;/li&gt;
&lt;li&gt;Open every promising result.&lt;/li&gt;
&lt;li&gt;Save desktop and mobile screenshots.&lt;/li&gt;
&lt;li&gt;Paste everything into one very long prompt.&lt;/li&gt;
&lt;li&gt;Ask an AI coding agent for a frontend plan.&lt;/li&gt;
&lt;li&gt;Realize the answer has quietly blended all the references together.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The sixth step was the real problem.&lt;/p&gt;

&lt;p&gt;The colors came from one site. The navigation came from another. A mobile interaction appeared that I could not find in any screenshot. The answer sounded confident, but the source of each decision had disappeared.&lt;/p&gt;

&lt;p&gt;I wanted a different handoff: &lt;strong&gt;one reference in, one implementation plan out&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://www.npmjs.com/package/secret-design-mcp" rel="noopener noreferrer"&gt;Secret MCP&lt;/a&gt;, an MCP server that searches public website references, prepares visual evidence, and saves a separate build-ready &lt;code&gt;DESIGN_INDEX&lt;/code&gt; for every selected result.&lt;/p&gt;

&lt;p&gt;Here is one of those documents in the local viewer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tro78pzdo9a4x90qrzj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tro78pzdo9a4x90qrzj.png" alt="A generated per-reference DESIGN_INDEX in the Secret MCP viewer" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The entire workflow starts with one prompt
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Find three recent aviation websites on GDWEB. Analyze each reference separately and save one implementation-ready design index for each result.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Secret MCP handles the rest inside the tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;search
  → prepare desktop and mobile evidence
  → measure visible colors and coordinates
  → create one isolated model request per reference
  → save one DESIGN_INDEX per reference
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The connected AI client does not receive a pile of references and a request to “figure it out.” It calls one MCP tool. The server keeps the queue, finishes the first reference, saves its document, and only then prepares the next one.&lt;/p&gt;

&lt;p&gt;That detail matters more than it sounds.&lt;/p&gt;

&lt;h2&gt;
  
  
  What “build-ready” means here
&lt;/h2&gt;

&lt;p&gt;A screenshot is useful inspiration. It is not a frontend specification.&lt;/p&gt;

&lt;p&gt;A useful handoff needs to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which routes and page regions are visible?&lt;/li&gt;
&lt;li&gt;How are the header, navigation, hero, sections, and footer arranged?&lt;/li&gt;
&lt;li&gt;Which colors were measured from the supplied pixels?&lt;/li&gt;
&lt;li&gt;What should become a token, component, or reusable pattern?&lt;/li&gt;
&lt;li&gt;What changes between desktop and mobile?&lt;/li&gt;
&lt;li&gt;Which behavior is visible, and which behavior is still unknown?&lt;/li&gt;
&lt;li&gt;What should a developer implement first?&lt;/li&gt;
&lt;li&gt;How will someone decide whether the result is acceptably close?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each generated &lt;code&gt;DESIGN_INDEX&lt;/code&gt; follows the same 19-section contract. It covers routes, geometry, components, design tokens, responsive behavior, accessibility, implementation tasks, acceptance criteria, and uncertainty.&lt;/p&gt;

&lt;p&gt;More importantly, the document distinguishes four kinds of claims:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MEASURED&lt;/strong&gt; — derived from pixels or recorded coordinates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OBSERVED&lt;/strong&gt; — directly visible in the supplied evidence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;INFERRED&lt;/strong&gt; — a reasonable implementation choice, but not directly visible&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNKNOWN&lt;/strong&gt; — something a static image cannot establish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That small vocabulary makes the output much easier to trust. “The menu opens on hover” and “the screenshot shows a menu” are no longer treated as the same statement.&lt;/p&gt;

&lt;p&gt;The evidence stays available beside the document:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3ytriazr59i18ymcspq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz3ytriazr59i18ymcspq.png" alt="Secret MCP evidence view with screenshots, coordinates, and measured colors" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The test that convinced me to keep building it
&lt;/h2&gt;

&lt;p&gt;I preserved a real three-reference aviation run instead of showing a perfect toy example.&lt;/p&gt;

&lt;p&gt;That run produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;3 independent references&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;12 prepared evidence images&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;96 representative-color measurements&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3 separate DESIGN_INDEX documents&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;27,391 whitespace-delimited tokens&lt;/strong&gt; across the documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;all 19 required sections&lt;/strong&gt; in every document&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those numbers do not prove that an AI can recreate any website perfectly. That is not the claim.&lt;/p&gt;

&lt;p&gt;They prove something narrower and more useful: the pipeline can take several references, preserve their identities, create a complete artifact for each one, and leave enough evidence to inspect how the result was produced.&lt;/p&gt;

&lt;p&gt;I then used one of the specifications to build a new aviation concept called AEROFLOW. It has its own brand, copy, imagery, and functionality; the document guided the structure and implementation rather than supplying a pixel clone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1csujzd9w30ecb5dcpee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1csujzd9w30ecb5dcpee.png" alt="AEROFLOW built from one Secret MCP design specification" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is an MCP server instead of another screenshot app
&lt;/h2&gt;

&lt;p&gt;A screenshot app usually gives me another place to upload files and another result I must manually move into my project.&lt;/p&gt;

&lt;p&gt;MCP changes the handoff.&lt;/p&gt;

&lt;p&gt;The same AI client that is helping me plan or code can discover the tool, call it in natural language, receive the saved document paths, and continue working from one selected plan. The research becomes part of the development workflow instead of a separate browser chore.&lt;/p&gt;

&lt;p&gt;The important boundary looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reference A → model request A → DESIGN_INDEX_A.md → saved
reference B → model request B → DESIGN_INDEX_B.md → saved
reference C → model request C → DESIGN_INDEX_C.md → saved
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each model request uses &lt;code&gt;includeContext: none&lt;/code&gt;. Images and metadata from different references are never deliberately concatenated into the same request or output document.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa2c6mg28pan7gfr9gp9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa2c6mg28pan7gfr9gp9y.png" alt="Secret MCP target architecture: one request and one document per reference" width="800" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an observable request boundary, not a magical privacy promise. It says what the server sends and which artifacts it saves. It does not claim control over what an external model provider retains.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it in under a minute
&lt;/h2&gt;

&lt;p&gt;Secret MCP is published on npm and runs with Node.js 20.19 or later:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;-y&lt;/span&gt; secret-design-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add it to a compatible MCP client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"secret-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"secret-design-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"DESIGN_INDEX_OUTPUT_DIR"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/absolute/path/to/design-index"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start with one reference:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find one recent GDWEB website in a category I know well. Generate its DESIGN_INDEX and return the saved file path.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Starting with one makes the evaluation simple. Open the file and ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Could another developer begin planning this page without seeing my original chat?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the answer is yes, try three references and compare the completed plans after generation. If the answer is no, the weak section is exactly the feedback I want.&lt;/p&gt;

&lt;h2&gt;
  
  
  When I would use it
&lt;/h2&gt;

&lt;p&gt;Secret MCP is useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have public website inspiration but no design source of truth yet.&lt;/li&gt;
&lt;li&gt;I want several directions explored without blending them.&lt;/li&gt;
&lt;li&gt;I need a durable handoff for another developer or coding agent.&lt;/li&gt;
&lt;li&gt;I want to trace a questionable recommendation back to its screenshot, coordinate, color measurement, or request contract.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is not the tool I would choose for editing an approved Figma file, automating a live browser, or cloning a screenshot pixel for pixel. It sits earlier in the workflow: between “find useful references” and “start building.”&lt;/p&gt;

&lt;h2&gt;
  
  
  One compatibility check
&lt;/h2&gt;

&lt;p&gt;The current release requires an MCP client that supports &lt;code&gt;sampling/createMessage&lt;/code&gt;. If the client does not support MCP Sampling, Secret MCP stops with an explicit error instead of falling back to a combined prompt.&lt;/p&gt;

&lt;p&gt;That limitation is intentional. A convenient fallback that mixes every reference into one context would recreate the exact problem the tool was built to avoid.&lt;/p&gt;

&lt;p&gt;You can install the current package here: &lt;a href="https://www.npmjs.com/package/secret-design-mcp" rel="noopener noreferrer"&gt;secret-design-mcp on npm&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you try it, tell me which section of the generated &lt;code&gt;DESIGN_INDEX&lt;/code&gt; was hardest to act on. “This part is too vague to build” is more useful feedback than a generic thumbs-up.&lt;/p&gt;

&lt;blockquote&gt;
&lt;/blockquote&gt;

</description>
      <category>mcp</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Gave an AI Three Design References. It Invented a Fourth.</title>
      <dc:creator>Yeongjin Jo</dc:creator>
      <pubDate>Sat, 22 Aug 2026 20:31:07 +0000</pubDate>
      <link>https://dev.to/yyeongjin/one-reference-one-request-building-an-evidence-isolated-design-analysis-mcp-i2b</link>
      <guid>https://dev.to/yyeongjin/one-reference-one-request-building-an-evidence-isolated-design-analysis-mcp-i2b</guid>
      <description>&lt;p&gt;Secret MCP started with a familiar frontend problem: I opened too many tabs.&lt;/p&gt;

&lt;p&gt;I saved one award-winning airline site for its navigation, another for its pacing, and a third for the way it handled mobile. Then I gave the screenshots to an AI coding agent and asked for an implementation plan.&lt;/p&gt;

&lt;p&gt;What came back looked polished. It was also impossible to trust.&lt;/p&gt;

&lt;p&gt;The palette seemed to belong to one site. The header resembled another. The mobile behavior was not visible in any of them. By the time the agent flattened everything into “a clean, modern experience,” I no longer had three references. I had a fourth design with no clear source.&lt;/p&gt;

&lt;p&gt;That failure is why I built &lt;a href="https://github.com/yyeongjin/secret_mcp" rel="noopener noreferrer"&gt;Secret MCP&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Secret MCP searches GDWEB from an MCP client and turns every selected website into its own evidence-backed frontend plan. One reference goes into one model request. One implementation-ready &lt;code&gt;DESIGN_INDEX&lt;/code&gt; comes out.&lt;/p&gt;

&lt;p&gt;Search, screenshots, measurements, responsive observations, and file output happen in the same workflow. The result is not another chat answer to scroll past. It is a local document that a developer—or the next coding agent—can build from.&lt;/p&gt;

&lt;p&gt;Here is the difference I wanted in practice:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Before
search → open tabs → save screenshots → write a giant prompt → untangle the answer

With Secret MCP
ask once → find references → analyze each separately → save separate build plans
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I will show the real output in a moment. First, it helps to explain why I made this an MCP server instead of another screenshot-to-code page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MCP, though?
&lt;/h2&gt;

&lt;p&gt;A script could download the images. A web app could display them. Neither would solve the handoff I cared about.&lt;/p&gt;

&lt;p&gt;If MCP is new to you, the useful definition is simple: it gives an AI application a standard way to call tools outside the model. In this case, it connects a sentence such as “find three aviation references” to a real search-and-analysis pipeline.&lt;/p&gt;

&lt;p&gt;That changes the experience in four ways.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The agent can discover the tool.&lt;/strong&gt; Secret MCP describes what it accepts and what it returns, so you ask for an outcome instead of operating the pipeline by hand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The research stays beside the project.&lt;/strong&gt; The same client that helps plan or code the site can call the design tool and receive the saved document paths.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The workflow is repeatable.&lt;/strong&gt; Search filters, image preparation, evidence labels, the document structure, and output naming do not depend on remembering yesterday's prompt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The result can feed the next tool.&lt;/strong&gt; A saved &lt;code&gt;DESIGN_INDEX&lt;/code&gt; can guide a coding agent, a Figma workflow, component selection, or later browser QA.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current version also lets the connected MCP client perform the model request. Secret MCP does not need its own LLM API key; it asks a compatible client to generate the document through MCP Sampling. That choice comes with a compatibility tradeoff, which I will be honest about below.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this produced in a real project
&lt;/h2&gt;

&lt;p&gt;Here is the result first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpa3mc33qknql5jbvoef0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpa3mc33qknql5jbvoef0.png" alt="AEROFLOW, a new aviation website built with a Secret MCP design specification" width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AEROFLOW is a new aviation website with its own name, copy, imagery, and functionality. Its structure was built from one of the design specifications produced in a preserved Secret MCP run.&lt;/p&gt;

&lt;p&gt;That run began with three aviation references from GDWEB. A request can be as direct as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find three recent aviation websites on GDWEB. Analyze them separately and save an implementation-ready design index for each one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Secret MCP searched inside the server, prepared the desktop and mobile evidence, and made three separate model requests. It wrote three separate Markdown files. Only after the first file was saved did the second reference enter the pipeline.&lt;/p&gt;

&lt;p&gt;For the Korean Air reference, the output was not “use a premium blue palette and generous whitespace.” It described the visible page structure, navigation, section geometry, measured colors, component candidates, responsive evidence, implementation order, and QA criteria. Claims that could not be verified from the screenshots were not presented as facts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi9d1gmqgl2l6ibfqtfgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi9d1gmqgl2l6ibfqtfgv.png" alt="A generated per-reference DESIGN_INDEX in the Secret MCP viewer" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This was the moment the project became useful to me. I could hand the document to another coding session without replaying the original research conversation. And when something looked wrong, I could open the viewer and trace it backward instead of starting over.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real alternative is a screenshot folder
&lt;/h2&gt;

&lt;p&gt;It is tempting to compare every MCP server with every other MCP server. That is not how I choose tools in practice.&lt;/p&gt;

&lt;p&gt;The workflow Secret MCP replaces is manual: search for sites, open each result, save images, paste everything into one conversation, explain the desired output, and then reconstruct where the answer came from. It works. I did it for a long time. It just gets fragile when the number of references or the depth of the handoff grows.&lt;/p&gt;

&lt;p&gt;Other MCP tools solve adjacent jobs well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If I already have an approved Figma file, I would use the &lt;a href="https://developers.figma.com/docs/figma-mcp-server/" rel="noopener noreferrer"&gt;Figma MCP server&lt;/a&gt; to bring frames, variables, components, and design-system context into development.&lt;/li&gt;
&lt;li&gt;If I need an agent to navigate, click, or inspect a live page, I would use &lt;a href="https://github.com/microsoft/playwright-mcp" rel="noopener noreferrer"&gt;Playwright MCP&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If I need broad web, news, image, or local search, &lt;a href="https://github.com/brave/brave-search-mcp-server" rel="noopener noreferrer"&gt;Brave Search MCP&lt;/a&gt; is built for that surface.&lt;/li&gt;
&lt;li&gt;If I want to search a component catalog and install or generate UI, I would use &lt;a href="https://21st.dev/mcp" rel="noopener noreferrer"&gt;21st MCP&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Secret MCP starts earlier than those implementation steps. Use it when you have public website inspiration but no design source of truth yet—and the thing you need next is a full-page plan with evidence behind it.&lt;/p&gt;

&lt;p&gt;That also makes the tools complementary. A workflow can begin with Secret MCP for reference research, move through Figma or a component library for design and implementation, and finish with browser automation for QA.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I actually wanted the document to do
&lt;/h2&gt;

&lt;p&gt;I did not want a design critique. I wanted a build handoff.&lt;/p&gt;

&lt;p&gt;Each &lt;code&gt;DESIGN_INDEX&lt;/code&gt; begins with the evidence it was allowed to use and then turns the visible design into decisions a developer can act on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a page and route inventory&lt;/li&gt;
&lt;li&gt;header, navigation, section, and footer structure&lt;/li&gt;
&lt;li&gt;visible coordinates and spatial relationships&lt;/li&gt;
&lt;li&gt;representative colors and reusable design tokens&lt;/li&gt;
&lt;li&gt;component boundaries, states, and asset guidance&lt;/li&gt;
&lt;li&gt;desktop-to-mobile observations and unknowns&lt;/li&gt;
&lt;li&gt;accessibility notes, implementation tasks, acceptance criteria, and QA tolerances&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every important statement carries one of four labels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;MEASURED&lt;/code&gt;: derived from pixels or recorded coordinates&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;OBSERVED&lt;/code&gt;: directly visible in the supplied evidence&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;INFERRED&lt;/code&gt;: a reasonable implementation decision, but not directly visible&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;UNKNOWN&lt;/code&gt;: something a static screenshot cannot establish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those labels are deliberately unglamorous. They stop a confident sentence from quietly becoming a fact.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frv27ukah3479ajx25tls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frv27ukah3479ajx25tls.png" alt="Secret MCP's evidence view for one reference, including prepared screenshots, coordinates, and measured colors" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it avoids inventing the fourth design
&lt;/h2&gt;

&lt;p&gt;The unusual part of Secret MCP is not the search. It is where the search results are allowed to go.&lt;/p&gt;

&lt;p&gt;If the server returned three references to the host and asked the host to analyze them later, all three could already be sitting in one conversation. The mixing would begin before the analysis did.&lt;/p&gt;

&lt;p&gt;So the generation tool keeps the result queue inside the server. For each reference, it prepares only that work's images and metadata, sends one &lt;code&gt;sampling/createMessage&lt;/code&gt; request with &lt;code&gt;includeContext: none&lt;/code&gt;, saves the response, and then advances to the next item.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;reference A → request A → DESIGN_INDEX_A.md → saved
reference B → request B → DESIGN_INDEX_B.md → saved
reference C → request C → DESIGN_INDEX_C.md → saved
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F65yjrge78igxn1qnikag.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F65yjrge78igxn1qnikag.png" alt="Secret MCP's target architecture: every GDWEB reference is prepared, requested, and saved before the next begins" width="800" height="684"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fixed contract, evidence manifest, and generation log are preserved with each work. A smoke test checks that the number of results matches the number of model requests, that every request contains exactly one reference ID, and that each response creates a separate file.&lt;/p&gt;

&lt;p&gt;That is an observable boundary, not a magical privacy claim. It does not say what an external model provider retains. It says exactly what Secret MCP sends in each request and leaves the artifacts needed to verify it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few ways to use it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Start from a blank page.&lt;/strong&gt; Ask for recent references in a category and generate one plan before touching the component tree.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find a recent GDWEB reference for a technology landing page. Create one &lt;code&gt;DESIGN_INDEX&lt;/code&gt; I can use to plan a new React site.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Explore several directions without blending them.&lt;/strong&gt; Generate three documents independently, then compare the finished plans after each reference has been described on its own terms.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find three finance websites from 2025–2026. Keep their analyses separate. After the files are saved, return only their paths and statuses.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Give another agent a durable handoff.&lt;/strong&gt; Point a coding session at one &lt;code&gt;DESIGN_INDEX&lt;/code&gt; instead of reattaching the screenshots and retelling the design intent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Read &lt;code&gt;DESIGN_INDEX_gdweb-&amp;lt;id&amp;gt;.md&lt;/code&gt;. Build the page in this repository with new branding and content. Treat &lt;code&gt;UNKNOWN&lt;/code&gt; claims as decisions to confirm, not facts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Audit a bad result.&lt;/strong&gt; Open the local viewer, select the reference, and move from the questionable paragraph back to its contract, image tile, crop coordinates, and generation event.&lt;/p&gt;

&lt;p&gt;You do not have to run the expensive path every time. &lt;code&gt;search-gdweb-designs&lt;/code&gt; returns a lightweight reference list when discovery is enough. &lt;code&gt;generate-gdweb-design-indexes&lt;/code&gt; performs the evidence preparation and document generation. The server also exposes general web-search and page-content tools for supporting research around a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try one reference, not three
&lt;/h2&gt;

&lt;p&gt;Secret MCP is open source under MIT and published on npm as &lt;a href="https://www.npmjs.com/package/secret-design-mcp" rel="noopener noreferrer"&gt;&lt;code&gt;secret-design-mcp&lt;/code&gt;&lt;/a&gt;. It requires Node.js 20.19 or later.&lt;/p&gt;

&lt;p&gt;Add it to a compatible MCP client:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"secret-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"secret-design-mcp"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"DESIGN_INDEX_OUTPUT_DIR"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/absolute/path/to/design-index"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"SECRET_MCP_WEB_ORIGIN"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://127.0.0.1:4317"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then ask for one design you can evaluate quickly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Find one recent GDWEB website in a category you know well. Generate its &lt;code&gt;DESIGN_INDEX&lt;/code&gt; and return the saved file path.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open the file and ask one question: could another developer begin planning from this without seeing my original chat?&lt;/p&gt;

&lt;h3&gt;
  
  
  One limitation to check first
&lt;/h3&gt;

&lt;p&gt;Version 0.6.0 requires a client that supports MCP &lt;code&gt;sampling/createMessage&lt;/code&gt;. If the capability is unavailable, Secret MCP stops with an explicit error instead of falling back to a combined prompt.&lt;/p&gt;

&lt;p&gt;Sampling was deprecated in MCP protocol version &lt;code&gt;2026-07-28&lt;/code&gt;. It remains available during the protocol's deprecation window, but the project needs to migrate to direct provider calls. The rule I intend to preserve is more important than the mechanism: a fresh model request and a fresh workspace for every reference.&lt;/p&gt;

&lt;p&gt;Secret MCP is not a pixel-cloning tool, and the preserved aviation run is not a benchmark proving that it produces better websites. It is a working, inspectable pipeline for moving from public design research to a frontend specification without losing track of the source.&lt;/p&gt;

&lt;p&gt;That is the whole reason it exists.&lt;/p&gt;

&lt;p&gt;If that is a gap in your workflow, &lt;a href="https://github.com/yyeongjin/secret_mcp" rel="noopener noreferrer"&gt;try Secret MCP on GitHub&lt;/a&gt;. If the document is useful, a star helps other developers find it. If it gets something wrong, open an issue with the reference ID, evidence tile, and section that failed. That is feedback I can trace all the way through the run.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
