mcp-probe-kit 1.15.0 → 2.0.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 +113 -1642
- package/build/index.js +75 -42
- package/build/lib/elicitation-helper.d.ts +73 -0
- package/build/lib/elicitation-helper.js +130 -0
- package/build/lib/response.d.ts +32 -0
- package/build/lib/response.js +28 -0
- package/build/lib/tasks-manager.d.ts +116 -0
- package/build/lib/tasks-manager.js +217 -0
- package/build/lib/toolset-manager.d.ts +48 -0
- package/build/lib/toolset-manager.js +112 -0
- package/build/schemas/basic-tools.d.ts +0 -32
- package/build/schemas/basic-tools.js +0 -34
- package/build/schemas/code-analysis-tools.d.ts +0 -36
- package/build/schemas/code-analysis-tools.js +0 -38
- package/build/schemas/code-gen-tools.d.ts +0 -44
- package/build/schemas/code-gen-tools.js +0 -46
- package/build/schemas/doc-util-tools.d.ts +0 -54
- package/build/schemas/doc-util-tools.js +0 -58
- package/build/schemas/index.d.ts +0 -188
- package/build/schemas/orchestration-tools.d.ts +0 -22
- package/build/schemas/orchestration-tools.js +0 -23
- package/build/schemas/output/core-tools.d.ts +817 -0
- package/build/schemas/output/core-tools.js +421 -0
- package/build/schemas/output/generation-tools.d.ts +936 -0
- package/build/schemas/output/generation-tools.js +446 -0
- package/build/schemas/output/helper-tools.d.ts +243 -0
- package/build/schemas/output/helper-tools.js +138 -0
- package/build/schemas/output/index.d.ts +76 -0
- package/build/schemas/output/index.js +96 -0
- package/build/schemas/output/project-tools.d.ts +702 -0
- package/build/schemas/output/project-tools.js +339 -0
- package/build/schemas/output/ui-ux-tools.d.ts +469 -0
- package/build/schemas/output/ui-ux-tools.js +218 -0
- package/build/schemas/output/workflow-tools.d.ts +267 -0
- package/build/schemas/output/workflow-tools.js +179 -0
- package/build/schemas/structured-output.d.ts +1317 -0
- package/build/schemas/structured-output.js +1017 -0
- package/build/tools/__tests__/start_ui.integration.test.js +5 -5
- package/build/tools/__tests__/start_ui.property.test.js +11 -11
- package/build/tools/add_feature.d.ts +1 -13
- package/build/tools/add_feature.js +48 -13
- package/build/tools/analyze_project.js +57 -18
- package/build/tools/check_deps.d.ts +1 -13
- package/build/tools/check_deps.js +24 -15
- package/build/tools/code_review.d.ts +1 -13
- package/build/tools/code_review.js +19 -16
- package/build/tools/css_order.js +55 -55
- package/build/tools/debug.d.ts +1 -13
- package/build/tools/debug.js +18 -16
- package/build/tools/estimate.d.ts +1 -19
- package/build/tools/estimate.js +36 -6
- package/build/tools/fix_bug.d.ts +1 -13
- package/build/tools/fix_bug.js +24 -6
- package/build/tools/gen_mock.d.ts +1 -19
- package/build/tools/gen_mock.js +42 -227
- package/build/tools/genapi.d.ts +1 -13
- package/build/tools/genapi.js +18 -15
- package/build/tools/genchangelog.d.ts +1 -13
- package/build/tools/genchangelog.js +36 -212
- package/build/tools/gencommit.d.ts +1 -7
- package/build/tools/gencommit.js +21 -13
- package/build/tools/gendoc.d.ts +1 -13
- package/build/tools/gendoc.js +18 -15
- package/build/tools/genpr.d.ts +1 -13
- package/build/tools/genpr.js +28 -157
- package/build/tools/genreadme.d.ts +1 -13
- package/build/tools/genreadme.js +22 -587
- package/build/tools/gensql.d.ts +1 -13
- package/build/tools/gensql.js +24 -283
- package/build/tools/gentest.d.ts +1 -13
- package/build/tools/gentest.js +49 -16
- package/build/tools/index.d.ts +0 -10
- package/build/tools/index.js +0 -10
- package/build/tools/init_component_catalog.d.ts +3 -20
- package/build/tools/init_component_catalog.js +141 -786
- package/build/tools/init_project.d.ts +7 -13
- package/build/tools/init_project.js +54 -16
- package/build/tools/init_project_context.d.ts +1 -13
- package/build/tools/init_project_context.js +41 -14
- package/build/tools/perf.d.ts +1 -13
- package/build/tools/perf.js +18 -15
- package/build/tools/refactor.d.ts +1 -13
- package/build/tools/refactor.js +54 -15
- package/build/tools/render_ui.d.ts +2 -19
- package/build/tools/render_ui.js +201 -347
- package/build/tools/resolve_conflict.d.ts +1 -13
- package/build/tools/resolve_conflict.js +18 -15
- package/build/tools/security_scan.d.ts +1 -13
- package/build/tools/security_scan.js +16 -5
- package/build/tools/start_api.d.ts +7 -13
- package/build/tools/start_api.js +69 -157
- package/build/tools/start_bugfix.d.ts +1 -7
- package/build/tools/start_bugfix.js +38 -2
- package/build/tools/start_doc.d.ts +7 -13
- package/build/tools/start_doc.js +76 -169
- package/build/tools/start_feature.d.ts +1 -7
- package/build/tools/start_feature.js +54 -2
- package/build/tools/start_onboard.d.ts +1 -7
- package/build/tools/start_onboard.js +40 -2
- package/build/tools/start_ralph.d.ts +1 -7
- package/build/tools/start_ralph.js +88 -2
- package/build/tools/start_refactor.d.ts +7 -13
- package/build/tools/start_refactor.js +75 -148
- package/build/tools/start_release.d.ts +7 -13
- package/build/tools/start_release.js +56 -131
- package/build/tools/start_review.d.ts +7 -13
- package/build/tools/start_review.js +70 -142
- package/build/tools/start_ui.d.ts +1 -7
- package/build/tools/start_ui.js +98 -8
- package/build/tools/ui-ux-tools.d.ts +3 -39
- package/build/tools/ui-ux-tools.js +201 -125
- package/docs/data/tools.js +864 -0
- package/docs/index.html +594 -0
- package/docs/pages/all-tools.html +649 -0
- package/docs/pages/examples.html +564 -0
- package/docs/pages/getting-started.html +529 -0
- package/docs/pages/migration.html +308 -0
- package/docs/specs/algorithm-enhancement/roadmap.md +619 -0
- package/docs/specs/vnext-upgrade/00-OVERVIEW.md +258 -0
- package/docs/specs/vnext-upgrade/BETA_RELEASE_GUIDE.md +328 -0
- package/docs/specs/vnext-upgrade/GITHUB_DISCUSSION_TEMPLATE.md +236 -0
- package/docs/specs/vnext-upgrade/M8.9-PROGRESS-UPDATE.md +248 -0
- package/docs/specs/vnext-upgrade/PROGRESS-SUMMARY.md +195 -0
- package/docs/specs/vnext-upgrade/QUICK_REFERENCE.md +338 -0
- package/docs/specs/vnext-upgrade/README.md +125 -0
- package/docs/specs/vnext-upgrade/STATUS-UPDATE-2026-01-26.md +230 -0
- package/docs/specs/vnext-upgrade/TOOL_CLEANUP.md +343 -0
- package/docs/specs/vnext-upgrade/completed/M1-M2-SUMMARY.md +27 -0
- package/docs/specs/vnext-upgrade/completed/M3_COMPLETION_SUMMARY.md +273 -0
- package/docs/specs/vnext-upgrade/completed/M4-SUMMARY.md +19 -0
- package/docs/specs/vnext-upgrade/completed/M5_COMPLETION_SUMMARY.md +0 -0
- package/docs/specs/vnext-upgrade/completed/M8.1-SUMMARY.md +247 -0
- package/docs/specs/vnext-upgrade/completed/M8.2-SUMMARY.md +296 -0
- package/docs/specs/vnext-upgrade/completed/M8.3-SUMMARY.md +241 -0
- package/docs/specs/vnext-upgrade/completed/M8.3-TEST-SUMMARY.md +216 -0
- package/docs/specs/vnext-upgrade/completed/M8.4-SUMMARY.md +217 -0
- package/docs/specs/vnext-upgrade/completed/M8.4-TEST-SUMMARY.md +198 -0
- package/docs/specs/vnext-upgrade/completed/M8.5-SUMMARY.md +202 -0
- package/docs/specs/vnext-upgrade/completed/M8.5-TEST-SUMMARY.md +223 -0
- package/docs/specs/vnext-upgrade/completed/M8.6-SUMMARY.md +299 -0
- package/docs/specs/vnext-upgrade/completed/M8.8-TEST-SUMMARY.md +216 -0
- package/docs/specs/vnext-upgrade/completed/TOOL-CLEANUP-SUMMARY.md +210 -0
- package/docs/specs/vnext-upgrade/design.md +848 -0
- package/docs/specs/vnext-upgrade/requirements.md +221 -0
- package/docs/specs/vnext-upgrade/tasks/00-INDEX.md +335 -0
- package/docs/specs/vnext-upgrade/tasks/M8.1-SCHEMA-DEFINITION.md +300 -0
- package/docs/specs/vnext-upgrade/tasks/M8.2-P1-TOOLS.md +249 -0
- package/docs/specs/vnext-upgrade/tasks/M8.3-GENERATION-TOOLS.md +49 -0
- package/docs/specs/vnext-upgrade/tasks/M8.4-ORCHESTRATION-TOOLS.md +28 -0
- package/docs/specs/vnext-upgrade/tasks/M8.5-PROJECT-TOOLS.md +29 -0
- package/docs/specs/vnext-upgrade/tasks/M8.6-UI-TOOLS.md +66 -0
- package/docs/specs/vnext-upgrade/tasks/M8.7-HELPER-TOOLS.md +24 -0
- package/docs/specs/vnext-upgrade/tasks/M8.8-INTEGRATION-TESTS.md +90 -0
- package/docs/specs/vnext-upgrade/tasks/M8.9-DOCUMENTATION.md +103 -0
- package/docs/styles/docs.css +556 -0
- package/docs/styles/page.css +815 -0
- package/docs/vnext/MCP_2025-11-25_GUIDE.md +276 -0
- package/docs/vnext/vNext-PRD.md +488 -0
- package/package.json +4 -4
- package/build/utils/design-docs-generator.d.ts +0 -1
- package/build/utils/design-docs-generator.js +0 -1
- package/docs/BEST_PRACTICES.md +0 -1185
- package/docs/HOW_TO_TRIGGER.md +0 -1141
- package/docs/MCP-Probe-Kit-/344/275/277/347/224/250/346/211/213/345/206/214.html +0 -544
- package/docs/MCP-Probe-Kit-/344/275/277/347/224/250/346/211/213/345/206/214.md +0 -1447
package/build/tools/debug.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
+
import { okStructured } from "../lib/response.js";
|
|
2
3
|
// debug 工具实现
|
|
3
4
|
export async function debug(args) {
|
|
4
5
|
try {
|
|
@@ -107,25 +108,26 @@ ${context || "请提供相关代码或场景描述"}
|
|
|
107
108
|
- ✅ 输出结构化调试策略和解决方案
|
|
108
109
|
|
|
109
110
|
现在请按照上述步骤分析错误并提供具体的调试方案。`;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
],
|
|
111
|
+
// 创建结构化数据
|
|
112
|
+
const structuredData = {
|
|
113
|
+
summary: "错误分析完成,请查看详细报告",
|
|
114
|
+
rootCause: "", // AI 会填充
|
|
115
|
+
errorType: "unknown", // AI 会填充
|
|
116
|
+
solutions: [], // AI 会填充
|
|
117
117
|
};
|
|
118
|
+
return okStructured(message, structuredData, {
|
|
119
|
+
schema: (await import('../schemas/output/core-tools.js')).DebugReportSchema,
|
|
120
|
+
});
|
|
118
121
|
}
|
|
119
122
|
catch (error) {
|
|
120
123
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
121
|
-
return {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
};
|
|
124
|
+
return okStructured(`❌ 生成调试策略失败: ${errorMessage}`, {
|
|
125
|
+
summary: `调试分析失败: ${errorMessage}`,
|
|
126
|
+
rootCause: errorMessage,
|
|
127
|
+
errorType: "unknown",
|
|
128
|
+
solutions: [],
|
|
129
|
+
}, {
|
|
130
|
+
schema: (await import('../schemas/output/core-tools.js')).DebugReportSchema,
|
|
131
|
+
});
|
|
130
132
|
}
|
|
131
133
|
}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* estimate 工具
|
|
3
|
-
*
|
|
4
|
-
* 功能:评估开发任务的工作量
|
|
5
|
-
* 模式:指令生成器模式 - 返回估算指南,由 AI 执行实际分析
|
|
6
|
-
*/
|
|
7
1
|
/**
|
|
8
2
|
* estimate 工具实现
|
|
9
3
|
*/
|
|
10
|
-
export declare function estimate(args: any): Promise<
|
|
11
|
-
content: {
|
|
12
|
-
type: string;
|
|
13
|
-
text: string;
|
|
14
|
-
}[];
|
|
15
|
-
isError?: undefined;
|
|
16
|
-
} | {
|
|
17
|
-
content: {
|
|
18
|
-
type: string;
|
|
19
|
-
text: string;
|
|
20
|
-
}[];
|
|
21
|
-
isError: boolean;
|
|
22
|
-
}>;
|
|
4
|
+
export declare function estimate(args: any): Promise<import("../lib/response.js").ToolResponse>;
|
package/build/tools/estimate.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { parseArgs, getString, getNumber } from "../utils/parseArgs.js";
|
|
2
|
+
import { okStructured } from "../lib/response.js";
|
|
1
3
|
/**
|
|
2
4
|
* estimate 工具
|
|
3
5
|
*
|
|
@@ -218,7 +220,6 @@ const PROMPT_TEMPLATE = `# 工作量估算指南
|
|
|
218
220
|
*指南版本: 1.0.0*
|
|
219
221
|
*工具: MCP Probe Kit - estimate*
|
|
220
222
|
`;
|
|
221
|
-
import { parseArgs, getString, getNumber } from "../utils/parseArgs.js";
|
|
222
223
|
/**
|
|
223
224
|
* estimate 工具实现
|
|
224
225
|
*/
|
|
@@ -260,15 +261,44 @@ export async function estimate(args) {
|
|
|
260
261
|
.replace(/{team_size}/g, String(teamSize))
|
|
261
262
|
.replace(/{experience_level}/g, expLevelMap[experienceLevel] || experienceLevel)
|
|
262
263
|
.replace(/{code_context_section}/g, codeContextSection);
|
|
263
|
-
|
|
264
|
-
|
|
264
|
+
// 创建结构化数据对象
|
|
265
|
+
const structuredData = {
|
|
266
|
+
summary: `工作量估算:${taskDescription.substring(0, 50)}...`,
|
|
267
|
+
storyPoints: 0,
|
|
268
|
+
timeEstimates: {
|
|
269
|
+
optimistic: "待估算",
|
|
270
|
+
normal: "待估算",
|
|
271
|
+
pessimistic: "待估算"
|
|
272
|
+
},
|
|
273
|
+
breakdown: [
|
|
274
|
+
{ task: "需求理解", hours: 0, complexity: "low" },
|
|
275
|
+
{ task: "设计", hours: 0, complexity: "medium" },
|
|
276
|
+
{ task: "编码", hours: 0, complexity: "medium" },
|
|
277
|
+
{ task: "测试", hours: 0, complexity: "medium" }
|
|
278
|
+
],
|
|
279
|
+
risks: [],
|
|
280
|
+
assumptions: [
|
|
281
|
+
`团队规模:${teamSize} 人`,
|
|
282
|
+
`经验水平:${expLevelMap[experienceLevel] || experienceLevel}`
|
|
283
|
+
]
|
|
265
284
|
};
|
|
285
|
+
return okStructured(guide, structuredData, {
|
|
286
|
+
schema: (await import("../schemas/output/project-tools.js")).EstimateSchema,
|
|
287
|
+
});
|
|
266
288
|
}
|
|
267
289
|
catch (error) {
|
|
268
290
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
291
|
+
const errorData = {
|
|
292
|
+
summary: "工作量估算失败",
|
|
293
|
+
storyPoints: 0,
|
|
294
|
+
timeEstimates: {
|
|
295
|
+
optimistic: "未知",
|
|
296
|
+
normal: "未知",
|
|
297
|
+
pessimistic: "未知"
|
|
298
|
+
}
|
|
272
299
|
};
|
|
300
|
+
return okStructured(`❌ 工作量估算失败: ${errorMsg}`, errorData, {
|
|
301
|
+
schema: (await import("../schemas/output/project-tools.js")).EstimateSchema,
|
|
302
|
+
});
|
|
273
303
|
}
|
|
274
304
|
}
|
package/build/tools/fix_bug.d.ts
CHANGED
|
@@ -9,16 +9,4 @@
|
|
|
9
9
|
/**
|
|
10
10
|
* fix_bug 工具实现
|
|
11
11
|
*/
|
|
12
|
-
export declare function fixBug(args: any): Promise<
|
|
13
|
-
content: {
|
|
14
|
-
type: string;
|
|
15
|
-
text: string;
|
|
16
|
-
}[];
|
|
17
|
-
isError?: undefined;
|
|
18
|
-
} | {
|
|
19
|
-
content: {
|
|
20
|
-
type: string;
|
|
21
|
-
text: string;
|
|
22
|
-
}[];
|
|
23
|
-
isError: boolean;
|
|
24
|
-
}>;
|
|
12
|
+
export declare function fixBug(args: any): Promise<import("../lib/response.js").ToolResponse>;
|
package/build/tools/fix_bug.js
CHANGED
|
@@ -295,6 +295,7 @@ describe('[功能描述]', () => {
|
|
|
295
295
|
*工具: MCP Probe Kit - fix_bug*
|
|
296
296
|
`;
|
|
297
297
|
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
298
|
+
import { okStructured } from "../lib/response.js";
|
|
298
299
|
/**
|
|
299
300
|
* fix_bug 工具实现
|
|
300
301
|
*/
|
|
@@ -347,15 +348,32 @@ export async function fixBug(args) {
|
|
|
347
348
|
.replace(/{stack_trace_section}/g, stackTraceSection)
|
|
348
349
|
.replace(/{reproduce_section}/g, reproduceSection)
|
|
349
350
|
.replace(/{behavior_section}/g, behaviorSection);
|
|
350
|
-
|
|
351
|
-
|
|
351
|
+
// 创建结构化数据
|
|
352
|
+
const structuredData = {
|
|
353
|
+
summary: "Bug 修复指南已生成",
|
|
354
|
+
bugType: "functional", // AI 会填充
|
|
355
|
+
severity: "medium", // AI 会填充
|
|
356
|
+
rootCause: "", // AI 会填充
|
|
357
|
+
fixPlan: {
|
|
358
|
+
steps: [], // AI 会填充
|
|
359
|
+
},
|
|
360
|
+
testPlan: {}, // AI 会填充
|
|
352
361
|
};
|
|
362
|
+
return okStructured(guide, structuredData, {
|
|
363
|
+
schema: (await import('../schemas/output/core-tools.js')).BugAnalysisSchema,
|
|
364
|
+
});
|
|
353
365
|
}
|
|
354
366
|
catch (error) {
|
|
355
367
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
356
|
-
return {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
368
|
+
return okStructured(`❌ 生成修复指南失败: ${errorMsg}`, {
|
|
369
|
+
summary: `生成修复指南失败: ${errorMsg}`,
|
|
370
|
+
bugType: "functional",
|
|
371
|
+
severity: "low",
|
|
372
|
+
rootCause: errorMsg,
|
|
373
|
+
fixPlan: { steps: [] },
|
|
374
|
+
testPlan: {},
|
|
375
|
+
}, {
|
|
376
|
+
schema: (await import('../schemas/output/core-tools.js')).BugAnalysisSchema,
|
|
377
|
+
});
|
|
360
378
|
}
|
|
361
379
|
}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* gen_mock 工具
|
|
3
|
-
*
|
|
4
|
-
* 功能:根据数据结构生成 Mock 数据
|
|
5
|
-
* 模式:指令生成器模式 - 返回生成指南,由 AI 执行实际生成
|
|
6
|
-
*/
|
|
7
1
|
/**
|
|
8
2
|
* gen_mock 工具实现
|
|
9
3
|
*/
|
|
10
|
-
export declare function genMock(args: any): Promise<
|
|
11
|
-
content: {
|
|
12
|
-
type: string;
|
|
13
|
-
text: string;
|
|
14
|
-
}[];
|
|
15
|
-
isError?: undefined;
|
|
16
|
-
} | {
|
|
17
|
-
content: {
|
|
18
|
-
type: string;
|
|
19
|
-
text: string;
|
|
20
|
-
}[];
|
|
21
|
-
isError: boolean;
|
|
22
|
-
}>;
|
|
4
|
+
export declare function genMock(args: any): Promise<import("../lib/response.js").ToolResponse>;
|
package/build/tools/gen_mock.js
CHANGED
|
@@ -1,208 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* gen_mock 工具
|
|
3
|
-
*
|
|
4
|
-
* 功能:根据数据结构生成 Mock 数据
|
|
5
|
-
* 模式:指令生成器模式 - 返回生成指南,由 AI 执行实际生成
|
|
6
|
-
*/
|
|
7
|
-
const PROMPT_TEMPLATE = `# Mock 数据生成指南
|
|
8
|
-
|
|
9
|
-
## 🎯 生成目标
|
|
10
|
-
|
|
11
|
-
**数据结构**:
|
|
12
|
-
\`\`\`
|
|
13
|
-
{schema}
|
|
14
|
-
\`\`\`
|
|
15
|
-
|
|
16
|
-
**生成配置**:
|
|
17
|
-
- 数量: {count} 条
|
|
18
|
-
- 格式: {format}
|
|
19
|
-
- 语言: {locale}
|
|
20
|
-
{seed_section}
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 📋 生成步骤
|
|
25
|
-
|
|
26
|
-
### 步骤 1: 解析数据结构
|
|
27
|
-
|
|
28
|
-
分析输入的数据结构,识别:
|
|
29
|
-
1. 字段名称和类型
|
|
30
|
-
2. 必填/可选字段(?标记)
|
|
31
|
-
3. 嵌套结构
|
|
32
|
-
4. 数组类型
|
|
33
|
-
|
|
34
|
-
### 步骤 2: 字段语义识别
|
|
35
|
-
|
|
36
|
-
根据字段名自动匹配语义,生成符合语义的数据:
|
|
37
|
-
|
|
38
|
-
| 字段名模式 | 生成规则 | 中文示例 | 英文示例 |
|
|
39
|
-
|------------|----------|----------|----------|
|
|
40
|
-
| id, _id | UUID/自增ID | uuid-xxx | uuid-xxx |
|
|
41
|
-
| name, 姓名 | 人名 | 张三、李四 | John Doe |
|
|
42
|
-
| email, 邮箱 | 邮箱格式 | zhangsan@example.com | john@example.com |
|
|
43
|
-
| phone, mobile, 手机 | 手机号 | 138xxxx1234 | +1-xxx-xxx-xxxx |
|
|
44
|
-
| avatar, 头像 | 图片URL | https://api.dicebear.com/... | |
|
|
45
|
-
| address, 地址 | 地址 | 北京市朝阳区xxx | 123 Main St |
|
|
46
|
-
| city, 城市 | 城市名 | 北京、上海 | New York |
|
|
47
|
-
| country, 国家 | 国家名 | 中国 | United States |
|
|
48
|
-
| date, 日期 | 日期 | 2024-01-15 | 2024-01-15 |
|
|
49
|
-
| createdAt, created_at | 过去时间 | 2024-01-01T10:00:00Z | |
|
|
50
|
-
| updatedAt, updated_at | 最近时间 | 2024-01-15T15:30:00Z | |
|
|
51
|
-
| title, 标题 | 短句 | 这是一个标题 | A Sample Title |
|
|
52
|
-
| description, desc, 描述 | 段落 | 这是描述内容... | Lorem ipsum... |
|
|
53
|
-
| content, 内容 | 长文本 | 文章内容... | Article content... |
|
|
54
|
-
| price, 价格 | 金额 | 99.00 | 99.00 |
|
|
55
|
-
| amount, 数量 | 整数 | 10 | 10 |
|
|
56
|
-
| status, 状态 | 枚举 | active/inactive | active/inactive |
|
|
57
|
-
| type, 类型 | 枚举 | 根据上下文 | |
|
|
58
|
-
| url, 链接 | URL | https://example.com | |
|
|
59
|
-
| image, 图片 | 图片URL | https://picsum.photos/... | |
|
|
60
|
-
| age, 年龄 | 18-60 | 25 | 25 |
|
|
61
|
-
| gender, 性别 | 性别 | 男/女 | male/female |
|
|
62
|
-
| username, 用户名 | 用户名 | user_123 | user_123 |
|
|
63
|
-
| password, 密码 | 密码占位 | ******** | ******** |
|
|
64
|
-
| token | Token | tok_xxx | tok_xxx |
|
|
65
|
-
| code, 编码 | 编码 | CODE001 | CODE001 |
|
|
66
|
-
| sort, order, 排序 | 序号 | 1, 2, 3 | 1, 2, 3 |
|
|
67
|
-
| enabled, active | 布尔 | true/false | true/false |
|
|
68
|
-
| tags, 标签 | 标签数组 | ["标签1", "标签2"] | ["tag1", "tag2"] |
|
|
69
|
-
|
|
70
|
-
### 步骤 3: 类型映射
|
|
71
|
-
|
|
72
|
-
基础类型的默认生成规则:
|
|
73
|
-
|
|
74
|
-
| 类型 | 生成规则 |
|
|
75
|
-
|------|----------|
|
|
76
|
-
| string | 根据字段名语义,或随机字符串 |
|
|
77
|
-
| number | 1-100 的随机整数 |
|
|
78
|
-
| boolean | true/false 随机 |
|
|
79
|
-
| Date | 最近30天内的随机时间 |
|
|
80
|
-
| string[] | 3-5个随机字符串 |
|
|
81
|
-
| number[] | 3-5个随机数字 |
|
|
82
|
-
| enum | 从枚举值中随机选择 |
|
|
83
|
-
| union | 从联合类型中随机选择 |
|
|
84
|
-
|
|
85
|
-
### 步骤 4: 生成数据
|
|
86
|
-
|
|
87
|
-
根据识别结果生成 {count} 条数据。
|
|
88
|
-
|
|
89
|
-
**注意事项**:
|
|
90
|
-
- 确保数据多样性,避免重复
|
|
91
|
-
- 数值类型保持合理范围
|
|
92
|
-
- 日期类型保持合理顺序(createdAt < updatedAt)
|
|
93
|
-
- 关联字段保持一致性
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## 📊 输出格式
|
|
98
|
-
|
|
99
|
-
### JSON 格式
|
|
100
|
-
\`\`\`json
|
|
101
|
-
[
|
|
102
|
-
{
|
|
103
|
-
"field1": "value1",
|
|
104
|
-
"field2": 123
|
|
105
|
-
}
|
|
106
|
-
]
|
|
107
|
-
\`\`\`
|
|
108
|
-
|
|
109
|
-
### TypeScript 格式
|
|
110
|
-
\`\`\`typescript
|
|
111
|
-
const mockData: YourType[] = [
|
|
112
|
-
{
|
|
113
|
-
field1: "value1",
|
|
114
|
-
field2: 123
|
|
115
|
-
}
|
|
116
|
-
];
|
|
117
|
-
|
|
118
|
-
export default mockData;
|
|
119
|
-
\`\`\`
|
|
120
|
-
|
|
121
|
-
### JavaScript 格式
|
|
122
|
-
\`\`\`javascript
|
|
123
|
-
const mockData = [
|
|
124
|
-
{
|
|
125
|
-
field1: "value1",
|
|
126
|
-
field2: 123
|
|
127
|
-
}
|
|
128
|
-
];
|
|
129
|
-
|
|
130
|
-
module.exports = mockData;
|
|
131
|
-
\`\`\`
|
|
132
|
-
|
|
133
|
-
### CSV 格式(仅扁平数据)
|
|
134
|
-
\`\`\`csv
|
|
135
|
-
field1,field2
|
|
136
|
-
value1,123
|
|
137
|
-
\`\`\`
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 🔧 高级功能
|
|
142
|
-
|
|
143
|
-
### 自定义规则
|
|
144
|
-
|
|
145
|
-
在 schema 注释中指定规则:
|
|
146
|
-
|
|
147
|
-
\`\`\`typescript
|
|
148
|
-
interface User {
|
|
149
|
-
id: string; // UUID
|
|
150
|
-
age: number; // range: 18-60
|
|
151
|
-
status: string; // enum: active, inactive, pending
|
|
152
|
-
score: number; // range: 0-100, decimal: 2
|
|
153
|
-
tags: string[]; // count: 3-5
|
|
154
|
-
level: number; // enum: 1, 2, 3
|
|
155
|
-
}
|
|
156
|
-
\`\`\`
|
|
157
|
-
|
|
158
|
-
### 关联数据
|
|
159
|
-
|
|
160
|
-
生成有关联关系的数据:
|
|
161
|
-
|
|
162
|
-
\`\`\`json
|
|
163
|
-
// 先生成 users
|
|
164
|
-
[
|
|
165
|
-
{ "id": "user-1", "name": "张三" },
|
|
166
|
-
{ "id": "user-2", "name": "李四" }
|
|
167
|
-
]
|
|
168
|
-
|
|
169
|
-
// 再生成 orders,引用 user_id
|
|
170
|
-
[
|
|
171
|
-
{ "id": "order-1", "user_id": "user-1", "amount": 100 },
|
|
172
|
-
{ "id": "order-2", "user_id": "user-2", "amount": 200 }
|
|
173
|
-
]
|
|
174
|
-
\`\`\`
|
|
175
|
-
|
|
176
|
-
### 固定值
|
|
177
|
-
|
|
178
|
-
某些字段使用固定值:
|
|
179
|
-
|
|
180
|
-
\`\`\`typescript
|
|
181
|
-
interface Config {
|
|
182
|
-
version: string; // fixed: "1.0.0"
|
|
183
|
-
env: string; // fixed: "development"
|
|
184
|
-
}
|
|
185
|
-
\`\`\`
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## ✅ 生成检查清单
|
|
190
|
-
|
|
191
|
-
- [ ] 数据结构已正确解析
|
|
192
|
-
- [ ] 字段语义已识别
|
|
193
|
-
- [ ] 数据类型正确
|
|
194
|
-
- [ ] 数量符合要求: {count} 条
|
|
195
|
-
- [ ] 格式正确: {format}
|
|
196
|
-
- [ ] 语言符合设置: {locale}
|
|
197
|
-
- [ ] 数据具有多样性
|
|
198
|
-
- [ ] 关联数据一致(如有)
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
*指南版本: 1.0.0*
|
|
203
|
-
*工具: MCP Probe Kit - gen_mock*
|
|
204
|
-
`;
|
|
205
1
|
import { parseArgs, getString, getNumber } from "../utils/parseArgs.js";
|
|
2
|
+
import { okStructured } from "../lib/response.js";
|
|
206
3
|
/**
|
|
207
4
|
* gen_mock 工具实现
|
|
208
5
|
*/
|
|
@@ -237,33 +34,51 @@ export async function genMock(args) {
|
|
|
237
34
|
if (count < 1 || count > 1000) {
|
|
238
35
|
throw new Error("count 参数必须在 1-1000 之间");
|
|
239
36
|
}
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
37
|
+
const message = `请生成 Mock 数据:
|
|
38
|
+
|
|
39
|
+
📝 **数据结构**:
|
|
40
|
+
\`\`\`
|
|
41
|
+
${schema}
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
📋 **生成配置**:
|
|
45
|
+
- 数量: ${count} 条
|
|
46
|
+
- 格式: ${format}
|
|
47
|
+
- 语言: ${locale}
|
|
48
|
+
${seed ? `- 随机种子: ${seed}(可重复生成)` : ""}
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Mock 数据生成指南
|
|
53
|
+
|
|
54
|
+
请根据数据结构生成 ${count} 条 Mock 数据,注意:
|
|
55
|
+
1. 根据字段名识别语义(如 email、phone、name 等)
|
|
56
|
+
2. 生成符合语义的真实数据
|
|
57
|
+
3. 确保数据多样性
|
|
58
|
+
4. 保持关联数据一致性
|
|
59
|
+
|
|
60
|
+
**重要**: 请使用结构化输出格式返回结果。`;
|
|
61
|
+
// 创建结构化数据对象
|
|
62
|
+
const structuredData = {
|
|
63
|
+
summary: `生成 ${count} 条 ${format} 格式的 Mock 数据`,
|
|
64
|
+
format: format,
|
|
65
|
+
count: count,
|
|
66
|
+
data: [], // AI 将填充实际的 Mock 数据
|
|
260
67
|
};
|
|
68
|
+
return okStructured(message, structuredData, {
|
|
69
|
+
schema: (await import("../schemas/output/generation-tools.js")).MockDataSchema,
|
|
70
|
+
});
|
|
261
71
|
}
|
|
262
72
|
catch (error) {
|
|
263
73
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
74
|
+
const errorData = {
|
|
75
|
+
summary: "Mock 数据生成失败",
|
|
76
|
+
format: "json",
|
|
77
|
+
count: 0,
|
|
78
|
+
data: [],
|
|
267
79
|
};
|
|
80
|
+
return okStructured(`❌ Mock 数据生成失败: ${errorMsg}`, errorData, {
|
|
81
|
+
schema: (await import("../schemas/output/generation-tools.js")).MockDataSchema,
|
|
82
|
+
});
|
|
268
83
|
}
|
|
269
84
|
}
|
package/build/tools/genapi.d.ts
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export declare function genapi(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
|
-
}>;
|
|
1
|
+
export declare function genapi(args: any): Promise<import("../lib/response.js").ToolResponse>;
|
package/build/tools/genapi.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseArgs, getString } from "../utils/parseArgs.js";
|
|
2
|
+
import { okStructured } from "../lib/response.js";
|
|
2
3
|
// genapi 工具实现
|
|
3
4
|
export async function genapi(args) {
|
|
4
5
|
try {
|
|
@@ -150,25 +151,27 @@ paths:
|
|
|
150
151
|
- ✅ 输出完整的 API 文档
|
|
151
152
|
|
|
152
153
|
现在请根据上述代码生成完整的 API 文档。`;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
],
|
|
154
|
+
// 创建结构化数据对象
|
|
155
|
+
const apiDoc = {
|
|
156
|
+
summary: `生成 ${format} 格式的 API 文档`,
|
|
157
|
+
format: format,
|
|
158
|
+
endpoints: [],
|
|
159
|
+
documentation: message,
|
|
160
160
|
};
|
|
161
|
+
return okStructured(message, apiDoc, {
|
|
162
|
+
schema: (await import("../schemas/output/generation-tools.js")).APIDocumentationSchema,
|
|
163
|
+
});
|
|
161
164
|
}
|
|
162
165
|
catch (error) {
|
|
163
166
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
isError: true,
|
|
167
|
+
const errorData = {
|
|
168
|
+
summary: `生成 API 文档失败: ${errorMessage}`,
|
|
169
|
+
format: 'markdown',
|
|
170
|
+
endpoints: [],
|
|
171
|
+
documentation: '',
|
|
172
172
|
};
|
|
173
|
+
return okStructured(`❌ 生成 API 文档失败: ${errorMessage}`, errorData, {
|
|
174
|
+
schema: (await import("../schemas/output/generation-tools.js")).APIDocumentationSchema,
|
|
175
|
+
});
|
|
173
176
|
}
|
|
174
177
|
}
|
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export declare function genchangelog(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
|
-
}>;
|
|
1
|
+
export declare function genchangelog(args: any): Promise<import("../lib/response.js").ToolResponse>;
|