@qase/mcp-server 1.0.0-beta.1
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/CHANGELOG.md +165 -0
- package/README.md +450 -0
- package/build/client/index.d.ts +23 -0
- package/build/client/index.d.ts.map +1 -0
- package/build/client/index.js +55 -0
- package/build/client/index.js.map +1 -0
- package/build/index.d.ts +32 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +125 -0
- package/build/index.js.map +1 -0
- package/build/operations/attachments.d.ts +8 -0
- package/build/operations/attachments.d.ts.map +1 -0
- package/build/operations/attachments.js +123 -0
- package/build/operations/attachments.js.map +1 -0
- package/build/operations/authors.d.ts +8 -0
- package/build/operations/authors.d.ts.map +1 -0
- package/build/operations/authors.js +68 -0
- package/build/operations/authors.js.map +1 -0
- package/build/operations/cases.d.ts +8 -0
- package/build/operations/cases.d.ts.map +1 -0
- package/build/operations/cases.js +278 -0
- package/build/operations/cases.js.map +1 -0
- package/build/operations/configurations.d.ts +8 -0
- package/build/operations/configurations.d.ts.map +1 -0
- package/build/operations/configurations.js +102 -0
- package/build/operations/configurations.js.map +1 -0
- package/build/operations/custom-fields.d.ts +8 -0
- package/build/operations/custom-fields.d.ts.map +1 -0
- package/build/operations/custom-fields.js +167 -0
- package/build/operations/custom-fields.js.map +1 -0
- package/build/operations/defects.d.ts +8 -0
- package/build/operations/defects.d.ts.map +1 -0
- package/build/operations/defects.js +219 -0
- package/build/operations/defects.js.map +1 -0
- package/build/operations/environments.d.ts +8 -0
- package/build/operations/environments.d.ts.map +1 -0
- package/build/operations/environments.js +149 -0
- package/build/operations/environments.js.map +1 -0
- package/build/operations/milestones.d.ts +8 -0
- package/build/operations/milestones.d.ts.map +1 -0
- package/build/operations/milestones.js +150 -0
- package/build/operations/milestones.js.map +1 -0
- package/build/operations/plans.d.ts +8 -0
- package/build/operations/plans.d.ts.map +1 -0
- package/build/operations/plans.js +153 -0
- package/build/operations/plans.js.map +1 -0
- package/build/operations/projects.d.ts +8 -0
- package/build/operations/projects.d.ts.map +1 -0
- package/build/operations/projects.js +186 -0
- package/build/operations/projects.js.map +1 -0
- package/build/operations/results.d.ts +8 -0
- package/build/operations/results.d.ts.map +1 -0
- package/build/operations/results.js +208 -0
- package/build/operations/results.js.map +1 -0
- package/build/operations/runs.d.ts +8 -0
- package/build/operations/runs.d.ts.map +1 -0
- package/build/operations/runs.js +211 -0
- package/build/operations/runs.js.map +1 -0
- package/build/operations/search.d.ts +8 -0
- package/build/operations/search.d.ts.map +1 -0
- package/build/operations/search.js +138 -0
- package/build/operations/search.js.map +1 -0
- package/build/operations/shared-parameters.d.ts +8 -0
- package/build/operations/shared-parameters.d.ts.map +1 -0
- package/build/operations/shared-parameters.js +139 -0
- package/build/operations/shared-parameters.js.map +1 -0
- package/build/operations/shared-steps.d.ts +8 -0
- package/build/operations/shared-steps.d.ts.map +1 -0
- package/build/operations/shared-steps.js +155 -0
- package/build/operations/shared-steps.js.map +1 -0
- package/build/operations/suites.d.ts +8 -0
- package/build/operations/suites.d.ts.map +1 -0
- package/build/operations/suites.js +164 -0
- package/build/operations/suites.js.map +1 -0
- package/build/operations/system-fields.d.ts +8 -0
- package/build/operations/system-fields.d.ts.map +1 -0
- package/build/operations/system-fields.js +40 -0
- package/build/operations/system-fields.js.map +1 -0
- package/build/operations/users.d.ts +8 -0
- package/build/operations/users.d.ts.map +1 -0
- package/build/operations/users.js +68 -0
- package/build/operations/users.js.map +1 -0
- package/build/types/index.d.ts +49 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/index.js +13 -0
- package/build/types/index.js.map +1 -0
- package/build/utils/errors.d.ts +73 -0
- package/build/utils/errors.d.ts.map +1 -0
- package/build/utils/errors.js +136 -0
- package/build/utils/errors.js.map +1 -0
- package/build/utils/qql-helpers.d.ts +59 -0
- package/build/utils/qql-helpers.d.ts.map +1 -0
- package/build/utils/qql-helpers.js +85 -0
- package/build/utils/qql-helpers.js.map +1 -0
- package/build/utils/registry.d.ts +97 -0
- package/build/utils/registry.d.ts.map +1 -0
- package/build/utils/registry.js +132 -0
- package/build/utils/registry.js.map +1 -0
- package/build/utils/test-helpers.d.ts +32 -0
- package/build/utils/test-helpers.d.ts.map +1 -0
- package/build/utils/test-helpers.js +81 -0
- package/build/utils/test-helpers.js.map +1 -0
- package/build/utils/validation.d.ts +107 -0
- package/build/utils/validation.d.ts.map +1 -0
- package/build/utils/validation.js +104 -0
- package/build/utils/validation.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable Zod schemas and validation helpers for:
|
|
5
|
+
* - Common parameters (pagination, search, etc.)
|
|
6
|
+
* - Qase-specific formats (project codes, IDs, etc.)
|
|
7
|
+
* - Schema composition utilities
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
/**
|
|
11
|
+
* Schema for pagination parameters
|
|
12
|
+
* Used across all list operations
|
|
13
|
+
*/
|
|
14
|
+
export declare const PaginationSchema: z.ZodObject<{
|
|
15
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
limit?: number | undefined;
|
|
19
|
+
offset?: number | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
limit?: number | undefined;
|
|
22
|
+
offset?: number | undefined;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Schema for Qase project codes
|
|
26
|
+
* Format: 2-10 uppercase letters, numbers, or underscores
|
|
27
|
+
* Examples: DEMO, TEST, MY_PROJECT, PROJECT_123
|
|
28
|
+
*/
|
|
29
|
+
export declare const ProjectCodeSchema: z.ZodString;
|
|
30
|
+
/**
|
|
31
|
+
* Schema for search query strings
|
|
32
|
+
*/
|
|
33
|
+
export declare const SearchSchema: z.ZodOptional<z.ZodString>;
|
|
34
|
+
/**
|
|
35
|
+
* Schema for entity IDs (positive integers)
|
|
36
|
+
*/
|
|
37
|
+
export declare const IdSchema: z.ZodNumber;
|
|
38
|
+
/**
|
|
39
|
+
* Schema for hash identifiers (used by some entities like shared steps)
|
|
40
|
+
*/
|
|
41
|
+
export declare const HashSchema: z.ZodString;
|
|
42
|
+
/**
|
|
43
|
+
* Schema for filtering by entity status
|
|
44
|
+
*/
|
|
45
|
+
export declare const StatusFilterSchema: z.ZodOptional<z.ZodEnum<["active", "archived", "deleted"]>>;
|
|
46
|
+
/**
|
|
47
|
+
* Helper function to merge a schema with pagination parameters
|
|
48
|
+
*
|
|
49
|
+
* @param schema - The base schema to extend
|
|
50
|
+
* @returns Combined schema with pagination
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const ListProjectsSchema = withPagination({
|
|
55
|
+
* search: SearchSchema,
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function withPagination<T extends z.ZodRawShape>(schema: T): z.ZodObject<z.objectUtil.extendShape<T, {
|
|
60
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
}>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<T, {
|
|
63
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
}>>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<T, {
|
|
66
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
offset: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
}>> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
|
|
69
|
+
/**
|
|
70
|
+
* Helper function to add project code to a schema
|
|
71
|
+
*
|
|
72
|
+
* @param schema - The base schema to extend
|
|
73
|
+
* @returns Combined schema with project code
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const GetCaseSchema = withProjectCode({
|
|
78
|
+
* id: IdSchema,
|
|
79
|
+
* });
|
|
80
|
+
* // Results in: { code: ProjectCodeSchema, id: IdSchema }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function withProjectCode<T extends z.ZodRawShape>(schema: T): z.ZodObject<{
|
|
84
|
+
code: z.ZodString;
|
|
85
|
+
} & T, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
|
|
86
|
+
code: z.ZodString;
|
|
87
|
+
} & T>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
|
|
88
|
+
code: z.ZodString;
|
|
89
|
+
} & T> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
|
|
90
|
+
/**
|
|
91
|
+
* Helper function to make all fields in a schema optional
|
|
92
|
+
*
|
|
93
|
+
* @param schema - The schema to make partial
|
|
94
|
+
* @returns Schema with all fields optional
|
|
95
|
+
*/
|
|
96
|
+
export declare function makePartial<T extends z.ZodObject<z.ZodRawShape>>(schema: T): z.ZodObject<{
|
|
97
|
+
[x: string]: z.ZodOptional<z.ZodTypeAny>;
|
|
98
|
+
}, z.UnknownKeysParam, z.ZodTypeAny, {
|
|
99
|
+
[x: string]: any;
|
|
100
|
+
}, {
|
|
101
|
+
[x: string]: any;
|
|
102
|
+
}>;
|
|
103
|
+
export type Pagination = z.infer<typeof PaginationSchema>;
|
|
104
|
+
export type ProjectCode = z.infer<typeof ProjectCodeSchema>;
|
|
105
|
+
export type EntityId = z.infer<typeof IdSchema>;
|
|
106
|
+
export type Hash = z.infer<typeof HashSchema>;
|
|
107
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;EAc3B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,aAQ+C,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,YAAY,4BAAwE,CAAC;AAElG;;GAEG;AACH,eAAO,MAAM,QAAQ,aAAuE,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,UAAU,aAAyD,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,kBAAkB,6DAGO,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;;;;;;;;;mEAEhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;;;;;;sEAKjE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;;;;;;GAE1E;AAGD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides reusable Zod schemas and validation helpers for:
|
|
5
|
+
* - Common parameters (pagination, search, etc.)
|
|
6
|
+
* - Qase-specific formats (project codes, IDs, etc.)
|
|
7
|
+
* - Schema composition utilities
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
/**
|
|
11
|
+
* Schema for pagination parameters
|
|
12
|
+
* Used across all list operations
|
|
13
|
+
*/
|
|
14
|
+
export const PaginationSchema = z.object({
|
|
15
|
+
limit: z
|
|
16
|
+
.number()
|
|
17
|
+
.int()
|
|
18
|
+
.positive()
|
|
19
|
+
.max(100)
|
|
20
|
+
.optional()
|
|
21
|
+
.describe('Maximum number of items to return (default: 10, max: 100)'),
|
|
22
|
+
offset: z
|
|
23
|
+
.number()
|
|
24
|
+
.int()
|
|
25
|
+
.nonnegative()
|
|
26
|
+
.optional()
|
|
27
|
+
.describe('Number of items to skip for pagination (default: 0)'),
|
|
28
|
+
});
|
|
29
|
+
/**
|
|
30
|
+
* Schema for Qase project codes
|
|
31
|
+
* Format: 2-10 uppercase letters, numbers, or underscores
|
|
32
|
+
* Examples: DEMO, TEST, MY_PROJECT, PROJECT_123
|
|
33
|
+
*/
|
|
34
|
+
export const ProjectCodeSchema = z
|
|
35
|
+
.string()
|
|
36
|
+
.min(2, 'Project code must be at least 2 characters')
|
|
37
|
+
.max(10, 'Project code must be at most 10 characters')
|
|
38
|
+
.regex(/^[A-Z0-9_]+$/, 'Project code must contain only uppercase letters, numbers, or underscores')
|
|
39
|
+
.describe('Project code (2-10 uppercase letters, numbers, or underscores)');
|
|
40
|
+
/**
|
|
41
|
+
* Schema for search query strings
|
|
42
|
+
*/
|
|
43
|
+
export const SearchSchema = z.string().min(1).max(255).optional().describe('Search query string');
|
|
44
|
+
/**
|
|
45
|
+
* Schema for entity IDs (positive integers)
|
|
46
|
+
*/
|
|
47
|
+
export const IdSchema = z.number().int().positive().describe('Entity ID (positive integer)');
|
|
48
|
+
/**
|
|
49
|
+
* Schema for hash identifiers (used by some entities like shared steps)
|
|
50
|
+
*/
|
|
51
|
+
export const HashSchema = z.string().min(1).max(255).describe('Hash identifier');
|
|
52
|
+
/**
|
|
53
|
+
* Schema for filtering by entity status
|
|
54
|
+
*/
|
|
55
|
+
export const StatusFilterSchema = z
|
|
56
|
+
.enum(['active', 'archived', 'deleted'])
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Filter by entity status');
|
|
59
|
+
/**
|
|
60
|
+
* Helper function to merge a schema with pagination parameters
|
|
61
|
+
*
|
|
62
|
+
* @param schema - The base schema to extend
|
|
63
|
+
* @returns Combined schema with pagination
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const ListProjectsSchema = withPagination({
|
|
68
|
+
* search: SearchSchema,
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export function withPagination(schema) {
|
|
73
|
+
return z.object(schema).merge(PaginationSchema);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Helper function to add project code to a schema
|
|
77
|
+
*
|
|
78
|
+
* @param schema - The base schema to extend
|
|
79
|
+
* @returns Combined schema with project code
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const GetCaseSchema = withProjectCode({
|
|
84
|
+
* id: IdSchema,
|
|
85
|
+
* });
|
|
86
|
+
* // Results in: { code: ProjectCodeSchema, id: IdSchema }
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export function withProjectCode(schema) {
|
|
90
|
+
return z.object({
|
|
91
|
+
code: ProjectCodeSchema,
|
|
92
|
+
...schema,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Helper function to make all fields in a schema optional
|
|
97
|
+
*
|
|
98
|
+
* @param schema - The schema to make partial
|
|
99
|
+
* @returns Schema with all fields optional
|
|
100
|
+
*/
|
|
101
|
+
export function makePartial(schema) {
|
|
102
|
+
return schema.partial();
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;CACnE,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,4CAA4C,CAAC;KACpD,GAAG,CAAC,EAAE,EAAE,4CAA4C,CAAC;KACrD,KAAK,CACJ,cAAc,EACd,2EAA2E,CAC5E;KACA,QAAQ,CAAC,gEAAgE,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAElG;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AAE7F;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;KACvC,QAAQ,EAAE;KACV,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc,CAA0B,MAAS;IAC/D,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAA0B,MAAS;IAChE,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,GAAG,MAAM;KACV,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAuC,MAAS;IACzE,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@qase/mcp-server",
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
|
+
"description": "Official MCP server for Qase Test Management Platform",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "build/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"qase-mcp-server": "build/index.js"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/qase-tms/qase-mcp-server.git"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"qase",
|
|
18
|
+
"testing",
|
|
19
|
+
"test-management",
|
|
20
|
+
"model-context-protocol",
|
|
21
|
+
"test-automation",
|
|
22
|
+
"qa",
|
|
23
|
+
"quality-assurance",
|
|
24
|
+
"test-cases",
|
|
25
|
+
"test-runs",
|
|
26
|
+
"defect-tracking",
|
|
27
|
+
"claude",
|
|
28
|
+
"ai-assistant",
|
|
29
|
+
"llm",
|
|
30
|
+
"anthropic"
|
|
31
|
+
],
|
|
32
|
+
"author": {
|
|
33
|
+
"name": "Qase",
|
|
34
|
+
"email": "support@qase.io",
|
|
35
|
+
"url": "https://qase.io"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/qase-tms/qase-mcp-server#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/qase-tms/qase-mcp-server/issues",
|
|
40
|
+
"email": "support@qase.io"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=20.0.0"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsc && chmod +x build/index.js",
|
|
47
|
+
"prepare": "husky",
|
|
48
|
+
"watch": "tsc --watch",
|
|
49
|
+
"lint": "eslint src",
|
|
50
|
+
"lint:fix": "eslint src --fix",
|
|
51
|
+
"test": "jest",
|
|
52
|
+
"test:watch": "jest --watch",
|
|
53
|
+
"test:coverage": "jest --coverage",
|
|
54
|
+
"inspector": "npx @modelcontextprotocol/inspector node build/index.js"
|
|
55
|
+
},
|
|
56
|
+
"lint-staged": {
|
|
57
|
+
"src/**/*.ts": [
|
|
58
|
+
"eslint --fix"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"@modelcontextprotocol/sdk": "^0.6.0",
|
|
63
|
+
"axios": "^1.7.0",
|
|
64
|
+
"neverthrow": "^8.2.0",
|
|
65
|
+
"qaseio": "^2.4.1",
|
|
66
|
+
"zod": "^3.24.2",
|
|
67
|
+
"zod-to-json-schema": "^3.24.3"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@types/jest": "^29.5.12",
|
|
71
|
+
"@types/node": "^20.11.24",
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
73
|
+
"@typescript-eslint/parser": "^8.26.1",
|
|
74
|
+
"eslint": "^9.22.0",
|
|
75
|
+
"eslint-config-prettier": "^10.1.1",
|
|
76
|
+
"eslint-plugin-prettier": "^5.2.3",
|
|
77
|
+
"husky": "^9.1.7",
|
|
78
|
+
"jest": "^29.7.0",
|
|
79
|
+
"lint-staged": "^16.2.3",
|
|
80
|
+
"prettier": "^3.4.2",
|
|
81
|
+
"ts-jest": "^29.1.2",
|
|
82
|
+
"typescript": "^5.3.3"
|
|
83
|
+
}
|
|
84
|
+
}
|