mcp-probe-kit 1.4.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +794 -100
  2. package/build/index.js +379 -1
  3. package/build/tools/add_feature.d.ts +33 -0
  4. package/build/tools/add_feature.js +464 -0
  5. package/build/tools/analyze_project.js +58 -58
  6. package/build/tools/css_order.js +55 -55
  7. package/build/tools/design2code.d.ts +29 -0
  8. package/build/tools/design2code.js +400 -0
  9. package/build/tools/estimate.d.ts +22 -0
  10. package/build/tools/estimate.js +225 -0
  11. package/build/tools/fix_bug.d.ts +24 -0
  12. package/build/tools/fix_bug.js +298 -0
  13. package/build/tools/gen_mock.d.ts +22 -0
  14. package/build/tools/gen_mock.js +250 -0
  15. package/build/tools/index.d.ts +15 -0
  16. package/build/tools/index.js +16 -0
  17. package/build/tools/init_project.js +121 -76
  18. package/build/tools/init_project_context.d.ts +26 -0
  19. package/build/tools/init_project_context.js +331 -0
  20. package/build/tools/security_scan.d.ts +22 -0
  21. package/build/tools/security_scan.js +282 -0
  22. package/build/tools/start_api.d.ts +19 -0
  23. package/build/tools/start_api.js +178 -0
  24. package/build/tools/start_bugfix.d.ts +19 -0
  25. package/build/tools/start_bugfix.js +127 -0
  26. package/build/tools/start_doc.d.ts +19 -0
  27. package/build/tools/start_doc.js +190 -0
  28. package/build/tools/start_feature.d.ts +19 -0
  29. package/build/tools/start_feature.js +122 -0
  30. package/build/tools/start_onboard.d.ts +19 -0
  31. package/build/tools/start_onboard.js +146 -0
  32. package/build/tools/start_refactor.d.ts +19 -0
  33. package/build/tools/start_refactor.js +175 -0
  34. package/build/tools/start_release.d.ts +19 -0
  35. package/build/tools/start_release.js +152 -0
  36. package/build/tools/start_review.d.ts +19 -0
  37. package/build/tools/start_review.js +162 -0
  38. package/docs/BEST_PRACTICES.md +726 -0
  39. package/docs/HOW_TO_TRIGGER.html +188 -0
  40. package/docs/HOW_TO_TRIGGER.md +971 -0
  41. package/docs/specs/add-feature/design.md +608 -0
  42. package/docs/specs/add-feature/requirements.md +175 -0
  43. package/docs/specs/add-feature/tasks.md +111 -0
  44. package/docs/specs/design2code/README.md +0 -0
  45. package/docs/specs/design2code/requirements.md +0 -0
  46. package/docs/specs/estimate/design.md +209 -0
  47. package/docs/specs/estimate/requirements.md +140 -0
  48. package/docs/specs/estimate/tasks.md +66 -0
  49. package/docs/specs/fix-bug/design.md +259 -0
  50. package/docs/specs/fix-bug/requirements.md +132 -0
  51. package/docs/specs/fix-bug/tasks.md +66 -0
  52. package/docs/specs/gen-mock/design.md +241 -0
  53. package/docs/specs/gen-mock/requirements.md +137 -0
  54. package/docs/specs/gen-mock/tasks.md +66 -0
  55. package/docs/specs/init-project-context/design.md +515 -0
  56. package/docs/specs/init-project-context/requirements.md +144 -0
  57. package/docs/specs/init-project-context/tasks.md +93 -0
  58. package/docs/specs/security-scan/design.md +152 -0
  59. package/docs/specs/security-scan/requirements.md +150 -0
  60. package/docs/specs/security-scan/tasks.md +67 -0
  61. package/docs/specs/start-bugfix/design.md +42 -0
  62. package/docs/specs/start-bugfix/requirements.md +70 -0
  63. package/docs/specs/start-bugfix/tasks.md +21 -0
  64. package/docs/specs/start-feature/design.md +41 -0
  65. package/docs/specs/start-feature/requirements.md +90 -0
  66. package/docs/specs/start-feature/tasks.md +21 -0
  67. package/docs/specs/start-review/requirements.md +0 -0
  68. package/package.json +3 -2
@@ -3,6 +3,7 @@ export async function initProject(args) {
3
3
  try {
4
4
  const input = args?.input || "";
5
5
  const projectName = args?.project_name || "新项目";
6
+ const featureSlug = projectName.toLowerCase().replace(/\s+/g, '-');
6
7
  const message = `你需要按照 Spec-Driven Development(规范驱动开发)的方式初始化项目,参考 https://github.com/github/spec-kit 的工作流程。
7
8
 
8
9
  📋 **项目需求**:
@@ -15,106 +16,150 @@ ${input}
15
16
 
16
17
  \`\`\`
17
18
  .
18
- ├── memory/
19
- └── constitution.md # 项目宪法(核心原则和约束)
20
- ├── specs/
21
- │ └── 001-${projectName.toLowerCase().replace(/\s+/g, '-')}/
22
- ├── spec.md # 功能规格说明
23
- ├── plan.md # 实现计划
24
- ├── tasks.md # 任务分解
25
- └── research.md # 技术调研
19
+ ├── docs/
20
+ ├── project-context.md # 项目上下文(技术栈、架构、规范)
21
+ ├── constitution.md # 项目宪法(核心原则和约束)
22
+ │ └── specs/
23
+ └── ${featureSlug}/
24
+ ├── requirements.md # 需求文档(EARS 格式)
25
+ ├── design.md # 设计文档
26
+ ├── tasks.md # 任务分解
27
+ │ └── research.md # 技术调研
26
28
  ├── scripts/
27
29
  │ ├── check-prerequisites.sh
28
30
  │ └── setup.sh
29
- └── templates/
30
- ├── spec-template.md
31
- ├── plan-template.md
32
- └── tasks-template.md
31
+ └── src/ # 源代码目录
33
32
  \`\`\`
34
33
 
35
- **第二步:生成 constitution.md**
36
- 在 \`memory/constitution.md\` 中定义项目的核心原则,包括:
34
+ **第二步:生成 project-context.md**
35
+ 在 \`docs/project-context.md\` 中记录项目的核心信息:
36
+ - 项目概览(名称、版本、类型、描述)
37
+ - 技术栈(语言、框架、构建工具、测试框架)
38
+ - 项目结构(目录说明、入口文件)
39
+ - 架构模式(设计模式、模块划分)
40
+ - 编码规范(代码风格、命名规范)
41
+ - 依赖管理(主要依赖列表)
42
+ - 开发流程(常用命令)
43
+
44
+ **第三步:生成 constitution.md**
45
+ 在 \`docs/constitution.md\` 中定义项目的核心原则:
37
46
  - 代码风格规范
38
47
  - 架构原则
39
48
  - 安全准则
40
49
  - 测试要求
41
50
  - 文档标准
42
51
 
43
- **第三步:生成 spec.md(功能规格)**
44
- 在 \`specs/001-${projectName.toLowerCase().replace(/\s+/g, '-')}/spec.md\` 中详细描述:
45
- - 项目背景和目标
46
- - 用户故事(User Stories)
47
- - 功能需求
48
- - 非功能需求
49
- - 约束条件
50
- - 验收标准
51
-
52
- **第四步:生成 plan.md(实现计划)**
53
- 分析需求并生成实现计划,包括:
54
- - 技术栈选择(框架、数据库、部署方式等)
55
- - 系统架构设计
56
- - 模块划分
57
- - 数据模型设计
58
- - API 设计
59
- - 关键技术决策
60
-
61
- **第五步:生成 research.md(技术调研)**
62
- 对选定的技术栈进行调研:
63
- - 确认版本兼容性
64
- - 识别潜在风险
65
- - 记录最佳实践
66
- - 列出参考文档
67
-
68
- **第六步:生成 tasks.md(任务分解)**
69
- 将实现计划分解为可执行的任务,格式如下:
52
+ **第四步:生成 requirements.md(需求文档)**
53
+ 在 \`docs/specs/${featureSlug}/requirements.md\` 中详细描述:
54
+ - 功能概述
55
+ - 术语定义
56
+ - 需求列表(使用 EARS 格式)
57
+ - 用户故事(As a... I want... So that...)
58
+ - 验收标准(WHEN/WHILE/IF...THEN...SHALL)
59
+ - 非功能需求(性能、安全、兼容性)
60
+ - 依赖关系
61
+
62
+ **EARS 格式说明**:
63
+ | 模式 | 格式 | 适用场景 |
64
+ |------|------|----------|
65
+ | Ubiquitous | THE [system] SHALL [response] | 始终适用的需求 |
66
+ | Event-driven | WHEN [trigger], THE [system] SHALL [response] | 事件触发的需求 |
67
+ | State-driven | WHILE [condition], THE [system] SHALL [response] | 状态相关的需求 |
68
+ | Unwanted | IF [condition], THEN THE [system] SHALL [response] | 异常处理需求 |
69
+
70
+ **第五步:生成 design.md(设计文档)**
71
+ 在 \`docs/specs/${featureSlug}/design.md\` 中描述:
72
+ - 技术方案(技术选型及理由)
73
+ - 架构设计(系统架构图)
74
+ - 数据模型(数据结构定义)
75
+ - API 设计(接口定义)
76
+ - 文件结构(新增/修改的文件)
77
+ - 设计决策(重要决策及理由)
78
+ - 风险评估
79
+
80
+ **第六步:生成 research.md(技术调研)**
81
+ 在 \`docs/specs/${featureSlug}/research.md\` 中记录:
82
+ - 技术栈调研结果
83
+ - 版本兼容性确认
84
+ - 潜在风险识别
85
+ - 最佳实践记录
86
+ - 参考文档链接
87
+
88
+ **第七步:生成 tasks.md(任务分解)**
89
+ 在 \`docs/specs/${featureSlug}/tasks.md\` 中分解任务:
90
+
70
91
  \`\`\`markdown
71
- # 任务分解
72
-
73
- ## 阶段 1:项目初始化
74
- - [ ] Task 1.1: 搭建项目骨架 (文件: ./setup.sh)
75
- - [ ] Task 1.2: 配置开发环境 (文件: ./devcontainer.json)
76
- - [ ] Task 1.3: [P] 初始化数据库 (文件: ./database/schema.sql)
77
-
78
- ## 阶段 2:核心功能实现
79
- - [ ] Task 2.1: 实现数据模型 (文件: ./src/models/)
80
- - [ ] Task 2.2: [P] 实现用户认证 (文件: ./src/auth/)
81
- - [ ] Task 2.3: [P] 实现业务逻辑 (文件: ./src/services/)
82
- 依赖: Task 2.1
83
-
84
- ## 阶段 3:API 开发
85
- - [ ] Task 3.1: 创建 REST API (文件: ./src/api/)
86
- 依赖: Task 2.2, Task 2.3
87
- - [ ] Task 3.2: [P] 编写 API 测试 (文件: ./tests/api/)
88
-
89
- ## 阶段 4:前端开发
90
- - [ ] Task 4.1: 搭建前端框架 (文件: ./frontend/)
91
- - [ ] Task 4.2: [P] 实现 UI 组件 (文件: ./frontend/components/)
92
- - [ ] Task 4.3: [P] 集成 API (文件: ./frontend/services/)
93
- 依赖: Task 3.1
94
-
95
- ## 阶段 5:测试与部署
96
- - [ ] Task 5.1: 集成测试 (文件: ./tests/integration/)
97
- - [ ] Task 5.2: 性能测试 (文件: ./tests/performance/)
98
- - [ ] Task 5.3: 部署配置 (文件: ./deploy/)
92
+ # 任务清单:${projectName}
93
+
94
+ ## 概述
95
+ 实现 ${projectName} 的任务分解。
99
96
 
100
97
  ---
98
+
99
+ ## 任务列表
100
+
101
+ ### 阶段 1: 项目初始化
102
+ - [ ] 1.1 搭建项目骨架
103
+ - 创建目录结构
104
+ - 初始化 package.json
105
+ - _需求: 1.1_
106
+
107
+ - [ ] 1.2 配置开发环境
108
+ - 配置 TypeScript/ESLint/Prettier
109
+ - _需求: 1.1_
110
+
111
+ ### 阶段 2: 核心功能实现
112
+ - [ ] 2.1 实现数据模型
113
+ - 定义数据结构
114
+ - _需求: 2.1_
115
+
116
+ - [ ] 2.2 实现业务逻辑
117
+ - 核心功能开发
118
+ - 依赖: 任务 2.1
119
+ - _需求: 2.2_
120
+
121
+ ### 阶段 3: 集成测试
122
+ - [ ] 3.1 编写测试用例
123
+ - 单元测试
124
+ - 集成测试
125
+ - _需求: 3.1_
126
+
127
+ ---
128
+
129
+ ## 检查点
130
+ - [ ] 阶段 1 完成后:项目可运行
131
+ - [ ] 阶段 2 完成后:核心功能可用
132
+ - [ ] 阶段 3 完成后:测试通过
133
+
134
+ ---
135
+
136
+ ## 文件变更清单
137
+ | 文件 | 操作 | 说明 |
138
+ |------|------|------|
139
+ | src/index.ts | 新建 | 入口文件 |
140
+ | package.json | 新建 | 项目配置 |
141
+
142
+ ---
143
+
101
144
  **标记说明**:
102
145
  - [P]: 可以并行执行的任务
103
146
  - 依赖: 必须在指定任务完成后才能开始
147
+ - _需求: x.x_: 关联的需求编号
104
148
  \`\`\`
105
149
 
106
- **第七步:生成辅助脚本**
150
+ **第八步:生成辅助脚本**
107
151
  创建项目管理脚本:
108
152
  - \`scripts/check-prerequisites.sh\`: 检查环境依赖
109
153
  - \`scripts/setup.sh\`: 自动化项目初始化
110
- - \`scripts/create-new-feature.sh\`: 创建新功能分支
111
154
 
112
155
  📝 **注意事项**:
113
- 1. 所有文件使用 Markdown 格式,保持清晰的结构
114
- 2. 遵循项目 constitution 中定义的原则
115
- 3. 任务分解要足够细致,每个任务应该在 2-4 小时内完成
116
- 4. 标记清楚任务之间的依赖关系
117
- 5. 识别可以并行执行的任务以优化开发效率
156
+ 1. 所有文档统一放在 \`docs/\` 目录下
157
+ 2. 功能规格放在 \`docs/specs/{feature-name}/\` 目录
158
+ 3. 所有文件使用 Markdown 格式,保持清晰的结构
159
+ 4. 遵循项目 constitution 中定义的原则
160
+ 5. 任务分解要足够细致,每个任务应该在 2-4 小时内完成
161
+ 6. 标记清楚任务之间的依赖关系
162
+ 7. 识别可以并行执行的任务以优化开发效率
118
163
 
119
164
  🚀 **开始执行**:
120
165
  现在请按照上述步骤创建项目结构和所有必需的文档。`;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * init_project_context 工具
3
+ *
4
+ * 功能:生成项目上下文文档,帮助 AI 理解项目的技术栈、架构和规范
5
+ * 模式:指令生成器模式 - 返回详细的分析指南,由 AI 执行实际操作
6
+ */
7
+ /**
8
+ * init_project_context 工具实现
9
+ *
10
+ * @param args - 工具参数
11
+ * @param args.docs_dir - 文档目录,默认 "docs"
12
+ * @returns MCP 响应,包含项目分析指南
13
+ */
14
+ export declare function initProjectContext(args: any): Promise<{
15
+ content: {
16
+ type: string;
17
+ text: string;
18
+ }[];
19
+ isError?: undefined;
20
+ } | {
21
+ content: {
22
+ type: string;
23
+ text: string;
24
+ }[];
25
+ isError: boolean;
26
+ }>;
@@ -0,0 +1,331 @@
1
+ /**
2
+ * init_project_context 工具
3
+ *
4
+ * 功能:生成项目上下文文档,帮助 AI 理解项目的技术栈、架构和规范
5
+ * 模式:指令生成器模式 - 返回详细的分析指南,由 AI 执行实际操作
6
+ */
7
+ // 默认文档目录
8
+ const DEFAULT_DOCS_DIR = "docs";
9
+ // 提示词模板
10
+ const PROMPT_TEMPLATE = `# 项目上下文初始化指南
11
+
12
+ ## 🎯 任务目标
13
+
14
+ 在 \`{docs_dir}/\` 目录下生成 \`project-context.md\` 文件,记录项目的核心信息。
15
+
16
+ **输出文件**: \`{docs_dir}/project-context.md\`
17
+
18
+ **文件用途**: 记录项目的技术栈、架构模式、编码规范等核心信息,供后续功能开发时参考。
19
+
20
+ ---
21
+
22
+ ## 📋 执行步骤
23
+
24
+ 请按照以下步骤分析项目并生成文档:
25
+
26
+ ### 步骤 1: 分析技术栈
27
+
28
+ **目标**: 识别项目使用的语言、框架和工具。
29
+
30
+ **操作**:
31
+ 1. 读取 \`package.json\` 文件
32
+ 2. 从 \`dependencies\` 中识别主要框架:
33
+ - React、Vue、Angular → 前端框架
34
+ - Express、Koa、Fastify、NestJS → 后端框架
35
+ - Next.js、Nuxt.js → 全栈框架
36
+ - @modelcontextprotocol/sdk → MCP 服务器
37
+ 3. 从 \`devDependencies\` 中识别开发工具:
38
+ - typescript → TypeScript 项目
39
+ - webpack、vite、rollup、esbuild → 构建工具
40
+ - jest、vitest、mocha → 测试框架
41
+ - eslint、prettier → 代码规范工具
42
+ 4. 检查配置文件:
43
+ - \`tsconfig.json\` → TypeScript 配置
44
+ - \`vite.config.js/ts\` → Vite 项目
45
+ - \`webpack.config.js\` → Webpack 项目
46
+ - \`.eslintrc.*\` → ESLint 配置
47
+ - \`.prettierrc.*\` → Prettier 配置
48
+
49
+ **记录**: 语言、框架、构建工具、测试框架、代码规范工具
50
+
51
+ ---
52
+
53
+ ### 步骤 2: 分析项目结构
54
+
55
+ **目标**: 理解项目的目录组织方式。
56
+
57
+ **操作**:
58
+ 1. 列出项目根目录下的文件和文件夹
59
+ 2. 重点关注以下目录:
60
+ - \`src/\` → 源代码目录
61
+ - \`lib/\` → 库代码目录
62
+ - \`tests/\` 或 \`__tests__/\` → 测试目录
63
+ - \`docs/\` → 文档目录
64
+ - \`build/\` 或 \`dist/\` → 构建输出目录
65
+ 3. 识别入口文件:
66
+ - \`src/index.ts\` 或 \`src/index.js\`
67
+ - \`src/main.ts\` 或 \`src/main.js\`
68
+ - \`src/app.ts\` 或 \`src/app.js\`
69
+ 4. 生成目录树(深度 2-3 层,忽略 node_modules、.git、dist、build)
70
+
71
+ **记录**: 目录结构、入口文件、主要模块
72
+
73
+ ---
74
+
75
+ ### 步骤 3: 分析编码规范
76
+
77
+ **目标**: 识别项目的代码风格和规范。
78
+
79
+ **操作**:
80
+ 1. 检查是否存在以下配置文件:
81
+ - \`.eslintrc.*\` → ESLint 配置
82
+ - \`.prettierrc.*\` → Prettier 配置
83
+ - \`tsconfig.json\` → TypeScript 配置
84
+ 2. 从现有代码中识别命名规范:
85
+ - 文件命名: kebab-case / camelCase / PascalCase
86
+ - 变量命名: camelCase
87
+ - 常量命名: UPPER_SNAKE_CASE
88
+ - 类/接口命名: PascalCase
89
+ 3. 检查 TypeScript 配置:
90
+ - \`strict\` 是否为 true
91
+ - \`target\` 和 \`module\` 设置
92
+ - 其他重要配置项
93
+
94
+ **记录**: 代码风格工具、命名规范、TypeScript 配置
95
+
96
+ ---
97
+
98
+ ### 步骤 4: 分析依赖
99
+
100
+ **目标**: 列出项目的主要依赖。
101
+
102
+ **操作**:
103
+ 1. 从 \`package.json\` 读取 \`dependencies\`
104
+ 2. 从 \`package.json\` 读取 \`devDependencies\`
105
+ 3. 识别关键依赖并说明用途
106
+ 4. 统计依赖数量
107
+
108
+ **记录**: 主要生产依赖(前 10 个)、主要开发依赖(前 10 个)、依赖总数
109
+
110
+ ---
111
+
112
+ ### 步骤 5: 分析开发流程
113
+
114
+ **目标**: 识别项目的开发、构建、测试命令。
115
+
116
+ **操作**:
117
+ 1. 从 \`package.json\` 读取 \`scripts\` 字段
118
+ 2. 识别常用命令:
119
+ - \`dev\` 或 \`start\` → 开发启动命令
120
+ - \`build\` → 构建命令
121
+ - \`test\` → 测试命令
122
+ - \`lint\` → 代码检查命令
123
+
124
+ **记录**: 开发命令、构建命令、测试命令、其他重要命令
125
+
126
+ ---
127
+
128
+ ## 📝 文档模板
129
+
130
+ 请在 \`{docs_dir}/project-context.md\` 中生成以下内容:
131
+
132
+ \`\`\`markdown
133
+ # 项目上下文
134
+
135
+ > 本文档由 MCP Probe Kit 的 init_project_context 工具生成,记录项目的核心信息。
136
+ > 用于帮助 AI 理解项目,生成更准确的代码和文档。
137
+
138
+ ## 项目概览
139
+
140
+ | 属性 | 值 |
141
+ |------|-----|
142
+ | 名称 | [从 package.json 的 name 字段读取] |
143
+ | 版本 | [从 package.json 的 version 字段读取] |
144
+ | 类型 | [分析得出: Web应用 / API服务 / CLI工具 / 库 / MCP服务器] |
145
+ | 描述 | [从 package.json 的 description 字段读取] |
146
+
147
+ ## 技术栈
148
+
149
+ | 类别 | 技术 |
150
+ |------|------|
151
+ | 语言 | [JavaScript / TypeScript] |
152
+ | 运行时 | [Node.js / Browser / Deno] |
153
+ | 框架 | [识别的框架,如 React、Express、Next.js] |
154
+ | 构建工具 | [识别的工具,如 TypeScript、Webpack、Vite] |
155
+ | 包管理器 | [npm / yarn / pnpm] |
156
+ | 测试框架 | [识别的测试框架,如 Jest、Vitest,或 "未配置"] |
157
+
158
+ ## 项目结构
159
+
160
+ \\\`\\\`\\\`
161
+ [生成目录树,深度 2-3 层]
162
+ [示例:]
163
+ project/
164
+ ├── src/
165
+ │ ├── index.ts
166
+ │ └── tools/
167
+ │ ├── index.ts
168
+ │ └── ...
169
+ ├── docs/
170
+ ├── package.json
171
+ └── tsconfig.json
172
+ \\\`\\\`\\\`
173
+
174
+ ### 主要目录说明
175
+
176
+ | 目录 | 用途 |
177
+ |------|------|
178
+ | src/ | [源代码目录,描述主要内容] |
179
+ | docs/ | [文档目录] |
180
+ | tests/ | [测试目录,如果存在] |
181
+ | build/ | [构建输出目录,如果存在] |
182
+
183
+ ### 入口文件
184
+
185
+ - 主入口: \`[入口文件路径,如 src/index.ts]\`
186
+
187
+ ## 架构模式
188
+
189
+ - **项目类型**: [MCP服务器 / Web应用 / API服务 / 库]
190
+ - **设计模式**: [识别的模式,如 工具模式、MVC、组件化、服务层]
191
+ - **模块划分**: [主要模块说明]
192
+
193
+ ## 编码规范
194
+
195
+ ### 代码风格
196
+
197
+ | 工具 | 状态 | 配置文件 |
198
+ |------|------|----------|
199
+ | ESLint | [已配置 / 未配置] | [配置文件路径] |
200
+ | Prettier | [已配置 / 未配置] | [配置文件路径] |
201
+
202
+ ### 命名规范
203
+
204
+ | 类型 | 规范 | 示例 |
205
+ |------|------|------|
206
+ | 文件命名 | [kebab-case / camelCase / PascalCase] | [示例] |
207
+ | 变量命名 | camelCase | userName |
208
+ | 常量命名 | UPPER_SNAKE_CASE | MAX_COUNT |
209
+ | 函数命名 | camelCase | getUserInfo |
210
+ | 类/接口命名 | PascalCase | UserService |
211
+
212
+ ### TypeScript 配置
213
+
214
+ | 配置项 | 值 |
215
+ |--------|-----|
216
+ | strict | [true / false] |
217
+ | target | [ES2020 / ES2022 / ...] |
218
+ | module | [CommonJS / ESNext / Node16 / ...] |
219
+
220
+ ## 依赖管理
221
+
222
+ ### 主要生产依赖
223
+
224
+ | 依赖 | 版本 | 用途 |
225
+ |------|------|------|
226
+ | [依赖名] | [版本] | [用途说明] |
227
+
228
+ ### 主要开发依赖
229
+
230
+ | 依赖 | 版本 | 用途 |
231
+ |------|------|------|
232
+ | [依赖名] | [版本] | [用途说明] |
233
+
234
+ ### 依赖统计
235
+
236
+ - 生产依赖: [数量] 个
237
+ - 开发依赖: [数量] 个
238
+ - 总计: [数量] 个
239
+
240
+ ## 开发流程
241
+
242
+ ### 常用命令
243
+
244
+ | 命令 | 用途 |
245
+ |------|------|
246
+ | \`npm run dev\` | [开发启动,描述具体行为] |
247
+ | \`npm run build\` | [构建,描述输出位置] |
248
+ | \`npm test\` | [测试,或 "未配置"] |
249
+ | \`npm run lint\` | [代码检查,或 "未配置"] |
250
+
251
+ ### 开发环境要求
252
+
253
+ - Node.js: [版本要求,从 engines 字段读取或推断]
254
+ - 包管理器: [npm / yarn / pnpm]
255
+
256
+ ---
257
+
258
+ *生成时间: [当前时间,格式: YYYY-MM-DD HH:mm:ss]*
259
+ *生成工具: MCP Probe Kit - init_project_context*
260
+ \`\`\`
261
+
262
+ ---
263
+
264
+ ## ✅ 检查清单
265
+
266
+ 生成文档后,请验证以下内容:
267
+
268
+ - [ ] 文件已创建: \`{docs_dir}/project-context.md\`
269
+ - [ ] 项目概览完整(名称、版本、类型、描述都已填写)
270
+ - [ ] 技术栈准确(语言、框架、构建工具正确识别)
271
+ - [ ] 目录结构清晰(树形结构正确,深度适当)
272
+ - [ ] 入口文件正确(主入口文件已识别)
273
+ - [ ] 架构模式已识别(项目类型、设计模式)
274
+ - [ ] 编码规范完整(ESLint、Prettier、命名规范已记录)
275
+ - [ ] TypeScript 配置已记录(如果是 TS 项目)
276
+ - [ ] 依赖列表完整(主要依赖已列出并说明用途)
277
+ - [ ] 开发命令正确(dev、build、test 命令已记录)
278
+ - [ ] 所有占位符已替换(没有 [xxx] 格式的占位符)
279
+ - [ ] Markdown 格式正确(表格、代码块格式正确)
280
+
281
+ ---
282
+
283
+ ## 📌 注意事项
284
+
285
+ 1. **如果某项信息无法获取**,请填写 "未配置" 或 "无",不要留空
286
+ 2. **目录树生成时**,忽略 \`node_modules\`、\`.git\`、\`dist\`、\`build\`、\`coverage\` 等目录
287
+ 3. **依赖说明**,只列出主要依赖(前 10 个),其他可省略
288
+ 4. **时间格式**,使用 YYYY-MM-DD HH:mm:ss 格式
289
+ 5. **如果 docs 目录不存在**,请先创建该目录
290
+
291
+ ---
292
+
293
+ *指南版本: 1.0.0*
294
+ *工具: MCP Probe Kit - init_project_context*
295
+ `;
296
+ /**
297
+ * init_project_context 工具实现
298
+ *
299
+ * @param args - 工具参数
300
+ * @param args.docs_dir - 文档目录,默认 "docs"
301
+ * @returns MCP 响应,包含项目分析指南
302
+ */
303
+ export async function initProjectContext(args) {
304
+ try {
305
+ // 解析参数
306
+ const docsDir = args?.docs_dir || DEFAULT_DOCS_DIR;
307
+ // 构建指南文本(替换占位符)
308
+ const guide = PROMPT_TEMPLATE.replace(/{docs_dir}/g, docsDir);
309
+ // 返回结果
310
+ return {
311
+ content: [
312
+ {
313
+ type: "text",
314
+ text: guide,
315
+ },
316
+ ],
317
+ };
318
+ }
319
+ catch (error) {
320
+ const errorMessage = error instanceof Error ? error.message : String(error);
321
+ return {
322
+ content: [
323
+ {
324
+ type: "text",
325
+ text: `❌ 初始化项目上下文失败: ${errorMessage}`,
326
+ },
327
+ ],
328
+ isError: true,
329
+ };
330
+ }
331
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * security_scan 工具
3
+ *
4
+ * 功能:代码安全扫描,检测常见漏洞和不安全编码实践
5
+ * 模式:指令生成器模式 - 返回安全检查指南,由 AI 执行实际分析
6
+ */
7
+ /**
8
+ * security_scan 工具实现
9
+ */
10
+ export declare function securityScan(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
+ }>;