@monoharada/wcf-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +162 -0
- package/bin.mjs +7 -0
- package/data/custom-elements.json +63877 -0
- package/data/install-registry.json +706 -0
- package/data/pattern-registry.json +126 -0
- package/package.json +29 -0
- package/server.mjs +664 -0
- package/validator.mjs +240 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"canonicalPrefix": "dads",
|
|
4
|
+
"patterns": {
|
|
5
|
+
"search-form": {
|
|
6
|
+
"id": "search-form",
|
|
7
|
+
"title": "検索フォーム(最小)",
|
|
8
|
+
"description": "見出し + 検索フォーム(検索語 + ボタン)",
|
|
9
|
+
"requires": ["heading", "search-box", "button"],
|
|
10
|
+
"stability": "stable",
|
|
11
|
+
"contractVersion": "1.0",
|
|
12
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
13
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">検索</dads-heading>\n <form id=\"search-form\">\n <dads-search-box aria-label=\"検索\"></dads-search-box>\n <dads-button type=\"submit\">検索</dads-button>\n </form>\n</main>\n"
|
|
14
|
+
},
|
|
15
|
+
"search-results": {
|
|
16
|
+
"id": "search-results",
|
|
17
|
+
"title": "検索結果一覧",
|
|
18
|
+
"description": "見出し + 検索フォーム + 結果カード + ページネーション",
|
|
19
|
+
"requires": ["heading", "search-box", "card", "page-navigation"],
|
|
20
|
+
"stability": "stable",
|
|
21
|
+
"contractVersion": "1.0",
|
|
22
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
23
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">検索</dads-heading>\n <form id=\"search-form\">\n <dads-search-box aria-label=\"検索\"></dads-search-box>\n </form>\n <h2>結果</h2>\n <ul>\n <li><dads-card>ダミー結果 1</dads-card></li>\n <li><dads-card>ダミー結果 2</dads-card></li>\n <li><dads-card>ダミー結果 3</dads-card></li>\n </ul>\n <dads-page-navigation current=\"1\" total=\"1\"></dads-page-navigation>\n</main>\n"
|
|
24
|
+
},
|
|
25
|
+
"table-with-pagination": {
|
|
26
|
+
"id": "table-with-pagination",
|
|
27
|
+
"title": "テーブル + ページネーション",
|
|
28
|
+
"description": "テーブル一覧とページネーションの基本構成",
|
|
29
|
+
"requires": ["heading", "table", "page-navigation"],
|
|
30
|
+
"stability": "stable",
|
|
31
|
+
"contractVersion": "1.0",
|
|
32
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
33
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">一覧</dads-heading>\n <dads-table>\n <table>\n <thead>\n <tr><th>項目</th><th>値</th></tr>\n </thead>\n <tbody>\n <tr><td>サンプル</td><td>1</td></tr>\n </tbody>\n </table>\n </dads-table>\n <dads-page-navigation current=\"1\" total=\"3\"></dads-page-navigation>\n</main>\n"
|
|
34
|
+
},
|
|
35
|
+
"card-grid": {
|
|
36
|
+
"id": "card-grid",
|
|
37
|
+
"title": "カードグリッド",
|
|
38
|
+
"description": "カードで一覧表示する基本レイアウト",
|
|
39
|
+
"requires": ["heading", "card", "button"],
|
|
40
|
+
"stability": "stable",
|
|
41
|
+
"contractVersion": "1.0",
|
|
42
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
43
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">お知らせ</dads-heading>\n <section>\n <dads-card>\n <h2>カード1</h2>\n <dads-button variant=\"outlined\">詳細</dads-button>\n </dads-card>\n <dads-card>\n <h2>カード2</h2>\n <dads-button variant=\"outlined\">詳細</dads-button>\n </dads-card>\n </section>\n</main>\n"
|
|
44
|
+
},
|
|
45
|
+
"layout-website-hero-section-footer": {
|
|
46
|
+
"id": "layout-website-hero-section-footer",
|
|
47
|
+
"title": "レイアウト(Website: Hero + Section + Footer)",
|
|
48
|
+
"description": "コンテンツ主導の1カラムサイト向けレイアウト。",
|
|
49
|
+
"requires": ["layout-shell", "heading", "card", "button"],
|
|
50
|
+
"stability": "stable",
|
|
51
|
+
"contractVersion": "1.0",
|
|
52
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
53
|
+
"html": "<dads-layout-shell data-dads-typeset pattern=\"website\" mode=\"auto\">\n <header slot=\"header\">\n <dads-heading level=\"1\">くらしの手続きポータル</dads-heading>\n <p>必要な手続きを1つの画面で確認できます。</p>\n </header>\n <section>\n <dads-card>\n <dads-heading level=\"2\">はじめての方へ</dads-heading>\n <p>制度の概要と申請までの流れを案内します。</p>\n <dads-button variant=\"outlined\">詳しく見る</dads-button>\n </dads-card>\n </section>\n <footer slot=\"footer\">© Digital Service</footer>\n</dads-layout-shell>\n"
|
|
54
|
+
},
|
|
55
|
+
"layout-app-shell": {
|
|
56
|
+
"id": "layout-app-shell",
|
|
57
|
+
"title": "レイアウト(App/SaaS: Header + Sidebar + Main)",
|
|
58
|
+
"description": "業務アプリ向けの標準App Shellレイアウト。",
|
|
59
|
+
"requires": ["layout-shell", "layout-sidebar", "heading", "card"],
|
|
60
|
+
"stability": "stable",
|
|
61
|
+
"contractVersion": "1.0",
|
|
62
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
63
|
+
"html": "<dads-layout-shell data-dads-typeset pattern=\"app-shell\" mode=\"auto\">\n <div slot=\"header\">\n <dads-heading level=\"2\">業務ダッシュボード</dads-heading>\n </div>\n <dads-layout-sidebar slot=\"sidebar\">\n <ul>\n <li>案件一覧</li>\n <li>承認待ち</li>\n <li>設定</li>\n </ul>\n </dads-layout-sidebar>\n <section>\n <dads-card>\n <dads-heading level=\"3\">進捗サマリー</dads-heading>\n <p>主要KPIを表示します。</p>\n </dads-card>\n </section>\n</dads-layout-shell>\n"
|
|
64
|
+
},
|
|
65
|
+
"layout-master-detail": {
|
|
66
|
+
"id": "layout-master-detail",
|
|
67
|
+
"title": "レイアウト(Master-Detail: Main + Aside)",
|
|
68
|
+
"description": "一覧 + 詳細を同時表示する2カラムレイアウト。",
|
|
69
|
+
"requires": ["layout-shell", "layout-aside", "heading", "table"],
|
|
70
|
+
"stability": "stable",
|
|
71
|
+
"contractVersion": "1.0",
|
|
72
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
73
|
+
"html": "<dads-layout-shell data-dads-typeset pattern=\"master-detail\" mode=\"auto\">\n <section>\n <dads-heading level=\"2\">申請一覧</dads-heading>\n <dads-table>\n <table>\n <thead>\n <tr><th scope=\"col\">申請ID</th><th scope=\"col\">状態</th></tr>\n </thead>\n <tbody>\n <tr><td>A-1001</td><td>審査中</td></tr>\n <tr><td>A-1002</td><td>差戻し</td></tr>\n </tbody>\n </table>\n </dads-table>\n </section>\n <dads-layout-aside slot=\"aside\">\n <dads-heading level=\"3\">詳細情報</dads-heading>\n <p>選択中レコードの詳細を表示します。</p>\n </dads-layout-aside>\n</dads-layout-shell>\n"
|
|
74
|
+
},
|
|
75
|
+
"application-form-single-validation": {
|
|
76
|
+
"id": "application-form-single-validation",
|
|
77
|
+
"title": "申請フォーム(1ページ・検証エラー)",
|
|
78
|
+
"description": "必須項目を含む1ページ申請フォームとバリデーションエラー表示",
|
|
79
|
+
"requires": ["heading", "fieldset", "input-text", "select", "textarea", "button"],
|
|
80
|
+
"stability": "experimental",
|
|
81
|
+
"contractVersion": "1.0",
|
|
82
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
83
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">申請フォーム</dads-heading>\n <form id=\"application-form-single\">\n <dads-fieldset>\n <legend>申請情報</legend>\n <dads-input-text name=\"name\" required error error-text=\"氏名は必須です\"></dads-input-text>\n <dads-select name=\"type\" required></dads-select>\n <dads-textarea name=\"reason\" required></dads-textarea>\n </dads-fieldset>\n <dads-button type=\"submit\">送信</dads-button>\n </form>\n</main>\n"
|
|
84
|
+
},
|
|
85
|
+
"application-form-step-validation": {
|
|
86
|
+
"id": "application-form-step-validation",
|
|
87
|
+
"title": "申請フォーム(ステップ・検証エラー)",
|
|
88
|
+
"description": "ステップナビゲーション付き申請フォームと検証エラー表示",
|
|
89
|
+
"requires": ["heading", "step-navigation", "fieldset", "input-text", "button"],
|
|
90
|
+
"stability": "experimental",
|
|
91
|
+
"contractVersion": "1.0",
|
|
92
|
+
"entryHints": ["boot", "@wcf", "index"],
|
|
93
|
+
"html": "<main data-dads-typeset>\n <dads-heading level=\"1\">申請フォーム(ステップ)</dads-heading>\n <dads-step-navigation></dads-step-navigation>\n <form id=\"application-form-step\">\n <dads-fieldset>\n <legend>ステップ1: 申請者情報</legend>\n <dads-input-text name=\"name\" required error error-text=\"氏名は必須です\"></dads-input-text>\n </dads-fieldset>\n <dads-button type=\"submit\">次へ</dads-button>\n </form>\n</main>\n"
|
|
94
|
+
},
|
|
95
|
+
"mockup-website": {
|
|
96
|
+
"id": "mockup-website",
|
|
97
|
+
"title": "モックアップ(Website)",
|
|
98
|
+
"description": "Webサイト向けのヒーロー + セクション構成を device-mock で確認するモックアップ。",
|
|
99
|
+
"requires": ["device-mock", "layout-shell", "heading", "card", "button"],
|
|
100
|
+
"stability": "stable",
|
|
101
|
+
"contractVersion": "1.0",
|
|
102
|
+
"entryHints": ["boot"],
|
|
103
|
+
"html": "<section data-dads-typeset>\n <dads-device-mock device=\"desktop\">\n <dads-layout-shell pattern=\"website\" mode=\"desktop\">\n <header slot=\"header\">\n <dads-heading level=\"1\">公共サービス ポータル</dads-heading>\n <p>申請・確認・問い合わせを1つの画面で行えます。</p>\n </header>\n <section>\n <dads-card>\n <dads-heading level=\"2\">新着のお知らせ</dads-heading>\n <p>重要なお知らせを確認してください。</p>\n <dads-button variant=\"outlined\">詳細</dads-button>\n </dads-card>\n </section>\n <footer slot=\"footer\">© Digital Service</footer>\n </dads-layout-shell>\n </dads-device-mock>\n</section>\n"
|
|
104
|
+
},
|
|
105
|
+
"mockup-app-shell": {
|
|
106
|
+
"id": "mockup-app-shell",
|
|
107
|
+
"title": "モックアップ(App Shell)",
|
|
108
|
+
"description": "業務画面向けのヘッダー + サイドバー + メイン領域を device-mock で再現するモックアップ。",
|
|
109
|
+
"requires": ["device-mock", "layout-shell", "layout-sidebar", "heading", "card"],
|
|
110
|
+
"stability": "stable",
|
|
111
|
+
"contractVersion": "1.0",
|
|
112
|
+
"entryHints": ["boot"],
|
|
113
|
+
"html": "<section data-dads-typeset>\n <dads-device-mock device=\"desktop\">\n <dads-layout-shell pattern=\"app-shell\" mode=\"desktop\">\n <div slot=\"header\">\n <dads-heading level=\"2\">申請管理ダッシュボード</dads-heading>\n </div>\n <dads-layout-sidebar slot=\"sidebar\">\n <ul>\n <li>一覧</li>\n <li>承認待ち</li>\n <li>設定</li>\n </ul>\n </dads-layout-sidebar>\n <section>\n <dads-card>\n <dads-heading level=\"3\">本日の処理件数</dads-heading>\n <p>処理済み 128 件 / 未処理 24 件</p>\n </dads-card>\n </section>\n </dads-layout-shell>\n </dads-device-mock>\n</section>\n"
|
|
114
|
+
},
|
|
115
|
+
"mockup-mobile-form": {
|
|
116
|
+
"id": "mockup-mobile-form",
|
|
117
|
+
"title": "モックアップ(Mobile Form)",
|
|
118
|
+
"description": "モバイル端末上で入力フォームの配置と余白を確認するモックアップ。",
|
|
119
|
+
"requires": ["device-mock", "heading", "fieldset", "input-text", "select", "textarea", "button"],
|
|
120
|
+
"stability": "stable",
|
|
121
|
+
"contractVersion": "1.0",
|
|
122
|
+
"entryHints": ["boot"],
|
|
123
|
+
"html": "<section data-dads-typeset>\n <dads-device-mock device=\"mobile\" visible-height=\"560px\">\n <main>\n <dads-heading level=\"2\">申請フォーム</dads-heading>\n <form>\n <dads-fieldset>\n <legend>基本情報</legend>\n <dads-input-text name=\"name\" required></dads-input-text>\n <dads-select name=\"type\" required></dads-select>\n <dads-textarea name=\"detail\" required></dads-textarea>\n </dads-fieldset>\n <dads-button type=\"submit\">確認へ進む</dads-button>\n </form>\n </main>\n </dads-device-mock>\n</section>\n"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@monoharada/wcf-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for the web-components-factory design system. Provides component discovery, validation, and pattern-based UI composition without cloning the repository.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"wcf-mcp": "bin.mjs"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin.mjs",
|
|
11
|
+
"server.mjs",
|
|
12
|
+
"validator.mjs",
|
|
13
|
+
"data/"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"web-components",
|
|
18
|
+
"design-system",
|
|
19
|
+
"claude"
|
|
20
|
+
],
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=18"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
27
|
+
"zod": "^3.23.0"
|
|
28
|
+
}
|
|
29
|
+
}
|