@qase/mcp-server 1.1.8 → 2.0.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 +38 -0
- package/README.md +75 -542
- package/build/auth/client-context.d.ts +12 -0
- package/build/auth/client-context.d.ts.map +1 -0
- package/build/auth/client-context.js +12 -0
- package/build/auth/client-context.js.map +1 -0
- package/build/auth/jwks-verifier.d.ts +15 -0
- package/build/auth/jwks-verifier.d.ts.map +1 -0
- package/build/auth/jwks-verifier.js +31 -0
- package/build/auth/jwks-verifier.js.map +1 -0
- package/build/auth/mcp-guard.d.ts +15 -0
- package/build/auth/mcp-guard.d.ts.map +1 -0
- package/build/auth/mcp-guard.js +44 -0
- package/build/auth/mcp-guard.js.map +1 -0
- package/build/auth/oauth-config.d.ts +40 -0
- package/build/auth/oauth-config.d.ts.map +1 -0
- package/build/auth/oauth-config.js +34 -0
- package/build/auth/oauth-config.js.map +1 -0
- package/build/auth/proxy-provider.d.ts +31 -0
- package/build/auth/proxy-provider.d.ts.map +1 -0
- package/build/auth/proxy-provider.js +87 -0
- package/build/auth/proxy-provider.js.map +1 -0
- package/build/auth/token-type.d.ts +7 -0
- package/build/auth/token-type.d.ts.map +1 -0
- package/build/auth/token-type.js +10 -0
- package/build/auth/token-type.js.map +1 -0
- package/build/cache/circuit-breaker.d.ts +33 -0
- package/build/cache/circuit-breaker.d.ts.map +1 -0
- package/build/cache/circuit-breaker.js +68 -0
- package/build/cache/circuit-breaker.js.map +1 -0
- package/build/cache/index.d.ts +24 -0
- package/build/cache/index.d.ts.map +1 -0
- package/build/cache/index.js +86 -0
- package/build/cache/index.js.map +1 -0
- package/build/cache/keys.d.ts +25 -0
- package/build/cache/keys.d.ts.map +1 -0
- package/build/cache/keys.js +36 -0
- package/build/cache/keys.js.map +1 -0
- package/build/cache/layered.d.ts +31 -0
- package/build/cache/layered.d.ts.map +1 -0
- package/build/cache/layered.js +88 -0
- package/build/cache/layered.js.map +1 -0
- package/build/cache/memory.d.ts +32 -0
- package/build/cache/memory.d.ts.map +1 -0
- package/build/cache/memory.js +108 -0
- package/build/cache/memory.js.map +1 -0
- package/build/cache/metrics.d.ts +31 -0
- package/build/cache/metrics.d.ts.map +1 -0
- package/build/cache/metrics.js +95 -0
- package/build/cache/metrics.js.map +1 -0
- package/build/cache/prom-format.d.ts +7 -0
- package/build/cache/prom-format.d.ts.map +1 -0
- package/build/cache/prom-format.js +16 -0
- package/build/cache/prom-format.js.map +1 -0
- package/build/cache/redis-bus.d.ts +29 -0
- package/build/cache/redis-bus.d.ts.map +1 -0
- package/build/cache/redis-bus.js +50 -0
- package/build/cache/redis-bus.js.map +1 -0
- package/build/cache/redis.d.ts +32 -0
- package/build/cache/redis.d.ts.map +1 -0
- package/build/cache/redis.js +89 -0
- package/build/cache/redis.js.map +1 -0
- package/build/cache/types.d.ts +38 -0
- package/build/cache/types.d.ts.map +1 -0
- package/build/cache/types.js +2 -0
- package/build/cache/types.js.map +1 -0
- package/build/client/index.d.ts +10 -3
- package/build/client/index.d.ts.map +1 -1
- package/build/client/index.js +75 -50
- package/build/client/index.js.map +1 -1
- package/build/http/agent.d.ts +16 -0
- package/build/http/agent.d.ts.map +1 -0
- package/build/http/agent.js +16 -0
- package/build/http/agent.js.map +1 -0
- package/build/http/dedupe.d.ts +14 -0
- package/build/http/dedupe.d.ts.map +1 -0
- package/build/http/dedupe.js +69 -0
- package/build/http/dedupe.js.map +1 -0
- package/build/http/index.d.ts +6 -0
- package/build/http/index.d.ts.map +1 -0
- package/build/http/index.js +4 -0
- package/build/http/index.js.map +1 -0
- package/build/http/retry.d.ts +18 -0
- package/build/http/retry.d.ts.map +1 -0
- package/build/http/retry.js +52 -0
- package/build/http/retry.js.map +1 -0
- package/build/index.d.ts +1 -18
- package/build/index.d.ts.map +1 -1
- package/build/index.js +95 -63
- package/build/index.js.map +1 -1
- package/build/operations-v2/composites/ci-report.d.ts +2 -0
- package/build/operations-v2/composites/ci-report.d.ts.map +1 -0
- package/build/operations-v2/composites/ci-report.js +99 -0
- package/build/operations-v2/composites/ci-report.js.map +1 -0
- package/build/operations-v2/composites/regression-run.d.ts +2 -0
- package/build/operations-v2/composites/regression-run.d.ts.map +1 -0
- package/build/operations-v2/composites/regression-run.js +81 -0
- package/build/operations-v2/composites/regression-run.js.map +1 -0
- package/build/operations-v2/composites/triage-defect.d.ts +2 -0
- package/build/operations-v2/composites/triage-defect.d.ts.map +1 -0
- package/build/operations-v2/composites/triage-defect.js +67 -0
- package/build/operations-v2/composites/triage-defect.js.map +1 -0
- package/build/operations-v2/escape/api.d.ts +2 -0
- package/build/operations-v2/escape/api.d.ts.map +1 -0
- package/build/operations-v2/escape/api.js +34 -0
- package/build/operations-v2/escape/api.js.map +1 -0
- package/build/operations-v2/index.d.ts +21 -0
- package/build/operations-v2/index.d.ts.map +1 -0
- package/build/operations-v2/index.js +27 -0
- package/build/operations-v2/index.js.map +1 -0
- package/build/operations-v2/meta/discover.d.ts +9 -0
- package/build/operations-v2/meta/discover.d.ts.map +1 -0
- package/build/operations-v2/meta/discover.js +79 -0
- package/build/operations-v2/meta/discover.js.map +1 -0
- package/build/{operations/search.d.ts → operations-v2/qql/index.d.ts} +1 -1
- package/build/operations-v2/qql/index.d.ts.map +1 -0
- package/build/{operations/search.js → operations-v2/qql/index.js} +34 -9
- package/build/operations-v2/qql/index.js.map +1 -0
- package/build/operations-v2/read/get.d.ts +2 -0
- package/build/operations-v2/read/get.d.ts.map +1 -0
- package/build/operations-v2/read/get.js +115 -0
- package/build/operations-v2/read/get.js.map +1 -0
- package/build/operations-v2/read/project-context.d.ts +2 -0
- package/build/operations-v2/read/project-context.d.ts.map +1 -0
- package/build/operations-v2/read/project-context.js +102 -0
- package/build/operations-v2/read/project-context.js.map +1 -0
- package/build/operations-v2/write/attachments.d.ts +2 -0
- package/build/operations-v2/write/attachments.d.ts.map +1 -0
- package/build/operations-v2/write/attachments.js +58 -0
- package/build/operations-v2/write/attachments.js.map +1 -0
- package/build/operations-v2/write/case-fields.d.ts +206 -0
- package/build/operations-v2/write/case-fields.d.ts.map +1 -0
- package/build/operations-v2/write/case-fields.js +79 -0
- package/build/operations-v2/write/case-fields.js.map +1 -0
- package/build/operations-v2/write/cases-bulk.d.ts +2 -0
- package/build/operations-v2/write/cases-bulk.d.ts.map +1 -0
- package/build/operations-v2/write/cases-bulk.js +54 -0
- package/build/operations-v2/write/cases-bulk.js.map +1 -0
- package/build/operations-v2/write/cases.d.ts +2 -0
- package/build/operations-v2/write/cases.d.ts.map +1 -0
- package/build/operations-v2/write/cases.js +52 -0
- package/build/operations-v2/write/cases.js.map +1 -0
- package/build/operations-v2/write/defects.d.ts +2 -0
- package/build/operations-v2/write/defects.d.ts.map +1 -0
- package/build/operations-v2/write/defects.js +81 -0
- package/build/operations-v2/write/defects.js.map +1 -0
- package/build/operations-v2/write/environments.d.ts +2 -0
- package/build/operations-v2/write/environments.d.ts.map +1 -0
- package/build/operations-v2/write/environments.js +56 -0
- package/build/operations-v2/write/environments.js.map +1 -0
- package/build/operations-v2/write/external-issues.d.ts +2 -0
- package/build/operations-v2/write/external-issues.d.ts.map +1 -0
- package/build/operations-v2/write/external-issues.js +96 -0
- package/build/operations-v2/write/external-issues.js.map +1 -0
- package/build/operations-v2/write/milestones.d.ts +2 -0
- package/build/operations-v2/write/milestones.d.ts.map +1 -0
- package/build/operations-v2/write/milestones.js +56 -0
- package/build/operations-v2/write/milestones.js.map +1 -0
- package/build/operations-v2/write/plans.d.ts +2 -0
- package/build/operations-v2/write/plans.d.ts.map +1 -0
- package/build/operations-v2/write/plans.js +55 -0
- package/build/operations-v2/write/plans.js.map +1 -0
- package/build/operations-v2/write/results.d.ts +2 -0
- package/build/operations-v2/write/results.d.ts.map +1 -0
- package/build/operations-v2/write/results.js +72 -0
- package/build/operations-v2/write/results.js.map +1 -0
- package/build/operations-v2/write/runs.d.ts +2 -0
- package/build/operations-v2/write/runs.d.ts.map +1 -0
- package/build/operations-v2/write/runs.js +84 -0
- package/build/operations-v2/write/runs.js.map +1 -0
- package/build/operations-v2/write/shared-steps.d.ts +2 -0
- package/build/operations-v2/write/shared-steps.d.ts.map +1 -0
- package/build/operations-v2/write/shared-steps.js +60 -0
- package/build/operations-v2/write/shared-steps.js.map +1 -0
- package/build/operations-v2/write/suites.d.ts +2 -0
- package/build/operations-v2/write/suites.d.ts.map +1 -0
- package/build/operations-v2/write/suites.js +63 -0
- package/build/operations-v2/write/suites.js.map +1 -0
- package/build/prompts/index.d.ts +31 -0
- package/build/prompts/index.d.ts.map +1 -0
- package/build/prompts/index.js +229 -0
- package/build/prompts/index.js.map +1 -0
- package/build/transports/sse.d.ts.map +1 -1
- package/build/transports/sse.js +6 -0
- package/build/transports/sse.js.map +1 -1
- package/build/transports/streamableHttp.d.ts +6 -1
- package/build/transports/streamableHttp.d.ts.map +1 -1
- package/build/transports/streamableHttp.js +128 -16
- package/build/transports/streamableHttp.js.map +1 -1
- package/build/utils/auth-context.d.ts +8 -0
- package/build/utils/auth-context.d.ts.map +1 -1
- package/build/utils/auth-context.js +18 -0
- package/build/utils/auth-context.js.map +1 -1
- package/build/utils/case-enums.d.ts +5 -3
- package/build/utils/case-enums.d.ts.map +1 -1
- package/build/utils/case-enums.js +77 -59
- package/build/utils/case-enums.js.map +1 -1
- package/build/utils/output-schemas.d.ts +16 -0
- package/build/utils/output-schemas.d.ts.map +1 -0
- package/build/utils/output-schemas.js +82 -0
- package/build/utils/output-schemas.js.map +1 -0
- package/build/utils/registry.d.ts +42 -9
- package/build/utils/registry.d.ts.map +1 -1
- package/build/utils/registry.js +64 -11
- package/build/utils/registry.js.map +1 -1
- package/build/utils/response-shape.d.ts +23 -0
- package/build/utils/response-shape.d.ts.map +1 -0
- package/build/utils/response-shape.js +73 -0
- package/build/utils/response-shape.js.map +1 -0
- package/build/utils/rich-response.d.ts +58 -0
- package/build/utils/rich-response.d.ts.map +1 -0
- package/build/utils/rich-response.js +93 -0
- package/build/utils/rich-response.js.map +1 -0
- package/build/utils/server-context.d.ts +65 -0
- package/build/utils/server-context.d.ts.map +1 -0
- package/build/utils/server-context.js +67 -0
- package/build/utils/server-context.js.map +1 -0
- package/build/version.d.ts +1 -1
- package/build/version.js +1 -1
- package/docs/connect.md +81 -0
- package/docs/migration.md +351 -0
- package/docs/self-run.md +270 -0
- package/docs/tools.md +111 -0
- package/docs/troubleshooting.md +144 -0
- package/package.json +11 -2
- package/server.json +8 -2
- package/build/operations/attachments.d.ts +0 -8
- package/build/operations/attachments.d.ts.map +0 -1
- package/build/operations/attachments.js +0 -146
- package/build/operations/attachments.js.map +0 -1
- package/build/operations/authors.d.ts +0 -8
- package/build/operations/authors.d.ts.map +0 -1
- package/build/operations/authors.js +0 -70
- package/build/operations/authors.js.map +0 -1
- package/build/operations/cases.d.ts +0 -8
- package/build/operations/cases.d.ts.map +0 -1
- package/build/operations/cases.js +0 -370
- package/build/operations/cases.js.map +0 -1
- package/build/operations/configurations.d.ts +0 -10
- package/build/operations/configurations.d.ts.map +0 -1
- package/build/operations/configurations.js +0 -125
- package/build/operations/configurations.js.map +0 -1
- package/build/operations/custom-fields.d.ts +0 -8
- package/build/operations/custom-fields.d.ts.map +0 -1
- package/build/operations/custom-fields.js +0 -172
- package/build/operations/custom-fields.js.map +0 -1
- package/build/operations/defects.d.ts +0 -8
- package/build/operations/defects.d.ts.map +0 -1
- package/build/operations/defects.js +0 -256
- package/build/operations/defects.js.map +0 -1
- package/build/operations/environments.d.ts +0 -8
- package/build/operations/environments.d.ts.map +0 -1
- package/build/operations/environments.js +0 -154
- package/build/operations/environments.js.map +0 -1
- package/build/operations/milestones.d.ts +0 -8
- package/build/operations/milestones.d.ts.map +0 -1
- package/build/operations/milestones.js +0 -155
- package/build/operations/milestones.js.map +0 -1
- package/build/operations/plans.d.ts +0 -8
- package/build/operations/plans.d.ts.map +0 -1
- package/build/operations/plans.js +0 -158
- package/build/operations/plans.js.map +0 -1
- package/build/operations/projects.d.ts +0 -8
- package/build/operations/projects.d.ts.map +0 -1
- package/build/operations/projects.js +0 -192
- package/build/operations/projects.js.map +0 -1
- package/build/operations/results.d.ts +0 -8
- package/build/operations/results.d.ts.map +0 -1
- package/build/operations/results.js +0 -214
- package/build/operations/results.js.map +0 -1
- package/build/operations/runs.d.ts +0 -8
- package/build/operations/runs.d.ts.map +0 -1
- package/build/operations/runs.js +0 -224
- package/build/operations/runs.js.map +0 -1
- package/build/operations/search.d.ts.map +0 -1
- package/build/operations/search.js.map +0 -1
- package/build/operations/shared-parameters.d.ts +0 -10
- package/build/operations/shared-parameters.d.ts.map +0 -1
- package/build/operations/shared-parameters.js +0 -93
- package/build/operations/shared-parameters.js.map +0 -1
- package/build/operations/shared-steps.d.ts +0 -8
- package/build/operations/shared-steps.d.ts.map +0 -1
- package/build/operations/shared-steps.js +0 -160
- package/build/operations/shared-steps.js.map +0 -1
- package/build/operations/suites.d.ts +0 -8
- package/build/operations/suites.d.ts.map +0 -1
- package/build/operations/suites.js +0 -169
- package/build/operations/suites.js.map +0 -1
- package/build/operations/system-fields.d.ts +0 -10
- package/build/operations/system-fields.d.ts.map +0 -1
- package/build/operations/system-fields.js +0 -47
- package/build/operations/system-fields.js.map +0 -1
- package/build/operations/users.d.ts +0 -10
- package/build/operations/users.d.ts.map +0 -1
- package/build/operations/users.js +0 -78
- package/build/operations/users.js.map +0 -1
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared Steps Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing shared steps in Qase.
|
|
5
|
-
* Shared steps are reusable test steps that can be included in multiple test cases.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { getApiClient } from '../client/index.js';
|
|
9
|
-
import { toolRegistry, ReadAnnotation, CreateAnnotation, UpdateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
|
|
10
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
11
|
-
import { ProjectCodeSchema, HashSchema } from '../utils/validation.js';
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// SCHEMAS
|
|
14
|
-
// ============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* Schema for shared step content
|
|
17
|
-
*/
|
|
18
|
-
const SharedStepContentSchema = z.object({
|
|
19
|
-
action: z.string().describe('Step action description'),
|
|
20
|
-
expected_result: z.string().optional().describe('Expected result'),
|
|
21
|
-
data: z.string().optional().describe('Test data'),
|
|
22
|
-
attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
|
|
23
|
-
});
|
|
24
|
-
/**
|
|
25
|
-
* Schema for listing shared steps
|
|
26
|
-
*/
|
|
27
|
-
const ListSharedStepsSchema = z.object({
|
|
28
|
-
code: ProjectCodeSchema,
|
|
29
|
-
search: z.string().optional().describe('Search query for step title'),
|
|
30
|
-
limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
|
|
31
|
-
offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
|
|
32
|
-
});
|
|
33
|
-
/**
|
|
34
|
-
* Schema for getting a specific shared step
|
|
35
|
-
*/
|
|
36
|
-
const GetSharedStepSchema = z.object({
|
|
37
|
-
code: ProjectCodeSchema,
|
|
38
|
-
hash: HashSchema.describe('Shared step hash identifier'),
|
|
39
|
-
});
|
|
40
|
-
/**
|
|
41
|
-
* Schema for creating a shared step
|
|
42
|
-
*/
|
|
43
|
-
const CreateSharedStepSchema = z.object({
|
|
44
|
-
code: ProjectCodeSchema,
|
|
45
|
-
title: z.string().min(1).max(255).describe('Shared step title'),
|
|
46
|
-
steps: z.array(SharedStepContentSchema).optional().describe('Array of step definitions'),
|
|
47
|
-
});
|
|
48
|
-
/**
|
|
49
|
-
* Schema for updating a shared step
|
|
50
|
-
*/
|
|
51
|
-
const UpdateSharedStepSchema = z.object({
|
|
52
|
-
code: ProjectCodeSchema,
|
|
53
|
-
hash: HashSchema.describe('Shared step hash identifier'),
|
|
54
|
-
title: z.string().min(1).max(255).optional().describe('Shared step title'),
|
|
55
|
-
steps: z.array(SharedStepContentSchema).optional().describe('Array of step definitions'),
|
|
56
|
-
});
|
|
57
|
-
/**
|
|
58
|
-
* Schema for deleting a shared step
|
|
59
|
-
*/
|
|
60
|
-
const DeleteSharedStepSchema = z.object({
|
|
61
|
-
code: ProjectCodeSchema,
|
|
62
|
-
hash: HashSchema.describe('Shared step hash identifier'),
|
|
63
|
-
});
|
|
64
|
-
// ============================================================================
|
|
65
|
-
// HANDLERS
|
|
66
|
-
// ============================================================================
|
|
67
|
-
/**
|
|
68
|
-
* List all shared steps in a project
|
|
69
|
-
*/
|
|
70
|
-
async function listSharedSteps(args) {
|
|
71
|
-
const client = getApiClient();
|
|
72
|
-
const { code, search, limit, offset } = args;
|
|
73
|
-
const result = await toResultAsync(client.sharedSteps.getSharedSteps(code, search, limit, offset));
|
|
74
|
-
return result.match((response) => response.data.result, (error) => {
|
|
75
|
-
throw createToolError(error, 'shared step operation');
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get a specific shared step
|
|
80
|
-
*/
|
|
81
|
-
async function getSharedStep(args) {
|
|
82
|
-
const client = getApiClient();
|
|
83
|
-
const { code, hash } = args;
|
|
84
|
-
const result = await toResultAsync(client.sharedSteps.getSharedStep(code, hash));
|
|
85
|
-
return result.match((response) => response.data.result, (error) => {
|
|
86
|
-
throw createToolError(error, 'shared step operation');
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Create a new shared step
|
|
91
|
-
*/
|
|
92
|
-
async function createSharedStep(args) {
|
|
93
|
-
const client = getApiClient();
|
|
94
|
-
const { code, ...stepData } = args;
|
|
95
|
-
const result = await toResultAsync(client.sharedSteps.createSharedStep(code, stepData));
|
|
96
|
-
return result.match((response) => response.data.result, (error) => {
|
|
97
|
-
throw createToolError(error, 'shared step operation');
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Update an existing shared step
|
|
102
|
-
*/
|
|
103
|
-
async function updateSharedStep(args) {
|
|
104
|
-
const client = getApiClient();
|
|
105
|
-
const { code, hash, ...updateData } = args;
|
|
106
|
-
const result = await toResultAsync(client.sharedSteps.updateSharedStep(code, hash, updateData));
|
|
107
|
-
return result.match((response) => response.data.result, (error) => {
|
|
108
|
-
throw createToolError(error, 'shared step operation');
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Delete a shared step
|
|
113
|
-
*/
|
|
114
|
-
async function deleteSharedStep(args) {
|
|
115
|
-
const client = getApiClient();
|
|
116
|
-
const { code, hash } = args;
|
|
117
|
-
const result = await toResultAsync(client.sharedSteps.deleteSharedStep(code, hash));
|
|
118
|
-
return result.match((_response) => ({ success: true, hash }), (error) => {
|
|
119
|
-
throw createToolError(error, 'shared step operation');
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
// ============================================================================
|
|
123
|
-
// TOOL REGISTRATION
|
|
124
|
-
// ============================================================================
|
|
125
|
-
toolRegistry.register({
|
|
126
|
-
name: 'list_shared_steps',
|
|
127
|
-
description: 'Get all shared steps in a project with optional search and pagination',
|
|
128
|
-
schema: ListSharedStepsSchema,
|
|
129
|
-
handler: listSharedSteps,
|
|
130
|
-
annotations: ReadAnnotation,
|
|
131
|
-
});
|
|
132
|
-
toolRegistry.register({
|
|
133
|
-
name: 'get_shared_step',
|
|
134
|
-
description: 'Get a specific shared step by project code and hash',
|
|
135
|
-
schema: GetSharedStepSchema,
|
|
136
|
-
handler: getSharedStep,
|
|
137
|
-
annotations: ReadAnnotation,
|
|
138
|
-
});
|
|
139
|
-
toolRegistry.register({
|
|
140
|
-
name: 'create_shared_step',
|
|
141
|
-
description: 'Create a new reusable shared step in a project',
|
|
142
|
-
schema: CreateSharedStepSchema,
|
|
143
|
-
handler: createSharedStep,
|
|
144
|
-
annotations: CreateAnnotation,
|
|
145
|
-
});
|
|
146
|
-
toolRegistry.register({
|
|
147
|
-
name: 'update_shared_step',
|
|
148
|
-
description: 'Update an existing shared step',
|
|
149
|
-
schema: UpdateSharedStepSchema,
|
|
150
|
-
handler: updateSharedStep,
|
|
151
|
-
annotations: UpdateAnnotation,
|
|
152
|
-
});
|
|
153
|
-
toolRegistry.register({
|
|
154
|
-
name: 'delete_shared_step',
|
|
155
|
-
description: 'Delete a shared step from a project',
|
|
156
|
-
schema: DeleteSharedStepSchema,
|
|
157
|
-
handler: deleteSharedStep,
|
|
158
|
-
annotations: DeleteAnnotation,
|
|
159
|
-
});
|
|
160
|
-
//# sourceMappingURL=shared-steps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared-steps.js","sourceRoot":"","sources":["../../src/operations/shared-steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suites.d.ts","sourceRoot":"","sources":["../../src/operations/suites.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Test Suites Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing test suites in Qase.
|
|
5
|
-
* Suites provide organizational hierarchy for test cases.
|
|
6
|
-
*/
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
import { getApiClient } from '../client/index.js';
|
|
9
|
-
import { toolRegistry, ReadAnnotation, CreateAnnotation, UpdateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
|
|
10
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
11
|
-
import { ProjectCodeSchema, IdSchema } from '../utils/validation.js';
|
|
12
|
-
// ============================================================================
|
|
13
|
-
// SCHEMAS
|
|
14
|
-
// ============================================================================
|
|
15
|
-
/**
|
|
16
|
-
* Schema for listing test suites
|
|
17
|
-
*/
|
|
18
|
-
const ListSuitesSchema = z.object({
|
|
19
|
-
code: ProjectCodeSchema,
|
|
20
|
-
search: z.string().optional().describe('Search query for suite title'),
|
|
21
|
-
limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
|
|
22
|
-
offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
|
|
23
|
-
});
|
|
24
|
-
/**
|
|
25
|
-
* Schema for getting a specific test suite
|
|
26
|
-
*/
|
|
27
|
-
const GetSuiteSchema = z.object({
|
|
28
|
-
code: ProjectCodeSchema,
|
|
29
|
-
id: IdSchema,
|
|
30
|
-
});
|
|
31
|
-
/**
|
|
32
|
-
* Schema for creating a test suite
|
|
33
|
-
*/
|
|
34
|
-
const CreateSuiteSchema = z.object({
|
|
35
|
-
code: ProjectCodeSchema,
|
|
36
|
-
title: z.string().min(1).max(255).describe('Suite title'),
|
|
37
|
-
description: z.string().optional().describe('Suite description'),
|
|
38
|
-
preconditions: z.string().optional().describe('Preconditions for tests in this suite'),
|
|
39
|
-
parent_id: z
|
|
40
|
-
.number()
|
|
41
|
-
.int()
|
|
42
|
-
.positive()
|
|
43
|
-
.optional()
|
|
44
|
-
.describe('Parent suite ID for creating nested suites'),
|
|
45
|
-
});
|
|
46
|
-
/**
|
|
47
|
-
* Schema for updating a test suite
|
|
48
|
-
*/
|
|
49
|
-
const UpdateSuiteSchema = z.object({
|
|
50
|
-
code: ProjectCodeSchema,
|
|
51
|
-
id: IdSchema,
|
|
52
|
-
title: z.string().min(1).max(255).optional().describe('Suite title'),
|
|
53
|
-
description: z.string().optional().describe('Suite description'),
|
|
54
|
-
preconditions: z.string().optional().describe('Preconditions for tests in this suite'),
|
|
55
|
-
parent_id: z
|
|
56
|
-
.number()
|
|
57
|
-
.int()
|
|
58
|
-
.positive()
|
|
59
|
-
.optional()
|
|
60
|
-
.describe('Parent suite ID for moving the suite'),
|
|
61
|
-
});
|
|
62
|
-
/**
|
|
63
|
-
* Schema for deleting a test suite
|
|
64
|
-
*/
|
|
65
|
-
const DeleteSuiteSchema = z.object({
|
|
66
|
-
code: ProjectCodeSchema,
|
|
67
|
-
id: IdSchema,
|
|
68
|
-
delete_cases: z
|
|
69
|
-
.boolean()
|
|
70
|
-
.optional()
|
|
71
|
-
.describe('If true, delete all test cases in the suite. If false, move cases to parent suite or root.'),
|
|
72
|
-
});
|
|
73
|
-
// ============================================================================
|
|
74
|
-
// HANDLERS
|
|
75
|
-
// ============================================================================
|
|
76
|
-
/**
|
|
77
|
-
* List all test suites in a project
|
|
78
|
-
*/
|
|
79
|
-
async function listSuites(args) {
|
|
80
|
-
const client = getApiClient();
|
|
81
|
-
const { code, search, limit, offset } = args;
|
|
82
|
-
const result = await toResultAsync(client.suites.getSuites(code, search, limit, offset));
|
|
83
|
-
return result.match((response) => response.data.result, (error) => {
|
|
84
|
-
throw createToolError(error, 'suite operation');
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Get a specific test suite
|
|
89
|
-
*/
|
|
90
|
-
async function getSuite(args) {
|
|
91
|
-
const client = getApiClient();
|
|
92
|
-
const { code, id } = args;
|
|
93
|
-
const result = await toResultAsync(client.suites.getSuite(code, id));
|
|
94
|
-
return result.match((response) => response.data.result, (error) => {
|
|
95
|
-
throw createToolError(error, 'suite operation');
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Create a new test suite
|
|
100
|
-
*/
|
|
101
|
-
async function createSuite(args) {
|
|
102
|
-
const client = getApiClient();
|
|
103
|
-
const { code, ...suiteData } = args;
|
|
104
|
-
const result = await toResultAsync(client.suites.createSuite(code, suiteData));
|
|
105
|
-
return result.match((response) => response.data.result, (error) => {
|
|
106
|
-
throw createToolError(error, 'suite operation');
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Update an existing test suite
|
|
111
|
-
*/
|
|
112
|
-
async function updateSuite(args) {
|
|
113
|
-
const client = getApiClient();
|
|
114
|
-
const { code, id, ...updateData } = args;
|
|
115
|
-
const result = await toResultAsync(client.suites.updateSuite(code, id, updateData));
|
|
116
|
-
return result.match((response) => response.data.result, (error) => {
|
|
117
|
-
throw createToolError(error, 'suite operation');
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Delete a test suite
|
|
122
|
-
*/
|
|
123
|
-
async function deleteSuite(args) {
|
|
124
|
-
const client = getApiClient();
|
|
125
|
-
const { code, id, delete_cases } = args;
|
|
126
|
-
const result = await toResultAsync(client.suites.deleteSuite(code, id));
|
|
127
|
-
return result.match((_response) => ({ success: true, id, delete_cases }), (error) => {
|
|
128
|
-
throw createToolError(error, 'suite operation');
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
// ============================================================================
|
|
132
|
-
// TOOL REGISTRATION
|
|
133
|
-
// ============================================================================
|
|
134
|
-
toolRegistry.register({
|
|
135
|
-
name: 'list_suites',
|
|
136
|
-
description: 'Get all test suites in a project with optional search and pagination',
|
|
137
|
-
schema: ListSuitesSchema,
|
|
138
|
-
handler: listSuites,
|
|
139
|
-
annotations: ReadAnnotation,
|
|
140
|
-
});
|
|
141
|
-
toolRegistry.register({
|
|
142
|
-
name: 'get_suite',
|
|
143
|
-
description: 'Get a specific test suite by project code and suite ID',
|
|
144
|
-
schema: GetSuiteSchema,
|
|
145
|
-
handler: getSuite,
|
|
146
|
-
annotations: ReadAnnotation,
|
|
147
|
-
});
|
|
148
|
-
toolRegistry.register({
|
|
149
|
-
name: 'create_suite',
|
|
150
|
-
description: 'Create a new test suite in a project',
|
|
151
|
-
schema: CreateSuiteSchema,
|
|
152
|
-
handler: createSuite,
|
|
153
|
-
annotations: CreateAnnotation,
|
|
154
|
-
});
|
|
155
|
-
toolRegistry.register({
|
|
156
|
-
name: 'update_suite',
|
|
157
|
-
description: 'Update an existing test suite',
|
|
158
|
-
schema: UpdateSuiteSchema,
|
|
159
|
-
handler: updateSuite,
|
|
160
|
-
annotations: UpdateAnnotation,
|
|
161
|
-
});
|
|
162
|
-
toolRegistry.register({
|
|
163
|
-
name: 'delete_suite',
|
|
164
|
-
description: 'Delete a test suite from a project',
|
|
165
|
-
schema: DeleteSuiteSchema,
|
|
166
|
-
handler: deleteSuite,
|
|
167
|
-
annotations: DeleteAnnotation,
|
|
168
|
-
});
|
|
169
|
-
//# sourceMappingURL=suites.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suites.js","sourceRoot":"","sources":["../../src/operations/suites.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System Fields Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for viewing system field configurations in Qase.
|
|
5
|
-
* System fields are built-in fields that can be configured at the account level.
|
|
6
|
-
*
|
|
7
|
-
* https://developers.qase.io/reference/get-system-fields
|
|
8
|
-
*/
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=system-fields.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../../src/operations/system-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System Fields Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for viewing system field configurations in Qase.
|
|
5
|
-
* System fields are built-in fields that can be configured at the account level.
|
|
6
|
-
*
|
|
7
|
-
* https://developers.qase.io/reference/get-system-fields
|
|
8
|
-
*/
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { getApiClient } from '../client/index.js';
|
|
11
|
-
import { toolRegistry, ReadAnnotation } from '../utils/registry.js';
|
|
12
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// SCHEMAS
|
|
15
|
-
// ============================================================================
|
|
16
|
-
/**
|
|
17
|
-
* Schema for listing system fields (no parameters needed)
|
|
18
|
-
* API: GET /v1/system_field
|
|
19
|
-
* https://developers.qase.io/reference/get-system-fields
|
|
20
|
-
*/
|
|
21
|
-
const ListSystemFieldsSchema = z.object({});
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// HANDLERS
|
|
24
|
-
// ============================================================================
|
|
25
|
-
/**
|
|
26
|
-
* List all system fields and their configurations
|
|
27
|
-
* API: GET /v1/system_field
|
|
28
|
-
* https://developers.qase.io/reference/get-system-fields
|
|
29
|
-
*/
|
|
30
|
-
async function listSystemFields(_args) {
|
|
31
|
-
const client = getApiClient();
|
|
32
|
-
const result = await toResultAsync(client.systemFields.getSystemFields());
|
|
33
|
-
return result.match((response) => response.data.result, (error) => {
|
|
34
|
-
throw createToolError(error, 'listing system fields');
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
// ============================================================================
|
|
38
|
-
// TOOL REGISTRATION
|
|
39
|
-
// ============================================================================
|
|
40
|
-
toolRegistry.register({
|
|
41
|
-
name: 'list_system_fields',
|
|
42
|
-
description: 'Get all system field configurations (built-in fields like priority, severity, etc.)',
|
|
43
|
-
schema: ListSystemFieldsSchema,
|
|
44
|
-
handler: listSystemFields,
|
|
45
|
-
annotations: ReadAnnotation,
|
|
46
|
-
});
|
|
47
|
-
//# sourceMappingURL=system-fields.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-fields.js","sourceRoot":"","sources":["../../src/operations/system-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEpE,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE5C,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,KAA6C;IAC3E,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1E,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACxD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACT,qFAAqF;IACvF,MAAM,EAAE,sBAAsB;IAC9B,OAAO,EAAE,gBAAgB;IACzB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/operations/users.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Users Operations
|
|
3
|
-
*
|
|
4
|
-
* Implements all MCP tools for managing users in Qase.
|
|
5
|
-
* Users are team members with access to the Qase workspace.
|
|
6
|
-
*
|
|
7
|
-
* https://developers.qase.io/reference/get-users
|
|
8
|
-
*/
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
import { getApiClient } from '../client/index.js';
|
|
11
|
-
import { toolRegistry, ReadAnnotation } from '../utils/registry.js';
|
|
12
|
-
import { toResultAsync, createToolError } from '../utils/errors.js';
|
|
13
|
-
import { IdSchema } from '../utils/validation.js';
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// SCHEMAS
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/**
|
|
18
|
-
* Schema for listing users
|
|
19
|
-
* API: GET /v1/user
|
|
20
|
-
* https://developers.qase.io/reference/get-users
|
|
21
|
-
*
|
|
22
|
-
* The Qase API does not document pagination parameters for this endpoint.
|
|
23
|
-
*/
|
|
24
|
-
const ListUsersSchema = z.object({});
|
|
25
|
-
/**
|
|
26
|
-
* Schema for getting a specific user
|
|
27
|
-
* API: GET /v1/user/{id}
|
|
28
|
-
* https://developers.qase.io/reference/get-user
|
|
29
|
-
*/
|
|
30
|
-
const GetUserSchema = z.object({
|
|
31
|
-
id: IdSchema,
|
|
32
|
-
});
|
|
33
|
-
// ============================================================================
|
|
34
|
-
// HANDLERS
|
|
35
|
-
// ============================================================================
|
|
36
|
-
/**
|
|
37
|
-
* List all users
|
|
38
|
-
* API: GET /v1/user
|
|
39
|
-
* https://developers.qase.io/reference/get-users
|
|
40
|
-
*/
|
|
41
|
-
async function listUsers(_args) {
|
|
42
|
-
const client = getApiClient();
|
|
43
|
-
const result = await toResultAsync(client.users.getUsers());
|
|
44
|
-
return result.match((response) => response.data.result, (error) => {
|
|
45
|
-
throw createToolError(error, 'listing users');
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get a specific user
|
|
50
|
-
* API: GET /v1/user/{id}
|
|
51
|
-
* https://developers.qase.io/reference/get-user
|
|
52
|
-
*/
|
|
53
|
-
async function getUser(args) {
|
|
54
|
-
const client = getApiClient();
|
|
55
|
-
const { id } = args;
|
|
56
|
-
const result = await toResultAsync(client.users.getUser(id));
|
|
57
|
-
return result.match((response) => response.data.result, (error) => {
|
|
58
|
-
throw createToolError(error, 'getting user');
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
// ============================================================================
|
|
62
|
-
// TOOL REGISTRATION
|
|
63
|
-
// ============================================================================
|
|
64
|
-
toolRegistry.register({
|
|
65
|
-
name: 'list_users',
|
|
66
|
-
description: 'Get all users in the workspace',
|
|
67
|
-
schema: ListUsersSchema,
|
|
68
|
-
handler: listUsers,
|
|
69
|
-
annotations: ReadAnnotation,
|
|
70
|
-
});
|
|
71
|
-
toolRegistry.register({
|
|
72
|
-
name: 'get_user',
|
|
73
|
-
description: 'Get a specific user by ID',
|
|
74
|
-
schema: GetUserSchema,
|
|
75
|
-
handler: getUser,
|
|
76
|
-
annotations: ReadAnnotation,
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=users.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/operations/users.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAErC;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;GAIG;AACH,KAAK,UAAU,SAAS,CAAC,KAAsC;IAC7D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAChD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,OAAO,CAAC,IAAmC;IACxD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAClC,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,2BAA2B;IACxC,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC"}
|