Secret MCP
英語 | 한국어
ターゲットアーキテクチャ

Secret MCP
Webデザイン分析、スクリーンショットから仕様書へのワークフロー、フロントエンド再構築計画のためのエビデンスに基づくMCPサーバー。
npx -y secret-design-mcpSecret MCP は、GDWEB で最近のデザインリファレンスを検索し、検索結果ごとに個別の LLM リクエストと個別の DESIGN_INDEX ファイルを作成するローカル Model Context Protocol (MCP) サーバーです。各ファイルには、提供されたビジュアルエビデンスにトレース可能な、ページ・ルート固有のレイアウト、ナビゲーション、ピクセル座標、色、コンポーネント、レスポンシブ仕様が含まれます。
Secret MCP という名前は、このプロジェクトがシークレット機能やプライベートデータを提供することを意味するものではありません。これは、デザインウェブサイトを中心に MCP サーバーを構築するというアイデアで、プライベートリポジトリで実験していたときのプロジェクト名です。このプロジェクトの現在の目的は、公開デザインリファレンスから再現可能な構造的エビデンスを抽出し、LLM が新しいプロジェクトに適用できる仕様書を作品ごとに1つ作成することです。
複数の作品の画像や説明が単一の LLM コンテキストやドキュメントに結合されることはありません。サーバーは検索結果をサーバー内で順次処理し、各作品に対して独立した MCP sampling/createMessage リクエストを作成し、その作品のファイルを保存してから、次の作品に進みます。別のローカル Web アプリケーションでは、一度に1つの作品を選択し、そのソースエビデンス、測定された色と座標、LLM コントラクト、生成ログ、最終ドキュメントを検査し、その後の検索の除外リストを管理できます。
Related MCP server: Refero MCP
研究ノート
MCPサンプリングによるエビデンス分離型マルチモーダルデザイン分析
ワーキングペーパー兼実装レポート・Secret MCP v0.6.0・査読なし
概要
Secret MCP は、公開 Web ページのスクリーンショットを実装指向のデザイン仕様書に変換するための、監査可能なパイプラインを実装しています。このシステムは、デスクトップおよびモバイルのビジュアルエビデンスを準備し、クロップ座標と代表的なピクセルカラーを記録し、リファレンスごとにクライアントサイドの MCP サンプリングを1回呼び出します。複数のデザインリファレンスを1つのプロンプトに連結するワークフローとは異なり、Secret MCP はリファレンスの同一性をリクエスト境界とアーティファクト境界の両方として扱います。1つのリファレンスが、1つのサンプリングリクエスト、1つのリクエストコントラクト、1つの DESIGN_INDEX ドキュメントを生成します。各リクエストは includeContext: none を要求し、ルート、ジオメトリ、コンポーネント、デザイントークン、レスポンシブ動作、アクセシビリティ、実装タスク、受け入れ基準、不確実性をカバーする同じ19セクションの仕様コントラクトを適用します。このレポートは、プロトコルレベルの分離とアーティファクト生成を評価するものであり、ある言語モデル、プロンプト、または再構築方法が他より優れていると主張するものではありません。ライブスモークテストでリクエスト境界を検証し、保存された3リファレンスの実行が記述的な測定値と定性的な実装ケースを提供します。
研究課題
質問 | 現在のエビデンス | ステータス |
RQ1. MCP デザイン分析ツールは、リファレンスごとに1リクエストの分離を維持できますか? | クロスリファレンス ID 検査と出力ファイルチェックによるライブサンプリングスモークテスト | テスト範囲内で検証済み |
RQ2. スクリーンショットのエビデンスを、監査可能な空間・色・ドキュメントのアーティファクトに変換できますか? | エビデンスマニフェスト、コントラクト、生成ドキュメントを含む保存済み3リファレンス実行 | 記述的に検証済み |
RQ3. 結果の仕様書は、異なるフロントエンド実装をガイドできますか? | AEROFLOW 定性的ケーススタディ | 予備的・対照比較なし |
形式的システムモデル
リファレンス r_i について、準備されたエビデンスセットには、画像タイル I、クロップ境界 B、代表色の測定値 P、ソースメタデータ M が含まれます。固定仕様コントラクトは C であり、独立したリクエストと結果のドキュメントは q_i と D_i です。
E_i = { I_i,k, B_i,k, P_i,k, M_i }
q_i = sampling/createMessage(C, E_i; includeContext = none)
D_i = G_theta(q_i)
References(q_i) = { r_i }
For every i != j: referenceId(r_j) is absent from q_i準備されたタイル内で測定された座標は、次のように元のスクリーンショットにマッピングされます。
x_source = (cropLeft + x_tile) / scaleX
y_source = (cropTop + y_tile) / scaleYこれは、統計的独立性の主張ではなく、運用上の分離不変条件です。サーバーとスモークテストは、リクエストの内容とアーティファクトを検査できますが、外部のモデルプロバイダーが MCP メッセージの外部で保持する可能性のあるものを証明することはできません。
実証結果
プロトコル分離
flowchart LR
R1["gdweb-26522"] --> Q1["Request 1<br/>5 evidence images<br/>includeContext: none"] --> D1["DESIGN_INDEX_gdweb-26522.md"]
R2["gdweb-24516"] --> Q2["Request 2<br/>4 evidence images<br/>includeContext: none"] --> D2["DESIGN_INDEX_gdweb-24516.md"]サンプリングリクエスト |
|
| 出力ドキュメント |
リクエスト1 | 1 | 0 | 1 |
リクエスト2 | 0 | 1 | 1 |
図1. 2026-08-22 にクエリ 금융 を使用して記録されたライブスモークテスト(gdweb-26905 を除外した後の n = 2 のサンプリング済みリファレンス)。各リクエストには、独自のリファレンス ID とビジュアルエビデンスが含まれており、他のサンプリング済みリファレンス ID は含まれておらず、includeContext: none でした。実行により、2つの異なる Markdown ファイルが生成されました。このテストは、観察可能なリクエスト構成とファイル分離を検証するものであり、プロトコル外のモデルメモリ動作を検証するものではありません。
記録済み実行の測定値
xychart-beta
title "Prepared evidence images per reference"
x-axis ["gdweb-27294", "gdweb-25378", "gdweb-24234"]
y-axis "Evidence images" 0 --> 5
bar [3, 4, 5]リファレンス | デスクトップソースの高さ | 準備済み画像 | 画像ペイロード | 色の測定値 | ドキュメントトークン | ドキュメントサイズ | 必須見出し |
| 2,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 |
図2. 保存済み実行 2026-07-29T15-54-10-483Z-5c70317e(n = 3 リファレンス)からの記述的測定値。実行では、合計816.9 KB(10進数)の12個のエビデンス画像が準備され、96個の代表色の測定値が記録されました。合計27,391トークン(空白区切り)と187.0 KB(10進数)の3つの DESIGN_INDEX ドキュメントが生成されました。3つすべてに見出し1〜19が含まれています。見出しの存在は意味的正しさを保証するものではありません。
定性的ケーススタディ
(a) エビデンスと測定値 | (b) リファレンスごとの | (c) 仕様駆動型実装 |
|
|
|
図3. GDWEB エビデンスビューアから生成された Korean Air の DESIGN_INDEX、そして AEROFLOW までの保存された定性的トレース。AEROFLOW は、新しいブランディング、コンテンツ、画像、機能を意図的に導入しています。この例は、仕様の使用法を示すものであり、管理された視覚的忠実度の比較ではありません。
解釈と制限
ライブ分離結果は
n = 2であり、記録されたアーティファクト分析はn = 3です。どちらも、デザインの品質やモデルのパフォーマンスに関する広範な主張をサポートするものではありません。現在の評価には、対照群、人間による評価、反復試行、信頼区間、スクリーンショットからコードへのベースラインとの比較はありません。
代表色は、リサイズ、JPEG 正規化、チャネル量子化の後に測定されます。これらはスクリーンショットのエビデンスであり、ソース Web サイトの CSS トークンの証明ではありません。
19/19 の結果は、必要な見出しの存在を測定したものです。将来のベンチマークでは、事実の根拠、座標誤差、色差、レスポンシブ動作、実装の忠実度を個別に評価する必要があります。
定性的実装は存在例であり、Secret MCP が再構成品質を向上させるという証拠ではありません。
使用方法
1. インストールとビルド
Node.js 20.19 以降が必要です。
公開されている MCP サーバーは、次のコマンドで起動できます:
npx -y secret-design-mcpローカルビューアも必要な場合、またはソースを開発する場合は、リポジトリをクローンします:
git clone https://github.com/yyeongjin/secret_mcp.git
cd secret_mcp
npm install
npm run build2. Web アプリケーションを起動する
MCP サーバーと Web アプリケーションの両方に同じ出力ディレクトリを読み取らせるには、DESIGN_INDEX_OUTPUT_DIR を同じ値に設定します。
DESIGN_INDEX_OUTPUT_DIR=/absolute/path/to/design-index npm run webブラウザで次のアドレスを開きます。
http://127.0.0.1:4317Web アプリケーションには、生成ランのリスト、作品ごとの進行状況、GDWEB エビデンス画像、測定された座標とパレット、LLM に送信された仕様コントラクト、最終的な Markdown、生成タイムスタンプが表示されます。ドキュメントとエビデンスは読み取り専用です。その後の検索で使用されるフィルターを変更するのは、Exclude from search と Remove exclusion のみです。
3. MCP サーバーを登録する
{
"mcpServers": {
"secret-mcp": {
"command": "npx",
"args": [
"-y",
"secret-design-mcp"
],
"env": {
"DESIGN_INDEX_OUTPUT_DIR": "/absolute/path/to/design-index",
"SECRET_MCP_WEB_ORIGIN": "http://127.0.0.1:4317"
}
}
}
}ソースチェックアウトの場合は、command と args を "command": "node" と "args": ["/absolute/path/to/secret_mcp/dist/index.js"] に置き換えます。
MCP クライアントは sampling/createMessage をサポートしている必要があります。クライアントがサンプリングをサポートしていない場合、サーバーは複数の作品を同じコンテキストに配置するフォールバックを実行する代わりに、明示的なエラーを返します。
MCP stdio サーバー自体は HTTP ポートを開きません。クライアントは node dist/index.js を子プロセスとして起動し、stdio を介して JSON-RPC メッセージを交換します。デフォルトでは、別の Web ビューアプロセスのみがポート 4317 を使用します。
サンプリングをサポートしていないホスト向けのダイレクトサンプリングクライアント
外部の MCP ホストが sampling/createMessage に応答できない場合でも、サーバーを変更する必要はありません。別の MCP プロトコルクライアントが dist/index.js に直接接続し、sampling: {} をアドバタイズし、新しい一時ワークスペースで新しい Codex LLM プロセスを起動してすべてのサンプリングリクエストを処理できます。
const client = new Client(
{ name: 'secret-mcp-sampling-client', version: '1.0.0' },
{ capabilities: { sampling: {} } }
);
client.setRequestHandler(CreateMessageRequestSchema, async request => {
const workspace = await mkdtemp('secret-mcp-sampling-');
const response = await launchFreshCodex({
workspace,
messages: request.params.messages,
systemPrompt: request.params.systemPrompt,
});
return {
model: response.model,
role: 'assistant',
content: { type: 'text', text: response.markdown },
};
});サンプリングハンドラーは、現在のリクエストのテキストブロックとエビデンス画像のみをそのワークスペースにコピーする必要があります。別の作品の Codex 会話、プロセス、作業ディレクトリ、応答ファイル、メッセージ履歴を再利用してはなりません。ワークスペースは1つの新しい Codex プロセスを起動し、完全な Markdown 応答を待って、その応答を保留中の MCP サンプリング呼び出しに返し、サーバーが作品のコントラクト、エビデンス、ドキュメントを保存した後で削除できます。
サーバーは引き続きシーケンシャルキューを制御します。作品1が戻って保存されるまで、作品2は準備されません。これにより、新しいプロセスとワークスペースは、サーバーに結合フォールバックを追加することなく、プロトコルレベルの includeContext: none 境界と同等の実行レベルのものになります。ダイレクトクライアントは、サンプリング対応の MCP ホストになります。作品ごとの出力予算に対して十分に長いツール呼び出しタイムアウトを使用し、1つの永続的な LLM 会話を通じて複数のサンプリングリクエストに応答してはなりません。
4. LLM に依頼する
別の /web-design スラッシュコマンドは必要ありません。
Find three recent design references on GDWEB that are suitable for a Godot project website.
Analyze every search result through a completely independent LLM request,
and create one reproducible DESIGN_INDEX document for each result.
Inside each document, separate every visible page into its own page specification,
and specify everything from navigation and section coordinates to exact color formats and responsive values.ホストLLMはgenerate-gdweb-design-indexesツールを一度呼び出します。MCPサーバーは検索を実行し、作品ごとのLLMリクエストを内部的に分離します。
手動でのツール呼び出し形式は以下のとおりです。
{
"name": "generate-gdweb-design-indexes",
"arguments": {
"query": "game portfolio",
"limit": 3,
"awardOnly": true,
"includePreviousYear": true,
"language": "English",
"outputDirectory": "/absolute/path/to/design-index",
"maxTokens": 131072
}
}outputDirectoryを省略した場合、ツールはDESIGN_INDEX_OUTPUT_DIR環境変数を使用します。その変数も存在しない場合は、サーバーの作業ディレクトリ配下のdesign-indexディレクトリを使用します。
maxTokensは作品ごとの出力予算であり、実行全体で共有される予算でも、ページ間で均等に分割される予算でもありません。1つの作品に複数の表示ページやルートが含まれる場合があり、各ページで19セクション構成のコントラクトのページ固有部分をすべて繰り返す必要があります。そのため、デフォルト値と最小値は131072トークンです。クライアントは、非常に大きなマルチページのエビデンスセットに対して、最大262144トークンをリクエストできます。
limit: 3の場合、デフォルトの実行では最大3つの独立した131072トークン出力をリクエストできます。作品間で1つの131072トークンプールを共有するわけではありません。接続されたサンプリングクライアントと選択したモデルが、リクエストされた出力サイズをサポートしている必要があります。モデルがstopReason: maxTokensを返した場合、サーバーはその作品を、切り詰められたDESIGN_INDEXを完全なものとして保存する代わりに、失敗として扱います。
ツールが完了すると、実行ID、実行マニフェストのパス、作品ごとのドキュメントパス、WebビューアのURLが返されます。
エンドツーエンドの例:GDWEB仕様からGodot航空ウェブサイトへ
実際の例では、Secret MCPが2026年と2025年にGDWEBに登録された3件の航空賞受賞作品を発見し、独立したLLMリクエストを通じて各作品のDESIGN_INDEXを作成し、その後、大韓航空のリファレンスの構造をGodot航空プロジェクトのウェブサイトに適用しました。
完成したAEROFLOWウェブサイトは、大韓航空のウェブサイトのクローンではありません。リファレンスの情報階層、ナビゲーション、アクションパネル、セクション構成、レスポンシブの原則を使用しながら、新しいブランド、コピー、航空画像、コンテンツを導入しています。この例は、結果として得られるデザインがリファレンスと異なる場合でも、測定可能な構造的エビデンスがあれば、独自のアイデンティティを持つ洗練されたウェブサイトを制作できることを示しています。
例を実行する
# 1. Build
npm install
npm run build
# 2. Per-work document web viewer
DESIGN_INDEX_OUTPUT_DIR="$PWD/tmp/design-index/aviation-godot-20260730" npm run web
# 3. Specification-driven result website
python3 -m http.server 4320 \
--bind 127.0.0.1 \
--directory tmp/showcase/aviation-godot/generated-siteプロセスを起動したら、次の画面を開きます。
作品ごとの仕様Webビューア:http://127.0.0.1:4317/?run=2026-07-29T15-54-10-483Z-5c70317e
AEROFLOW結果ウェブサイト:http://127.0.0.1:4320
1. 作品ごとの仕様結果
左側の実行リストから作品を1つずつ選択します。右側には、選択した作品の最終的なDESIGN_INDEXのみが、他の作品のコンテンツを混在させることなく表示されます。

2. エビデンス画像と測定値
Evidenceタブには、独立したLLMリクエストに送信されたデスクトップ画像とモバイル画像、タイル座標、縮小率、代表色が表示されます。

3. 独立したLLMリクエストコントラクト
Request Contractには、ページ区切り、ナビゲーション、セクション境界、HEX/RGB/HSLカラー、コンポーネント、レスポンシブマトリクス、受け入れ条件が記録されます。このコントラクトにより、結果が表面的なムードの要約で終わるのを防ぎ、別のLLMが実装仕様として利用できるようにします。

4. 生成プロセス
Generation Logには、検索とエビデンス準備から、独立した作品ごとのLLMリクエスト、ドキュメントの保存、実行全体の完了までの一連の流れが表示されます。この実行では、3つの作品すべてが個別のincludeContext: noneリクエストで処理されました。

5. 仕様駆動型AEROFLOWのファーストビュー
大韓航空のリファレンスで確認された明るい航空ポータルとアクションパネル構造は、Godotプロジェクトに適合されました。ブランド、航空機画像、コピー、機能は、この結果のために特別に作成されました。

6. プロジェクトのハイライト
予約・プロモーションカード構造は、フライト地域、グラスコックピット、リアルタイム天気といったコアプロジェクトコンテンツに転用されました。

7. 開発ログとショートカット
ソースリファレンスのお知らせとサービスショートカットは、ビルド履歴、開発進捗、フライトモデル、アビオニクス、メディア、コントロール、ロードマップナビゲーションに再構成されました。

8. メディアとフッター
最後の領域には、プロジェクトメディア、開発、サポート、ライセンスへのリンクが含まれ、その後に独立プロジェクトのフッターが続きます。

この結果が示すもの
新しいプロジェクトは、リファレンスのロゴ、商標、コピー、画像をコピーすることなく、検証済みの情報階層とレイアウト関係を使用できます。
静的スクリーンショットをナビゲーション、ピクセル境界、カラートークン、コンポーネント、レスポンシブマトリクスに変換することで、別のLLMが具体的な実装計画を作成するのに十分な詳細情報を得られます。
同じ構造的エビデンスでも、新しくデザインされたコンテンツ、ブランディング、ビジュアルアセットにより、ソースとは異なる独自のアイデンティティを生み出すことができます。
Secret MCPは、優れたデザインから構造的エビデンスを抽出し、それを新しいプロジェクトに適した洗練されたウェブサイトの構築に活用することを目的としており、ソースをピクセル単位で複製することを目的としていません。
仕様とリクエストコントラクト
これらのリンクは、リポジトリに含まれる実際のファイルを直接指しています。同じアーティファクトは、ローカルでの実行と閲覧のために、相対シンボリックリンクを介してtmp/showcase/aviation-godotの下にもグループ化されています。
コア実行アーキテクチャ
flowchart TD
User["User request"] --> Host["Host LLM"]
Host --> Tool["One generate-gdweb-design-indexes call"]
Tool --> Exclusions["Load the exclusion list managed in the web viewer"]
Exclusions --> Search["Search GDWEB internally and filter work IDs"]
Search --> Queue["Keep results inside the server"]
Queue --> R1["Work 1 images + specification contract"]
R1 --> S1["Independent sampling/createMessage request 1"]
S1 --> F1["Save DESIGN_INDEX_gdweb-1.md"]
F1 --> R2["Work 2 images + specification contract"]
R2 --> S2["Independent sampling/createMessage request 2"]
S2 --> F2["Save DESIGN_INDEX_gdweb-2.md"]
F2 --> More["Repeat sequentially for every work"]
More --> Manifest["Record per-work evidence and status in run.json"]
Manifest --> Web["Inspect one work at a time in the local web viewer"]
Manifest --> Status["Return only file paths and statuses to the host"]以下の境界が重要です。
複数の作品からの画像や仕様本文が、1つのバッチとして外部のホストLLMに返されることはありません。
limit: 3の場合、サーバーは最大3つの相互に独立したLLMサンプリングリクエストを実行します。すべてのサンプリングリクエストは
includeContext: noneを使用します。サンプリングリクエストに含まれるのは、1つの作品のメタデータと画像タイルのみです。
前の作品のID、画像、分析ドキュメントが次の作品のリクエストに渡されることはありません。
Webビューアで除外された作品は、サンプリングリクエストが作成される前に検索結果から削除されます。
サーバーは、現在のサンプリングレスポンスをファイルに保存した後にのみ、次の作品の処理を開始します。
最後に、生成されたファイルパス、使用されたモデル、成功または失敗のステータスのみがホストに返されます。
つまり、これはホストLLMがすべての結果を一度に読み取って結合サマリーを生成する以前のアーキテクチャではありません。
Webビューア
Webビューアは、DESIGN_INDEX_OUTPUT_DIR/.secret-mcp-runsを2.5秒ごとに読み取ります。MCP生成プロセスとWebサーバーの間に、個別のデータベースやデバッグ接続はありません。
インターフェースには、次の領域が含まれます。
生成実行:クエリ、リクエスト数、許可された年、全体的なステータス
作品リスト:各
gdweb-<作品番号>の進捗状況とエビデンス画像数作品の詳細:選択した1つの作品の仕様、エビデンス画像と測定値、リクエストコントラクト、生成ログ
検索除外:選択した作品を将来の検索から除外する、再度含める、除外リスト全体を管理する
実行に3つの作品が含まれる場合、以下のように3つのドキュメントも生成されます。
.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は、複数の作品のドキュメント本文を結合したファイルではありません。これは、作品ごとのファイルパス、ステータス、タイムスタンプ、モデル、エビデンスリストのみを含むビューアマニフェストです。
検索除外リスト
WebビューアでExclude from searchを選択すると、作品番号が次のファイルに保存されます。
DESIGN_INDEX_OUTPUT_DIR/.secret-mcp/exclusions.json過去の実行と生成されたドキュメントが削除されることはありません。
新しい
generate-gdweb-design-indexesおよびsearch-gdweb-designsの実行では、選択前に作品番号がフィルタリングされます。除外によって結果が少なすぎることを防ぐため、検索では追加のGDWEB候補を読み取り、除外されていない作品からリクエストされた
limitを選択します。Remove exclusionを選択すると、次回の検索からその作品が再び対象になります。MCPサーバーとWebビューアは、同じ除外リストを共有するために、同じ
DESIGN_INDEX_OUTPUT_DIRを使用する必要があります。
画像処理
GDWEBのフルデスクトップキャプチャは非常に縦長で、サイズが数メガバイトになる場合があります。元のbase64データをサンプリングリクエストで直接送信すると、MCPトランスポートの制限を超えたり、ビジョンモデルが細かい構造の詳細を見逃したりする可能性があります。
各作品のリクエストを作成する前に、gdweb-sampling-images.tsは次の操作を実行します。
sgbn=1を指定してGDWEBデスクトップ登録画像を読み込むsgbn=3を指定してGDWEBモバイル登録画像を読み込むデスクトップ画像の最大幅を1200pxにリサイズする
長いページを1600pxの高さで重複する垂直タイルに分割する
モバイル画像を別のエビデンスとして保持する
MCPサンプリングリクエストのサイズを小さくするために、エビデンスをJPEGとして圧縮する
すべてのタイルについて、元のキャンバスサイズと準備済みキャンバスサイズ、スケール係数、準備済みの
x/y/width/height座標、ソーススペース座標、ソースURLを記録するすべてのタイルから8つの代表色を測定し、HEX、RGB、HSL、ピクセルカバレッジを記録する
1つの作品からの複数のタイルは、同じ作品固有のサンプリングリクエストに含まれます。異なる作品のタイルが同じリクエストに含まれることはありません。
代表色は、正規化されたスクリーンショットのピクセルからサンプリングされた測定値です。これらは視覚的な比較のための正確なエビデンスですが、JPEGエラーや画像コンテンツが値に影響するため、ソースサイトのCSS変数として提示してはなりません。生成コントラクトは、MEASUREDカラーとINFERRED実装トークンを区別します。
サーバーは、作品のライブ本番ウェブサイトを開いたり、そのDOMをクロールしたりしません。視覚的なエビデンスは、GDWEBに登録されている画像とメタデータに限定されます。
GDWEB検索
デザイン検索は、ブラウザの自動化、Bing、Brave、DuckDuckGoを使用しません。
Query
-> POST https://www.gdweb.co.kr/sub/search.asp
-> form field: Txt_word=<query>
-> parse the GDWEB result HTML
-> collect work number, category, and registration year
-> retain only the current and previous year
-> load GDWEB detail metadata and registered images鮮度ポリシー
yearが省略された場合、現在の実行時の年が使用されます。includePreviousYearのデフォルトはtrueです。2026年に実行した場合、デフォルトでは2026年と2025年に登録された作品のみが許可されます。
includePreviousYear: falseの場合、対象年の作品のみが許可されます。awardOnlyのデフォルトはtrueのため、受賞名のない作品は除外されます。limitは1から10の範囲で設定できます。
作品メタデータ
フィールド | 説明 |
| GDWEB 作品番号。ドキュメントのファイル名にも使用されます |
| GDWEB 作品カテゴリ値 |
| 作品タイトル |
| GDWEB 作品詳細ページ |
| 登録日とフィルタリングに使用する年 |
| 受賞名 |
| デザインコンセプト |
| メインカラー |
| 制作会社 |
| GDWEB デスクトップキャプチャ( |
| GDWEB モバイルキャプチャ( |
DESIGN_INDEX 仕様
独立した各サンプリングリクエストには、secret-hook/design-index/v2 コントラクトが含まれます。
生成されるファイル名は DESIGN_INDEX_gdweb-<strNo>.md です。
作品ごとに1つのファイルがありますが、各ファイルはまずページとルートの一覧で始まり、検証されたすべてのページの完全なサブセクションを繰り返します。コントラクトは、長いスクロールキャプチャ内のセクションを独立したページとして誤認しません。エビデンスコラージュの中に視覚的に別々の画面が含まれる場合にのみ、ページを分割します。
すべてのドキュメントには、以下の19の番号付きセクションがすべて含まれていなければなりません。
領域 | 必須仕様 |
再構築の目標 | リファレンスID、目標とする再現度、ルート、対象ビューポート、対象外 |
エビデンスと座標系 | 画像ID、元寸法・加工済み寸法、スケール、タイル座標、ソース空間座標、重なり除去方法 |
サイトマップ | 検証済みのページとルート、目的、エビデンス画像、共通シェル、アクティブメニュー、確信度 |
共通アプリシェル | グローバル背景、コンテナ、ガター、オーバーレイ、ページクローム、スタッキングコンテキスト |
ナビゲーション | デスクトップ・モバイルの高さ、ロゴ・メニューの座標、間隔、タッチ領域、アクティブ・ホバー・フォーカス・オープンの状態 |
ページごとの仕様と座標テーブル | 各ページのキャンバスモデル、セクション順、座標・幅・高さ、レイアウト、状態、データ、証拠レベル |
レイアウト詳細 | DOM、グリッド・フレックス、トラック、min/max、比率、空隙、オーバーフロー、sticky、absolute、z-index |
コンポーネント抽象化 | ページリンクされたコンポーネントツリー、props、バリアント、スロット、状態、イベント、データコントラクト |
トークンと正確な色 | HEX/RGB/HSL/アルファ、 использования、計測座標、確信度、許容値、CSS変数 |
タイポグラフィ | 役割別フォントファミリー、px/rem、ウェイト、行の高さ、文字間隔、整列、切り詰め、レスポンシブ値 |
資産とアイコン | ページ・セクション、表示サイズ、アスペクト比、クロッピング、フォーカルポイント、オブジェクトフィット、読み込み、フォールバック戦略 |
レスポンシブマトリクス | 1440/1280/1024/768/390/360px におけるコンテナ、カラム、順序、表示・非表示、ナビゲーション、間隔 |
インタラクションとモーション | 全状態における色、不透明度、変形、時間、イージング、キーボード、reduced-motion の動作 |
アクセシビリティ | ページごとのランドマーキー、見出し、フォーカス、メニューのセマンティクス、ラベル、alt テキスト、コントラスト、タッチターゲット |
データと内容 | ページのエンティティ、フィールド、件数、順序付け、書式、ローカライズ、読み込み・空・エラーのフィクスチャー |
フロントエンドアーキテクチャ | ルート、ディレクトリ構造、ページ・共通モジュール、トークン、アセット、状態、サーバー・クライアント境界 |
実装タスクグラフ | 計測、シェル、ナビゲーション、ページごとのタスクID、依存関係、成果物、完了の基準 |
ページごとの受入基準 | 座標、色、タイポグラフィの許容差、ビューポート比較、ブラウザのオーバーフロー、アセット、キーボード、パフォーマンス |
不確実性と判断 | ページ・セクションごとの未知数、採用した値、代替案、確信度、追加のエビデンス要件 |
すべての主要な判断は、以下のいずれかのエビデンスレベルでマークされます。
OBSERVED: GDWEB の画像またはメタデータに直接見えているものMEASURED: 提供されたピクセル座標または計測済みパレットから数値的に検証されるものINFERRED: 同じ結果を再現するために合理的に推論されたものUNKNOWN: 静的証拠から検証できず、事実として断言してはならないもの
別の LLM が完成したドキュメント単体から、コンポーネントツリー、トークン、レスポンシブルール、アセット、実装順序、検証項目を導出できなければなりません。
公開されたツー・サービス
サーバーは現在、5 種類の MCP ツールを公開しています。
ツール | 説明 |
| GDWEB を検索し、結果ごとに隔離された LLM リクエストを作成し、ドキュメントを保存する |
| 仕様を生成せずにGDWEB の参照リストを返す |
| 一般のウェブを検索し、ページ全体の内容を抽出する |
| 一般検索のタイトル、URL、説明を返す |
| 特定の一般ウェブページの全セス内容を抽出する |
設計計画、レイアウト分析、実装仕様、DESIGN_INDEX リクエストには generate-gdweb-design-indexes を使用します。search-gdweb-designs は、それだけの用途に軽量なリスト表示にのみ使用してください。
ソース構造
secret_mcp/
├── src/
│ ├── index.ts MCP tool registration and sampling requests
│ ├── dashboard-server.ts Local web server and document/exclusion APIs
│ ├── design-index-run-store.ts Run manifest and per-work artifact records
│ ├── design-exclusion-store.ts Add/remove persistent search exclusions
│ ├── design-index-paths.ts Shared MCP/viewer output-path resolution
│ ├── gdweb-design-search.ts GDWEB search, year filtering, and registered-image loading
│ ├── gdweb-design-index-generator.ts Sequential per-work generation and Markdown saving
│ ├── gdweb-sampling-images.ts Long-capture resizing, tiling, and compression
│ ├── design-spec-contract.ts Required DESIGN_INDEX specification contract
│ ├── search-engine.ts General Bing, Brave, and DuckDuckGo search
│ ├── enhanced-content-extractor.ts General webpage content extraction
│ ├── browser-pool.ts Browser pool for general content extraction
│ ├── rate-limiter.ts General-search request limits
│ ├── types.ts Search and tool types
│ └── utils.ts URL, text, and timestamp utilities
├── web/
│ ├── index.html Web viewer interface
│ ├── styles.css Desktop and mobile layout
│ └── app.js Run refresh and per-work document switching
├── .github/workflows/
│ ├── ci.yml Build, lint, and package validation
│ ├── gdweb-smoke.yml Live GDWEB search and image validation
│ └── release.yml Release-package generation
├── tmp/DESIGN_CONTEST_SITES.md Design competition and award website list
├── tmp/reconstructions/
│ └── gdweb-27294-godot/ Specification-driven AEROFLOW static website
├── tmp/showcase/aviation-godot/
│ ├── DESIGN_INDEX.md Relative symbolic link to the per-work specification
│ ├── REQUEST_CONTRACT.md Relative symbolic link to the independent request contract
│ ├── RUN_MANIFEST.json Relative symbolic link to the run manifest
│ ├── generated-site/ Relative symbolic link to the result website
│ └── screenshots/ Run and result screens used by this README
├── mcp.json MCP registration example
└── package.json開発と検証
npm run build
npm run lint
npm run smoke:gdweb-isolation
npm run web分離スモークテストは、サンプリングをサポートするモックMCPクライアントを接続し、次の動作を検証します。
検索結果の数と分割サンプリングリクエストの数が一致すること
各サンプリングリクエストに数値IDが1つだけ含まれること
他作品のIDがリクエストに混入しないこと
すべてのリクエストが
includeContext: noneであることすべてのリクエストが GDWEB 画像を含んでいること
各実行で複数の Markdown ファイルが作成されること
除外した作品がその後の検索結果やサンプリングリクエストに現れないこと
仕様書にページ、ナビゲーション、座標、色の要件があること
実行マニフェストの証拠にタイル座標と計測したパレットが記録されること
実行時間変数
名前 | 初期値 | 説明 |
|
| 生成されたドキュメントを保存するディレクトリ |
|
| MCP の結果に含める Web ビューアのアドレス |
|
| Web サーバーのバインドの 使用 グローバル 区切り など |
|
| Web サーバーのポート番号 |
|
| 作品ごとの独立した LLM リクエスト のタイムアウト(ミリ秒) |
|
| 一般の Web ページから抽出する最大のページ本文長 |
|
| 一般的な HTTP・ブラウザーのリクエストのタイムアウト |
|
| 一般的なデータ取得に使うブラウザーの最大数 |
|
| 一般的な検索・抽出に使うブラウザー |
|
| Playwright をヘッドレスで実行するかどうか |
|
| 一般的な検索で、すべてのエンジンを比較するかどうか |
|
| ブラウザーのライフサイクルログを出力するかどうか |
学習教材のドキュメント
関連作品と変更履歴に関連する言及
Secret MCP は、多様な表示形式の画面理解やスクリーンショットからコード化までの研究に隣接した実装 artifact として位置付けられています。下記の論文で使われているデータセットや指標では正式に評価されていないため、それらの数を Secret MCP の結果として解釈してはなりません。
Chenglei Si, Yanzhe Zhang, Ryan Li, Zhengyuan Yang, Ruibo Liu, and Diyi Yang. Design2Code: Benchmarking Multimodal Code Generation for Automated Front-End Engineering. NAACL 2025. 実世界のスクリーンショットからコードへの評価を、ビジュアルおよび要素レベルの指標で紹介しています。Paper
Bryan Wang, Gang Li, Xin Zhou, Zhourong Chen, Tovi Grossman, and Yang Li. Screen2Words: Automatic Mobile UI Summarization with Multimodal Learning. UIST 2021. スクリーンショット、テキスト、構造、UIセマンティクスを組み合わせた表現を研究しています。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. 視覚に基づくWebエージェント評価の重要性と難しさを確立しています。Paper
Model Context Protocol. Sampling specification. リクエストメッセージ、モデル設定、トークン予算、コンテキスト制御を含む、クライアント仲介の
sampling/createMessageを定義しています。Specification
Citation
Secret MCPは現在、査読付きの出版物ではなく、動作するリサーチノートを備えたソフトウェアです。
@software{jo2026secretmcp,
author = {{조영진}},
title = {Secret MCP: Evidence-Isolated Multimodal Design Analysis through MCP Sampling},
year = {2026},
version = {0.6.0},
url = {https://github.com/yyeongjin/secret_mcp},
note = {Software artifact and working implementation report}
}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 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.12313

Refero MCPofficial
AlicenseAqualityBmaintenanceEnables searching the Refero design catalog in plain English and generates DESIGN.md files for any project.610112MIT- FlicenseNot gradedqualityCmaintenanceExposes The Vibe Coder's Web Design Guide as tools for AI agents, enabling lookups of UI design patterns, CSS/JS snippets, and composition of optimized front-end prompts.
- AlicenseNot gradedqualityBmaintenanceCaptures website design evidence across responsive conditions and packages it into a portable design system for reuse by other agents.2MIT
Related MCP Connectors
A design-style library for AI agents: search real styles, fetch a ready-to-apply design spec.
UI design from prompts, screenshots, and URLs for AI coding agents and theme tokens.
Page-cited retrieval for embedded docs, datasheets, MISRA, CMSIS, and RTOS references.
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