@szc-ft/mcp-szcd-client 0.11.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/skill/SKILL.md ADDED
@@ -0,0 +1,897 @@
1
+ ---
2
+ name: szcd-component-helper
3
+ description: 帮助用户查询和了解 szcd 项目中的组件信息,包括 Cover 层组件、Wrapper 层组件、Ant Design 组件、ProComponents、ProPackages 以及复合组件。支持组件搜索、详情查询、使用示例搜索和文件读取。当用户需要了解 szcd 项目的组件结构、查看组件实现、寻找组件使用示例时,应使用此技能。它是一个前端组件库,全名"@szc-ft/szcd"。这是一个客户端 skill,通过 MCP 协议(SSE 或 HTTP)连接到远程 MCP 服务器。
4
+ compatibility:
5
+ tools:
6
+ - web_search
7
+ - web_fetch
8
+ - run_command
9
+ - read
10
+ - write
11
+
12
+ ---
13
+
14
+ # szcd 组件助手技能(客户端)
15
+
16
+ ## 概述
17
+
18
+ 此技能提供对 szcd 项目组件的查询和分析能力,帮助用户快速了解项目中的组件结构、实现细节和使用示例。
19
+
20
+ **重要说明**:这是一个客户端 skill,通过 MCP 协议(SSE 或 HTTP)连接到远程 MCP 服务器。服务器由管理员维护,包含源码和数据。
21
+
22
+ **版本**:v0.8.0 - 统一版本发布,包含 0.6.x 和 0.7.x 全部功能;新增设计稿图片分析工具(视觉代理/兜底方案),支持 OCR 降级和优先级控制;新增 .traecli agents 目录兼容
23
+
24
+ ## 架构说明
25
+
26
+ ```
27
+ ┌─────────────────────────────────────────────────────────────┐
28
+ │ 连接方式(三选一) │
29
+ ├─────────────────────────────────────────────────────────────┤
30
+ │ │
31
+ │ 方式1: 本地直连 (stdio) — 推荐 │
32
+ │ ┌─────────────┐ stdio ┌─────────────────────────┐│
33
+ │ │ IDE/AI │ ◄─────────────►│ szcd-mcp-server ││
34
+ │ │ Client │ │ (本地运行) ││
35
+ │ └─────────────┘ └─────────────────────────┘│
36
+ │ │
37
+ │ 方式2: SSE 远程连接 — 推荐 │
38
+ │ ┌─────────────┐ SSE ┌─────────────────────────┐│
39
+ │ │ IDE/AI │ ◄────────────►│ MCP Server (SSE 模式) ││
40
+ │ │ Client │ GET /sse │ 管理员机器 ││
41
+ │ │ │ POST /message│ (源码 + 数据) ││
42
+ │ └─────────────┘ └─────────────────────────┘│
43
+ │ │
44
+ │ 方式2b: Streamable HTTP 远程连接(Trae CLI 兼容) │
45
+ │ ┌─────────────┐ HTTP ┌─────────────────────────┐ │
46
+ │ │ IDE/AI │ ◄───────────►│ MCP Server (HTTP 模式) │ │
47
+ │ │ Client │ POST /mcp │ 管理员机器 │ │
48
+ │ │ │ │ (源码 + 数据) │ │
49
+ │ └─────────────┘ └─────────────────────────┘ │
50
+ │ │
51
+ │ 方式3: 代理桥接 (向后兼容) │
52
+ │ ┌─────────────┐ stdio ┌───────────┐ SSE/HTTP ┌─────┐│
53
+ │ │ IDE/AI │◄───────►│mcp-proxy │◄──────────►│Server││
54
+ │ │ Client │ │(桥接代理) │ │ ││
55
+ │ └─────────────┘ └───────────┘ └─────┘│
56
+ └─────────────────────────────────────────────────────────────┘
57
+ ```
58
+
59
+ ## 可用工具
60
+
61
+ ### 复合组件工具 (Other Components)
62
+
63
+ #### 1. list_other_components
64
+ **功能**:列出 `src/other/components/index.js` 中导出的复合组件与工具
65
+ **参数**:无
66
+ **返回**:复合组件列表
67
+
68
+ ##### Trae CLI 调用示例
69
+ ```bash
70
+ trae -m 'Call MCP tool list_other_components' --tool-allowance '*:*'
71
+ ```
72
+
73
+ ##### Claude Code 调用示例
74
+ ```
75
+ 请列出项目中的复合组件。
76
+ ```
77
+
78
+ ##### Qwen Code 调用示例
79
+ ```
80
+ 请列出项目中的复合组件。
81
+ ```
82
+
83
+ #### 2. get_other_component
84
+ **功能**:根据组件名获取实现路径、types、docs、透传目标与 props 列表
85
+ **参数**:
86
+ - `name` (string, required): 组件名称
87
+
88
+ ##### Trae CLI 调用示例
89
+ ```bash
90
+ trae -m 'Call MCP tool get_other_component with name "Query"' --tool-allowance '*:*'
91
+ ```
92
+
93
+ ##### Claude Code 调用示例
94
+ ```
95
+ 请获取Query组件的详细信息。
96
+ ```
97
+
98
+ ##### Qwen Code 调用示例
99
+ ```
100
+ 请获取Query组件的详细信息。
101
+ ```
102
+
103
+ #### 3. search_component_examples
104
+ **功能**:在仓库内搜索组件名的用法片段(md/js/ts/tsx)
105
+ **参数**:
106
+ - `name` (string, required): 组件名称
107
+ - `maxResults` (number, optional, default: 20): 最大结果数,范围1-50
108
+
109
+ ##### Trae CLI 调用示例
110
+ ```bash
111
+ trae -m 'Call MCP tool search_component_examples with name "TableOrList" maxResults 10' --tool-allowance '*:*'
112
+ ```
113
+
114
+ ##### Claude Code 调用示例
115
+ ```
116
+ 请搜索TableOrList组件的使用示例,最多返回10个。
117
+ ```
118
+
119
+ ##### Qwen Code 调用示例
120
+ ```
121
+ 请搜索TableOrList组件的使用示例,最多返回10个。
122
+ ```
123
+
124
+ ### Cover层组件工具
125
+
126
+ #### 4. list_cover_components
127
+ **功能**:列出 src/components/cover/ 目录下的 Cover 层封装组件
128
+ **参数**:无
129
+
130
+ ##### Trae CLI 调用示例
131
+ ```bash
132
+ trae -m 'Call MCP tool list_cover_components' --tool-allowance '*:*'
133
+ ```
134
+
135
+ ##### Claude Code 调用示例
136
+ ```
137
+ 请列出Cover层的封装组件。
138
+ ```
139
+
140
+ ##### Qwen Code 调用示例
141
+ ```
142
+ 请列出Cover层的封装组件。
143
+ ```
144
+
145
+ #### 5. get_cover_component
146
+ **功能**:获取 Cover 层组件的详细信息,包括实现路径、Props 定义、透传目标等
147
+ **参数**:
148
+ - `name` (string, required): 组件名称
149
+
150
+ ##### Trae CLI 调用示例
151
+ ```bash
152
+ trae -m 'Call MCP tool get_cover_component with name "Button"' --tool-allowance '*:*'
153
+ ```
154
+
155
+ ##### Claude Code 调用示例
156
+ ```
157
+ 请获取Cover层Button组件的详细信息。
158
+ ```
159
+
160
+ ##### Qwen Code 调用示例
161
+ ```
162
+ 请获取Cover层Button组件的详细信息。
163
+ ```
164
+
165
+ ### Wrapper层组件工具
166
+
167
+ #### 6. list_wrapper_components
168
+ **功能**:列出 src/components/wrappers/ 目录下的 Wrapper 层业务组件
169
+ **参数**:无
170
+
171
+ ##### Trae CLI 调用示例
172
+ ```bash
173
+ trae -m 'Call MCP tool list_wrapper_components' --tool-allowance '*:*'
174
+ ```
175
+
176
+ ##### Claude Code 调用示例
177
+ ```
178
+ 请列出Wrapper层的业务组件。
179
+ ```
180
+
181
+ ##### Qwen Code 调用示例
182
+ ```
183
+ 请列出Wrapper层的业务组件。
184
+ ```
185
+
186
+ ### ProPackages组件工具
187
+
188
+ #### 7. list_pro_package_components
189
+ **功能**:列出 pro-packages/ 目录下的 ProPackages 组件封装
190
+ **参数**:无
191
+
192
+ ##### Trae CLI 调用示例
193
+ ```bash
194
+ trae -m 'Call MCP tool list_pro_package_components' --tool-allowance '*:*'
195
+ ```
196
+
197
+ ##### Claude Code 调用示例
198
+ ```
199
+ 请列出ProPackages的组件封装。
200
+ ```
201
+
202
+ ##### Qwen Code 调用示例
203
+ ```
204
+ 请列出ProPackages的组件封装。
205
+ ```
206
+
207
+ ### Ant Design组件工具
208
+
209
+ #### 8. list_antd_components
210
+ **功能**:列出 Ant Design 组件的分类概览和各分类下的组件数量
211
+ **参数**:无
212
+
213
+ ##### Trae CLI 调用示例
214
+ ```bash
215
+ trae -m 'Call MCP tool list_antd_components' --tool-allowance '*:*'
216
+ ```
217
+
218
+ ##### Claude Code 调用示例
219
+ ```
220
+ 请列出Ant Design组件的分类概览。
221
+ ```
222
+
223
+ ##### Qwen Code 调用示例
224
+ ```
225
+ 请列出Ant Design组件的分类概览。
226
+ ```
227
+
228
+ #### 9. list_antd_components_by_category
229
+ **功能**:按分类列出 Ant Design 组件
230
+ **参数**:
231
+ - `category` (enum, optional, default: "通用"): 组件分类,可选值:通用、布局、导航、数据录入、数据展示、反馈、其他
232
+
233
+ ##### Trae CLI 调用示例
234
+ ```bash
235
+ trae -m 'Call MCP tool list_antd_components_by_category with category "数据录入"' --tool-allowance '*:*'
236
+ ```
237
+
238
+ ##### Claude Code 调用示例
239
+ ```
240
+ 请按分类列出Ant Design的数据录入组件。
241
+ ```
242
+
243
+ ##### Qwen Code 调用示例
244
+ ```
245
+ 请按分类列出Ant Design的数据录入组件。
246
+ ```
247
+
248
+ #### 10. get_antd_component
249
+ **功能**:获取 Ant Design 组件的详细信息
250
+ **参数**:
251
+ - `name` (string, required): 组件名称
252
+
253
+ ##### Trae CLI 调用示例
254
+ ```bash
255
+ trae -m 'Call MCP tool get_antd_component with name "Input"' --tool-allowance '*:*'
256
+ ```
257
+
258
+ ##### Claude Code 调用示例
259
+ ```
260
+ 请获取Ant Design Input组件的详细信息。
261
+ ```
262
+
263
+ ##### Qwen Code 调用示例
264
+ ```
265
+ 请获取Ant Design Input组件的详细信息。
266
+ ```
267
+
268
+ ### ProComponents组件工具
269
+
270
+ #### 11. list_pro_components
271
+ **功能**:列出 ProComponents 组件的分类概览
272
+ **参数**:无
273
+
274
+ ##### Trae CLI 调用示例
275
+ ```bash
276
+ trae -m 'Call MCP tool list_pro_components' --tool-allowance '*:*'
277
+ ```
278
+
279
+ ##### Claude Code 调用示例
280
+ ```
281
+ 请列出ProComponents的分类概览。
282
+ ```
283
+
284
+ ##### Qwen Code 调用示例
285
+ ```
286
+ 请列出ProComponents的分类概览。
287
+ ```
288
+
289
+ #### 12. list_pro_components_by_category
290
+ **功能**:按分类列出 ProComponents 组件
291
+ **参数**:
292
+ - `category` (enum, optional, default: "数据录入"): 组件分类,可选值:数据录入、数据展示、布局、反馈
293
+
294
+ ##### Trae CLI 调用示例
295
+ ```bash
296
+ trae -m 'Call MCP tool list_pro_components_by_category with category "数据展示"' --tool-allowance '*:*'
297
+ ```
298
+
299
+ ##### Claude Code 调用示例
300
+ ```
301
+ 请按分类列出ProComponents的数据展示组件。
302
+ ```
303
+
304
+ ##### Qwen Code 调用示例
305
+ ```
306
+ 请按分类列出ProComponents的数据展示组件。
307
+ ```
308
+
309
+ #### 13. get_pro_component
310
+ **功能**:获取 ProComponents 组件的详细信息
311
+ **参数**:
312
+ - `name` (string, required): 组件名称
313
+
314
+ ##### Trae CLI 调用示例
315
+ ```bash
316
+ trae -m 'Call MCP tool get_pro_component with name "ProTable"' --tool-allowance '*:*'
317
+ ```
318
+
319
+ ##### Claude Code 调用示例
320
+ ```
321
+ 请获取ProTable组件的详细信息。
322
+ ```
323
+
324
+ ##### Qwen Code 调用示例
325
+ ```
326
+ 请获取ProTable组件的详细信息。
327
+ ```
328
+
329
+ ### 全局功能工具
330
+
331
+ #### 14. search_all_components
332
+ **功能**:全局搜索所有层级的组件
333
+ **参数**:
334
+ - `keyword` (string, required): 搜索关键词
335
+ - `type` (enum, optional): 按类型筛选,可选值:cover、wrapper、pro-package、antd、pro-components、other
336
+
337
+ ##### Trae CLI 调用示例
338
+ ```bash
339
+ trae -m 'Call MCP tool search_all_components with keyword "form" type "pro-components"' --tool-allowance '*:*'
340
+ ```
341
+
342
+ ##### Claude Code 调用示例
343
+ ```
344
+ 请搜索包含"form"的ProComponents组件。
345
+ ```
346
+
347
+ ##### Qwen Code 调用示例
348
+ ```
349
+ 请搜索包含"form"的ProComponents组件。
350
+ ```
351
+
352
+ #### 15. get_component_library_overview
353
+ **功能**:获取组件库的完整概览
354
+ **参数**:无
355
+
356
+ ##### Trae CLI 调用示例
357
+ ```bash
358
+ trae -m 'Call MCP tool get_component_library_overview' --tool-allowance '*:*'
359
+ ```
360
+
361
+ ##### Claude Code 调用示例
362
+ ```
363
+ 请提供组件库的完整概览。
364
+ ```
365
+
366
+ ##### Qwen Code 调用示例
367
+ ```
368
+ 请提供组件库的完整概览。
369
+ ```
370
+
371
+ ### 文件操作工具
372
+
373
+ #### 16. read_file
374
+ **功能**:读取仓库内文件(相对路径)
375
+ **参数**:
376
+ - `path` (string, required): 文件相对路径
377
+ - `maxChars` (number, optional, default: 20000): 最大字符数,范围200-200000
378
+
379
+ ##### Trae CLI 调用示例
380
+ ```bash
381
+ trae -m 'Call MCP tool read_file with path "src/other/components/Query/index.tsx" maxChars 5000' --tool-allowance '*:*'
382
+ ```
383
+
384
+ ##### Claude Code 调用示例
385
+ ```
386
+ 请读取src/other/components/Query/index.tsx文件内容,最多5000个字符。
387
+ ```
388
+
389
+ ##### Qwen Code 调用示例
390
+ ```
391
+ 请读取src/other/components/Query/index.tsx文件内容,最多5000个字符。
392
+ ```
393
+
394
+ #### 17. get_accurate_component_doc
395
+ **功能**:获取复合组件的准确Props文档,包含透传机制的详细说明
396
+ **参数**:
397
+ - `name` (string, required): 组件名称
398
+
399
+ ##### Trae CLI 调用示例
400
+ ```bash
401
+ trae -m 'Call MCP tool get_accurate_component_doc with name "Query"' --tool-allowance '*:*'
402
+ ```
403
+
404
+ ##### Claude Code 调用示例
405
+ ```
406
+ 请获取Query组件的准确文档,包含透传机制说明。
407
+ ```
408
+
409
+ ##### Qwen Code 调用示例
410
+ ```
411
+ 请获取Query组件的准确文档,包含透传机制说明。
412
+ ```
413
+
414
+ ### 缓存管理工具
415
+
416
+ #### 18. refresh_component_docs
417
+ **功能**:刷新 Ant Design / ProComponents 组件文档缓存
418
+ **参数**:
419
+ - `source` (enum, optional, default: "all"): 刷新来源,可选值:antd、pro-components、all
420
+
421
+ ##### Trae CLI 调用示例
422
+ ```bash
423
+ trae -m 'Call MCP tool refresh_component_docs with source "all"' --tool-allowance '*:*'
424
+ ```
425
+
426
+ ##### Claude Code 调用示例
427
+ ```
428
+ 请刷新所有组件文档缓存。
429
+ ```
430
+
431
+ ##### Qwen Code 调用示例
432
+ ```
433
+ 请刷新所有组件文档缓存。
434
+ ```
435
+
436
+ ### 设计稿图片分析工具(兜底/代理)
437
+
438
+ > **核心定位**:此工具是**兜底机制**,专门解决"用户使用的 LLM 不支持图片理解"的问题。
439
+ >
440
+ > 当用户的 IDE/AI 是纯文本模型(无法直接看设计稿截图)时,由 MCP 服务器调用多模态模型代为"看图",将图片内容转化为结构化文本返回给用户 LLM,让用户 LLM 基于文字描述生成代码。如果用户的 LLM 本身支持图片输入(如 Claude 4、GPT-4o),则**不需要**使用此工具。
441
+
442
+ #### 19. analyze_design_image
443
+ **功能**:分析UI设计稿图片,将视觉设计转化为结构化文本描述。支持三通道提取,追求设计稿样式的高度还原:
444
+
445
+ - **通道1: ConfigProvider Token** — 对齐 tokenConfig.json 结构,精确提取全局 Token 和组件级 Token,自动对比 szcd 默认值生成 themeDiff,输出可直接使用的 `<ConfigProvider theme={...}>` 配置代码
446
+ - **通道2: CSS 覆盖层** — 提取 ConfigProvider Token 无法覆盖的样式属性(布局、伪元素、间距、边框、动画、字体族等),生成组件级 CSS 覆盖代码
447
+ - **通道3: 视觉细节** — 提取渐变色、滚动条、遮罩层、状态变体(hover/focus/active/disabled)等更细粒度的视觉信息,生成全局 CSS 覆盖代码
448
+
449
+ **降级机制**:
450
+ - 服务器上的多模态模型(Claude/OpenAI)不可用时,自动降级为本地 PaddleOCR 文字识别
451
+ - OCR 降级模式下**不做任何组件推断**,仅返回识别到的原始文字,由用户 LLM 结合组件库 MCP 工具自行映射
452
+ - 可通过环境变量 `DESIGN_ANALYSIS_ORDER` 控制执行顺序(见下方环境变量说明)
453
+
454
+ **参数**:
455
+ - `imageSource` (string, required): 图片数据:base64编码字符串、HTTP/HTTPS URL、或相对于项目根目录的文件路径
456
+ - `sourceType` (enum, optional, default: "file_path"): 图片来源类型:base64、url、file_path
457
+
458
+ > **远程连接场景下的图片传递方式说明**:
459
+ > - 当通过 **SSE/HTTP 远程连接** MCP 服务器时,`file_path` 方式**不可用**,因为远端服务器无法访问客户端本地文件系统
460
+ > - **推荐方式**:`base64` — 将图片转为 base64 字符串直接传入,不受网络隔离影响,任何连接方式都可用
461
+ > - **可选方式**:`url` — 要求图片可通过公网 URL 访问
462
+ > - **本地直连**:`file_path` — 仅在本地 stdio 直连模式下可用
463
+
464
+ - `analysisType` (enum, optional, default: "full"): 分析类型:
465
+ - `layout` — 仅布局结构
466
+ - `components` — 布局+组件识别
467
+ - `tokens` — 布局+组件+样式Token(通道1)
468
+ - `full` — 完整分析,通道1+2
469
+ - `pixel_perfect` — 最高还原度,全部三通道+高分辨率+8K输出
470
+ - `pageContext` (string, optional): 页面业务上下文描述
471
+ - `targetLibrary` (enum, optional, default: "auto"): 期望匹配的组件库:szcd、antd、pro-components、auto
472
+ - `outputFormat` (enum, optional, default: "markdown"): 输出格式:
473
+ - `markdown` — 适合直接阅读
474
+ - `json` — 适合程序化使用
475
+ - `structured_text` — 结构化文本
476
+ - `restoration_code` — 一键输出完整还原代码(ConfigProvider + 组件级CSS + 全局CSS + 还原度评分)
477
+
478
+ **输出内容**(以 `full` 或 `pixel_perfect` 模式为例):
479
+ - 页面类型和布局结构
480
+ - 组件识别和 szcd 组件匹配
481
+ - **designTokens** — 对齐 tokenConfig.json 的全局 Token(色阶、字号阶梯、间距阶梯、圆角、阴影等)
482
+ - **componentStyleTokens** — 每个组件的 componentToken(如 Table.rowHoverBg、Button.colorPrimary 等)
483
+ - **themeDiff** — 与 szcd 默认值的差异对比 + 可直接粘贴的 ConfigProvider 代码
484
+ - **cssOverrides** — 组件级 CSS 覆盖(布局、伪元素、间距、边框、动画、字体等 token 无法覆盖的属性)
485
+ - **visualDetails** — 渐变、滚动条、遮罩、状态变体等视觉细节(仅 pixel_perfect 模式)
486
+ - **fidelityScore** — 还原度评分(0-100),含 Token 覆盖率、CSS 覆盖补充率、未覆盖场景清单
487
+
488
+ ##### Trae CLI 调用示例
489
+ ```bash
490
+ # 完整分析(通道1+2)
491
+ trae -m 'Call MCP tool analyze_design_image with imageSource "docs/designs/user-list.png" sourceType "file_path" analysisType "full" pageContext "用户管理列表页" targetLibrary "szcd"' --tool-allowance '*:*'
492
+
493
+ # 最高还原度(全部三通道)+ 一键输出还原代码
494
+ trae -m 'Call MCP tool analyze_design_image with imageSource "docs/designs/user-list.png" sourceType "file_path" analysisType "pixel_perfect" outputFormat "restoration_code" pageContext "用户管理列表页" targetLibrary "szcd"' --tool-allowance '*:*'
495
+ ```
496
+
497
+ ##### Claude Code 调用示例
498
+ ```
499
+ 请分析 docs/designs/user-list.png 这张设计稿,使用 pixel_perfect 模式,输出还原代码。
500
+ ```
501
+
502
+ ##### Qwen Code 调用示例
503
+ ```
504
+ 请分析 docs/designs/user-list.png 这张设计稿,识别页面布局和组件,匹配 szcd 组件库,使用 pixel_perfect 模式获取最高还原度。
505
+ ```
506
+
507
+ ### 样式注入指南工具
508
+
509
+ #### 20. get_style_injection_guide
510
+ **功能**:查询 szcd 复合组件的样式注入方法。返回指定组件的可用样式 props、注入方式(ModeStyle/TreeBoxStyle/btnStyle/inline style等)、代码示例,以及组件嵌套时的 CSS 穿透路径和智能分配策略。
511
+
512
+ **适用场景**:
513
+ - 已有设计稿分析结果但需要知道如何将 CSS 注入到组件中
514
+ - 使用 Sketch/Figma MCP 获取了设计规范后需了解 szcd 组件的样式定制方式
515
+ - 开发时需要快速查询某个组件支持哪些样式 props
516
+
517
+ **参数**:
518
+ - `componentNames` (string[], optional): 要查询的组件名列表,如 ['Query', 'TableOrList', 'LeftTree']。不传则返回所有复合组件的完整指南
519
+ - `includeNesting` (boolean, optional, default: true): 是否包含嵌套注入指南(TemplateMode/ModelOrDrawer 容器场景的 CSS 穿透路径和分配策略)
520
+ - `includeSmartDistribute` (boolean, optional, default: false): 是否包含智能 CSS 分配建议(需要传入 cssOverrides 参数)
521
+ - `cssOverrides` (array, optional): CSS 覆盖列表(用于智能分配),格式与 analyze_design_image 返回的 cssOverrides.perComponent 一致
522
+ - `outputFormat` (enum, optional, default: "markdown"): 输出格式:markdown、json、text
523
+
524
+ **4种注入方式**:
525
+ - `modeStyle`: ModeStyle prop → styled-components 注入(Query, TableOrList, LeftTree, TitleAndBack, TemplateMode, ModeAvatar)
526
+ - `modeStyleTag`: ModeStyle prop → 动态 `<style>` 标签注入(ModelOrDrawer 专属)
527
+ - `inlineOnly`: 仅 inline style / 全局 CSS(FormItemOrDetailItem, CustomOption, TreeNode)
528
+ - `passthrough`: className/style prop 透传(IconfontWapper)
529
+
530
+ **嵌套场景**:
531
+ - TemplateMode 的 ModeStyle 可穿透到子组件(通过 `.leftContentBox` / `.rightContentBox_top` / `.rightContentBox_bottom` 定位)
532
+ - ModelOrDrawer DOM 挂载在 document.body,父级穿不透
533
+
534
+ ##### Trae CLI 调用示例
535
+ ```bash
536
+ # 查询单个组件
537
+ trae -m 'Call MCP tool get_style_injection_guide with componentNames ["Query"]' --tool-allowance '*:*'
538
+
539
+ # 查询多个组件含嵌套指南
540
+ trae -m 'Call MCP tool get_style_injection_guide with componentNames ["TemplateMode", "Query", "TableOrList"] includeNesting true' --tool-allowance '*:*'
541
+
542
+ # 智能 CSS 分配
543
+ trae -m 'Call MCP tool get_style_injection_guide with componentNames ["TemplateMode", "Query"] includeSmartDistribute true cssOverrides [...]' --tool-allowance '*:*'
544
+ ```
545
+
546
+ ##### Claude Code 调用示例
547
+ ```
548
+ 请查询 Query 组件的样式注入方法。
549
+ ```
550
+
551
+ ##### Qwen Code 调用示例
552
+ ```
553
+ 请查询 TemplateMode 和 Query 组件的样式注入指南,包括嵌套场景。
554
+ ```
555
+
556
+ ## 安装方式
557
+
558
+ ### 通过 npm 安装
559
+
560
+ ```bash
561
+ npm install @szc-ft/mcp-szcd-component-helper
562
+ ```
563
+
564
+ 安装后会自动:
565
+ - 安装 MCP 代理脚本
566
+ - 自动配置 skill 到 `~/.trae-cn/skills/szcd-component-helper/`
567
+ - 创建配置文件模板 `~/.szcd-mcp-config.json`
568
+
569
+ ## 配置步骤
570
+
571
+ ### 步骤1:安装客户端包
572
+
573
+ ```bash
574
+ npm install @szc-ft/mcp-szcd-component-helper
575
+ ```
576
+
577
+ ### 步骤2:配置服务器地址
578
+
579
+ #### 方式1:使用配置文件(推荐)
580
+
581
+ 编辑配置文件 `~/.szcd-mcp-config.json`:
582
+
583
+ ```json
584
+ {
585
+ "MCP_SERVER_URL": "http://localhost:3456",
586
+ "MCP_TIMEOUT": 30000,
587
+ "MCP_API_KEY": ""
588
+ }
589
+ ```
590
+
591
+ #### 方式2:使用环境变量
592
+
593
+ ```bash
594
+ # Linux/macOS
595
+ export MCP_SERVER_URL="http://localhost:3456"
596
+ export MCP_TIMEOUT="30000"
597
+ export MCP_API_KEY="your-api-key"
598
+
599
+ # Windows (PowerShell)
600
+ $env:MCP_SERVER_URL="http://localhost:3456"
601
+ $env:MCP_TIMEOUT="30000"
602
+ $env:MCP_API_KEY="your-api-key"
603
+
604
+ # Windows (CMD)
605
+ set MCP_SERVER_URL=http://localhost:3456
606
+ set MCP_TIMEOUT=30000
607
+ set MCP_API_KEY=your-api-key
608
+ ```
609
+
610
+ #### 方式3:在 IDE 配置中设置
611
+
612
+ **方式3a:使用代理桥接(向后兼容)**
613
+
614
+ 编辑您的 IDE 配置文件(如 `.trae/config.json` 或 Claude Code 配置):
615
+
616
+ ```json
617
+ {
618
+ "mcpServers": {
619
+ "szcd-component-helper": {
620
+ "command": "npx",
621
+ "args": ["szcd-mcp-proxy"],
622
+ "env": {
623
+ "MCP_SERVER_URL": "http://localhost:3456",
624
+ "MCP_TIMEOUT": "30000",
625
+ "MCP_API_KEY": ""
626
+ }
627
+ }
628
+ }
629
+ }
630
+ ```
631
+
632
+ **方式3b:Trae CLI Streamable HTTP 直连(推荐)**
633
+
634
+ 在 `~/.trae/trae_cli.yaml` 中配置:
635
+
636
+ ```yaml
637
+ mcp_servers:
638
+ - name: szcd-component-helper
639
+ url: http://localhost:3456/mcp
640
+ type: http
641
+ ```
642
+
643
+ **方式3c:本地直连 stdio(推荐,无需远程服务器)**
644
+
645
+ ```json
646
+ {
647
+ "mcpServers": {
648
+ "szcd-component-helper": {
649
+ "command": "npx",
650
+ "args": ["szcd-mcp-server", "--stdio"]
651
+ }
652
+ }
653
+ }
654
+ ```
655
+
656
+ **方式3d:Qwen Code Streamable HTTP 直连(推荐)**
657
+
658
+ 在 `~/.qwen/settings.json` 中配置:
659
+
660
+ ```json
661
+ {
662
+ "mcpServers": {
663
+ "szcd-component-helper": {
664
+ "httpUrl": "http://localhost:3456/mcp",
665
+ "timeout": 30000
666
+ }
667
+ }
668
+ }
669
+ ```
670
+
671
+ **方式3e:Qwen Code 本地直连 stdio(推荐,无需远程服务器)**
672
+
673
+ ```json
674
+ {
675
+ "mcpServers": {
676
+ "szcd-component-helper": {
677
+ "command": "npx",
678
+ "args": ["szcd-mcp-server", "--stdio"]
679
+ }
680
+ }
681
+ }
682
+ ```
683
+
684
+ ### 步骤3:验证配置
685
+
686
+ 运行以下命令验证配置是否正确:
687
+
688
+ ```bash
689
+ # 测试服务器连接
690
+ curl http://localhost:3456/health
691
+
692
+ # 或使用代理脚本测试
693
+ npx szcd-mcp-proxy --test
694
+ ```
695
+
696
+ ## 配置优先级
697
+
698
+ 地址获取的优先级顺序:
699
+
700
+ 1. **环境变量**(最高优先级)
701
+ - `MCP_SERVER_URL`
702
+ - `MCP_TIMEOUT`
703
+ - `MCP_API_KEY`
704
+
705
+ 2. **配置文件**(中等优先级)
706
+ - `~/.szcd-mcp-config.json`
707
+
708
+ 3. **默认值**(最低优先级)
709
+ - `MCP_SERVER_URL`: `http://localhost:3456`
710
+ - `MCP_TIMEOUT`: `30000`
711
+ - `MCP_API_KEY`: ``
712
+
713
+ ## 环境变量说明
714
+
715
+ ### MCP 连接配置
716
+
717
+ | 变量 | 说明 | 默认值 | 示例 |
718
+ |------|------|--------|------|
719
+ | `MCP_SERVER_URL` | MCP 服务器地址 | `http://localhost:3456` | `http://192.168.1.100:3456` |
720
+ | `MCP_TIMEOUT` | 请求超时时间(毫秒) | `30000` | `60000` |
721
+ | `MCP_API_KEY` | MCP API 密钥(可选) | `` | `your-secret-key` |
722
+
723
+ ### 视觉模型配置(设计稿分析功能必需)
724
+
725
+ | 变量 | 说明 | 默认值 | 示例 |
726
+ |------|------|--------|------|
727
+ | `VISION_API_KEY` | 视觉模型 API 密钥 | 读取 `ANTHROPIC_API_KEY` 或 `OPENAI_API_KEY` | `sk-ant-...` |
728
+ | `ANTHROPIC_API_KEY` | Claude API 密钥(当使用 Anthropic 时) | `` | `sk-ant-...` |
729
+ | `OPENAI_API_KEY` | OpenAI API 密钥(当使用 OpenAI 时) | `` | `sk-...` |
730
+ | `VISION_PROVIDER` | 视觉模型提供商 | `anthropic` | `anthropic` / `openai` |
731
+ | `VISION_MODEL` | 视觉模型名称 | `claude-sonnet-4-6` | `gpt-4o` |
732
+ | `VISION_API_URL` | 自定义视觉模型 API 地址 | 官方地址 | `https://api.anthropic.com/v1/messages` |
733
+ | `DESIGN_ANALYSIS_ORDER` | 分析优先级:`vision_first` / `ocr_first` / `vision_only` / `ocr_only` | `vision_first` | `ocr_first` |
734
+ | `OCR_SCRIPT_PATH` | 本地 OCR 脚本路径(降级用) | `/usr/local/bin/ocr-image` | `/usr/local/bin/ocr-image` |
735
+
736
+ ### 分析优先级说明
737
+
738
+ | 值 | 行为 |
739
+ |------|------|
740
+ | `vision_first`(默认) | 先调用多模态模型,失败后降级到本地 OCR |
741
+ | `ocr_first` | 先调用本地 OCR,识别不到文字再尝试多模态模型 |
742
+ | `vision_only` | 只用多模态模型,失败直接报错 |
743
+ | `ocr_only` | 只用本地 OCR,不调用多模态模型,返回原始文字 |
744
+
745
+ ## 使用流程
746
+
747
+ 1. **确定用户需求**:了解用户想要查询的组件信息或文件
748
+ 2. **Claude Code自动选择合适的MCP工具**:Claude Code会根据需求自动识别并调用对应的MCP工具
749
+ 3. **Claude Code自动连接MCP服务器**:Claude Code通过MCP协议连接到运行在MCP_SERVER_URL的服务器
750
+ 4. **MCP服务器执行查询**:服务器接收工具调用请求,执行相应的业务逻辑
751
+ 5. **返回结构化结果**:服务器返回JSON格式的结果,AI助手处理并呈现给用户
752
+
753
+ ## 注意事项
754
+
755
+ - 所有路径都是相对于项目根目录的相对路径
756
+ - 搜索示例时,结果可能会有重复或不相关的内容,需要用户自行筛选
757
+ - 读取文件时,大文件可能会被截断,用户可以通过设置 maxChars 参数来调整
758
+ - **需要确保 MCP 服务器正在运行,否则无法查询数据**
759
+ - **服务器地址从环境变量或配置文件动态获取,无需硬编码**
760
+ - **Claude Code会自动处理MCP协议通信,用户无需手动调用API**
761
+ - **Qwen Code会自动处理MCP协议通信,用户无需手动调用API**
762
+ - **设计稿分析功能需要配置视觉模型 API Key**,未配置时 analyze_design_image 工具会返回错误
763
+ - **设计稿分析会调用外部多模态模型 API**,会产生额外费用(单张约 $0.03~0.05)
764
+ - **设计稿分析结果会自动缓存 24 小时**,同一图片重复查询不会重复计费
765
+
766
+ ## 故障排除
767
+
768
+ ### 连接失败
769
+
770
+ 1. 检查服务器是否运行:`curl ${MCP_SERVER_URL}/health`
771
+ 2. 检查防火墙设置
772
+ 3. 检查网络连接
773
+ 4. 确认 `MCP_SERVER_URL` 配置正确
774
+ 5. 检查环境变量是否正确设置
775
+ 6. 检查配置文件 `~/.szcd-mcp-config.json` 是否存在
776
+
777
+ ### 配置文件问题
778
+
779
+ 1. 检查配置文件路径:`~/.szcd-mcp-config.json`
780
+ 2. 检查 JSON 格式是否正确
781
+ 3. 检查文件权限
782
+
783
+ ## 示例对话
784
+
785
+ ### 示例 1:获取组件库概览
786
+
787
+ **用户**:szcd 组件库有哪些组件?
788
+ **助手**:让我为您查询 szcd 组件库的完整概览。
789
+
790
+ [助手自动触发MCP工具调用:get_component_library_overview()]
791
+
792
+ **助手**:以下是 szcd 组件库的概览:
793
+ - Cover 层封装组件:36 个 (路径: src/components/cover)
794
+ - Wrapper 层业务组件:7 个 (路径: src/components/wrappers)
795
+ - ProPackages 封装:8 个 (路径: pro-packages)
796
+ - 复合业务组件:21 个 (路径: src/other/components)
797
+ - Ant Design 官方组件:0 个 (需刷新缓存获取)
798
+ - ProComponents 高级组件:0 个 (需刷新缓存获取)
799
+
800
+ ### 示例 2:搜索组件
801
+
802
+ **用户**:搜索包含 "table" 的组件
803
+ **助手**:让我在整个组件库中搜索包含 "table" 的组件。
804
+
805
+ [助手自动触发MCP工具调用:search_all_components({"keyword": "table"})]
806
+
807
+ **助手**:搜索到以下包含 "table" 的组件:
808
+ - TableOrList(复合组件)
809
+ - ProTable(ProComponents)
810
+ - Table(Ant Design)
811
+
812
+ ### 示例 3:列出 Cover 层组件
813
+
814
+ **用户**:Cover 层有哪些组件?
815
+ **助手**:让我查询 Cover 层的组件列表。
816
+
817
+ [助手自动触发MCP工具调用:list_cover_components()]
818
+
819
+ **助手**:Cover 层有以下组件:
820
+ - Button
821
+ - Input
822
+ - Select
823
+ - DatePicker
824
+ ...
825
+
826
+ ### 示例 4:获取 Ant Design 组件信息
827
+
828
+ **用户**:Ant Design 的 Table 组件有哪些 Props?
829
+ **助手**:让我查询 Ant Design Table 组件的详细信息。
830
+
831
+ [助手自动触发MCP工具调用:get_antd_component({"name": "Table"})]
832
+
833
+ **助手**:Ant Design Table 组件的详细信息如下:
834
+ - 中文名:表格
835
+ - 描述:展示行列数据
836
+ - 主要 Props:dataSource、columns、pagination、loading...
837
+
838
+ ### 示例 5:列出复合组件
839
+
840
+ **用户**:列出项目中的复合组件
841
+ **助手**:让我使用 list_other_components 工具来查询项目中的复合组件。
842
+
843
+ [助手自动触发MCP工具调用:list_other_components()]
844
+
845
+ **助手**:以下是 szcd 项目中的复合组件列表:
846
+ - Query
847
+ - TableOrList
848
+ - TitleAndBack
849
+ - LeftTree
850
+
851
+ 这些组件都在 src/other/components/index.js 中导出。
852
+
853
+ ### 示例 6:获取组件详情
854
+
855
+ **用户**:获取 Query 组件的详情
856
+ **助手**:让我使用 get_other_component 工具来获取 Query 组件的详细信息。
857
+
858
+ [助手自动触发MCP工具调用:get_other_component({"name": "Query"})]
859
+
860
+ **助手**:Query 组件的详细信息如下:
861
+ - 实现文件:src/other/components/Query/index.tsx
862
+ - 文档文件:src/other/components/Query/Query.md
863
+ - 导出位置:src/other/components/index.js
864
+
865
+ ### 示例 7:搜索组件示例
866
+
867
+ **用户**:搜索 TableOrList 组件的使用示例
868
+ **助手**:让我使用 search_component_examples 工具来搜索 TableOrList 组件的使用示例。
869
+
870
+ [助手自动触发MCP工具调用:search_component_examples({"name": "TableOrList", "maxResults": 10})]
871
+
872
+ **助手**:以下是 TableOrList 组件的使用示例:
873
+ 1. 文件:src/anyMd/TableOrList.json - 包含组件配置信息
874
+ 2. 文件:src/anyMd/TableOrList.txt - 包含组件描述信息
875
+
876
+ ### 示例 8:读取文件内容
877
+
878
+ **用户**:查看 Query 组件的实现代码
879
+ **助手**:让我使用 read_file 工具来读取 Query 组件的实现文件。
880
+
881
+ [助手自动触发MCP工具调用:read_file({"path": "src/other/components/Query/index.tsx"})]
882
+
883
+ **助手**:Query 组件的实现代码如下:
884
+ ```tsx
885
+ // 这里显示 src/other/components/Query/index.tsx 的内容
886
+ ```
887
+
888
+ ## Claude Code与MCP服务交互详解
889
+
890
+ 当用户提出需求时,Claude Code会:
891
+
892
+ 1. **理解用户意图**:分析用户想要获取的信息类型
893
+ 2. **选择适当工具**:从MCP服务器提供的工具中选择最合适的
894
+ 3. **构建参数**:根据用户输入构建工具调用所需的参数
895
+ 4. **发起MCP调用**:通过MCP协议发送工具调用请求到服务器
896
+ 5. **处理响应**:接收服务器返回的JSON格式结果
897
+ 6. **格式化输出**:将结果以易读的方式呈现给用户