mcp-probe-kit 1.6.0 → 1.7.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 CHANGED
@@ -1,12 +1,17 @@
1
1
  # MCP Probe Kit
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/mcp-probe-kit.svg)](https://www.npmjs.com/package/mcp-probe-kit)
4
+ [![npm downloads](https://img.shields.io/npm/dm/mcp-probe-kit.svg)](https://www.npmjs.com/package/mcp-probe-kit)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![GitHub stars](https://img.shields.io/github/stars/mybolide/mcp-probe-kit.svg)](https://github.com/mybolide/mcp-probe-kit/stargazers)
7
+
3
8
  > 🚀 AI 开发增强工具集 - 让 AI 更懂你的开发流程
4
9
 
5
- 一个强大的 MCP (Model Context Protocol) 服务器,提供 **38 个实用工具**(30 个基础工具 + 8 个智能编排),覆盖代码质量、开发效率、项目管理全流程。
10
+ 一个强大的 MCP (Model Context Protocol) 服务器,提供 **39 个实用工具**(31 个基础工具 + 8 个智能编排),覆盖代码质量、开发效率、项目管理全流程。
6
11
 
7
12
  **支持所有 MCP 客户端**:Cursor、Claude Desktop、Cline、Continue 等
8
13
 
9
- **作者**: [小墨 (Kyle)](https://www.bytezonex.com/) | **项目**: [GitHub](https://github.com/mybolide/mcp-probe-kit)
14
+ **作者**: [小墨 (Kyle)](https://www.bytezonex.com/) | **项目**: [GitHub](https://github.com/mybolide/mcp-probe-kit) | **npm**: [mcp-probe-kit](https://www.npmjs.com/package/mcp-probe-kit)
10
15
 
11
16
  ---
12
17
 
@@ -22,7 +27,7 @@
22
27
  - **`perf`** - 性能分析
23
28
  - **`fix`** - 自动修复代码问题
24
29
 
25
- ### 🛠️ 开发效率(14 个工具)
30
+ ### 🛠️ 开发效率(15 个工具)
26
31
  - **`gencommit`** - Git 提交消息生成
27
32
  - **`genapi`** - API 文档生成
28
33
  - **`gendoc`** - 代码注释生成
@@ -31,6 +36,7 @@
31
36
  - **`gensql`** - SQL 查询生成器
32
37
  - **`genui`** - UI 组件生成器(React + Vue)
33
38
  - **`gen_mock`** - Mock 数据生成器 🆕
39
+ - **`design2code`** - 设计稿转代码(图片/描述/HTML → Vue/React)🆕
34
40
  - **`explain`** - 代码解释器
35
41
  - **`convert`** - 代码转换器
36
42
  - **`css_order`** - CSS 属性顺序规范
@@ -677,6 +683,59 @@ feat: 🎸 添加用户登录功能
677
683
 
678
684
  ---
679
685
 
686
+ #### `design2code` - 设计稿转代码 🆕
687
+ 1:1 还原设计稿或将 HTML 转换为 Vue/React 项目页面。
688
+
689
+ **用法**:`design2code` 然后提供设计稿
690
+
691
+ **输入方式**:
692
+ - **图片 URL** - 设计稿图片链接(支持 jpg/png/gif/webp/svg)
693
+ - **Base64 图片** - 直接粘贴 base64 编码的图片
694
+ - **设计稿描述** - 用文字描述页面布局和功能
695
+ - **HTML 代码** - 现有的 HTML 代码
696
+
697
+ **参数**:
698
+ - `input` - 设计稿图片/描述/HTML(必填)
699
+ - `framework` - vue/react(默认 vue)
700
+ - `style_solution` - tailwind/css-modules/styled-components(默认 tailwind)
701
+ - `component_type` - page/component(默认 page)
702
+
703
+ **功能特性**:
704
+ - 🎨 **精确还原** - 1:1 还原布局、颜色、字体、间距
705
+ - 📱 **响应式设计** - 自动生成移动端/平板/桌面端适配
706
+ - 🧩 **组件化** - 智能拆分可复用组件
707
+ - 💎 **TypeScript** - 完整的类型定义
708
+ - ♿ **可访问性** - 语义化 HTML + ARIA 属性
709
+ - ⚡ **性能优化** - 图片懒加载、代码分割
710
+
711
+ **适用场景**:
712
+ - 🎨 UI 设计稿转前端代码
713
+ - 🔄 HTML 页面迁移到 Vue/React
714
+ - 📄 落地页快速开发
715
+ - 🎯 原型转生产代码
716
+
717
+ **输出内容**:
718
+ - 完整的组件代码(Vue 3 Composition API / React Hooks)
719
+ - TypeScript 类型定义
720
+ - Tailwind CSS 样式(或其他方案)
721
+ - 使用示例和说明
722
+ - 响应式断点设计
723
+ - 性能优化建议
724
+
725
+ **示例**:
726
+ ```
727
+ # 图片转代码
728
+ design2code https://example.com/design.png
729
+
730
+ # 描述转代码
731
+ design2code "创建一个登录页面,包含用户名、密码输入框和登录按钮"
732
+
733
+ # HTML 转 Vue
734
+ design2code <div class="container">...</div>
735
+ ```
736
+
737
+ ---
738
+
680
739
  ### 📦 项目管理工具
681
740
 
682
741
  #### `init_setting` - 配置初始化
@@ -1174,9 +1233,10 @@ mcp-probe-kit/
1174
1233
  │ ├── gendoc.ts # 注释生成
1175
1234
  │ ├── genpr.ts # PR 生成
1176
1235
  │ ├── genchangelog.ts # Changelog 生成
1177
- │ ├── gensql.ts # SQL 生成器
1236
+ │ ├── gensql.ts # SQL 生成器
1178
1237
  │ ├── genui.ts # UI 组件生成器
1179
1238
  │ ├── gen_mock.ts # Mock 数据生成 🆕
1239
+ │ ├── design2code.ts # 设计稿转代码 🆕
1180
1240
  │ ├── explain.ts # 代码解释器
1181
1241
  │ ├── convert.ts # 代码转换器
1182
1242
  │ ├── css_order.ts # CSS 顺序规范
@@ -1418,7 +1478,7 @@ MIT License
1418
1478
  ├── perf 性能分析
1419
1479
  └── fix 自动修复
1420
1480
 
1421
- 开发效率 (14)
1481
+ 开发效率 (15)
1422
1482
  ├── gencommit 提交生成
1423
1483
  ├── genapi 文档生成
1424
1484
  ├── gendoc 注释生成
@@ -1427,6 +1487,7 @@ MIT License
1427
1487
  ├── gensql SQL 生成器
1428
1488
  ├── genui UI 组件生成器
1429
1489
  ├── gen_mock Mock 数据生成 🆕
1490
+ ├── design2code 设计稿转代码 🆕
1430
1491
  ├── explain 代码解释器
1431
1492
  ├── convert 代码转换器
1432
1493
  ├── css_order CSS 顺序规范
package/build/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
- import { detectShell, initSetting, initProject, gencommit, debug, genapi, codeReview, gentest, genpr, checkDeps, gendoc, genchangelog, refactor, perf, fix, gensql, resolveConflict, genui, explain, convert, cssOrder, genreadme, split, analyzeProject, initProjectContext, addFeature, securityScan, fixBug, estimate, genMock, startFeature, startBugfix, startReview, startRelease, startRefactor, startOnboard, startApi, startDoc } from "./tools/index.js";
5
+ import { detectShell, initSetting, initProject, gencommit, debug, genapi, codeReview, gentest, genpr, checkDeps, gendoc, genchangelog, refactor, perf, fix, gensql, resolveConflict, genui, explain, convert, cssOrder, genreadme, split, analyzeProject, initProjectContext, addFeature, securityScan, fixBug, estimate, genMock, design2code, startFeature, startBugfix, startReview, startRelease, startRefactor, startOnboard, startApi, startDoc } from "./tools/index.js";
6
6
  import { VERSION, NAME } from "./version.js";
7
7
  // 创建MCP服务器实例
8
8
  const server = new Server({
@@ -584,6 +584,32 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
584
584
  required: ["schema"],
585
585
  },
586
586
  },
587
+ {
588
+ name: "design2code",
589
+ description: "【设计稿转代码】1:1 还原设计稿或将 HTML 转换为 Vue/React 项目页面,支持图片、描述、HTML 三种输入方式",
590
+ inputSchema: {
591
+ type: "object",
592
+ properties: {
593
+ input: {
594
+ type: "string",
595
+ description: "设计稿图片(URL 或 base64)、设计稿描述或 HTML 代码",
596
+ },
597
+ framework: {
598
+ type: "string",
599
+ description: "目标框架:vue, react(默认 vue)",
600
+ },
601
+ style_solution: {
602
+ type: "string",
603
+ description: "样式方案:tailwind, css-modules, styled-components(默认 tailwind)",
604
+ },
605
+ component_type: {
606
+ type: "string",
607
+ description: "组件类型:page, component(默认 page)",
608
+ },
609
+ },
610
+ required: ["input"],
611
+ },
612
+ },
587
613
  // ========== 智能编排工具 ==========
588
614
  {
589
615
  name: "start_feature",
@@ -813,6 +839,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
813
839
  return await estimate(args);
814
840
  case "gen_mock":
815
841
  return await genMock(args);
842
+ case "design2code":
843
+ return await design2code(args);
816
844
  // 智能编排工具
817
845
  case "start_feature":
818
846
  return await startFeature(args);
@@ -908,6 +936,7 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
908
936
  fix_bug: "enabled",
909
937
  estimate: "enabled",
910
938
  gen_mock: "enabled",
939
+ design2code: "enabled",
911
940
  // 智能编排
912
941
  start_feature: "enabled",
913
942
  start_bugfix: "enabled",
@@ -0,0 +1,29 @@
1
+ /**
2
+ * design2code - 设计稿转代码工具
3
+ *
4
+ * 功能:
5
+ * 1. 根据设计稿图片生成页面代码(支持图片 URL 或 base64)
6
+ * 2. 根据设计稿描述生成页面代码
7
+ * 3. 将 HTML 转换为 Vue/React 组件
8
+ * 4. 1:1 还原设计稿布局和样式
9
+ */
10
+ export declare function design2code(args: any): Promise<{
11
+ content: ({
12
+ type: string;
13
+ text: string;
14
+ data?: undefined;
15
+ mimeType?: undefined;
16
+ } | {
17
+ type: string;
18
+ data: any;
19
+ mimeType: any;
20
+ text?: undefined;
21
+ })[];
22
+ isError?: undefined;
23
+ } | {
24
+ content: {
25
+ type: string;
26
+ text: string;
27
+ }[];
28
+ isError: boolean;
29
+ }>;
@@ -0,0 +1,400 @@
1
+ /**
2
+ * design2code - 设计稿转代码工具
3
+ *
4
+ * 功能:
5
+ * 1. 根据设计稿图片生成页面代码(支持图片 URL 或 base64)
6
+ * 2. 根据设计稿描述生成页面代码
7
+ * 3. 将 HTML 转换为 Vue/React 组件
8
+ * 4. 1:1 还原设计稿布局和样式
9
+ */
10
+ const PROMPT_TEMPLATE = `# 🎨 设计稿转代码指南
11
+
12
+ ## 📋 任务信息
13
+
14
+ {task_info}
15
+
16
+ ---
17
+
18
+ ## 🎯 转换目标
19
+
20
+ **目标框架**: {framework}
21
+ **样式方案**: {style_solution}
22
+ **组件类型**: {component_type}
23
+
24
+ ---
25
+
26
+ ## 📐 设计还原要求
27
+
28
+ ### 1. 布局还原(Layout)
29
+ - ✅ 使用 Flexbox/Grid 实现响应式布局
30
+ - ✅ 严格按照设计稿的间距、对齐方式
31
+ - ✅ 保持元素的相对位置和层级关系
32
+ - ✅ 考虑不同屏幕尺寸的适配
33
+
34
+ ### 2. 样式还原(Styling)
35
+ - ✅ 精确还原颜色值(使用设计稿中的色值)
36
+ - ✅ 还原字体大小、行高、字重
37
+ - ✅ 还原圆角、阴影、边框等细节
38
+ - ✅ 还原动画和过渡效果
39
+
40
+ ### 3. 交互还原(Interaction)
41
+ - ✅ 实现 hover、active、focus 等状态
42
+ - ✅ 添加点击、滚动等交互效果
43
+ - ✅ 实现表单验证和反馈
44
+ - ✅ 添加加载状态和错误处理
45
+
46
+ ### 4. 响应式设计(Responsive)
47
+ - ✅ 移动端适配(< 768px)
48
+ - ✅ 平板适配(768px - 1024px)
49
+ - ✅ 桌面端适配(> 1024px)
50
+ - ✅ 使用媒体查询或响应式单位
51
+
52
+ ---
53
+
54
+ ## 🛠️ 技术实现
55
+
56
+ ### React 实现要点
57
+ \`\`\`typescript
58
+ // 1. 使用 TypeScript 定义 Props
59
+ interface ComponentProps {
60
+ // 定义属性类型
61
+ }
62
+
63
+ // 2. 使用 Hooks 管理状态
64
+ const [state, setState] = useState()
65
+
66
+ // 3. 使用 CSS Modules 或 Tailwind CSS
67
+ import styles from './Component.module.css'
68
+
69
+ // 4. 组件拆分原则
70
+ // - 单一职责
71
+ // - 可复用性
72
+ // - 性能优化(memo, useMemo, useCallback)
73
+ \`\`\`
74
+
75
+ ### Vue 3 实现要点
76
+ \`\`\`vue
77
+ <script setup lang="ts">
78
+ // 1. 使用 Composition API
79
+ import { ref, computed, onMounted } from 'vue'
80
+
81
+ // 2. 定义 Props 和 Emits
82
+ interface Props {
83
+ // 定义属性类型
84
+ }
85
+ const props = defineProps<Props>()
86
+ const emit = defineEmits<{
87
+ // 定义事件类型
88
+ }>()
89
+
90
+ // 3. 响应式状态管理
91
+ const state = ref()
92
+
93
+ // 4. 生命周期钩子
94
+ onMounted(() => {
95
+ // 初始化逻辑
96
+ })
97
+ </script>
98
+
99
+ <template>
100
+ <!-- 模板内容 -->
101
+ </template>
102
+
103
+ <style scoped>
104
+ /* 样式内容 */
105
+ </style>
106
+ \`\`\`
107
+
108
+ ---
109
+
110
+ ## 🎨 样式方案选择
111
+
112
+ ### Tailwind CSS(推荐)
113
+ \`\`\`jsx
114
+ <div className="flex items-center justify-between p-4 bg-white rounded-lg shadow-md">
115
+ <h2 className="text-xl font-bold text-gray-900">标题</h2>
116
+ <button className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600">
117
+ 按钮
118
+ </button>
119
+ </div>
120
+ \`\`\`
121
+
122
+ ### CSS Modules
123
+ \`\`\`css
124
+ .container {
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: space-between;
128
+ padding: 1rem;
129
+ background: white;
130
+ border-radius: 0.5rem;
131
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
132
+ }
133
+ \`\`\`
134
+
135
+ ### Styled Components
136
+ \`\`\`typescript
137
+ const Container = styled.div\`
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: space-between;
141
+ padding: 1rem;
142
+ background: white;
143
+ border-radius: 0.5rem;
144
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
145
+ \`;
146
+ \`\`\`
147
+
148
+ ---
149
+
150
+ ## 📦 组件结构
151
+
152
+ ### 页面级组件(Page Component)
153
+ \`\`\`
154
+ src/pages/
155
+ ├── HomePage/
156
+ │ ├── index.tsx # 页面主文件
157
+ │ ├── components/ # 页面专用组件
158
+ │ │ ├── Header.tsx
159
+ │ │ ├── Hero.tsx
160
+ │ │ └── Footer.tsx
161
+ │ ├── hooks/ # 页面专用 Hooks
162
+ │ │ └── usePageData.ts
163
+ │ ├── types.ts # 类型定义
164
+ │ └── styles.module.css # 样式文件
165
+ \`\`\`
166
+
167
+ ### 通用组件(Common Component)
168
+ \`\`\`
169
+ src/components/
170
+ ├── Button/
171
+ │ ├── index.tsx
172
+ │ ├── Button.test.tsx
173
+ │ └── styles.module.css
174
+ ├── Input/
175
+ └── Card/
176
+ \`\`\`
177
+
178
+ ---
179
+
180
+ ## ✅ 代码质量要求
181
+
182
+ ### 1. TypeScript 类型安全
183
+ - ✅ 所有 Props 都有类型定义
184
+ - ✅ 事件处理函数有类型注解
185
+ - ✅ API 响应有类型定义
186
+
187
+ ### 2. 可访问性(A11y)
188
+ - ✅ 使用语义化 HTML 标签
189
+ - ✅ 添加 ARIA 属性
190
+ - ✅ 键盘导航支持
191
+ - ✅ 屏幕阅读器友好
192
+
193
+ ### 3. 性能优化
194
+ - ✅ 图片懒加载
195
+ - ✅ 代码分割
196
+ - ✅ 避免不必要的重渲染
197
+ - ✅ 使用虚拟滚动(长列表)
198
+
199
+ ### 4. 代码规范
200
+ - ✅ 遵循 ESLint 规则
201
+ - ✅ 统一的命名规范
202
+ - ✅ 添加必要的注释
203
+ - ✅ 组件拆分合理
204
+
205
+ ---
206
+
207
+ ## 📝 输出内容
208
+
209
+ 请生成以下内容:
210
+
211
+ ### 1. 组件代码
212
+ - 完整的组件实现
213
+ - TypeScript 类型定义
214
+ - 样式文件
215
+
216
+ ### 2. 使用示例
217
+ - 组件的使用方法
218
+ - Props 说明
219
+ - 常见场景示例
220
+
221
+ ### 3. 注意事项
222
+ - 浏览器兼容性
223
+ - 性能优化建议
224
+ - 可能的改进方向
225
+
226
+ ---
227
+
228
+ ## 🎯 开始转换
229
+
230
+ {conversion_guide}
231
+
232
+ ---
233
+
234
+ *工具: MCP Probe Kit - design2code*
235
+ `;
236
+ export async function design2code(args) {
237
+ try {
238
+ const input = args?.input;
239
+ const framework = args?.framework || "vue";
240
+ const styleSolution = args?.style_solution || "tailwind";
241
+ const componentType = args?.component_type || "page";
242
+ if (!input) {
243
+ throw new Error("缺少必填参数: input(设计稿图片 URL/base64、设计稿描述或 HTML 代码)");
244
+ }
245
+ // 判断输入类型
246
+ const isImageUrl = /^https?:\/\/.+\.(jpg|jpeg|png|gif|webp|svg)/i.test(input.trim());
247
+ const isBase64Image = /^data:image\/(png|jpeg|jpg|gif|webp|svg);base64,/.test(input.trim());
248
+ const isHTML = input.trim().startsWith("<");
249
+ let taskInfo = "";
250
+ let conversionGuide = "";
251
+ if (isImageUrl || isBase64Image) {
252
+ // 图片转换模式
253
+ const imageType = isImageUrl ? "图片 URL" : "Base64 图片";
254
+ taskInfo = `**输入类型**: 设计稿图片\n**图片来源**: ${imageType}\n${isImageUrl ? `**图片地址**: ${input}` : "**图片**: [Base64 编码图片]"}`;
255
+ conversionGuide = `### 设计稿图片分析步骤
256
+
257
+ 1. **视觉分析**
258
+ - 仔细观察设计稿的整体布局
259
+ - 识别页面的主要区域(导航栏、内容区、侧边栏、底部等)
260
+ - 分析颜色方案、字体、间距等设计规范
261
+ - 识别重复使用的设计模式和组件
262
+
263
+ 2. **元素识别**
264
+ - 标题、段落、按钮、输入框等基础元素
265
+ - 卡片、列表、表格等容器组件
266
+ - 图标、图片、背景等视觉元素
267
+ - 导航菜单、下拉框、弹窗等交互组件
268
+
269
+ 3. **布局还原**
270
+ - 使用 Flexbox/Grid 实现主体布局
271
+ - 精确测量元素间距和尺寸
272
+ - 实现响应式断点设计
273
+ - 保持视觉层次和对齐关系
274
+
275
+ 4. **样式还原**
276
+ - 提取颜色值(主色、辅助色、文字色、背景色)
277
+ - 还原字体大小、行高、字重
278
+ - 实现圆角、阴影、边框等细节
279
+ - 添加 hover、active 等交互状态
280
+
281
+ 5. **组件化开发**
282
+ - 将设计稿拆分为可复用组件
283
+ - 使用 ${framework === "vue" ? "Vue 3 Composition API" : "React Hooks"}
284
+ - 添加 TypeScript 类型定义
285
+ - 实现组件间的数据传递
286
+
287
+ 6. **交互实现**
288
+ - 添加点击、滚动等事件处理
289
+ - 实现表单验证和提交
290
+ - 添加加载状态和错误处理
291
+ - 实现动画和过渡效果
292
+
293
+ 7. **响应式适配**
294
+ - 移动端布局调整(< 768px)
295
+ - 平板端优化(768px - 1024px)
296
+ - 桌面端完整展示(> 1024px)
297
+ - 使用媒体查询或响应式单位
298
+
299
+ **注意事项**:
300
+ - 如果图片中有文字,请尽量识别并使用真实文本而非图片
301
+ - 图标优先使用 SVG 或图标库(如 Heroicons、Lucide)
302
+ - 图片资源使用占位符,并注明实际使用时需要替换
303
+ - 保持代码的可维护性和可扩展性`;
304
+ }
305
+ else if (isHTML) {
306
+ // HTML 转换模式
307
+ taskInfo = `**输入类型**: HTML 代码转换\n**源代码**:\n\`\`\`html\n${input}\n\`\`\``;
308
+ conversionGuide = `### HTML 转换步骤
309
+
310
+ 1. **分析 HTML 结构**
311
+ - 识别语义化标签
312
+ - 提取 class 和 id
313
+ - 分析嵌套层级
314
+
315
+ 2. **转换为组件**
316
+ - 将 HTML 转换为 ${framework === "vue" ? "Vue 模板" : "JSX"}
317
+ - 提取可复用的子组件
318
+ - 添加 TypeScript 类型
319
+
320
+ 3. **样式迁移**
321
+ - 将内联样式转换为 ${styleSolution}
322
+ - 提取公共样式变量
323
+ - 优化样式结构
324
+
325
+ 4. **添加交互逻辑**
326
+ - 识别需要状态管理的部分
327
+ - 添加事件处理
328
+ - 实现表单验证
329
+
330
+ 5. **优化和完善**
331
+ - 添加响应式设计
332
+ - 优化性能
333
+ - 添加可访问性支持`;
334
+ }
335
+ else {
336
+ // 设计稿描述模式
337
+ taskInfo = `**输入类型**: 设计稿描述\n**设计需求**:\n${input}`;
338
+ conversionGuide = `### 设计稿实现步骤
339
+
340
+ 1. **理解设计需求**
341
+ - 分析页面布局结构
342
+ - 识别设计元素和组件
343
+ - 确定交互流程
344
+
345
+ 2. **规划组件结构**
346
+ - 划分页面区域(Header、Main、Footer)
347
+ - 识别可复用组件
348
+ - 设计组件层级关系
349
+
350
+ 3. **实现布局**
351
+ - 使用 Flexbox/Grid 布局
352
+ - 实现响应式设计
353
+ - 确保跨浏览器兼容
354
+
355
+ 4. **实现样式**
356
+ - 还原设计稿的视觉效果
357
+ - 使用 ${styleSolution} 编写样式
358
+ - 添加动画和过渡效果
359
+
360
+ 5. **实现交互**
361
+ - 添加状态管理
362
+ - 实现用户交互
363
+ - 添加数据获取逻辑
364
+
365
+ 6. **测试和优化**
366
+ - 测试不同屏幕尺寸
367
+ - 优化性能
368
+ - 确保可访问性`;
369
+ }
370
+ const guide = PROMPT_TEMPLATE
371
+ .replace(/{task_info}/g, taskInfo)
372
+ .replace(/{framework}/g, framework === "vue" ? "Vue 3 + TypeScript" : "React + TypeScript")
373
+ .replace(/{style_solution}/g, styleSolution === "tailwind" ? "Tailwind CSS" : styleSolution === "css-modules" ? "CSS Modules" : "Styled Components")
374
+ .replace(/{component_type}/g, componentType === "page" ? "页面组件" : "通用组件")
375
+ .replace(/{conversion_guide}/g, conversionGuide);
376
+ // 如果是图片输入,添加图片内容
377
+ if (isImageUrl || isBase64Image) {
378
+ return {
379
+ content: [
380
+ { type: "text", text: guide },
381
+ {
382
+ type: "image",
383
+ data: isBase64Image ? input.split(',')[1] : input,
384
+ mimeType: isBase64Image ? input.match(/data:image\/([^;]+);/)?.[1] || "png" : "image/png"
385
+ }
386
+ ],
387
+ };
388
+ }
389
+ return {
390
+ content: [{ type: "text", text: guide }],
391
+ };
392
+ }
393
+ catch (error) {
394
+ const errorMsg = error instanceof Error ? error.message : String(error);
395
+ return {
396
+ content: [{ type: "text", text: `❌ 错误: ${errorMsg}` }],
397
+ isError: true,
398
+ };
399
+ }
400
+ }
@@ -28,6 +28,7 @@ export { securityScan } from "./security_scan.js";
28
28
  export { fixBug } from "./fix_bug.js";
29
29
  export { estimate } from "./estimate.js";
30
30
  export { genMock } from "./gen_mock.js";
31
+ export { design2code } from "./design2code.js";
31
32
  export { startFeature } from "./start_feature.js";
32
33
  export { startBugfix } from "./start_bugfix.js";
33
34
  export { startReview } from "./start_review.js";
@@ -28,6 +28,7 @@ export { securityScan } from "./security_scan.js";
28
28
  export { fixBug } from "./fix_bug.js";
29
29
  export { estimate } from "./estimate.js";
30
30
  export { genMock } from "./gen_mock.js";
31
+ export { design2code } from "./design2code.js";
31
32
  // 智能编排工具
32
33
  export { startFeature } from "./start_feature.js";
33
34
  export { startBugfix } from "./start_bugfix.js";
@@ -85,6 +85,10 @@ interface User {
85
85
  email: string;
86
86
  }
87
87
 
88
+ # 设计稿转代码
89
+ design2code
90
+ 然后提供设计稿图片URL、描述或HTML代码
91
+
88
92
  # 代码解释
89
93
  explain @complex-algorithm.ts
90
94
 
@@ -30,7 +30,7 @@ table tr:nth-child(even) { background-color: #f9f9f9; }
30
30
  <body>
31
31
  <h1>MCP 工具触发快速手册</h1>
32
32
 
33
- <h2>🔑 基础工具(30个)</h2>
33
+ <h2>🔑 基础工具(31个)</h2>
34
34
 
35
35
  <h3>代码质量(8个)</h3>
36
36
  <p><strong>detect_shell</strong> <span class="keyword">套壳</span><span class="keyword">检测</span> | "detect_shell"</p>
@@ -42,7 +42,7 @@ table tr:nth-child(even) { background-color: #f9f9f9; }
42
42
  <p><strong>perf</strong> <span class="keyword">性能</span><span class="keyword">优化</span><span class="keyword">慢</span><span class="keyword">瓶颈</span> | "分析性能" "有没有性能瓶颈"</p>
43
43
  <p><strong>fix</strong> <span class="keyword">修复</span><span class="keyword">fix</span><span class="keyword">lint错误</span> | "修复lint错误" "自动修复格式"</p>
44
44
 
45
- <h3>开发效率(14个)</h3>
45
+ <h3>开发效率(15个)</h3>
46
46
  <p><strong>gencommit</strong> <span class="keyword">commit</span><span class="keyword">提交</span> | "生成commit信息" "帮我写提交信息"</p>
47
47
  <p><strong>genapi</strong> <span class="keyword">API文档</span><span class="keyword">文档</span> | "生成API文档" "为这个方法添加文档"</p>
48
48
  <p><strong>gendoc</strong> <span class="keyword">注释</span><span class="keyword">JSDoc</span> | "添加注释" "生成JSDoc"</p>
@@ -51,6 +51,7 @@ table tr:nth-child(even) { background-color: #f9f9f9; }
51
51
  <p><strong>gensql</strong> <span class="keyword">SQL</span><span class="keyword">查询</span><span class="keyword">数据库</span> | "生成SQL查询" "写个查询语句"</p>
52
52
  <p><strong>genui</strong> <span class="keyword">组件</span><span class="keyword">UI</span><span class="keyword">界面</span> | "生成Button组件" "创建登录表单"</p>
53
53
  <p><strong>gen_mock</strong> <span class="keyword">Mock</span><span class="keyword">模拟数据</span> | "生成Mock数据" "创建测试数据"</p>
54
+ <p><strong>design2code</strong> <span class="keyword">设计稿</span><span class="keyword">图片转代码</span><span class="keyword">HTML转Vue</span> | "把设计稿转成Vue" "图片转代码"</p>
54
55
  <p><strong>explain</strong> <span class="keyword">解释</span><span class="keyword">说明</span><span class="keyword">理解</span> | "解释这段代码" "这个方法是干什么的"</p>
55
56
  <p><strong>convert</strong> <span class="keyword">转换</span><span class="keyword">改成</span><span class="keyword">迁移</span> | "转成TypeScript" "Class改Hooks"</p>
56
57
  <p><strong>css_order</strong> <span class="keyword">CSS顺序</span><span class="keyword">CSS规范</span> | "css_order"</p>
@@ -122,6 +123,7 @@ table tr:nth-child(even) { background-color: #f9f9f9; }
122
123
  <tr><td>SQL生成</td><td>SQL、查询、数据库</td><td><code>gensql</code></td></tr>
123
124
  <tr><td>UI组件</td><td>组件、UI、界面</td><td><code>genui</code></td></tr>
124
125
  <tr><td>Mock数据</td><td>Mock、模拟数据</td><td><code>gen_mock</code></td></tr>
126
+ <tr><td>设计稿转代码</td><td>设计稿、图片转代码、HTML转Vue</td><td><code>design2code</code></td></tr>
125
127
  <tr><td>代码转换</td><td>转换、改成、迁移</td><td><code>convert</code></td></tr>
126
128
  <tr><td>CSS规范</td><td>CSS顺序</td><td><code>css_order</code></td></tr>
127
129
  <tr><td>README</td><td>README、项目文档</td><td><code>genreadme</code></td></tr>
@@ -346,6 +346,27 @@ AI 需要理解你的意图才能调用正确的工具。使用明确的关键
346
346
 
347
347
  ---
348
348
 
349
+ ### 1️⃣7️⃣ 设计稿转代码 → `design2code`
350
+
351
+ **触发关键词**:设计稿、图片转代码、HTML转Vue、HTML转React、还原设计
352
+
353
+ **✅ 推荐说法**
354
+ ```
355
+ "把这个设计稿转成 Vue 代码"
356
+ "design2code https://example.com/design.png"
357
+ "将这个 HTML 转换为 React 组件"
358
+ "还原这个设计稿"
359
+ "图片转代码"
360
+ ```
361
+
362
+ **❌ 不推荐说法**
363
+ ```
364
+ "做个页面"(没说基于什么)
365
+ "转一下"(没说转什么)
366
+ ```
367
+
368
+ ---
369
+
349
370
  ---
350
371
 
351
372
  ## 🚀 智能编排工具触发
@@ -356,7 +377,7 @@ AI 需要理解你的意图才能调用正确的工具。使用明确的关键
356
377
 
357
378
  #### 🎯 开发流程类
358
379
 
359
- ##### 1️⃣7️⃣ 新功能开发 → `start_feature`
380
+ ####### 1️⃣7️⃣ 新功能开发 → `start_feature`
360
381
 
361
382
  **触发关键词**:新功能、开发功能、添加功能、实现功能、feature
362
383
 
@@ -822,6 +843,7 @@ AI: [自动调用 start_review 编排]
822
843
  | 提交代码 | commit、提交信息 | `gencommit` |
823
844
  | 代码转换 | 转换、改成、迁移 | `convert` |
824
845
  | Mock数据 | Mock、模拟数据 | `gen_mock` |
846
+ | 设计稿转代码 | 设计稿、图片转代码、HTML转Vue | `design2code` |
825
847
  | Bug修复流程 | 修复Bug、完整修复 | `fix_bug` |
826
848
  | 工作量估算 | 估算、工作量、需要多久 | `estimate` |
827
849
 
@@ -908,6 +930,14 @@ AI: [自动调用 start_review 编排]
908
930
  "重构这个方法,提高可读性"
909
931
  ```
910
932
 
933
+ ### 设计稿转代码
934
+ ```
935
+ "design2code https://example.com/design.png"
936
+ "把这个设计稿转成 Vue 代码"
937
+ "将这个 HTML 转换为 React 组件"
938
+ "design2code" 然后提供设计稿描述
939
+ ```
940
+
911
941
  ### 开发新功能
912
942
  ```
913
943
  "start_feature user-profile '用户个人资料管理'"
File without changes
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mcp-probe-kit",
3
- "version": "1.6.0",
4
- "description": "AI Development Enhancement Toolkit - MCP Server with 38 practical tools (30 basic + 8 orchestration) for code quality, development efficiency, and project management",
3
+ "version": "1.7.0",
4
+ "description": "AI Development Enhancement Toolkit - MCP Server with 39 practical tools (31 basic + 8 orchestration) for code quality, development efficiency, and project management",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
7
7
  "bin": {