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.
- package/README.md +3 -1
- package/build/index.js +1 -0
- package/build/lib/__tests__/agents-md-template.unit.test.js +2 -0
- package/build/lib/__tests__/agents-skill-ref.unit.test.d.ts +1 -0
- package/build/lib/__tests__/agents-skill-ref.unit.test.js +32 -0
- package/build/lib/__tests__/file-delivery.unit.test.d.ts +1 -0
- package/build/lib/__tests__/file-delivery.unit.test.js +62 -0
- package/build/lib/__tests__/harness-adapters.unit.test.d.ts +1 -0
- package/build/lib/__tests__/harness-adapters.unit.test.js +68 -0
- package/build/lib/__tests__/harness-skill-targets.unit.test.d.ts +1 -0
- package/build/lib/__tests__/harness-skill-targets.unit.test.js +59 -0
- package/build/lib/__tests__/project-mcp-resources.unit.test.js +1 -1
- package/build/lib/__tests__/workflow-skill-frontmatter.unit.test.d.ts +1 -0
- package/build/lib/__tests__/workflow-skill-frontmatter.unit.test.js +31 -0
- package/build/lib/__tests__/workflow-skill-installer.unit.test.js +21 -6
- package/build/lib/agents-md-template.d.ts +1 -0
- package/build/lib/agents-md-template.js +21 -6
- package/build/lib/agents-skill-ref.d.ts +6 -0
- package/build/lib/agents-skill-ref.js +45 -0
- package/build/lib/file-delivery.d.ts +11 -0
- package/build/lib/file-delivery.js +20 -0
- package/build/lib/harness-adapters.d.ts +19 -0
- package/build/lib/harness-adapters.js +166 -0
- package/build/lib/harness-skill-targets.d.ts +38 -0
- package/build/lib/harness-skill-targets.js +95 -0
- package/build/lib/project-context-layout.d.ts +15 -2
- package/build/lib/project-context-layout.js +27 -3
- package/build/lib/workflow-skill-installer.d.ts +2 -0
- package/build/lib/workflow-skill-installer.js +19 -5
- package/build/lib/workflow-skill-template.d.ts +3 -0
- package/build/lib/workflow-skill-template.js +12 -5
- package/build/lib/workflow-skill-version.d.ts +7 -1
- package/build/lib/workflow-skill-version.js +45 -2
- package/build/schemas/index.d.ts +1 -1
- package/build/schemas/output/project-tools.d.ts +16 -1
- package/build/schemas/output/project-tools.js +7 -1
- package/build/schemas/project-tools.d.ts +1 -1
- package/build/schemas/project-tools.js +1 -1
- package/build/tools/__tests__/add_feature.write.unit.test.js +3 -0
- package/build/tools/__tests__/init_project.write.unit.test.js +3 -0
- package/build/tools/__tests__/init_project_context.unit.test.js +28 -0
- package/build/tools/add_feature.js +1 -1
- package/build/tools/init_project.js +8 -6
- package/build/tools/init_project_context.js +52 -30
- 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: "
|
|
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: "
|
|
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:
|
|
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:
|
|
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
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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 {
|
|
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:
|
|
184
|
+
graphReady: fs.existsSync(layoutAbsPath(layout, layout.latestMarkdownPath)),
|
|
185
|
+
contextReady: modularExists,
|
|
181
186
|
});
|
|
182
187
|
const mergedAgents = mergeAgentsMdBlock(existingAgentsRaw, agentsInner);
|
|
183
|
-
const
|
|
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
|
-
? "
|
|
264
|
-
: "
|
|
279
|
+
? "已生成 delegated 写作计划(保留现有分类文档;AGENTS.md 已由 MCP 写入)"
|
|
280
|
+
: "已生成 delegated 写作计划(AGENTS.md 与 layout 已由 MCP 写入)",
|
|
265
281
|
tasks: modularExists
|
|
266
|
-
? ["保留现有分类文档", "
|
|
267
|
-
: ["
|
|
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
|
-
?
|
|
278
|
-
:
|
|
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
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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.
|
|
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
|
+
}
|