mcp-probe-kit 3.6.5 → 3.6.9

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 (45) hide show
  1. package/README.md +3 -1
  2. package/build/index.js +1 -0
  3. package/build/lib/__tests__/agents-md-template.unit.test.js +2 -0
  4. package/build/lib/__tests__/agents-skill-ref.unit.test.d.ts +1 -0
  5. package/build/lib/__tests__/agents-skill-ref.unit.test.js +32 -0
  6. package/build/lib/__tests__/file-delivery.unit.test.d.ts +1 -0
  7. package/build/lib/__tests__/file-delivery.unit.test.js +62 -0
  8. package/build/lib/__tests__/harness-adapters.unit.test.d.ts +1 -0
  9. package/build/lib/__tests__/harness-adapters.unit.test.js +68 -0
  10. package/build/lib/__tests__/harness-skill-targets.unit.test.d.ts +1 -0
  11. package/build/lib/__tests__/harness-skill-targets.unit.test.js +59 -0
  12. package/build/lib/__tests__/project-mcp-resources.unit.test.js +1 -1
  13. package/build/lib/__tests__/workflow-skill-frontmatter.unit.test.d.ts +1 -0
  14. package/build/lib/__tests__/workflow-skill-frontmatter.unit.test.js +31 -0
  15. package/build/lib/__tests__/workflow-skill-installer.unit.test.js +21 -6
  16. package/build/lib/agents-md-template.d.ts +1 -0
  17. package/build/lib/agents-md-template.js +21 -6
  18. package/build/lib/agents-skill-ref.d.ts +6 -0
  19. package/build/lib/agents-skill-ref.js +45 -0
  20. package/build/lib/file-delivery.d.ts +11 -0
  21. package/build/lib/file-delivery.js +20 -0
  22. package/build/lib/harness-adapters.d.ts +19 -0
  23. package/build/lib/harness-adapters.js +166 -0
  24. package/build/lib/harness-skill-targets.d.ts +38 -0
  25. package/build/lib/harness-skill-targets.js +95 -0
  26. package/build/lib/project-context-layout.d.ts +15 -2
  27. package/build/lib/project-context-layout.js +27 -3
  28. package/build/lib/workflow-skill-installer.d.ts +2 -0
  29. package/build/lib/workflow-skill-installer.js +19 -5
  30. package/build/lib/workflow-skill-template.d.ts +3 -0
  31. package/build/lib/workflow-skill-template.js +12 -5
  32. package/build/lib/workflow-skill-version.d.ts +7 -1
  33. package/build/lib/workflow-skill-version.js +45 -2
  34. package/build/schemas/index.d.ts +1 -1
  35. package/build/schemas/output/project-tools.d.ts +16 -1
  36. package/build/schemas/output/project-tools.js +7 -1
  37. package/build/schemas/project-tools.d.ts +1 -1
  38. package/build/schemas/project-tools.js +1 -1
  39. package/build/tools/__tests__/add_feature.write.unit.test.js +3 -0
  40. package/build/tools/__tests__/init_project.write.unit.test.js +3 -0
  41. package/build/tools/__tests__/init_project_context.unit.test.js +28 -0
  42. package/build/tools/add_feature.js +1 -1
  43. package/build/tools/init_project.js +8 -6
  44. package/build/tools/init_project_context.js +52 -30
  45. package/package.json +84 -84
@@ -22,7 +22,7 @@ export declare const projectToolSchemas: readonly [{
22
22
  };
23
23
  }, {
24
24
  readonly name: "init_project_context";
25
- readonly description: "生成/更新项目上下文:默认写入 AGENTS.md(含 MCP GitNexus 触发规则)及 docs/project-context/。新功能请先 start_feature,修 bug 请先 start_bugfix。完成后 Agent 应阅读 AGENTS.md。";
25
+ readonly description: "生成/更新项目上下文写作计划(delegated):MCP 写入 AGENTS.md 与 layout.json;project-context 分类文档与 graph-insights 由 Agent 按返回的 plan 落盘。新功能请先 start_feature,修 bug 请先 start_bugfix。";
26
26
  readonly inputSchema: {
27
27
  readonly type: "object";
28
28
  readonly properties: {
@@ -25,7 +25,7 @@ export const projectToolSchemas = [
25
25
  },
26
26
  {
27
27
  name: "init_project_context",
28
- description: "生成/更新项目上下文:默认写入 AGENTS.md(含 MCP GitNexus 触发规则)及 docs/project-context/。新功能请先 start_feature,修 bug 请先 start_bugfix。完成后 Agent 应阅读 AGENTS.md。",
28
+ description: "生成/更新项目上下文写作计划(delegated):MCP 写入 AGENTS.md 与 layout.json;project-context 分类文档与 graph-insights 由 Agent 按返回的 plan 落盘。新功能请先 start_feature,修 bug 请先 start_bugfix。",
29
29
  inputSchema: {
30
30
  type: "object",
31
31
  properties: {
@@ -15,8 +15,11 @@ describe("add_feature 不落盘", () => {
15
15
  });
16
16
  expect(result.isError).toBeFalsy();
17
17
  const structured = result.structuredContent;
18
+ expect(structured.summary).toBe("已生成功能规格写作计划:user-auth");
18
19
  expect(structured.pendingFiles).toHaveLength(3);
20
+ expect(structured.specPaths).toHaveLength(3);
19
21
  expect(structured.writtenFiles).toBeUndefined();
22
+ expect(result._meta?.note).toMatch(/不代写文件/);
20
23
  expect(fs.existsSync(path.join(projectRoot, "docs", "specs", "user-auth", "requirements.md"))).toBe(false);
21
24
  const text = String(result.content[0].text);
22
25
  expect(text).toMatch(/由 Agent 落盘/);
@@ -13,6 +13,9 @@ describe("init_project 落盘边界", () => {
13
13
  });
14
14
  expect(result.isError).toBeFalsy();
15
15
  const structured = result.structuredContent;
16
+ expect(structured.summary).toBe("已生成项目初始化写作计划,请 Agent 按指南落盘 docs/specs/scripts/src");
17
+ expect(structured.nextSteps[0]).toContain("MCP 仅写入 Skill 与 AGENTS.md");
18
+ expect(structured.nextSteps[0]).toContain("Agent 须按指南手动落盘");
16
19
  expect(structured.writtenFiles.length).toBe(2);
17
20
  expect(structured.pendingFiles.length).toBeGreaterThan(0);
18
21
  expect(fs.existsSync(path.join(projectRoot, "AGENTS.md"))).toBe(true);
@@ -25,6 +25,21 @@ describe("init_project_context 单元测试", () => {
25
25
  expect(fs.existsSync(path.join(projectRoot, "docs", "project-context", "tech-stack.md"))).toBe(false);
26
26
  const plan = structured.metadata?.plan;
27
27
  expect(plan?.mode).toBe("delegated");
28
+ expect(structured.summary).toMatch(/写作计划/);
29
+ expect(structured.summary).not.toMatch(/^生成 .*项目上下文/);
30
+ expect(structured.nextSteps?.[0]).toMatch(/不会自动生成完整/);
31
+ const legacyDoc = structured.documentation?.find((doc) => doc.path === "docs/project-context.md");
32
+ expect(legacyDoc).toMatchObject({
33
+ exists: false,
34
+ written: false,
35
+ agent_action_required: true,
36
+ });
37
+ const agentsDoc = structured.documentation?.find((doc) => doc.path === "AGENTS.md");
38
+ expect(agentsDoc).toMatchObject({
39
+ exists: true,
40
+ written: true,
41
+ agent_action_required: false,
42
+ });
28
43
  expect(plan.steps.map((step) => step.id)).toEqual([
29
44
  "write-modular-docs",
30
45
  "bootstrap-code-insight",
@@ -59,6 +74,19 @@ describe("init_project_context 单元测试", () => {
59
74
  "persist-graph-docs",
60
75
  ]);
61
76
  expect(structured.pendingFiles.every((f) => !f.path.startsWith("docs/project-context"))).toBe(true);
77
+ expect(structured.summary).toMatch(/保留现有分类文档/);
78
+ const legacyDoc = structured.documentation?.find((doc) => doc.path === "docs/project-context.md");
79
+ expect(legacyDoc).toMatchObject({
80
+ exists: true,
81
+ written: true,
82
+ agent_action_required: false,
83
+ });
84
+ const graphDoc = structured.documentation?.find((doc) => doc.path === "docs/graph-insights/latest.md");
85
+ expect(graphDoc).toMatchObject({
86
+ exists: false,
87
+ written: false,
88
+ agent_action_required: true,
89
+ });
62
90
  expect(fs.readFileSync(path.join(projectRoot, "docs", "project-context.md"), "utf8")).toBe("# existing context\n");
63
91
  expect(fs.existsSync(path.join(projectRoot, "AGENTS.md"))).toBe(true);
64
92
  const text = result.content[0].text;
@@ -296,7 +296,7 @@ ${fenceClose}
296
296
  reason: "由 Agent 根据本工具返回的模板写入",
297
297
  }));
298
298
  const structuredData = {
299
- summary: `功能规格:${featureName}`,
299
+ summary: `已生成功能规格写作计划:${featureName}`,
300
300
  featureName,
301
301
  requirements: ["见 requirements.md 模板"],
302
302
  tasks: [{ id: "1", title: "按模板创建 specs 文档", description: "将下方模板落盘并补充真实内容" }],
@@ -4,6 +4,7 @@ import { ensureMcpProbeKitBootstrap } from "../lib/workflow-skill-installer.js";
4
4
  import { MCP_PROBE_SKILL_REL_PATH } from "../lib/workflow-skill-template.js";
5
5
  import { resolveWorkspaceRootWithMeta } from "../lib/workspace-root.js";
6
6
  import { toPosixPath } from "../lib/project-context-layout.js";
7
+ const AGENT_MANUAL_WRITE_NOTICE = "MCP 仅写入 Skill 与 AGENTS.md;Agent 须按指南手动落盘 pendingFiles 中的 docs、specs、scripts、src。";
7
8
  /**
8
9
  * init_project 工具
9
10
  *
@@ -226,7 +227,7 @@ ${warningBlock}
226
227
  MCP 已写入 Skill 与 AGENTS.md。请按上述步骤由 Agent 创建 docs、scripts、src 及 specs 文档。`;
227
228
  // 创建结构化数据对象
228
229
  const structuredData = {
229
- summary: `初始化项目:${projectName}`,
230
+ summary: "已生成项目初始化写作计划,请 Agent 按指南落盘 docs/specs/scripts/src",
230
231
  projectName: projectName,
231
232
  projectRoot: toPosixPath(projectRoot),
232
233
  bootstrap: {
@@ -255,11 +256,12 @@ MCP 已写入 Skill 与 AGENTS.md。请按上述步骤由 Agent 创建 docs、sc
255
256
  writtenFiles: bootstrapWritten,
256
257
  pendingFiles,
257
258
  nextSteps: [
258
- '确认 Skill 与 AGENTS.md 已落盘',
259
- '按指南创建 docs/ 文档与 specs',
260
- '创建 scripts/ 辅助脚本',
261
- '创建 src/ 源代码目录',
262
- '运行 init_project_context 生成完整上下文与图谱',
259
+ AGENT_MANUAL_WRITE_NOTICE,
260
+ "确认 Skill AGENTS.md 已落盘",
261
+ "按指南创建 docs/ 文档与 specs",
262
+ "创建 scripts/ 辅助脚本",
263
+ "创建 src/ 源代码目录",
264
+ "运行 init_project_context 生成完整上下文与图谱",
263
265
  ]
264
266
  };
265
267
  return okStructured(message, structuredData, {
@@ -6,9 +6,13 @@ import { resolveWorkspaceRoot, isLikelyProjectNamedRelativePath, buildProjectRoo
6
6
  import { detectDocumentLocale, layoutAbsPath, legacyProjectContextExists, parseLayoutArgsFromRecord, resolveProjectContextLayout, toPosixPath, writeLayoutManifest, } from "../lib/project-context-layout.js";
7
7
  import { mergeAgentsMdBlock } from "../lib/merge-agents-md.js";
8
8
  import { generateAgentsMdInner } from "../lib/agents-md-template.js";
9
- import { formatFileDeliverySection, writeProjectFile, } from "../lib/file-delivery.js";
9
+ import { ensureHarnessAdapters } from "../lib/harness-adapters.js";
10
+ import { generateWorkflowSkillContent, MCP_PROBE_SKILL_REL_PATH } from "../lib/workflow-skill-template.js";
11
+ import { getMcpProbeSkillVersion } from "../lib/workflow-skill-version.js";
12
+ import { buildFileStatusEntries, formatFileDeliverySection, writeProjectFile, } from "../lib/file-delivery.js";
10
13
  import * as fs from "fs";
11
14
  import * as path from "path";
15
+ const AGENT_MANUAL_WRITE_NOTICE = "本工具不会自动生成完整 project-context 与图谱内容,Agent 必须根据 metadata.plan 与 pendingFiles 手动写入这些文件。";
12
16
  /**
13
17
  * init_project_context 工具
14
18
  *
@@ -177,14 +181,26 @@ async function generateProjectContext(layout, projectRoot) {
177
181
  category: detection.category,
178
182
  docs,
179
183
  projectRootPosix: layout.projectRootPosix,
180
- graphReady: false,
184
+ graphReady: fs.existsSync(layoutAbsPath(layout, layout.latestMarkdownPath)),
185
+ contextReady: modularExists,
181
186
  });
182
187
  const mergedAgents = mergeAgentsMdBlock(existingAgentsRaw, agentsInner);
183
- const manifestWritten = writeLayoutManifest(projectRootAbs, layout);
188
+ const skillPath = layoutAbsPath(layout, MCP_PROBE_SKILL_REL_PATH);
189
+ const skillContent = fs.existsSync(skillPath)
190
+ ? fs.readFileSync(skillPath, "utf8")
191
+ : generateWorkflowSkillContent(getMcpProbeSkillVersion());
192
+ const harnessResult = ensureHarnessAdapters(projectRootAbs, skillContent, layout.indexPath);
193
+ const manifestWritten = writeLayoutManifest(projectRootAbs, layout, harnessResult.layoutHarness);
184
194
  const agentsMdWritten = writeProjectFile(projectRootAbs, layout.indexPath, mergedAgents.content, "always");
185
195
  const writtenFiles = [
186
196
  agentsMdWritten,
187
197
  { path: manifestWritten, action: "updated" },
198
+ ...harnessResult.adapters
199
+ .filter((a) => a.created || a.updated)
200
+ .map((a) => ({
201
+ path: a.path,
202
+ action: (a.created ? "created" : "updated"),
203
+ })),
188
204
  ];
189
205
  const pendingFiles = [
190
206
  ...(modularExists
@@ -260,22 +276,43 @@ async function generateProjectContext(layout, projectRoot) {
260
276
  const header = renderOrchestrationHeader({
261
277
  tool: "init_project_context",
262
278
  goal: modularExists
263
- ? "补齐图谱(保留现有分类文档;AGENTS.md 已由 MCP 写入)"
264
- : "写入 AGENTS.md 与 layout,由 Agent 生成 project-context 与图谱",
279
+ ? "已生成 delegated 写作计划(保留现有分类文档;AGENTS.md 已由 MCP 写入)"
280
+ : "已生成 delegated 写作计划(AGENTS.md 与 layout 已由 MCP 写入)",
265
281
  tasks: modularExists
266
- ? ["保留现有分类文档", "code_insight + Agent 落盘图谱"]
267
- : ["MCP 已写 AGENTS.md layout", "Agent 写分类文档", "code_insight + Agent 落盘图谱"],
282
+ ? ["保留现有分类文档", "Agent plan 落盘图谱"]
283
+ : ["Agent plan 落盘 project-context 分类文档", "code_insight + Agent 落盘图谱"],
268
284
  notes: [
269
285
  `项目根目录: ${toPosixPath(resolvedRoot)}`,
270
286
  `上下文目录: ${docsDir}`,
271
287
  `索引: ${layout.indexPath}`,
272
288
  `layout: ${manifestWritten}(已服务端写入)`,
289
+ AGENT_MANUAL_WRITE_NOTICE,
273
290
  ],
274
291
  });
292
+ const documentationDefs = [
293
+ { path: layout.indexPath, purpose: "Harness 入口(MCP 触发规则,省 token)" },
294
+ {
295
+ path: layout.legacyIndexPath,
296
+ purpose: "项目上下文索引(写代码前优先读,链到分类文档)",
297
+ },
298
+ ...docs.map((doc) => ({
299
+ path: `${layout.modularDir}/${doc.file}`,
300
+ purpose: doc.purpose,
301
+ })),
302
+ {
303
+ path: layout.latestMarkdownPath,
304
+ purpose: "最新代码图谱洞察(由 code_insight 维护)",
305
+ },
306
+ {
307
+ path: layout.latestJsonPath,
308
+ purpose: "最新代码图谱结构化结果(由 code_insight 维护)",
309
+ },
310
+ { path: layout.manifestPath, purpose: "layout manifest(工具链路径发现)" },
311
+ ];
275
312
  const structuredData = {
276
313
  summary: modularExists
277
- ? `检测到现有项目上下文,补齐图谱与 ${layout.indexPath}`
278
- : `生成 ${detection.category} 项目上下文与 ${layout.indexPath}`,
314
+ ? "已生成上下文写作计划(保留现有分类文档),请 Agent 按 plan 落盘图谱文件"
315
+ : "已生成上下文写作计划,请 Agent plan 落盘文件",
279
316
  mode: "modular",
280
317
  projectOverview: {
281
318
  name: projectInfo.name,
@@ -283,31 +320,16 @@ async function generateProjectContext(layout, projectRoot) {
283
320
  techStack: detection.framework ? [detection.framework] : [],
284
321
  architecture: detection.category,
285
322
  },
286
- documentation: [
287
- { path: layout.indexPath, purpose: "Harness 入口(MCP 触发规则,省 token)" },
288
- {
289
- path: layout.legacyIndexPath,
290
- purpose: "项目上下文索引(写代码前优先读,链到分类文档)",
291
- },
292
- ...docs.map((doc) => ({
293
- path: `${layout.modularDir}/${doc.file}`,
294
- purpose: doc.purpose,
295
- })),
296
- {
297
- path: layout.latestMarkdownPath,
298
- purpose: "最新代码图谱洞察(由 code_insight 维护)",
299
- },
300
- {
301
- path: layout.latestJsonPath,
302
- purpose: "最新代码图谱结构化结果(由 code_insight 维护)",
303
- },
304
- { path: layout.manifestPath, purpose: "layout manifest(工具链路径发现)" },
305
- ],
323
+ documentation: buildFileStatusEntries(projectRootAbs, documentationDefs, writtenFiles, pendingFiles).map((entry) => ({
324
+ ...entry,
325
+ purpose: entry.purpose ?? "",
326
+ })),
306
327
  nextSteps: [
328
+ AGENT_MANUAL_WRITE_NOTICE,
307
329
  ...(modularExists
308
330
  ? [`保留 ${layout.legacyIndexPath} 与分类文档`]
309
331
  : [`由 Agent 按模板创建 ${layout.modularDir}/ 分类文档`]),
310
- "调用 code_insight,由 Agent 落盘图谱",
332
+ "调用 code_insight,由 Agent 按 metadata.plan 落盘图谱",
311
333
  `${layout.indexPath} 与 ${manifestWritten} 已由 MCP 写入(mergeMode: ${mergedAgents.mergeMode})`,
312
334
  ],
313
335
  writtenFiles,
package/package.json CHANGED
@@ -1,84 +1,84 @@
1
- {
2
- "name": "mcp-probe-kit",
3
- "version": "3.6.5",
4
- "description": "AI-Powered Development Toolkit - MCP Server with 30 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, MCP Skill auto-sync, UI/UX Pro Max, and Requirements Interview.",
5
- "mcpName": "io.github.mybolide/mcp-probe-kit",
6
- "type": "module",
7
- "main": "build/index.js",
8
- "bin": {
9
- "mcp-probe-kit": "build/index.js"
10
- },
11
- "scripts": {
12
- "build": "tsc",
13
- "postbuild": "node scripts/copy-ui-embedded-data.mjs",
14
- "watch": "tsc --watch",
15
- "dev": "tsc && node build/index.js",
16
- "test": "vitest --run",
17
- "test:watch": "vitest",
18
- "test:ui": "vitest --ui",
19
- "inspector": "npx @modelcontextprotocol/inspector node build/index.js",
20
- "prepare": "npm run build",
21
- "prepublishOnly": "npm run build",
22
- "sync-ui-data": "tsx scripts/sync-ui-data.ts",
23
- "sync-version": "node scripts/sync-version.mjs",
24
- "verify-workflow-skill": "tsx scripts/verify-workflow-skill.ts",
25
- "sync-workflow-skill": "tsx scripts/sync-workflow-skill.ts",
26
- "prebuild": "npm run sync-version && npm run sync-ui-data && npm run verify-workflow-skill && npm run sync-workflow-skill",
27
- "docs:serve": "npx http-server docs -p 8080 -o"
28
- },
29
- "keywords": [
30
- "mcp",
31
- "model-context-protocol",
32
- "cursor",
33
- "ai-tools",
34
- "development-tools",
35
- "code-quality",
36
- "code-review",
37
- "refactor",
38
- "debugging",
39
- "sql-generator",
40
- "ui-generator",
41
- "react",
42
- "vue",
43
- "typescript",
44
- "git-tools",
45
- "ai-assistant"
46
- ],
47
- "author": {
48
- "name": "小墨 (Kyle)",
49
- "url": "https://www.bytezonex.com/"
50
- },
51
- "license": "MIT",
52
- "repository": {
53
- "type": "git",
54
- "url": "git+https://github.com/mybolide/mcp-probe-kit.git"
55
- },
56
- "bugs": {
57
- "url": "https://github.com/mybolide/mcp-probe-kit/issues"
58
- },
59
- "homepage": "https://mcp-probe-kit.bytezonex.com",
60
- "engines": {
61
- "node": ">=18.0.0"
62
- },
63
- "files": [
64
- "build",
65
- "README.md",
66
- "LICENSE"
67
- ],
68
- "dependencies": {
69
- "@modelcontextprotocol/sdk": "^1.29.0",
70
- "cross-spawn": "^7.0.6",
71
- "csv-parse": "^6.1.0",
72
- "tar": "^7.5.6"
73
- },
74
- "devDependencies": {
75
- "@types/cross-spawn": "^6.0.6",
76
- "@types/node": "^20.0.0",
77
- "@types/tar": "^6.1.13",
78
- "@vitest/ui": "^4.0.18",
79
- "fast-check": "^4.5.3",
80
- "tsx": "^4.21.0",
81
- "typescript": "^5.3.0",
82
- "vitest": "^4.0.18"
83
- }
84
- }
1
+ {
2
+ "name": "mcp-probe-kit",
3
+ "version": "3.6.9",
4
+ "description": "AI-Powered Development Toolkit - MCP Server with 30 tools covering code quality, development efficiency, project management, and UI/UX design. Features: Structured Output, Workflow Orchestration, MCP Skill auto-sync, UI/UX Pro Max, and Requirements Interview.",
5
+ "mcpName": "io.github.mybolide/mcp-probe-kit",
6
+ "type": "module",
7
+ "main": "build/index.js",
8
+ "bin": {
9
+ "mcp-probe-kit": "build/index.js"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "postbuild": "node scripts/copy-ui-embedded-data.mjs",
14
+ "watch": "tsc --watch",
15
+ "dev": "tsc && node build/index.js",
16
+ "test": "vitest --run",
17
+ "test:watch": "vitest",
18
+ "test:ui": "vitest --ui",
19
+ "inspector": "npx @modelcontextprotocol/inspector node build/index.js",
20
+ "prepare": "npm run build",
21
+ "prepublishOnly": "npm run build",
22
+ "sync-ui-data": "tsx scripts/sync-ui-data.ts",
23
+ "sync-version": "node scripts/sync-version.mjs",
24
+ "verify-workflow-skill": "tsx scripts/verify-workflow-skill.ts",
25
+ "sync-workflow-skill": "tsx scripts/sync-workflow-skill.ts",
26
+ "prebuild": "npm run sync-version && npm run sync-ui-data && npm run verify-workflow-skill && npm run sync-workflow-skill",
27
+ "docs:serve": "npx http-server docs -p 8080 -o"
28
+ },
29
+ "keywords": [
30
+ "mcp",
31
+ "model-context-protocol",
32
+ "cursor",
33
+ "ai-tools",
34
+ "development-tools",
35
+ "code-quality",
36
+ "code-review",
37
+ "refactor",
38
+ "debugging",
39
+ "sql-generator",
40
+ "ui-generator",
41
+ "react",
42
+ "vue",
43
+ "typescript",
44
+ "git-tools",
45
+ "ai-assistant"
46
+ ],
47
+ "author": {
48
+ "name": "小墨 (Kyle)",
49
+ "url": "https://www.bytezonex.com/"
50
+ },
51
+ "license": "MIT",
52
+ "repository": {
53
+ "type": "git",
54
+ "url": "git+https://github.com/mybolide/mcp-probe-kit.git"
55
+ },
56
+ "bugs": {
57
+ "url": "https://github.com/mybolide/mcp-probe-kit/issues"
58
+ },
59
+ "homepage": "https://mcp-probe-kit.bytezonex.com",
60
+ "engines": {
61
+ "node": ">=18.0.0"
62
+ },
63
+ "files": [
64
+ "build",
65
+ "README.md",
66
+ "LICENSE"
67
+ ],
68
+ "dependencies": {
69
+ "@modelcontextprotocol/sdk": "^1.29.0",
70
+ "cross-spawn": "^7.0.6",
71
+ "csv-parse": "^6.1.0",
72
+ "tar": "^7.5.6"
73
+ },
74
+ "devDependencies": {
75
+ "@types/cross-spawn": "^6.0.6",
76
+ "@types/node": "^20.0.0",
77
+ "@types/tar": "^6.1.13",
78
+ "@vitest/ui": "^4.0.18",
79
+ "fast-check": "^4.5.3",
80
+ "tsx": "^4.21.0",
81
+ "typescript": "^5.3.0",
82
+ "vitest": "^4.0.18"
83
+ }
84
+ }