mcp-probe-kit 1.15.1 → 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/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 +6 -6
- 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
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
|
|
2
|
+
# MCP Probe Kit 升级 PRD(vNext)
|
|
3
|
+
|
|
4
|
+
**项目**:mcp-probe-kit
|
|
5
|
+
**背景版本**:当前 README 描述 49 工具(37 基础 + 9 智能编排 + UI/UX 工具)
|
|
6
|
+
**核心模式**:指令生成器模式(工具不直接操作文件系统/不执行命令,只生成清晰指令给 AI 在客户端执行)
|
|
7
|
+
**本 PRD 目标**:在不破坏现有用户使用方式的前提下,让 AI “更聪明地选工具、更稳定地跑工作流、更可控地补齐信息、更可靠地产出结构化结果”。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 背景与问题定义
|
|
12
|
+
|
|
13
|
+
当前 mcp-probe-kit 提供大量工具覆盖开发全流程,并引入 UI/UX Pro Max 与多种 start_* 编排工作流。随着工具数增长(49),出现以下典型问题:
|
|
14
|
+
|
|
15
|
+
1. **工具选择成本上升**:模型更容易“选错工具/犹豫/反复试探”。
|
|
16
|
+
2. **编排链路不稳定**:start_* 涉及多步骤,耗时长、需要中途补信息,容易出现超时、信息缺失、输出格式不一致。
|
|
17
|
+
3. **输出不可机器消费**:多数工具以长文本形式输出,后续编排需要模型解析文本,稳定性差。
|
|
18
|
+
4. **客户端能力差异**:不同 MCP 客户端对结构化输出、表单式提问、长任务等支持不一,需要兼容策略。
|
|
19
|
+
5. **核心入口不够聚焦**:真正高频价值工具(例如 start_*、gencommit)需要在体验上“更容易被选中、更可靠闭环”。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. 升级目的(Goals)
|
|
24
|
+
|
|
25
|
+
### G1:让 AI 更聪明地“选对工具”
|
|
26
|
+
|
|
27
|
+
* 通过 **Toolset(工具集)**收敛“对外暴露面”,在不删能力的情况下减少误选概率。
|
|
28
|
+
* 确保用户/模型更容易发现高价值入口(尤其是 P0 start_* 与 gencommit)。
|
|
29
|
+
|
|
30
|
+
### G2:让工作流更稳、更可追踪
|
|
31
|
+
|
|
32
|
+
* 把复杂的 start_* 工作流升级为**可持续/可轮询/可中断**的长任务(Tasks),并统一进度与阶段产物结构化输出。
|
|
33
|
+
|
|
34
|
+
### G3:让输出可机器消费(Structured Output)
|
|
35
|
+
|
|
36
|
+
* 为核心工具和编排输出提供 `outputSchema + structuredContent + text fallback`,避免“靠模型解析长文”造成的随机性。
|
|
37
|
+
|
|
38
|
+
### G4:让“缺信息就补齐”标准化
|
|
39
|
+
|
|
40
|
+
* 将 `interview` / `ask_user` 升级为 **原生 Elicitation(表单/选项)优先**,并对不支持的客户端提供回退(fallback)。
|
|
41
|
+
|
|
42
|
+
### G5:不破坏现有用户(兼容优先)
|
|
43
|
+
|
|
44
|
+
* 默认行为保持全量工具可用(`full`),新增的收敛与增强通过配置启用。
|
|
45
|
+
* 所有工具仍保证 `content[].text` 有可读输出(旧客户端兼容)。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 3. 非目标(Non-goals)
|
|
50
|
+
|
|
51
|
+
* **不改变“指令生成器模式”本质**:不新增直接读写文件系统/执行命令/联网执行等高权限行为。
|
|
52
|
+
* 不追求一次性对 49 个工具全部结构化/Task 化;按优先级分批交付。
|
|
53
|
+
* 不强制依赖某个单一客户端能力(Cursor/Claude Desktop/Cline/Continue 等差异必须兼容)。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 4. 范围(Scope)
|
|
58
|
+
|
|
59
|
+
### 4.1 P0(必须优先完成)
|
|
60
|
+
|
|
61
|
+
* SDK 升级到 `@modelcontextprotocol/sdk` v1.x
|
|
62
|
+
* Toolset 机制(full/core/ui/workflow)
|
|
63
|
+
* **5 个 P0 编排入口**:
|
|
64
|
+
|
|
65
|
+
* `start_feature`
|
|
66
|
+
* `start_onboard`
|
|
67
|
+
* `start_bugfix`
|
|
68
|
+
* `start_ui`
|
|
69
|
+
* `start_ralph`
|
|
70
|
+
* `gencommit`(必须保留,并强化结构化输出)
|
|
71
|
+
* 统一结构化输出封装 + 关键 schema
|
|
72
|
+
* Elicitation:`interview` / `ask_user`(支持则用表单,不支持则回退)
|
|
73
|
+
* Tasks:P0 start_*(支持则长任务,不支持则回退同步)
|
|
74
|
+
|
|
75
|
+
### 4.2 P1(随后完成)
|
|
76
|
+
|
|
77
|
+
* 其它 start_*(start_review/start_release/start_refactor/start_api/start_doc 等)Task 化与结构化增强
|
|
78
|
+
* 更多基础工具结构化输出覆盖面扩展
|
|
79
|
+
* 文档与示例完善、兼容矩阵与回归自动化增强
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 5. 关键约束与设计原则
|
|
84
|
+
|
|
85
|
+
1. **兼容原则**:所有工具始终返回 `content[].text`,structured 只是增强。
|
|
86
|
+
2. **收敛原则**:不删工具能力,主要通过 toolset 控制“默认暴露面”。
|
|
87
|
+
3. **一致性原则**:P0 start_* 输出必须统一 `WorkflowReport` 结构,便于二次消费与继续迭代。
|
|
88
|
+
4. **安全原则**:不引入高权限执行能力;对于需要敏感信息的场景,必须走安全输入/URL 引导,不允许在普通表单直接收集密钥。
|
|
89
|
+
5. **可测试原则**:关键工具必须有契约测试(输出字段/类型/兼容性)。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 6. 用户故事(User Stories)
|
|
94
|
+
|
|
95
|
+
* US-1:作为用户,我希望一键执行 `start_bugfix`,能得到清晰步骤、测试建议和可直接复制的 commit message。
|
|
96
|
+
* US-2:作为用户,我希望 `start_ui` 能把设计系统/组件目录/最终代码生成串起来,并保证多个页面风格一致。
|
|
97
|
+
* US-3:作为模型,我希望工具输出可机器解析,便于在下一步准确调用工具并复用中间产物。
|
|
98
|
+
* US-4:作为用户/模型,当需求不完整时,希望工具能以表单方式询问,并校验输入。
|
|
99
|
+
* US-5:作为老用户,我不希望升级后工具突然消失或客户端读不到输出。
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 7. 功能需求(Functional Requirements)
|
|
104
|
+
|
|
105
|
+
### FR-1:SDK 升级(必须)
|
|
106
|
+
|
|
107
|
+
**要求**:
|
|
108
|
+
|
|
109
|
+
* 升级到 `@modelcontextprotocol/sdk` v1.x。
|
|
110
|
+
* 服务启动、tool 注册与 stdio transport 正常工作。
|
|
111
|
+
* 兼容主流客户端(Cursor、Claude Desktop、Cline、Continue)。
|
|
112
|
+
|
|
113
|
+
**验收**:
|
|
114
|
+
|
|
115
|
+
* `npm run build` 通过;`npx mcp-probe-kit@beta` 可运行;至少 1 个客户端能列出工具并调用成功。
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### FR-2:Toolset(工具集)收敛机制(必须)
|
|
120
|
+
|
|
121
|
+
新增环境变量:`MCP_TOOLSET=full|core|ui|workflow`
|
|
122
|
+
|
|
123
|
+
* 默认:`full`(兼容现有用户)
|
|
124
|
+
* `tools/list` 根据 toolset 过滤返回
|
|
125
|
+
|
|
126
|
+
#### FR-2.1 toolset 清单(最终版)
|
|
127
|
+
|
|
128
|
+
**workflow(推荐给 agent)必须包含**:
|
|
129
|
+
|
|
130
|
+
* P0 编排入口:`start_feature, start_onboard, start_bugfix, start_ui, start_ralph`
|
|
131
|
+
* 编排常用:`start_review, start_release, start_refactor, start_api, start_doc`(即便 P1 才 task 化,也可先作为入口保留)
|
|
132
|
+
* 关键依赖基础工具(最小闭环):
|
|
133
|
+
`interview, ask_user, init_project_context, analyze_project, add_feature, estimate, code_review, security_scan, perf, debug, fix, gentest, gencommit, genpr, genchangelog, genapi, gen_mock, design2code, ui_design_system, ui_search`
|
|
134
|
+
|
|
135
|
+
**core(≤15,日常手动入口)必须包含 `gencommit`**:
|
|
136
|
+
|
|
137
|
+
1. `interview`
|
|
138
|
+
2. `ask_user`
|
|
139
|
+
3. `init_project_context`
|
|
140
|
+
4. `analyze_project`
|
|
141
|
+
5. `code_review`
|
|
142
|
+
6. `security_scan`
|
|
143
|
+
7. `perf`
|
|
144
|
+
8. `debug`
|
|
145
|
+
9. `fix`
|
|
146
|
+
10. `gentest`
|
|
147
|
+
11. `genapi`
|
|
148
|
+
12. `genpr`
|
|
149
|
+
13. `gencommit`
|
|
150
|
+
14. `estimate`
|
|
151
|
+
15. `start_bugfix`(你也可以改成 `start_feature`,但必须保留一个高价值编排入口)
|
|
152
|
+
|
|
153
|
+
**ui(6个)主推**:
|
|
154
|
+
|
|
155
|
+
* `start_ui` - 统一 UI 开发入口(推荐使用)
|
|
156
|
+
* `ui_search` - 智能搜索(基于 ui-ux-pro-max-skill)
|
|
157
|
+
* `ui_design_system` - 设计系统生成(基于 ui-ux-pro-max-skill)
|
|
158
|
+
* `design2code` - 设计稿转代码
|
|
159
|
+
* `genui` - 通用 UI 组件生成
|
|
160
|
+
* `sync_ui_data` - 数据同步
|
|
161
|
+
|
|
162
|
+
**说明**:`init_component_catalog` 和 `render_ui` 作为 `start_ui` 的内部步骤,不在 ui toolset 暴露(避免用户困惑),但在 `full` 模式下仍可用。
|
|
163
|
+
|
|
164
|
+
**full**:49 工具全量
|
|
165
|
+
|
|
166
|
+
**验收**:
|
|
167
|
+
|
|
168
|
+
* `tools/list` 在不同 toolset 下返回数量符合约束;
|
|
169
|
+
* `workflow` 中 P0 五个 start_* 必出现;
|
|
170
|
+
* `core` 中 `gencommit` 必出现。
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### FR-3:统一结构化输出封装(必须)
|
|
175
|
+
|
|
176
|
+
新增统一 helper(不要求一次性改完所有工具,但 P0 必须接入):
|
|
177
|
+
|
|
178
|
+
* `okText(text, meta?)`
|
|
179
|
+
* `okStructured({schema, data, textFallback?})`
|
|
180
|
+
|
|
181
|
+
* 必须同时返回:
|
|
182
|
+
|
|
183
|
+
* `structuredContent: data`
|
|
184
|
+
* `content: [{ type:"text", text: textFallback 或 人类可读摘要 }]`
|
|
185
|
+
|
|
186
|
+
**验收**:
|
|
187
|
+
|
|
188
|
+
* P0 工具在旧客户端仍可读(`content.text` 存在且有意义);
|
|
189
|
+
* 新客户端可稳定解析 `structuredContent`。
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### FR-4:核心 Schema(必须,至少两类)
|
|
194
|
+
|
|
195
|
+
#### FR-4.1 `WorkflowReportSchema`(供 start_* 输出统一格式)
|
|
196
|
+
|
|
197
|
+
字段建议(最小必需):
|
|
198
|
+
|
|
199
|
+
* `workflowName`(如 start_bugfix)
|
|
200
|
+
* `summary`(一句话总结)
|
|
201
|
+
* `steps[]`(每步:name/status/input/outputs/notes)
|
|
202
|
+
* `artifacts[]`(产物:type/path/description/contentPreview?)
|
|
203
|
+
* `risks[]`
|
|
204
|
+
* `assumptions[]`
|
|
205
|
+
* `nextActions[]`(下一步建议,按优先级)
|
|
206
|
+
* `timestamps`(可选)
|
|
207
|
+
|
|
208
|
+
#### FR-4.2 `InstructionPackageSchema`(供“指令生成器模式”统一承载)
|
|
209
|
+
|
|
210
|
+
字段建议:
|
|
211
|
+
|
|
212
|
+
* `goal`
|
|
213
|
+
* `context`(可选)
|
|
214
|
+
* `constraints[]`
|
|
215
|
+
* `steps[]`(可执行步骤)
|
|
216
|
+
* `checklist[]`
|
|
217
|
+
* `validation[]`(验证清单)
|
|
218
|
+
* `rollbackPlan`(可选)
|
|
219
|
+
|
|
220
|
+
**验收**:
|
|
221
|
+
|
|
222
|
+
* P0 start_* 全部输出 `WorkflowReportSchema`;
|
|
223
|
+
* P0 基础工具(如 code_review/security_scan/perf/debug/fix/gentest)输出可嵌入 WorkflowReport 的结构化片段。
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
### FR-5:P0 工作流结构化(必须)
|
|
228
|
+
|
|
229
|
+
对以下 5 个工具输出必须统一 WorkflowReport:
|
|
230
|
+
|
|
231
|
+
#### FR-5.1 `start_bugfix`(P0)
|
|
232
|
+
|
|
233
|
+
必须包含:
|
|
234
|
+
|
|
235
|
+
* `rootCause`(结构化摘要)
|
|
236
|
+
* `fixPlan`(步骤/影响面/风险)
|
|
237
|
+
* `testPlan`(建议生成/补充哪些测试)
|
|
238
|
+
* `commitDraft`(对接 `gencommit` 的结构化结果或可复制文本)
|
|
239
|
+
* `nextActions`
|
|
240
|
+
|
|
241
|
+
#### FR-5.2 `start_feature`(P0)
|
|
242
|
+
|
|
243
|
+
必须包含:
|
|
244
|
+
|
|
245
|
+
* `specArtifacts`(由 `add_feature` 产出的 requirements/design/tasks 信息)
|
|
246
|
+
* `estimate`(故事点/时间范围/风险)
|
|
247
|
+
* `dependencies`(可能涉及模块)
|
|
248
|
+
* `nextActions`
|
|
249
|
+
|
|
250
|
+
#### FR-5.3 `start_onboard`(P0)
|
|
251
|
+
|
|
252
|
+
必须包含:
|
|
253
|
+
|
|
254
|
+
* `projectSummary`(技术栈/入口/目录结构摘要)
|
|
255
|
+
* `architectureNotes`(关键模块/边界)
|
|
256
|
+
* `quickstart`(最短上手路径)
|
|
257
|
+
* `contextDoc`(init_project_context 产物引用)
|
|
258
|
+
|
|
259
|
+
#### FR-5.4 `start_ui`(P0)
|
|
260
|
+
|
|
261
|
+
必须包含:
|
|
262
|
+
|
|
263
|
+
* `designSystem`(规则/风格/关键 token)
|
|
264
|
+
* `catalog`(组件目录摘要)
|
|
265
|
+
* `renderedCode`(最终代码片段或生成指令)
|
|
266
|
+
* `consistencyRules`(保证多页面一致性的关键约束)
|
|
267
|
+
* `nextActions`
|
|
268
|
+
|
|
269
|
+
#### FR-5.5 `start_ralph`(P0)
|
|
270
|
+
|
|
271
|
+
必须包含:
|
|
272
|
+
|
|
273
|
+
* `loopPolicy`(安全模式脚本/保护策略摘要)
|
|
274
|
+
* `iterations[]`(每轮:goal/changes/risks/nextPrompt)
|
|
275
|
+
* `stopConditions`(停止条件,避免无限循环)
|
|
276
|
+
* `safetyChecks`(每轮校验清单)
|
|
277
|
+
|
|
278
|
+
**验收**:
|
|
279
|
+
|
|
280
|
+
* 五个 P0 start_* 的结构字段一致、可复用;
|
|
281
|
+
* 任意 P0 start_* 的 report 可作为下一次调用输入上下文(机器可消费)。
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### FR-6:Tasks 长任务(P0 start_* 必须,带回退)
|
|
286
|
+
|
|
287
|
+
为 P0 的 5 个 start_* 增加长任务支持:
|
|
288
|
+
|
|
289
|
+
* `createTask`:启动任务,返回 taskId
|
|
290
|
+
* `pollTask`:查询进度,返回当前 step 与累计 report
|
|
291
|
+
* `cancelTask`:取消任务
|
|
292
|
+
|
|
293
|
+
任务状态机(最小必需):
|
|
294
|
+
|
|
295
|
+
* `queued → running → input_required → running → succeeded/failed/canceled`
|
|
296
|
+
|
|
297
|
+
回退策略:
|
|
298
|
+
|
|
299
|
+
* 不支持 tasks 的客户端:仍返回同步的 `WorkflowReport`(可能是简化版,但字段必须齐全)。
|
|
300
|
+
|
|
301
|
+
**验收**:
|
|
302
|
+
|
|
303
|
+
* P0 五个 start_* 均可 task 模式运行;
|
|
304
|
+
* `input_required` 时能明确缺什么信息,并走 FR-7 补齐。
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
### FR-7:Elicitation(访谈/提问)原生化(必须,带回退)
|
|
309
|
+
|
|
310
|
+
`interview` / `ask_user`:
|
|
311
|
+
|
|
312
|
+
* 若客户端支持 elicitation:使用表单/选项进行结构化提问与校验;
|
|
313
|
+
* 不支持:回退为原有文本提问工具。
|
|
314
|
+
|
|
315
|
+
安全要求:
|
|
316
|
+
|
|
317
|
+
* **敏感信息**(token/key/账号密码)不得使用普通表单直接采集;应提示用户在客户端安全输入或使用 URL 引导方式(若客户端支持)。
|
|
318
|
+
|
|
319
|
+
**验收**:
|
|
320
|
+
|
|
321
|
+
* 支持的客户端:能弹出表单并校验;
|
|
322
|
+
* 不支持的客户端:仍能完成问答且产出结构化 `answers`(工具内部整理为 structuredContent)。
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### FR-8:`gencommit` 必须保留并强化(P0)
|
|
327
|
+
|
|
328
|
+
**硬性要求**:
|
|
329
|
+
|
|
330
|
+
* `gencommit` 永远属于 Core toolset;
|
|
331
|
+
* 任何收敛/重构不得移除 `gencommit`,仅允许增强参数与输出结构。
|
|
332
|
+
|
|
333
|
+
输出要求(结构化 + 文本):
|
|
334
|
+
|
|
335
|
+
* `structuredContent` 至少包含:
|
|
336
|
+
|
|
337
|
+
* `type`(feat/fix/docs/refactor/chore/test/style/perf/build/ci/revert…)
|
|
338
|
+
* `scope`(可空)
|
|
339
|
+
* `subject`
|
|
340
|
+
* `body[]`
|
|
341
|
+
* `breaking`(boolean)
|
|
342
|
+
* `footers[]`(Closes # / BREAKING CHANGE 等)
|
|
343
|
+
* `finalMessage`(可直接复制的 commit message)
|
|
344
|
+
* `content.text` 必须输出 `finalMessage`(兼容旧客户端)
|
|
345
|
+
|
|
346
|
+
与 start_* 集成:
|
|
347
|
+
|
|
348
|
+
* `start_bugfix`、`start_feature` 在 report 中必须包含 `commitDraft.finalMessage` 或明确可复制的提交信息建议。
|
|
349
|
+
|
|
350
|
+
**验收**:
|
|
351
|
+
|
|
352
|
+
* 调用 gencommit 在任意客户端都能得到可复制的 commit message;
|
|
353
|
+
* workflow 内可直接消费 structured 字段,不需要解析长文本。
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
### FR-9:工具清单与契约测试(必须)
|
|
358
|
+
|
|
359
|
+
* 自动生成 `tools-manifest.json`(用于工具分类、toolset 过滤、文档同步)
|
|
360
|
+
* 契约测试至少覆盖:
|
|
361
|
+
|
|
362
|
+
* P0 五个 start_*
|
|
363
|
+
* `gencommit`
|
|
364
|
+
* 以及核心基础依赖:`init_project_context / analyze_project / add_feature / estimate / gentest / code_review`
|
|
365
|
+
|
|
366
|
+
契约测试断言(最低要求):
|
|
367
|
+
|
|
368
|
+
* 始终包含 `content[].text`
|
|
369
|
+
* structured 模式下包含 `structuredContent` 且字段符合 schema(至少做轻量校验)
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## 8. 非功能需求(Non-functional Requirements)
|
|
374
|
+
|
|
375
|
+
### NFR-1:兼容性
|
|
376
|
+
|
|
377
|
+
* 默认 `full` 行为与当前一致;
|
|
378
|
+
* 所有工具均有可读文本输出;
|
|
379
|
+
* structured/tasks/elicitation 的增量能力必须可回退。
|
|
380
|
+
|
|
381
|
+
### NFR-2:稳定性与可观察性
|
|
382
|
+
|
|
383
|
+
* 任务与工具调用必须输出可诊断信息(至少内部日志:toolName、阶段、耗时、错误栈摘要)
|
|
384
|
+
* P0 工作流若失败,必须在 report 中给出:
|
|
385
|
+
|
|
386
|
+
* failure reason(结构化)
|
|
387
|
+
* nextActions(如何恢复/重试)
|
|
388
|
+
|
|
389
|
+
### NFR-3:性能
|
|
390
|
+
|
|
391
|
+
* `tools/list` 在 toolset 模式下响应不明显变慢;
|
|
392
|
+
* 长任务通过 poll 获取进度,避免一次性超长输出造成阻塞。
|
|
393
|
+
|
|
394
|
+
### NFR-4:安全
|
|
395
|
+
|
|
396
|
+
* 不新增高权限执行能力;
|
|
397
|
+
* 提问收集敏感信息必须受控;
|
|
398
|
+
* 提供清晰的安全提示与最佳实践文档。
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## 9. 交付物(Deliverables)
|
|
403
|
+
|
|
404
|
+
代码交付物(建议路径):
|
|
405
|
+
|
|
406
|
+
* `src/lib/response.ts`(统一输出封装)
|
|
407
|
+
* `src/schemas/*`(WorkflowReport / InstructionPackage / gencommit schema 等)
|
|
408
|
+
* `tools-manifest.json`(自动生成)
|
|
409
|
+
* toolset 过滤逻辑(server 的 tools/list)
|
|
410
|
+
* tasks 管理与 P0 start_* 接入
|
|
411
|
+
* elicitation 接入与 fallback
|
|
412
|
+
|
|
413
|
+
文档交付物:
|
|
414
|
+
|
|
415
|
+
* `docs/UPGRADE_PRD.md`(本文档)
|
|
416
|
+
* `docs/TOOLSET.md`(core/ui/workflow/full 清单与使用方式)
|
|
417
|
+
* `docs/OUTPUT_SCHEMAS.md`(schema 字段定义与示例)
|
|
418
|
+
* `docs/CLIENT_COMPAT.md`(各客户端能力差异与 fallback 策略)
|
|
419
|
+
* README:加入 toolset 配置示例(含 env)
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 10. 里程碑与验收(按交付顺序,不给时间承诺)
|
|
424
|
+
|
|
425
|
+
### M1:SDK v1.x + 基础回归
|
|
426
|
+
|
|
427
|
+
* 验收:能启动、能列工具、能调用基础工具,契约测试通过。
|
|
428
|
+
|
|
429
|
+
### M2:Toolset + 统一输出封装
|
|
430
|
+
|
|
431
|
+
* 验收:`core/ui/workflow/full` 切换有效;P0 工具保持 `content.text` 输出。
|
|
432
|
+
|
|
433
|
+
### M3:P0 start_* 结构化 WorkflowReport
|
|
434
|
+
|
|
435
|
+
* 验收:五个 P0 start_* 输出字段一致且可机器消费。
|
|
436
|
+
|
|
437
|
+
### M4:P0 start_* Tasks 化 + 回退
|
|
438
|
+
|
|
439
|
+
* 验收:可轮询进度;失败可诊断;不支持 tasks 的客户端仍能同步输出。
|
|
440
|
+
|
|
441
|
+
### M5:Elicitation(interview/ask_user)+ 回退
|
|
442
|
+
|
|
443
|
+
* 验收:支持的客户端表单可用;不支持的仍可完成问答。
|
|
444
|
+
|
|
445
|
+
### M6:gencommit 强化 + start_* 集成
|
|
446
|
+
|
|
447
|
+
* 验收:gencommit 结构化字段稳定;start_feature/start_bugfix 报告中包含 commitDraft。
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## 11. 测试计划(最低要求)
|
|
452
|
+
|
|
453
|
+
* 单元/契约测试:P0 工具输出与 schema 校验
|
|
454
|
+
* 兼容回归:至少在 2 个客户端验证(Cursor + Claude Desktop 或 Cline/Continue)
|
|
455
|
+
* 端到端场景:
|
|
456
|
+
|
|
457
|
+
1. `start_bugfix`:缺信息 → input_required → 补齐 → 产出测试 + commitDraft
|
|
458
|
+
2. `start_ui`:生成设计系统 → 多页面一致性验证(至少输出一致性规则)
|
|
459
|
+
3. `start_ralph`:至少两轮 iteration,能看到 stopConditions/safetyChecks
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## 12. 风险与对策
|
|
464
|
+
|
|
465
|
+
* 风险:结构化输出导致旧客户端“看不到内容”
|
|
466
|
+
|
|
467
|
+
* 对策:强制 `content.text` fallback 为必填验收项(契约测试兜底)。
|
|
468
|
+
* 风险:toolset 收敛引发“用户找不到工具”
|
|
469
|
+
|
|
470
|
+
* 对策:默认仍 full;README 推荐 toolset;提供 env 配置示例。
|
|
471
|
+
* 风险:Tasks/elicitation 客户端支持不一致
|
|
472
|
+
|
|
473
|
+
* 对策:能力探测 + 回退;同步模式输出完整 report。
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## 13. 配置需求(对外文档必须写清)
|
|
478
|
+
|
|
479
|
+
* `MCP_TOOLSET=full|core|ui|workflow`(默认 full)
|
|
480
|
+
* (可选)`MCP_SHOW_ALL=1` 或 `MCP_SHOW_DEPRECATED=1`(调试/过渡期)
|
|
481
|
+
* beta 发布说明:建议先用 `mcp-probe-kit@beta` 试用新能力
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
如果你希望我把这份 PRD 再“落地一步”,我可以继续输出两份附录(直接可复制):
|
|
486
|
+
|
|
487
|
+
1. `tools-manifest.json` 初稿(按你 README 49 工具,含 core/ui/workflow 归属与默认隐藏策略)
|
|
488
|
+
2. `WorkflowReportSchema` + `gencommit` schema 的完整 JSON Schema 示例(可直接挂到 `outputSchema`)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-probe-kit",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "AI Development
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "AI-Powered Development Toolkit - MCP Server with 39 practical tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, UI/UX Pro Max, and Requirements Interview.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "build/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"bugs": {
|
|
53
53
|
"url": "https://github.com/mybolide/mcp-probe-kit/issues"
|
|
54
54
|
},
|
|
55
|
-
"homepage": "https://
|
|
55
|
+
"homepage": "https://mcp-probe-kit.bytezonex.com",
|
|
56
56
|
"engines": {
|
|
57
57
|
"node": ">=16.0.0"
|
|
58
58
|
},
|
|
@@ -63,15 +63,15 @@
|
|
|
63
63
|
"LICENSE"
|
|
64
64
|
],
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@modelcontextprotocol/sdk": "^
|
|
67
|
-
"csv-parse": "^6.1.0",
|
|
68
|
-
"tar": "^7.5.6"
|
|
66
|
+
"@modelcontextprotocol/sdk": "^1.25.3"
|
|
69
67
|
},
|
|
70
68
|
"devDependencies": {
|
|
71
69
|
"@types/node": "^20.0.0",
|
|
72
70
|
"@types/tar": "^6.1.13",
|
|
73
71
|
"@vitest/ui": "^4.0.18",
|
|
72
|
+
"csv-parse": "^6.1.0",
|
|
74
73
|
"fast-check": "^4.5.3",
|
|
74
|
+
"tar": "^7.5.6",
|
|
75
75
|
"tsx": "^4.21.0",
|
|
76
76
|
"typescript": "^5.3.0",
|
|
77
77
|
"vitest": "^4.0.18"
|