@alternative-path/qa-path-mcp 1.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/LICENSE +23 -0
- package/QUICK_INSTALL.md +133 -0
- package/README.md +226 -0
- package/TOOLS_DOCUMENTATION.md +675 -0
- package/dist/__tests__/tools/module-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/module-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/module-tools.test.js +145 -0
- package/dist/__tests__/tools/module-tools.test.js.map +1 -0
- package/dist/__tests__/tools/project-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/project-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/project-tools.test.js +674 -0
- package/dist/__tests__/tools/project-tools.test.js.map +1 -0
- package/dist/__tests__/tools/query-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/query-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/query-tools.test.js +225 -0
- package/dist/__tests__/tools/query-tools.test.js.map +1 -0
- package/dist/__tests__/tools/testgroup-launch-tools.test.d.ts +2 -0
- package/dist/__tests__/tools/testgroup-launch-tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools/testgroup-launch-tools.test.js +553 -0
- package/dist/__tests__/tools/testgroup-launch-tools.test.js.map +1 -0
- package/dist/__tests__/utils/mcp-error-mapper.test.d.ts +2 -0
- package/dist/__tests__/utils/mcp-error-mapper.test.d.ts.map +1 -0
- package/dist/__tests__/utils/mcp-error-mapper.test.js +240 -0
- package/dist/__tests__/utils/mcp-error-mapper.test.js.map +1 -0
- package/dist/__tests__/utils/mcp-response.test.d.ts +2 -0
- package/dist/__tests__/utils/mcp-response.test.d.ts.map +1 -0
- package/dist/__tests__/utils/mcp-response.test.js +72 -0
- package/dist/__tests__/utils/mcp-response.test.js.map +1 -0
- package/dist/agents/test-planner-context.d.ts +7 -0
- package/dist/agents/test-planner-context.d.ts.map +1 -0
- package/dist/agents/test-planner-context.js +283 -0
- package/dist/agents/test-planner-context.js.map +1 -0
- package/dist/agents/test-planner-prompt.d.ts +34 -0
- package/dist/agents/test-planner-prompt.d.ts.map +1 -0
- package/dist/agents/test-planner-prompt.js +82 -0
- package/dist/agents/test-planner-prompt.js.map +1 -0
- package/dist/api-client.d.ts +52 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +285 -0
- package/dist/api-client.js.map +1 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +175 -0
- package/dist/index.js.map +1 -0
- package/dist/services/project-context-service.d.ts +15 -0
- package/dist/services/project-context-service.d.ts.map +1 -0
- package/dist/services/project-context-service.js +36 -0
- package/dist/services/project-context-service.js.map +1 -0
- package/dist/tools/auth-tools.d.ts +16 -0
- package/dist/tools/auth-tools.d.ts.map +1 -0
- package/dist/tools/auth-tools.js +66 -0
- package/dist/tools/auth-tools.js.map +1 -0
- package/dist/tools/automation-tools.d.ts +28 -0
- package/dist/tools/automation-tools.d.ts.map +1 -0
- package/dist/tools/automation-tools.js +541 -0
- package/dist/tools/automation-tools.js.map +1 -0
- package/dist/tools/export-import-tools.d.ts +18 -0
- package/dist/tools/export-import-tools.d.ts.map +1 -0
- package/dist/tools/export-import-tools.js +61 -0
- package/dist/tools/export-import-tools.js.map +1 -0
- package/dist/tools/module-tools.d.ts +43 -0
- package/dist/tools/module-tools.d.ts.map +1 -0
- package/dist/tools/module-tools.js +289 -0
- package/dist/tools/module-tools.js.map +1 -0
- package/dist/tools/project-context-tools.d.ts +19 -0
- package/dist/tools/project-context-tools.d.ts.map +1 -0
- package/dist/tools/project-context-tools.js +133 -0
- package/dist/tools/project-context-tools.js.map +1 -0
- package/dist/tools/project-tools.d.ts +47 -0
- package/dist/tools/project-tools.d.ts.map +1 -0
- package/dist/tools/project-tools.js +362 -0
- package/dist/tools/project-tools.js.map +1 -0
- package/dist/tools/query-tools.d.ts +22 -0
- package/dist/tools/query-tools.d.ts.map +1 -0
- package/dist/tools/query-tools.js +127 -0
- package/dist/tools/query-tools.js.map +1 -0
- package/dist/tools/testcase-tools.d.ts +135 -0
- package/dist/tools/testcase-tools.d.ts.map +1 -0
- package/dist/tools/testcase-tools.js +845 -0
- package/dist/tools/testcase-tools.js.map +1 -0
- package/dist/tools/testgroup-launch-tools.d.ts +37 -0
- package/dist/tools/testgroup-launch-tools.d.ts.map +1 -0
- package/dist/tools/testgroup-launch-tools.js +727 -0
- package/dist/tools/testgroup-launch-tools.js.map +1 -0
- package/dist/utils/mcp-error-mapper.d.ts +27 -0
- package/dist/utils/mcp-error-mapper.d.ts.map +1 -0
- package/dist/utils/mcp-error-mapper.js +79 -0
- package/dist/utils/mcp-error-mapper.js.map +1 -0
- package/dist/utils/mcp-response.d.ts +26 -0
- package/dist/utils/mcp-response.d.ts.map +1 -0
- package/dist/utils/mcp-response.js +34 -0
- package/dist/utils/mcp-response.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"automation-tools.js","sourceRoot":"","sources":["../../src/tools/automation-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { ApiClient } from "../api-client.js";
|
|
3
|
+
import { ProjectContextService } from "../services/project-context-service.js";
|
|
4
|
+
export declare class ExportImportTools {
|
|
5
|
+
private apiClient;
|
|
6
|
+
private projectContext;
|
|
7
|
+
constructor(apiClient: ApiClient, projectContext: ProjectContextService);
|
|
8
|
+
getTools(): Tool[];
|
|
9
|
+
handles(name: string): boolean;
|
|
10
|
+
handle(name: string, args: any): Promise<{
|
|
11
|
+
content: {
|
|
12
|
+
type: string;
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
}>;
|
|
16
|
+
private getExportStructure;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=export-import-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-import-tools.d.ts","sourceRoot":"","sources":["../../src/tools/export-import-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;gBADd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,qBAAqB;IAG/C,QAAQ,IAAI,IAAI,EAAE;IAqBlB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMxB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;YAStB,kBAAkB;CAyBjC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export class ExportImportTools {
|
|
2
|
+
apiClient;
|
|
3
|
+
projectContext;
|
|
4
|
+
constructor(apiClient, projectContext) {
|
|
5
|
+
this.apiClient = apiClient;
|
|
6
|
+
this.projectContext = projectContext;
|
|
7
|
+
}
|
|
8
|
+
getTools() {
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
name: "get_export_structure",
|
|
12
|
+
description: "Get the module structure and test case fields needed for export. Returns JSON with modules hierarchy and available test case fields. This can be used to generate Excel templates.",
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
projectId: {
|
|
17
|
+
type: "string",
|
|
18
|
+
description: "Optional project ID (UUID). If not provided, uses the active project set via 'set_active_project'. " +
|
|
19
|
+
"If no active project is set, the tool will return an error with instructions on how to set one.",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
handles(name) {
|
|
27
|
+
return [
|
|
28
|
+
"get_export_structure",
|
|
29
|
+
].includes(name);
|
|
30
|
+
}
|
|
31
|
+
async handle(name, args) {
|
|
32
|
+
switch (name) {
|
|
33
|
+
case "get_export_structure":
|
|
34
|
+
return await this.getExportStructure(args);
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Unknown export/import tool: ${name}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async getExportStructure(args) {
|
|
40
|
+
const projectId = this.projectContext.resolveProjectId(args, "get_export_structure");
|
|
41
|
+
try {
|
|
42
|
+
const response = await this.apiClient.get("/testcase/get_excel_template", {
|
|
43
|
+
headers: {
|
|
44
|
+
"x-project-id": projectId,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: "text",
|
|
51
|
+
text: JSON.stringify(response, null, 2),
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw new Error(`Failed to get export structure: ${error.message}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=export-import-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export-import-tools.js","sourceRoot":"","sources":["../../src/tools/export-import-tools.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,iBAAiB;IAElB;IACA;IAFV,YACU,SAAoB,EACpB,cAAqC;QADrC,cAAS,GAAT,SAAS,CAAW;QACpB,mBAAc,GAAd,cAAc,CAAuB;IAC5C,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EACT,oLAAoL;gBACtL,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE;4BACT,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,qGAAqG;gCACrG,iGAAiG;yBACpG;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,OAAO;YACL,sBAAsB;SACvB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAS;QAClC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,sBAAsB;gBACzB,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC7C;gBACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAS;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAErF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAGtC,8BAA8B,EAAE;gBACjC,OAAO,EAAE;oBACP,cAAc,EAAE,SAAS;iBAC1B;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { ApiClient } from "../api-client.js";
|
|
3
|
+
import { ProjectContextService } from "../services/project-context-service.js";
|
|
4
|
+
export interface Module {
|
|
5
|
+
id: string;
|
|
6
|
+
parent_id: string | null;
|
|
7
|
+
project_id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
level: number;
|
|
10
|
+
created_at: string;
|
|
11
|
+
updated_at: string;
|
|
12
|
+
deletedAt: string | null;
|
|
13
|
+
context: string;
|
|
14
|
+
children: Module[];
|
|
15
|
+
}
|
|
16
|
+
export interface ModulesResponse {
|
|
17
|
+
success: boolean;
|
|
18
|
+
message: string;
|
|
19
|
+
data: Module[];
|
|
20
|
+
}
|
|
21
|
+
export interface ModuleResponse {
|
|
22
|
+
success: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
data: Module;
|
|
25
|
+
}
|
|
26
|
+
export declare class ModuleTools {
|
|
27
|
+
private apiClient;
|
|
28
|
+
private projectContext;
|
|
29
|
+
constructor(apiClient: ApiClient, projectContext: ProjectContextService);
|
|
30
|
+
getTools(): Tool[];
|
|
31
|
+
handles(name: string): boolean;
|
|
32
|
+
handle(name: string, args: any): Promise<{
|
|
33
|
+
content: {
|
|
34
|
+
type: "text";
|
|
35
|
+
text: string;
|
|
36
|
+
}[];
|
|
37
|
+
}>;
|
|
38
|
+
private listModules;
|
|
39
|
+
private createModule;
|
|
40
|
+
private updateModule;
|
|
41
|
+
private getModule;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=module-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-tools.d.ts","sourceRoot":"","sources":["../../src/tools/module-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,WAAW;IAEpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;gBADd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,qBAAqB;IAG/C,QAAQ,IAAI,IAAI,EAAE;IAwHlB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUxB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;YAiBtB,WAAW;YAqBX,YAAY;YAwDZ,YAAY;YAkEZ,SAAS;CA+BxB"}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { jsonResponse } from "../utils/mcp-response.js";
|
|
2
|
+
export class ModuleTools {
|
|
3
|
+
apiClient;
|
|
4
|
+
projectContext;
|
|
5
|
+
constructor(apiClient, projectContext) {
|
|
6
|
+
this.apiClient = apiClient;
|
|
7
|
+
this.projectContext = projectContext;
|
|
8
|
+
}
|
|
9
|
+
getTools() {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
name: "list_modules",
|
|
13
|
+
description: "List all modules, components, and subcomponents in the project. Returns a hierarchical tree structure with parent-child relationships. Supports searching by module name. The system supports a 3-level hierarchy: Level 1 (Modules - top-level, no parent), Level 2 (Components - children of modules), and Level 3 (Subcomponents - children of components). Each module has a 'level' field (1, 2, or 3) and a 'parent_id' field indicating its parent. Modules without a parent_id are root-level modules (Level 1).",
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: "object",
|
|
16
|
+
properties: {
|
|
17
|
+
projectId: {
|
|
18
|
+
type: "string",
|
|
19
|
+
description: "Optional project ID (UUID). If not provided, uses the active project set via 'set_active_project'. " +
|
|
20
|
+
"If no active project is set, the tool will return an error with instructions on how to set one.",
|
|
21
|
+
},
|
|
22
|
+
search: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "Optional search term to filter modules by name (case-insensitive). Leave empty to get all modules.",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "create_module",
|
|
31
|
+
description: "Create a new module, component, or subcomponent. The system supports a 3-level hierarchy: Level 1 (Modules - top-level), Level 2 (Components - children of modules), and Level 3 (Subcomponents - children of components). The level is determined by the parent_id: if no parentId is provided, creates a Level 1 module; if parentId points to a Level 1 module, creates a Level 2 component; if parentId points to a Level 2 component, creates a Level 3 subcomponent. Maximum depth is 3 levels. Be vary that the user may use these terms interchangeably,for example calling level 2 as module.",
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
name: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Name of the module/component/subcomponent",
|
|
38
|
+
},
|
|
39
|
+
parentId: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Optional parent module ID. Determines the level: no parentId = Level 1 (module), parentId of Level 1 = Level 2 (component), parentId of Level 2 = Level 3 (subcomponent). If not provided, creates a top-level module (Level 1).",
|
|
42
|
+
},
|
|
43
|
+
context: {
|
|
44
|
+
type: "string",
|
|
45
|
+
description: "Optional context/description for the module",
|
|
46
|
+
},
|
|
47
|
+
projectId: {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Optional project ID (UUID). If not provided, uses the active project set via 'set_active_project'. " +
|
|
50
|
+
"If no active project is set, the tool will return an error with instructions on how to set one.",
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
required: ["name"],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: "update_module",
|
|
58
|
+
description: "Update an existing module, component, or subcomponent. You can change its name and/or context.",
|
|
59
|
+
inputSchema: {
|
|
60
|
+
type: "object",
|
|
61
|
+
properties: {
|
|
62
|
+
moduleId: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "ID of the module to update",
|
|
65
|
+
},
|
|
66
|
+
name: {
|
|
67
|
+
type: "string",
|
|
68
|
+
description: "New name for the module",
|
|
69
|
+
},
|
|
70
|
+
context: {
|
|
71
|
+
type: "string",
|
|
72
|
+
description: "New context/description for the module",
|
|
73
|
+
},
|
|
74
|
+
projectId: {
|
|
75
|
+
type: "string",
|
|
76
|
+
description: "Optional project ID (UUID). If not provided, uses the active project set via 'set_active_project'. " +
|
|
77
|
+
"If no active project is set, the tool will return an error with instructions on how to set one.",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
required: ["moduleId"],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
// {
|
|
84
|
+
// name: "delete_module",
|
|
85
|
+
// description:
|
|
86
|
+
// "Delete a module, component, or subcomponent. This will also delete all child modules and test cases within it.",
|
|
87
|
+
// inputSchema: {
|
|
88
|
+
// type: "object",
|
|
89
|
+
// properties: {
|
|
90
|
+
// moduleId: {
|
|
91
|
+
// type: "string",
|
|
92
|
+
// description: "ID of the module to delete",
|
|
93
|
+
// },
|
|
94
|
+
// projectId: {
|
|
95
|
+
// type: "string",
|
|
96
|
+
// description:
|
|
97
|
+
// "Optional project ID. If not provided, uses the configured project ID.",
|
|
98
|
+
// },
|
|
99
|
+
// },
|
|
100
|
+
// required: ["moduleId"],
|
|
101
|
+
// },
|
|
102
|
+
// },
|
|
103
|
+
{
|
|
104
|
+
name: "get_module",
|
|
105
|
+
description: "Get detailed information about a specific module, including its children and path in the hierarchy. Returns the module with its level (1, 2, or 3), parent_id (if any), and all child modules. The hierarchy follows a 3-level structure: Level 1 (Modules), Level 2 (Components), Level 3 (Subcomponents).",
|
|
106
|
+
inputSchema: {
|
|
107
|
+
type: "object",
|
|
108
|
+
properties: {
|
|
109
|
+
moduleId: {
|
|
110
|
+
type: "string",
|
|
111
|
+
description: "ID of the module to retrieve",
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
required: ["moduleId"],
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
handles(name) {
|
|
120
|
+
return [
|
|
121
|
+
"list_modules",
|
|
122
|
+
"create_module",
|
|
123
|
+
"update_module",
|
|
124
|
+
// "delete_module",
|
|
125
|
+
"get_module",
|
|
126
|
+
].includes(name);
|
|
127
|
+
}
|
|
128
|
+
async handle(name, args) {
|
|
129
|
+
switch (name) {
|
|
130
|
+
case "list_modules":
|
|
131
|
+
return await this.listModules(args);
|
|
132
|
+
case "create_module":
|
|
133
|
+
return await this.createModule(args);
|
|
134
|
+
case "update_module":
|
|
135
|
+
return await this.updateModule(args);
|
|
136
|
+
// case "delete_module":
|
|
137
|
+
// return await this.deleteModule(args);
|
|
138
|
+
case "get_module":
|
|
139
|
+
return await this.getModule(args);
|
|
140
|
+
default:
|
|
141
|
+
throw new Error(`Unknown module tool: ${name}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async listModules(args) {
|
|
145
|
+
const projectId = this.projectContext.resolveProjectId(args, "list_modules");
|
|
146
|
+
const { search } = args;
|
|
147
|
+
const queryParams = {};
|
|
148
|
+
if (search && typeof search === 'string' && search.trim().length > 0) {
|
|
149
|
+
queryParams.search = search.trim();
|
|
150
|
+
}
|
|
151
|
+
const response = await this.apiClient.get(`${projectId}/testcase/fetchmodule`, { params: Object.keys(queryParams).length > 0 ? queryParams : undefined });
|
|
152
|
+
return jsonResponse({
|
|
153
|
+
success: response.success,
|
|
154
|
+
message: response.message,
|
|
155
|
+
data: response.data,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
async createModule(args) {
|
|
159
|
+
const { name, parentId, context } = args;
|
|
160
|
+
const projectId = this.projectContext.resolveProjectId(args, "create_module");
|
|
161
|
+
if (!name) {
|
|
162
|
+
throw new Error("Module name is required");
|
|
163
|
+
}
|
|
164
|
+
// Determine level based on parent
|
|
165
|
+
let level = 1;
|
|
166
|
+
if (parentId) {
|
|
167
|
+
// Fetch parent to determine level
|
|
168
|
+
try {
|
|
169
|
+
const response = await this.apiClient.get(`${projectId}/modules/get`);
|
|
170
|
+
// Find parent module in the response data
|
|
171
|
+
const findModule = (modules, id) => {
|
|
172
|
+
for (const module of modules) {
|
|
173
|
+
if (module.id === id)
|
|
174
|
+
return module;
|
|
175
|
+
if (module.children && module.children.length > 0) {
|
|
176
|
+
const found = findModule(module.children, id);
|
|
177
|
+
if (found)
|
|
178
|
+
return found;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
};
|
|
183
|
+
const parent = findModule(response.data, parentId);
|
|
184
|
+
if (parent) {
|
|
185
|
+
level = (parent.level || 1) + 1;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
level = 2; // If parent not found, assume level 2
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
// If parent fetch fails, assume level 2
|
|
193
|
+
level = 2;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
const response = await this.apiClient.post(`${projectId}/modules/create`, {
|
|
197
|
+
name,
|
|
198
|
+
parentId: parentId || null,
|
|
199
|
+
level,
|
|
200
|
+
context: context || null,
|
|
201
|
+
});
|
|
202
|
+
return jsonResponse({
|
|
203
|
+
success: response.success,
|
|
204
|
+
message: response.message,
|
|
205
|
+
data: response.data,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
async updateModule(args) {
|
|
209
|
+
const { moduleId, name, context } = args;
|
|
210
|
+
const projectId = this.projectContext.resolveProjectId(args, "update_module");
|
|
211
|
+
if (!moduleId) {
|
|
212
|
+
throw new Error("Module ID is required");
|
|
213
|
+
}
|
|
214
|
+
const updateData = {};
|
|
215
|
+
if (name !== undefined)
|
|
216
|
+
updateData.name = name;
|
|
217
|
+
if (context !== undefined)
|
|
218
|
+
updateData.context = context;
|
|
219
|
+
if (Object.keys(updateData).length === 0) {
|
|
220
|
+
throw new Error("At least one field (name or context) must be provided to update");
|
|
221
|
+
}
|
|
222
|
+
const response = await this.apiClient.put(`${projectId}/modules/${moduleId}`, updateData);
|
|
223
|
+
return jsonResponse({
|
|
224
|
+
success: response.success,
|
|
225
|
+
message: response.message,
|
|
226
|
+
data: response.data,
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
// private async deleteModule(args: any) {
|
|
230
|
+
// const { moduleId, projectId: argProjectId } = args;
|
|
231
|
+
// const projectId = argProjectId || this.apiClient["projectId"];
|
|
232
|
+
// if (!moduleId) {
|
|
233
|
+
// throw new Error("Module ID is required");
|
|
234
|
+
// }
|
|
235
|
+
// if (!projectId) {
|
|
236
|
+
// throw new Error("Project ID is required. Provide it as an argument or set QA_PATH_PROJECT_ID.");
|
|
237
|
+
// }
|
|
238
|
+
// interface DeleteResponse {
|
|
239
|
+
// success: boolean;
|
|
240
|
+
// message: string;
|
|
241
|
+
// }
|
|
242
|
+
// const response = await this.apiClient.delete<DeleteResponse>(
|
|
243
|
+
// `${projectId}/modules/${moduleId}`
|
|
244
|
+
// );
|
|
245
|
+
// return {
|
|
246
|
+
// content: [
|
|
247
|
+
// {
|
|
248
|
+
// type: "text",
|
|
249
|
+
// text: JSON.stringify(
|
|
250
|
+
// {
|
|
251
|
+
// success: response.success,
|
|
252
|
+
// message: response.message,
|
|
253
|
+
// },
|
|
254
|
+
// null,
|
|
255
|
+
// 2
|
|
256
|
+
// ),
|
|
257
|
+
// },
|
|
258
|
+
// ],
|
|
259
|
+
// };
|
|
260
|
+
// }
|
|
261
|
+
async getModule(args) {
|
|
262
|
+
const { moduleId } = args;
|
|
263
|
+
const projectId = this.projectContext.resolveProjectId(args, "get_module");
|
|
264
|
+
if (!moduleId) {
|
|
265
|
+
throw new Error("Module ID is required");
|
|
266
|
+
}
|
|
267
|
+
// Since there's no direct get-by-id endpoint, we'll list all and find the one
|
|
268
|
+
const response = await this.apiClient.get(`${projectId}/modules/get`);
|
|
269
|
+
const modules = response.data;
|
|
270
|
+
const findModule = (modules, id) => {
|
|
271
|
+
for (const module of modules) {
|
|
272
|
+
if (module.id === id)
|
|
273
|
+
return module;
|
|
274
|
+
if (module.children) {
|
|
275
|
+
const found = findModule(module.children, id);
|
|
276
|
+
if (found)
|
|
277
|
+
return found;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return null;
|
|
281
|
+
};
|
|
282
|
+
const module = findModule(modules, moduleId);
|
|
283
|
+
if (!module) {
|
|
284
|
+
throw new Error(`Module with ID ${moduleId} not found`);
|
|
285
|
+
}
|
|
286
|
+
return jsonResponse(module);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=module-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-tools.js","sourceRoot":"","sources":["../../src/tools/module-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { ApiClient } from "../api-client.js";
|
|
3
|
+
import { ProjectContextService } from "../services/project-context-service.js";
|
|
4
|
+
export declare class ProjectContextTools {
|
|
5
|
+
private apiClient;
|
|
6
|
+
private projectContext;
|
|
7
|
+
constructor(apiClient: ApiClient, projectContext: ProjectContextService);
|
|
8
|
+
getTools(): Tool[];
|
|
9
|
+
handles(name: string): boolean;
|
|
10
|
+
handle(name: string, args: any): Promise<{
|
|
11
|
+
content: {
|
|
12
|
+
type: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
}[];
|
|
15
|
+
}>;
|
|
16
|
+
private setActiveProject;
|
|
17
|
+
private getActiveProject;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=project-context-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-context-tools.d.ts","sourceRoot":"","sources":["../../src/tools/project-context-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE/E,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc;gBADd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,qBAAqB;IAG/C,QAAQ,IAAI,IAAI,EAAE;IAwClB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIxB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;YAWtB,gBAAgB;YA+ChB,gBAAgB;CA2C/B"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsonResponse } from "../utils/mcp-response.js";
|
|
2
|
+
export class ProjectContextTools {
|
|
3
|
+
apiClient;
|
|
4
|
+
projectContext;
|
|
5
|
+
constructor(apiClient, projectContext) {
|
|
6
|
+
this.apiClient = apiClient;
|
|
7
|
+
this.projectContext = projectContext;
|
|
8
|
+
}
|
|
9
|
+
getTools() {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
name: "set_active_project",
|
|
13
|
+
description: "Set the active project for subsequent operations. " +
|
|
14
|
+
"Once set, all tools that require a project will use this project automatically. " +
|
|
15
|
+
"The active project persists for the lifetime of the MCP server process (until Cursor/VS Code is closed). " +
|
|
16
|
+
"IMPORTANT: When a tool requires a projectId and none is set, you should:\n" +
|
|
17
|
+
"1. First call 'list_projects' to show available projects to the user\n" +
|
|
18
|
+
"2. Ask the user which project they want to use (they can identify by name, but you must use the projectId)\n" +
|
|
19
|
+
"3. Once the user selects, call this tool with the projectId (UUID) from the list_projects response\n" +
|
|
20
|
+
"4. Then retry the original operation that needed the projectId",
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
projectId: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Project ID (UUID). Get this from the 'list_projects' tool. Required."
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
required: ["projectId"]
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "get_active_project",
|
|
34
|
+
description: "Get the currently active project. Returns the project ID and name if one is set, " +
|
|
35
|
+
"or an error if no project is active. " +
|
|
36
|
+
"Use this to check if a project is already set before asking the user. " +
|
|
37
|
+
"If no project is active, use 'list_projects' and 'set_active_project' to set one.",
|
|
38
|
+
inputSchema: {
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: {}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
handles(name) {
|
|
46
|
+
return ["set_active_project", "get_active_project"].includes(name);
|
|
47
|
+
}
|
|
48
|
+
async handle(name, args) {
|
|
49
|
+
switch (name) {
|
|
50
|
+
case "set_active_project":
|
|
51
|
+
return await this.setActiveProject(args);
|
|
52
|
+
case "get_active_project":
|
|
53
|
+
return await this.getActiveProject();
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`Unknown project context tool: ${name}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async setActiveProject(args) {
|
|
59
|
+
const { projectId } = args;
|
|
60
|
+
if (!projectId) {
|
|
61
|
+
return jsonResponse({
|
|
62
|
+
success: false,
|
|
63
|
+
error_code: "MISSING_PROJECT_ID",
|
|
64
|
+
message: "projectId is required. Use 'list_projects' to find available projects and get the projectId (UUID)."
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Try to validate project exists and user has access
|
|
68
|
+
// If validation fails, we'll still set it (operations will fail if no access anyway)
|
|
69
|
+
let projectName = projectId; // Default to projectId if we can't fetch name
|
|
70
|
+
let prefix = "";
|
|
71
|
+
try {
|
|
72
|
+
const project = await this.apiClient.get(`/project/getProjectInfo/${projectId}`);
|
|
73
|
+
if (project.success && project.data) {
|
|
74
|
+
projectName = project.data.name;
|
|
75
|
+
prefix = project.data.prefix;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
// Validation failed, but we'll still set the project
|
|
80
|
+
// Subsequent operations will fail if user doesn't have access
|
|
81
|
+
// This is acceptable since the user likely got projectId from list_projects
|
|
82
|
+
}
|
|
83
|
+
// Set as active project
|
|
84
|
+
this.projectContext.setActiveProjectId(projectId);
|
|
85
|
+
this.apiClient.setProjectId(projectId);
|
|
86
|
+
return jsonResponse({
|
|
87
|
+
success: true,
|
|
88
|
+
message: `Active project set to: ${projectName} (${projectId}). You can now use other tools without specifying projectId - they will use this project automatically.`,
|
|
89
|
+
data: {
|
|
90
|
+
projectId: projectId,
|
|
91
|
+
projectName: projectName,
|
|
92
|
+
prefix: prefix
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async getActiveProject() {
|
|
97
|
+
const projectId = this.projectContext.getActiveProjectId();
|
|
98
|
+
if (!projectId) {
|
|
99
|
+
return jsonResponse({
|
|
100
|
+
success: false,
|
|
101
|
+
error_code: "NO_ACTIVE_PROJECT",
|
|
102
|
+
message: "No active project is set. Use 'set_active_project' to set a project first."
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const project = await this.apiClient.get(`/project/getProjectInfo/${projectId}`);
|
|
107
|
+
if (!project.success || !project.data) {
|
|
108
|
+
return jsonResponse({
|
|
109
|
+
success: false,
|
|
110
|
+
error_code: "ACTIVE_PROJECT_INVALID",
|
|
111
|
+
message: `Active project ${projectId} is no longer valid. Please set a new active project.`
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return jsonResponse({
|
|
115
|
+
success: true,
|
|
116
|
+
message: `Active project: ${project.data.name}`,
|
|
117
|
+
data: {
|
|
118
|
+
projectId: project.data.id,
|
|
119
|
+
projectName: project.data.name,
|
|
120
|
+
prefix: project.data.prefix
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
return jsonResponse({
|
|
126
|
+
success: false,
|
|
127
|
+
error_code: "PROJECT_FETCH_FAILED",
|
|
128
|
+
message: `Failed to fetch active project: ${error.message}`
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=project-context-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-context-tools.js","sourceRoot":"","sources":["../../src/tools/project-context-tools.ts"],"names":[],"mappings":"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"}
|