mcp-probe-kit 3.0.24 → 3.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.
Files changed (130) hide show
  1. package/README.md +755 -779
  2. package/build/index.js +38 -40
  3. package/build/lib/agents-md-template.js +32 -32
  4. package/build/lib/skill-bridge.js +12 -12
  5. package/build/resources/index.d.ts +4 -0
  6. package/build/resources/index.js +4 -0
  7. package/build/resources/tool-params-guide.d.ts +571 -0
  8. package/build/resources/tool-params-guide.js +488 -0
  9. package/build/resources/ui-ux-data/guidelines/vercel-web-interface.json +1632 -1632
  10. package/build/resources/ui-ux-data/metadata.json +30 -30
  11. package/build/resources/ui-ux-data/shadcn/blocks.json +2541 -2541
  12. package/build/resources/ui-ux-data/shadcn/components.json +997 -997
  13. package/build/resources/ui-ux-data/themes/presets.json +483 -483
  14. package/build/schemas/index.d.ts +0 -22
  15. package/build/schemas/memory-tools.d.ts +0 -22
  16. package/build/schemas/memory-tools.js +0 -14
  17. package/build/tools/analyze_project.d.ts +1 -0
  18. package/build/tools/analyze_project.js +527 -0
  19. package/build/tools/check_deps.d.ts +13 -0
  20. package/build/tools/check_deps.js +204 -0
  21. package/build/tools/code_insight.js +41 -41
  22. package/build/tools/convert.d.ts +13 -0
  23. package/build/tools/convert.js +599 -0
  24. package/build/tools/css_order.d.ts +13 -0
  25. package/build/tools/css_order.js +81 -0
  26. package/build/tools/debug.d.ts +13 -0
  27. package/build/tools/debug.js +131 -0
  28. package/build/tools/design2code.d.ts +20 -0
  29. package/build/tools/design2code.js +426 -0
  30. package/build/tools/detect_shell.d.ts +6 -0
  31. package/build/tools/detect_shell.js +151 -0
  32. package/build/tools/explain.d.ts +13 -0
  33. package/build/tools/explain.js +390 -0
  34. package/build/tools/fix.d.ts +13 -0
  35. package/build/tools/fix.js +303 -0
  36. package/build/tools/fix_bug.js +161 -161
  37. package/build/tools/gen_mock.d.ts +22 -0
  38. package/build/tools/gen_mock.js +269 -0
  39. package/build/tools/gen_skill.d.ts +13 -0
  40. package/build/tools/gen_skill.js +560 -0
  41. package/build/tools/genapi.d.ts +13 -0
  42. package/build/tools/genapi.js +174 -0
  43. package/build/tools/genchangelog.d.ts +13 -0
  44. package/build/tools/genchangelog.js +250 -0
  45. package/build/tools/gencommit.js +60 -60
  46. package/build/tools/gendoc.d.ts +13 -0
  47. package/build/tools/gendoc.js +232 -0
  48. package/build/tools/genpr.d.ts +13 -0
  49. package/build/tools/genpr.js +194 -0
  50. package/build/tools/genreadme.d.ts +13 -0
  51. package/build/tools/genreadme.js +626 -0
  52. package/build/tools/gensql.d.ts +13 -0
  53. package/build/tools/gensql.js +320 -0
  54. package/build/tools/genui.d.ts +13 -0
  55. package/build/tools/genui.js +803 -0
  56. package/build/tools/index.d.ts +0 -1
  57. package/build/tools/index.js +0 -1
  58. package/build/tools/init_component_catalog.d.ts +22 -0
  59. package/build/tools/init_component_catalog.js +809 -0
  60. package/build/tools/init_project_context.js +432 -432
  61. package/build/tools/init_setting.d.ts +13 -0
  62. package/build/tools/init_setting.js +47 -0
  63. package/build/tools/perf.d.ts +13 -0
  64. package/build/tools/perf.js +409 -0
  65. package/build/tools/render_ui.d.ts +22 -0
  66. package/build/tools/render_ui.js +384 -0
  67. package/build/tools/resolve_conflict.d.ts +13 -0
  68. package/build/tools/resolve_conflict.js +349 -0
  69. package/build/tools/security_scan.d.ts +22 -0
  70. package/build/tools/security_scan.js +323 -0
  71. package/build/tools/split.d.ts +13 -0
  72. package/build/tools/split.js +599 -0
  73. package/build/tools/start_api.d.ts +13 -0
  74. package/build/tools/start_api.js +193 -0
  75. package/build/tools/start_bugfix.js +233 -233
  76. package/build/tools/start_doc.d.ts +13 -0
  77. package/build/tools/start_doc.js +207 -0
  78. package/build/tools/start_feature.js +117 -117
  79. package/build/tools/start_product.js +1 -1
  80. package/build/tools/start_refactor.d.ts +13 -0
  81. package/build/tools/start_refactor.js +188 -0
  82. package/build/tools/start_release.d.ts +13 -0
  83. package/build/tools/start_release.js +167 -0
  84. package/build/tools/start_review.d.ts +13 -0
  85. package/build/tools/start_review.js +175 -0
  86. package/build/tools/start_ui.js +399 -399
  87. package/build/tools/ui-ux-tools.js +290 -290
  88. package/build/utils/__tests__/vercel-guidelines-sync.unit.test.js +12 -12
  89. package/build/utils/themes-sync.js +8 -8
  90. package/package.json +81 -83
  91. package/build/lib/__tests__/memory-orchestration.unit.test.js +0 -88
  92. package/build/lib/__tests__/memory-payload.unit.test.js +0 -35
  93. package/build/lib/cursor-history-client.d.ts +0 -54
  94. package/build/lib/cursor-history-client.js +0 -240
  95. package/build/tools/__tests__/cursor-history.unit.test.d.ts +0 -1
  96. package/build/tools/__tests__/cursor-history.unit.test.js +0 -38
  97. package/build/tools/cursor_read_conversation.d.ts +0 -7
  98. package/build/tools/cursor_read_conversation.js +0 -36
  99. package/docs/.mcp-probe/layout.json +0 -11
  100. package/docs/CNAME +0 -1
  101. package/docs/assets/font/MaterialSymbolsOutlined.codepoints +0 -4102
  102. package/docs/assets/font/MaterialSymbolsOutlined.ttf +0 -0
  103. package/docs/assets/font/noto-sans-sc-400.ttf +0 -0
  104. package/docs/assets/font/noto-sans-sc-700.ttf +0 -0
  105. package/docs/assets/font/noto-sans-sc-900.ttf +0 -0
  106. package/docs/assets/js/i18n.js +0 -375
  107. package/docs/assets/js/tailwind.js +0 -83
  108. package/docs/assets/logo-zh.png +0 -0
  109. package/docs/assets/logo.png +0 -0
  110. package/docs/data/tools.js +0 -523
  111. package/docs/i18n/all-tools/en.json +0 -190
  112. package/docs/i18n/all-tools/ja.json +0 -171
  113. package/docs/i18n/all-tools/ko.json +0 -171
  114. package/docs/i18n/all-tools/zh-CN.json +0 -190
  115. package/docs/i18n/en.json +0 -626
  116. package/docs/i18n/ja.json +0 -602
  117. package/docs/i18n/ko.json +0 -602
  118. package/docs/i18n/zh-CN.json +0 -626
  119. package/docs/index.html +0 -327
  120. package/docs/memory-local-setup.md +0 -315
  121. package/docs/memory-local-setup.zh-CN.md +0 -283
  122. package/docs/pages/all-tools.html +0 -515
  123. package/docs/pages/examples.html +0 -717
  124. package/docs/pages/getting-started.html +0 -964
  125. package/docs/pages/migration.html +0 -308
  126. package/docs/specs/user-auth/design.md +0 -82
  127. package/docs/specs/user-auth/requirements.md +0 -52
  128. package/docs/specs/user-auth/tasks.md +0 -55
  129. /package/build/{lib/__tests__/memory-orchestration.unit.test.d.ts → utils/design-docs-generator.d.ts} +0 -0
  130. /package/build/{lib/__tests__/memory-payload.unit.test.d.ts → utils/design-docs-generator.js} +0 -0
@@ -0,0 +1,320 @@
1
+ import { parseArgs, getString } from "../utils/parseArgs.js";
2
+ // gensql 工具实现
3
+ export async function gensql(args) {
4
+ try {
5
+ // 智能参数解析,支持自然语言输入
6
+ const parsedArgs = parseArgs(args, {
7
+ defaultValues: {
8
+ description: "",
9
+ dialect: "postgres",
10
+ },
11
+ primaryField: "description", // 纯文本输入默认映射到 description 字段
12
+ fieldAliases: {
13
+ description: ["query", "requirement", "需求", "查询需求"],
14
+ dialect: ["database", "db", "type", "数据库", "数据库类型"],
15
+ },
16
+ });
17
+ const description = getString(parsedArgs.description);
18
+ const dialect = getString(parsedArgs.dialect) || "postgres"; // postgres, mysql, sqlite
19
+ const message = `请根据以下需求生成 SQL:
20
+
21
+ 📝 **需求描述**:
22
+ ${description || "请描述需要查询/操作的数据"}
23
+
24
+ 🗄️ **数据库类型**:${dialect}
25
+
26
+ ---
27
+
28
+ ## SQL 生成指南
29
+
30
+ ### 第一步:理解需求
31
+
32
+ **需求类型**:
33
+ - 查询(SELECT)
34
+ - 插入(INSERT)
35
+ - 更新(UPDATE)
36
+ - 删除(DELETE)
37
+ - 建表(CREATE TABLE)
38
+ - 修改表结构(ALTER TABLE)
39
+ - 创建索引(CREATE INDEX)
40
+
41
+ ### 第二步:生成 SQL
42
+
43
+ **查询示例:**
44
+
45
+ **1️⃣ 简单查询**
46
+ \`\`\`sql
47
+ -- 查询所有用户
48
+ SELECT * FROM users;
49
+
50
+ -- 按条件查询
51
+ SELECT id, name, email
52
+ FROM users
53
+ WHERE status = 'active'
54
+ AND created_at > '2024-01-01';
55
+ \`\`\`
56
+
57
+ **2️⃣ 复杂查询**
58
+ \`\`\`sql
59
+ -- JOIN 查询
60
+ SELECT
61
+ u.id,
62
+ u.name,
63
+ u.email,
64
+ COUNT(o.id) as order_count,
65
+ SUM(o.total) as total_spent
66
+ FROM users u
67
+ LEFT JOIN orders o ON u.id = o.user_id
68
+ WHERE u.status = 'active'
69
+ GROUP BY u.id, u.name, u.email
70
+ HAVING COUNT(o.id) > 0
71
+ ORDER BY total_spent DESC
72
+ LIMIT 10;
73
+ \`\`\`
74
+
75
+ **3️⃣ 子查询**
76
+ \`\`\`sql
77
+ -- 查找购买金额超过平均值的用户
78
+ SELECT
79
+ u.name,
80
+ SUM(o.total) as total_spent
81
+ FROM users u
82
+ JOIN orders o ON u.id = o.user_id
83
+ GROUP BY u.id, u.name
84
+ HAVING SUM(o.total) > (
85
+ SELECT AVG(total_per_user)
86
+ FROM (
87
+ SELECT SUM(total) as total_per_user
88
+ FROM orders
89
+ GROUP BY user_id
90
+ ) avg_calc
91
+ );
92
+ \`\`\`
93
+
94
+ **4️⃣ 窗口函数**
95
+ \`\`\`sql
96
+ -- 每个用户的订单排名
97
+ SELECT
98
+ user_id,
99
+ order_id,
100
+ total,
101
+ ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY total DESC) as rank,
102
+ SUM(total) OVER (PARTITION BY user_id) as user_total
103
+ FROM orders;
104
+ \`\`\`
105
+
106
+ ---
107
+
108
+ ### 建表示例
109
+
110
+ **完整的表定义:**
111
+ \`\`\`sql
112
+ CREATE TABLE users (
113
+ id BIGSERIAL PRIMARY KEY,
114
+ email VARCHAR(255) UNIQUE NOT NULL,
115
+ name VARCHAR(100) NOT NULL,
116
+ password_hash VARCHAR(255) NOT NULL,
117
+ status VARCHAR(20) DEFAULT 'active',
118
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
119
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
120
+
121
+ -- 约束
122
+ CONSTRAINT valid_email CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$'),
123
+ CONSTRAINT valid_status CHECK (status IN ('active', 'inactive', 'suspended'))
124
+ );
125
+
126
+ -- 索引
127
+ CREATE INDEX idx_users_email ON users(email);
128
+ CREATE INDEX idx_users_status ON users(status);
129
+ CREATE INDEX idx_users_created_at ON users(created_at);
130
+
131
+ -- 注释
132
+ COMMENT ON TABLE users IS '用户表';
133
+ COMMENT ON COLUMN users.email IS '用户邮箱(唯一)';
134
+ \`\`\`
135
+
136
+ ---
137
+
138
+ ### 索引优化
139
+
140
+ **索引建议:**
141
+ \`\`\`sql
142
+ -- 单列索引
143
+ CREATE INDEX idx_users_email ON users(email);
144
+
145
+ -- 复合索引(顺序很重要!)
146
+ CREATE INDEX idx_orders_user_status ON orders(user_id, status, created_at);
147
+
148
+ -- 唯一索引
149
+ CREATE UNIQUE INDEX idx_users_email_unique ON users(email);
150
+
151
+ -- 部分索引(条件索引)
152
+ CREATE INDEX idx_active_users ON users(email) WHERE status = 'active';
153
+
154
+ -- 全文索引(PostgreSQL)
155
+ CREATE INDEX idx_posts_title_fulltext ON posts USING GIN (to_tsvector('english', title));
156
+ \`\`\`
157
+
158
+ ---
159
+
160
+ ## 查询优化技巧
161
+
162
+ ### 1️⃣ 使用 EXPLAIN ANALYZE
163
+ \`\`\`sql
164
+ EXPLAIN ANALYZE
165
+ SELECT * FROM orders WHERE user_id = 123;
166
+ \`\`\`
167
+
168
+ ### 2️⃣ 避免 SELECT *
169
+ \`\`\`sql
170
+ -- ❌ Bad
171
+ SELECT * FROM users;
172
+
173
+ -- ✅ Good
174
+ SELECT id, name, email FROM users;
175
+ \`\`\`
176
+
177
+ ### 3️⃣ 使用 EXISTS 替代 IN(大数据量)
178
+ \`\`\`sql
179
+ -- ❌ Slow
180
+ SELECT * FROM users
181
+ WHERE id IN (SELECT user_id FROM orders);
182
+
183
+ -- ✅ Faster
184
+ SELECT * FROM users u
185
+ WHERE EXISTS (
186
+ SELECT 1 FROM orders o WHERE o.user_id = u.id
187
+ );
188
+ \`\`\`
189
+
190
+ ### 4️⃣ 避免在 WHERE 中使用函数
191
+ \`\`\`sql
192
+ -- ❌ Bad (无法使用索引)
193
+ SELECT * FROM users WHERE LOWER(email) = 'test@example.com';
194
+
195
+ -- ✅ Good
196
+ SELECT * FROM users WHERE email = 'test@example.com';
197
+ \`\`\`
198
+
199
+ ### 5️⃣ 分页优化
200
+ \`\`\`sql
201
+ -- ❌ Slow (大 OFFSET)
202
+ SELECT * FROM posts ORDER BY created_at DESC LIMIT 10 OFFSET 10000;
203
+
204
+ -- ✅ Faster (游标分页)
205
+ SELECT * FROM posts
206
+ WHERE created_at < '2024-01-01 00:00:00'
207
+ ORDER BY created_at DESC
208
+ LIMIT 10;
209
+ \`\`\`
210
+
211
+ ---
212
+
213
+ ## 常用查询模板
214
+
215
+ ### 去重查询
216
+ \`\`\`sql
217
+ SELECT DISTINCT email FROM users;
218
+
219
+ -- 或使用 GROUP BY
220
+ SELECT email FROM users GROUP BY email;
221
+ \`\`\`
222
+
223
+ ### 统计分析
224
+ \`\`\`sql
225
+ SELECT
226
+ DATE_TRUNC('day', created_at) as date,
227
+ COUNT(*) as count,
228
+ COUNT(DISTINCT user_id) as unique_users,
229
+ SUM(total) as revenue,
230
+ AVG(total) as avg_order_value
231
+ FROM orders
232
+ WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
233
+ GROUP BY DATE_TRUNC('day', created_at)
234
+ ORDER BY date DESC;
235
+ \`\`\`
236
+
237
+ ### 排名查询
238
+ \`\`\`sql
239
+ -- Top N per group
240
+ SELECT * FROM (
241
+ SELECT
242
+ *,
243
+ ROW_NUMBER() OVER (PARTITION BY category_id ORDER BY sales DESC) as rank
244
+ FROM products
245
+ ) ranked
246
+ WHERE rank <= 10;
247
+ \`\`\`
248
+
249
+ ### 递归查询(树形结构)
250
+ \`\`\`sql
251
+ WITH RECURSIVE category_tree AS (
252
+ -- 根节点
253
+ SELECT id, name, parent_id, 1 as level
254
+ FROM categories
255
+ WHERE parent_id IS NULL
256
+
257
+ UNION ALL
258
+
259
+ -- 递归部分
260
+ SELECT c.id, c.name, c.parent_id, ct.level + 1
261
+ FROM categories c
262
+ JOIN category_tree ct ON c.parent_id = ct.id
263
+ )
264
+ SELECT * FROM category_tree ORDER BY level, name;
265
+ \`\`\`
266
+
267
+ ---
268
+
269
+ ## 数据库特定语法
270
+
271
+ ### PostgreSQL
272
+ \`\`\`sql
273
+ -- JSON 查询
274
+ SELECT data->>'name' as name FROM users WHERE data @> '{"active": true}';
275
+
276
+ -- 数组操作
277
+ SELECT * FROM posts WHERE tags && ARRAY['sql', 'database'];
278
+
279
+ -- 全文搜索
280
+ SELECT * FROM articles WHERE to_tsvector(content) @@ to_tsquery('postgresql');
281
+ \`\`\`
282
+
283
+ ### MySQL
284
+ \`\`\`sql
285
+ -- JSON 查询
286
+ SELECT JSON_EXTRACT(data, '$.name') as name FROM users;
287
+
288
+ -- 全文搜索
289
+ SELECT * FROM articles WHERE MATCH(title, content) AGAINST('database' IN NATURAL LANGUAGE MODE);
290
+ \`\`\`
291
+
292
+ ---
293
+
294
+ 现在请根据需求生成优化的 SQL 语句,并提供:
295
+ 1. 完整的 SQL 代码
296
+ 2. 执行计划分析(如需要)
297
+ 3. 索引建议
298
+ 4. 性能优化建议`;
299
+ return {
300
+ content: [
301
+ {
302
+ type: "text",
303
+ text: message,
304
+ },
305
+ ],
306
+ };
307
+ }
308
+ catch (error) {
309
+ const errorMessage = error instanceof Error ? error.message : String(error);
310
+ return {
311
+ content: [
312
+ {
313
+ type: "text",
314
+ text: `❌ 生成 SQL 失败: ${errorMessage}`,
315
+ },
316
+ ],
317
+ isError: true,
318
+ };
319
+ }
320
+ }
@@ -0,0 +1,13 @@
1
+ export declare function genui(args: any): Promise<{
2
+ content: {
3
+ type: string;
4
+ text: string;
5
+ }[];
6
+ isError?: undefined;
7
+ } | {
8
+ content: {
9
+ type: string;
10
+ text: string;
11
+ }[];
12
+ isError: boolean;
13
+ }>;