@qase/mcp-server 1.1.7 → 2.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.
Files changed (284) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +75 -551
  3. package/build/auth/client-context.d.ts +12 -0
  4. package/build/auth/client-context.d.ts.map +1 -0
  5. package/build/auth/client-context.js +12 -0
  6. package/build/auth/client-context.js.map +1 -0
  7. package/build/auth/jwks-verifier.d.ts +15 -0
  8. package/build/auth/jwks-verifier.d.ts.map +1 -0
  9. package/build/auth/jwks-verifier.js +31 -0
  10. package/build/auth/jwks-verifier.js.map +1 -0
  11. package/build/auth/mcp-guard.d.ts +15 -0
  12. package/build/auth/mcp-guard.d.ts.map +1 -0
  13. package/build/auth/mcp-guard.js +44 -0
  14. package/build/auth/mcp-guard.js.map +1 -0
  15. package/build/auth/oauth-config.d.ts +40 -0
  16. package/build/auth/oauth-config.d.ts.map +1 -0
  17. package/build/auth/oauth-config.js +34 -0
  18. package/build/auth/oauth-config.js.map +1 -0
  19. package/build/auth/proxy-provider.d.ts +31 -0
  20. package/build/auth/proxy-provider.d.ts.map +1 -0
  21. package/build/auth/proxy-provider.js +87 -0
  22. package/build/auth/proxy-provider.js.map +1 -0
  23. package/build/auth/token-type.d.ts +7 -0
  24. package/build/auth/token-type.d.ts.map +1 -0
  25. package/build/auth/token-type.js +10 -0
  26. package/build/auth/token-type.js.map +1 -0
  27. package/build/cache/circuit-breaker.d.ts +33 -0
  28. package/build/cache/circuit-breaker.d.ts.map +1 -0
  29. package/build/cache/circuit-breaker.js +68 -0
  30. package/build/cache/circuit-breaker.js.map +1 -0
  31. package/build/cache/index.d.ts +24 -0
  32. package/build/cache/index.d.ts.map +1 -0
  33. package/build/cache/index.js +86 -0
  34. package/build/cache/index.js.map +1 -0
  35. package/build/cache/keys.d.ts +25 -0
  36. package/build/cache/keys.d.ts.map +1 -0
  37. package/build/cache/keys.js +36 -0
  38. package/build/cache/keys.js.map +1 -0
  39. package/build/cache/layered.d.ts +31 -0
  40. package/build/cache/layered.d.ts.map +1 -0
  41. package/build/cache/layered.js +88 -0
  42. package/build/cache/layered.js.map +1 -0
  43. package/build/cache/memory.d.ts +32 -0
  44. package/build/cache/memory.d.ts.map +1 -0
  45. package/build/cache/memory.js +108 -0
  46. package/build/cache/memory.js.map +1 -0
  47. package/build/cache/metrics.d.ts +31 -0
  48. package/build/cache/metrics.d.ts.map +1 -0
  49. package/build/cache/metrics.js +95 -0
  50. package/build/cache/metrics.js.map +1 -0
  51. package/build/cache/prom-format.d.ts +7 -0
  52. package/build/cache/prom-format.d.ts.map +1 -0
  53. package/build/cache/prom-format.js +16 -0
  54. package/build/cache/prom-format.js.map +1 -0
  55. package/build/cache/redis-bus.d.ts +29 -0
  56. package/build/cache/redis-bus.d.ts.map +1 -0
  57. package/build/cache/redis-bus.js +50 -0
  58. package/build/cache/redis-bus.js.map +1 -0
  59. package/build/cache/redis.d.ts +32 -0
  60. package/build/cache/redis.d.ts.map +1 -0
  61. package/build/cache/redis.js +89 -0
  62. package/build/cache/redis.js.map +1 -0
  63. package/build/cache/types.d.ts +38 -0
  64. package/build/cache/types.d.ts.map +1 -0
  65. package/build/cache/types.js +2 -0
  66. package/build/cache/types.js.map +1 -0
  67. package/build/client/index.d.ts +10 -3
  68. package/build/client/index.d.ts.map +1 -1
  69. package/build/client/index.js +75 -50
  70. package/build/client/index.js.map +1 -1
  71. package/build/http/agent.d.ts +16 -0
  72. package/build/http/agent.d.ts.map +1 -0
  73. package/build/http/agent.js +16 -0
  74. package/build/http/agent.js.map +1 -0
  75. package/build/http/dedupe.d.ts +14 -0
  76. package/build/http/dedupe.d.ts.map +1 -0
  77. package/build/http/dedupe.js +69 -0
  78. package/build/http/dedupe.js.map +1 -0
  79. package/build/http/index.d.ts +6 -0
  80. package/build/http/index.d.ts.map +1 -0
  81. package/build/http/index.js +4 -0
  82. package/build/http/index.js.map +1 -0
  83. package/build/http/retry.d.ts +18 -0
  84. package/build/http/retry.d.ts.map +1 -0
  85. package/build/http/retry.js +52 -0
  86. package/build/http/retry.js.map +1 -0
  87. package/build/index.d.ts +1 -18
  88. package/build/index.d.ts.map +1 -1
  89. package/build/index.js +95 -61
  90. package/build/index.js.map +1 -1
  91. package/build/operations-v2/composites/ci-report.d.ts +2 -0
  92. package/build/operations-v2/composites/ci-report.d.ts.map +1 -0
  93. package/build/operations-v2/composites/ci-report.js +99 -0
  94. package/build/operations-v2/composites/ci-report.js.map +1 -0
  95. package/build/operations-v2/composites/regression-run.d.ts +2 -0
  96. package/build/operations-v2/composites/regression-run.d.ts.map +1 -0
  97. package/build/operations-v2/composites/regression-run.js +81 -0
  98. package/build/operations-v2/composites/regression-run.js.map +1 -0
  99. package/build/operations-v2/composites/triage-defect.d.ts +2 -0
  100. package/build/operations-v2/composites/triage-defect.d.ts.map +1 -0
  101. package/build/operations-v2/composites/triage-defect.js +67 -0
  102. package/build/operations-v2/composites/triage-defect.js.map +1 -0
  103. package/build/operations-v2/escape/api.d.ts +2 -0
  104. package/build/operations-v2/escape/api.d.ts.map +1 -0
  105. package/build/operations-v2/escape/api.js +34 -0
  106. package/build/operations-v2/escape/api.js.map +1 -0
  107. package/build/operations-v2/index.d.ts +19 -0
  108. package/build/operations-v2/index.d.ts.map +1 -0
  109. package/build/operations-v2/index.js +25 -0
  110. package/build/operations-v2/index.js.map +1 -0
  111. package/build/operations-v2/meta/discover.d.ts +9 -0
  112. package/build/operations-v2/meta/discover.d.ts.map +1 -0
  113. package/build/operations-v2/meta/discover.js +76 -0
  114. package/build/operations-v2/meta/discover.js.map +1 -0
  115. package/build/{operations/search.d.ts → operations-v2/qql/index.d.ts} +1 -1
  116. package/build/operations-v2/qql/index.d.ts.map +1 -0
  117. package/build/{operations/search.js → operations-v2/qql/index.js} +34 -9
  118. package/build/operations-v2/qql/index.js.map +1 -0
  119. package/build/operations-v2/read/get.d.ts +2 -0
  120. package/build/operations-v2/read/get.d.ts.map +1 -0
  121. package/build/operations-v2/read/get.js +91 -0
  122. package/build/operations-v2/read/get.js.map +1 -0
  123. package/build/operations-v2/read/project-context.d.ts +2 -0
  124. package/build/operations-v2/read/project-context.d.ts.map +1 -0
  125. package/build/operations-v2/read/project-context.js +102 -0
  126. package/build/operations-v2/read/project-context.js.map +1 -0
  127. package/build/operations-v2/write/attachments.d.ts +2 -0
  128. package/build/operations-v2/write/attachments.d.ts.map +1 -0
  129. package/build/operations-v2/write/attachments.js +58 -0
  130. package/build/operations-v2/write/attachments.js.map +1 -0
  131. package/build/operations-v2/write/cases.d.ts +2 -0
  132. package/build/operations-v2/write/cases.d.ts.map +1 -0
  133. package/build/operations-v2/write/cases.js +121 -0
  134. package/build/operations-v2/write/cases.js.map +1 -0
  135. package/build/operations-v2/write/defects.d.ts +2 -0
  136. package/build/operations-v2/write/defects.d.ts.map +1 -0
  137. package/build/operations-v2/write/defects.js +81 -0
  138. package/build/operations-v2/write/defects.js.map +1 -0
  139. package/build/operations-v2/write/environments.d.ts +2 -0
  140. package/build/operations-v2/write/environments.d.ts.map +1 -0
  141. package/build/operations-v2/write/environments.js +56 -0
  142. package/build/operations-v2/write/environments.js.map +1 -0
  143. package/build/operations-v2/write/milestones.d.ts +2 -0
  144. package/build/operations-v2/write/milestones.d.ts.map +1 -0
  145. package/build/operations-v2/write/milestones.js +56 -0
  146. package/build/operations-v2/write/milestones.js.map +1 -0
  147. package/build/operations-v2/write/plans.d.ts +2 -0
  148. package/build/operations-v2/write/plans.d.ts.map +1 -0
  149. package/build/operations-v2/write/plans.js +55 -0
  150. package/build/operations-v2/write/plans.js.map +1 -0
  151. package/build/operations-v2/write/results.d.ts +2 -0
  152. package/build/operations-v2/write/results.d.ts.map +1 -0
  153. package/build/operations-v2/write/results.js +72 -0
  154. package/build/operations-v2/write/results.js.map +1 -0
  155. package/build/operations-v2/write/runs.d.ts +2 -0
  156. package/build/operations-v2/write/runs.d.ts.map +1 -0
  157. package/build/operations-v2/write/runs.js +84 -0
  158. package/build/operations-v2/write/runs.js.map +1 -0
  159. package/build/operations-v2/write/shared-steps.d.ts +2 -0
  160. package/build/operations-v2/write/shared-steps.d.ts.map +1 -0
  161. package/build/operations-v2/write/shared-steps.js +60 -0
  162. package/build/operations-v2/write/shared-steps.js.map +1 -0
  163. package/build/operations-v2/write/suites.d.ts +2 -0
  164. package/build/operations-v2/write/suites.d.ts.map +1 -0
  165. package/build/operations-v2/write/suites.js +63 -0
  166. package/build/operations-v2/write/suites.js.map +1 -0
  167. package/build/prompts/index.d.ts +31 -0
  168. package/build/prompts/index.d.ts.map +1 -0
  169. package/build/prompts/index.js +229 -0
  170. package/build/prompts/index.js.map +1 -0
  171. package/build/transports/sse.d.ts.map +1 -1
  172. package/build/transports/sse.js +6 -0
  173. package/build/transports/sse.js.map +1 -1
  174. package/build/transports/streamableHttp.d.ts +6 -1
  175. package/build/transports/streamableHttp.d.ts.map +1 -1
  176. package/build/transports/streamableHttp.js +128 -16
  177. package/build/transports/streamableHttp.js.map +1 -1
  178. package/build/utils/auth-context.d.ts +8 -0
  179. package/build/utils/auth-context.d.ts.map +1 -1
  180. package/build/utils/auth-context.js +18 -0
  181. package/build/utils/auth-context.js.map +1 -1
  182. package/build/utils/case-enums.d.ts +5 -3
  183. package/build/utils/case-enums.d.ts.map +1 -1
  184. package/build/utils/case-enums.js +78 -59
  185. package/build/utils/case-enums.js.map +1 -1
  186. package/build/utils/output-schemas.d.ts +16 -0
  187. package/build/utils/output-schemas.d.ts.map +1 -0
  188. package/build/utils/output-schemas.js +82 -0
  189. package/build/utils/output-schemas.js.map +1 -0
  190. package/build/utils/registry.d.ts +42 -9
  191. package/build/utils/registry.d.ts.map +1 -1
  192. package/build/utils/registry.js +64 -11
  193. package/build/utils/registry.js.map +1 -1
  194. package/build/utils/response-shape.d.ts +23 -0
  195. package/build/utils/response-shape.d.ts.map +1 -0
  196. package/build/utils/response-shape.js +73 -0
  197. package/build/utils/response-shape.js.map +1 -0
  198. package/build/utils/rich-response.d.ts +58 -0
  199. package/build/utils/rich-response.d.ts.map +1 -0
  200. package/build/utils/rich-response.js +93 -0
  201. package/build/utils/rich-response.js.map +1 -0
  202. package/build/utils/server-context.d.ts +65 -0
  203. package/build/utils/server-context.d.ts.map +1 -0
  204. package/build/utils/server-context.js +67 -0
  205. package/build/utils/server-context.js.map +1 -0
  206. package/build/version.d.ts +1 -1
  207. package/build/version.js +1 -1
  208. package/docs/connect.md +81 -0
  209. package/docs/migration.md +351 -0
  210. package/docs/self-run.md +270 -0
  211. package/docs/tools.md +109 -0
  212. package/docs/troubleshooting.md +144 -0
  213. package/package.json +12 -3
  214. package/server.json +8 -2
  215. package/build/operations/attachments.d.ts +0 -8
  216. package/build/operations/attachments.d.ts.map +0 -1
  217. package/build/operations/attachments.js +0 -146
  218. package/build/operations/attachments.js.map +0 -1
  219. package/build/operations/authors.d.ts +0 -8
  220. package/build/operations/authors.d.ts.map +0 -1
  221. package/build/operations/authors.js +0 -70
  222. package/build/operations/authors.js.map +0 -1
  223. package/build/operations/cases.d.ts +0 -8
  224. package/build/operations/cases.d.ts.map +0 -1
  225. package/build/operations/cases.js +0 -338
  226. package/build/operations/cases.js.map +0 -1
  227. package/build/operations/configurations.d.ts +0 -10
  228. package/build/operations/configurations.d.ts.map +0 -1
  229. package/build/operations/configurations.js +0 -125
  230. package/build/operations/configurations.js.map +0 -1
  231. package/build/operations/custom-fields.d.ts +0 -8
  232. package/build/operations/custom-fields.d.ts.map +0 -1
  233. package/build/operations/custom-fields.js +0 -172
  234. package/build/operations/custom-fields.js.map +0 -1
  235. package/build/operations/defects.d.ts +0 -8
  236. package/build/operations/defects.d.ts.map +0 -1
  237. package/build/operations/defects.js +0 -256
  238. package/build/operations/defects.js.map +0 -1
  239. package/build/operations/environments.d.ts +0 -8
  240. package/build/operations/environments.d.ts.map +0 -1
  241. package/build/operations/environments.js +0 -154
  242. package/build/operations/environments.js.map +0 -1
  243. package/build/operations/milestones.d.ts +0 -8
  244. package/build/operations/milestones.d.ts.map +0 -1
  245. package/build/operations/milestones.js +0 -155
  246. package/build/operations/milestones.js.map +0 -1
  247. package/build/operations/plans.d.ts +0 -8
  248. package/build/operations/plans.d.ts.map +0 -1
  249. package/build/operations/plans.js +0 -158
  250. package/build/operations/plans.js.map +0 -1
  251. package/build/operations/projects.d.ts +0 -8
  252. package/build/operations/projects.d.ts.map +0 -1
  253. package/build/operations/projects.js +0 -192
  254. package/build/operations/projects.js.map +0 -1
  255. package/build/operations/results.d.ts +0 -8
  256. package/build/operations/results.d.ts.map +0 -1
  257. package/build/operations/results.js +0 -214
  258. package/build/operations/results.js.map +0 -1
  259. package/build/operations/runs.d.ts +0 -8
  260. package/build/operations/runs.d.ts.map +0 -1
  261. package/build/operations/runs.js +0 -224
  262. package/build/operations/runs.js.map +0 -1
  263. package/build/operations/search.d.ts.map +0 -1
  264. package/build/operations/search.js.map +0 -1
  265. package/build/operations/shared-parameters.d.ts +0 -10
  266. package/build/operations/shared-parameters.d.ts.map +0 -1
  267. package/build/operations/shared-parameters.js +0 -93
  268. package/build/operations/shared-parameters.js.map +0 -1
  269. package/build/operations/shared-steps.d.ts +0 -8
  270. package/build/operations/shared-steps.d.ts.map +0 -1
  271. package/build/operations/shared-steps.js +0 -160
  272. package/build/operations/shared-steps.js.map +0 -1
  273. package/build/operations/suites.d.ts +0 -8
  274. package/build/operations/suites.d.ts.map +0 -1
  275. package/build/operations/suites.js +0 -169
  276. package/build/operations/suites.js.map +0 -1
  277. package/build/operations/system-fields.d.ts +0 -10
  278. package/build/operations/system-fields.d.ts.map +0 -1
  279. package/build/operations/system-fields.js +0 -47
  280. package/build/operations/system-fields.js.map +0 -1
  281. package/build/operations/users.d.ts +0 -10
  282. package/build/operations/users.d.ts.map +0 -1
  283. package/build/operations/users.js +0 -78
  284. package/build/operations/users.js.map +0 -1
@@ -1,146 +0,0 @@
1
- /**
2
- * Attachments Operations
3
- *
4
- * Implements all MCP tools for managing attachments in Qase.
5
- * Attachments are files associated with test cases, steps, and results.
6
- */
7
- import { z } from 'zod';
8
- import { createReadStream, existsSync } from 'fs';
9
- import { getApiClient } from '../client/index.js';
10
- import { toolRegistry, ReadAnnotation, CreateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
11
- import { toResultAsync, createToolError } from '../utils/errors.js';
12
- import { ProjectCodeSchema, HashSchema } from '../utils/validation.js';
13
- // ============================================================================
14
- // SCHEMAS
15
- // ============================================================================
16
- /**
17
- * Schema for listing attachments
18
- */
19
- const ListAttachmentsSchema = z.object({
20
- limit: z
21
- .number()
22
- .int()
23
- .positive()
24
- .max(100)
25
- .optional()
26
- .default(10)
27
- .describe('Maximum number of items (default: 10, max: 100)'),
28
- offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
29
- });
30
- /**
31
- * Schema for getting a specific attachment
32
- */
33
- const GetAttachmentSchema = z.object({
34
- hash: HashSchema.describe('Attachment hash identifier'),
35
- });
36
- /**
37
- * Schema for uploading an attachment
38
- */
39
- const UploadAttachmentSchema = z.object({
40
- code: ProjectCodeSchema.describe('Project code'),
41
- file: z.string().describe('File content as base64 encoded string or absolute file path'),
42
- filename: z.string().describe('Original filename with extension'),
43
- });
44
- /**
45
- * Schema for deleting an attachment
46
- */
47
- const DeleteAttachmentSchema = z.object({
48
- hash: HashSchema.describe('Attachment hash identifier'),
49
- });
50
- // ============================================================================
51
- // HANDLERS
52
- // ============================================================================
53
- /**
54
- * List all attachments
55
- */
56
- async function listAttachments(args) {
57
- const client = getApiClient();
58
- const { limit, offset } = args;
59
- const result = await toResultAsync(client.attachments.getAttachments(limit, offset));
60
- return result.match((response) => response.data.result, (error) => {
61
- throw createToolError(error, 'attachment operation');
62
- });
63
- }
64
- /**
65
- * Get a specific attachment by hash
66
- */
67
- async function getAttachment(args) {
68
- const client = getApiClient();
69
- const { hash } = args;
70
- const result = await toResultAsync(client.attachments.getAttachment(hash));
71
- return result.match((response) => response.data.result, (error) => {
72
- throw createToolError(error, 'attachment operation');
73
- });
74
- }
75
- /**
76
- * Prepare file data for upload.
77
- * Accepts a base64-encoded string or an absolute file path.
78
- * Returns an object compatible with the SDK's FormData append: { name, value }.
79
- */
80
- function prepareFileData(file, filename) {
81
- // If the string looks like a file path and exists on disk, stream it
82
- if (file.startsWith('/') && existsSync(file)) {
83
- return { name: filename, value: createReadStream(file) };
84
- }
85
- // Otherwise treat it as base64 content
86
- const isBase64 = /^[A-Za-z0-9+/=\s]+$/.test(file);
87
- return {
88
- name: filename,
89
- value: Buffer.from(file, isBase64 ? 'base64' : undefined),
90
- };
91
- }
92
- /**
93
- * Upload a new attachment
94
- */
95
- async function uploadAttachment(args) {
96
- const client = getApiClient();
97
- const { code, file, filename } = args;
98
- const fileData = prepareFileData(file, filename);
99
- const result = await toResultAsync(client.attachments.uploadAttachment(code, [fileData]));
100
- return result.match((response) => response.data.result, (error) => {
101
- throw createToolError(error, 'attachment operation');
102
- });
103
- }
104
- /**
105
- * Delete an attachment
106
- */
107
- async function deleteAttachment(args) {
108
- const client = getApiClient();
109
- const { hash } = args;
110
- const result = await toResultAsync(client.attachments.deleteAttachment(hash));
111
- return result.match((_response) => ({ success: true, hash }), (error) => {
112
- throw createToolError(error, 'attachment operation');
113
- });
114
- }
115
- // ============================================================================
116
- // TOOL REGISTRATION
117
- // ============================================================================
118
- toolRegistry.register({
119
- name: 'list_attachments',
120
- description: 'Get all attachments with optional pagination',
121
- schema: ListAttachmentsSchema,
122
- handler: listAttachments,
123
- annotations: ReadAnnotation,
124
- });
125
- toolRegistry.register({
126
- name: 'get_attachment',
127
- description: 'Get a specific attachment by hash, including download URL',
128
- schema: GetAttachmentSchema,
129
- handler: getAttachment,
130
- annotations: ReadAnnotation,
131
- });
132
- toolRegistry.register({
133
- name: 'upload_attachment',
134
- description: 'Upload a new attachment (provide file as base64 encoded string)',
135
- schema: UploadAttachmentSchema,
136
- handler: uploadAttachment,
137
- annotations: CreateAnnotation,
138
- });
139
- toolRegistry.register({
140
- name: 'delete_attachment',
141
- description: 'Delete an attachment by hash',
142
- schema: DeleteAttachmentSchema,
143
- handler: deleteAttachment,
144
- annotations: DeleteAnnotation,
145
- });
146
- //# sourceMappingURL=attachments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../src/operations/attachments.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Authors Operations
3
- *
4
- * Implements all MCP tools for managing test case authors in Qase.
5
- * Authors are users who have created test cases.
6
- */
7
- export {};
8
- //# sourceMappingURL=authors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authors.d.ts","sourceRoot":"","sources":["../../src/operations/authors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,70 +0,0 @@
1
- /**
2
- * Authors Operations
3
- *
4
- * Implements all MCP tools for managing test case authors in Qase.
5
- * Authors are users who have created test cases.
6
- */
7
- import { z } from 'zod';
8
- import { getApiClient } from '../client/index.js';
9
- import { toolRegistry, ReadAnnotation } from '../utils/registry.js';
10
- import { toResultAsync, createToolError } from '../utils/errors.js';
11
- import { IdSchema } from '../utils/validation.js';
12
- // ============================================================================
13
- // SCHEMAS
14
- // ============================================================================
15
- /**
16
- * Schema for listing authors
17
- */
18
- const ListAuthorsSchema = z.object({
19
- limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
20
- offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
21
- });
22
- /**
23
- * Schema for getting a specific author
24
- */
25
- const GetAuthorSchema = z.object({
26
- id: IdSchema,
27
- });
28
- // ============================================================================
29
- // HANDLERS
30
- // ============================================================================
31
- /**
32
- * List all authors
33
- */
34
- async function listAuthors(args) {
35
- const client = getApiClient();
36
- const { limit, offset } = args;
37
- const result = await toResultAsync(client.authors.getAuthors(undefined, undefined, limit, offset));
38
- return result.match((response) => response.data.result, (error) => {
39
- throw createToolError(error, 'author operation');
40
- });
41
- }
42
- /**
43
- * Get a specific author
44
- */
45
- async function getAuthor(args) {
46
- const client = getApiClient();
47
- const { id } = args;
48
- const result = await toResultAsync(client.authors.getAuthor(id));
49
- return result.match((response) => response.data.result, (error) => {
50
- throw createToolError(error, 'author operation');
51
- });
52
- }
53
- // ============================================================================
54
- // TOOL REGISTRATION
55
- // ============================================================================
56
- toolRegistry.register({
57
- name: 'list_authors',
58
- description: 'Get all test case authors with optional pagination',
59
- schema: ListAuthorsSchema,
60
- handler: listAuthors,
61
- annotations: ReadAnnotation,
62
- });
63
- toolRegistry.register({
64
- name: 'get_author',
65
- description: 'Get a specific author by ID',
66
- schema: GetAuthorSchema,
67
- handler: getAuthor,
68
- annotations: ReadAnnotation,
69
- });
70
- //# sourceMappingURL=authors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authors.js","sourceRoot":"","sources":["../../src/operations/authors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC1F,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACtF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,EAAE,EAAE,QAAQ;CACb,CAAC,CAAC;AAEH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,IAAuC;IAChE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAC/D,CAAC;IAEF,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,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,IAAqC;IAC5D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IAEpB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjE,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,kBAAkB,CAAC,CAAC;IACnD,CAAC,CACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,oDAAoD;IACjE,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC;AAEH,YAAY,CAAC,QAAQ,CAAC;IACpB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6BAA6B;IAC1C,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;CAC5B,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Test Cases (Qases) Operations
3
- *
4
- * Implements all MCP tools for managing test cases in Qase.
5
- * Test cases are the core entities representing individual tests.
6
- */
7
- export {};
8
- //# sourceMappingURL=cases.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cases.d.ts","sourceRoot":"","sources":["../../src/operations/cases.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,338 +0,0 @@
1
- /**
2
- * Test Cases (Qases) Operations
3
- *
4
- * Implements all MCP tools for managing test cases in Qase.
5
- * Test cases are the core entities representing individual tests.
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 { normalizeCaseEnums } from '../utils/case-enums.js';
12
- import { ProjectCodeSchema, IdSchema } from '../utils/validation.js';
13
- // ============================================================================
14
- // SCHEMAS
15
- // ============================================================================
16
- /**
17
- * Schema for listing test cases
18
- */
19
- const ListCasesSchema = z.object({
20
- code: ProjectCodeSchema,
21
- search: z.string().optional().describe('Search query for test case title or description'),
22
- milestone_id: z.number().int().positive().optional().describe('Filter by milestone ID'),
23
- suite_id: z.number().int().positive().optional().describe('Filter by suite ID'),
24
- severity: z.string().optional().describe('Filter by severity (e.g., "blocker", "critical")'),
25
- priority: z.string().optional().describe('Filter by priority (e.g., "high", "medium")'),
26
- type: z.string().optional().describe('Filter by type (e.g., "functional", "smoke")'),
27
- behavior: z.string().optional().describe('Filter by behavior (e.g., "positive", "negative")'),
28
- automation: z.string().optional().describe('Filter by automation status'),
29
- status: z.string().optional().describe('Filter by status (e.g., "actual", "draft")'),
30
- external_issues_type: z
31
- .enum([
32
- 'asana',
33
- 'azure-devops',
34
- 'clickup-app',
35
- 'github-app',
36
- 'gitlab-app',
37
- 'jira-cloud',
38
- 'jira-server',
39
- 'linear',
40
- 'monday',
41
- 'redmine-app',
42
- 'trello-app',
43
- 'youtrack-app',
44
- ])
45
- .optional()
46
- .describe('Filter by external integration type'),
47
- external_issues_ids: z
48
- .array(z.string())
49
- .optional()
50
- .describe('Filter by external issue IDs (e.g., Jira ticket keys)'),
51
- include: z
52
- .string()
53
- .optional()
54
- .describe('Comma-separated list of entities to include in response (e.g., "external_issues")'),
55
- limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
56
- offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
57
- });
58
- /**
59
- * Schema for getting a specific test case
60
- */
61
- const GetCaseSchema = z.object({
62
- code: ProjectCodeSchema,
63
- id: IdSchema,
64
- });
65
- /**
66
- * Schema for test case steps
67
- */
68
- const CaseEnumValueSchema = z.string();
69
- const stepFields = {
70
- action: z.string().optional().describe('Step action description (used for classic steps)'),
71
- expected_result: z.string().optional().describe('Expected result for this step'),
72
- data: z.string().optional().describe('Test data for this step'),
73
- value: z
74
- .string()
75
- .optional()
76
- .describe('Gherkin scenario text (used when steps_type is "gherkin"). Example: "Given a user exists\\nWhen they log in\\nThen they see the dashboard"'),
77
- attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
78
- };
79
- const TestStepSchema = z.object({
80
- ...stepFields,
81
- steps: z
82
- .array(z.object(stepFields).passthrough())
83
- .optional()
84
- .describe('Nested substeps. Same structure as parent steps, supports further nesting.'),
85
- });
86
- /**
87
- * Schema for creating a test case
88
- */
89
- const CreateCaseSchema = z.object({
90
- code: ProjectCodeSchema,
91
- title: z.string().min(1).max(255).describe('Test case title'),
92
- description: z.string().optional().describe('Test case description'),
93
- preconditions: z.string().optional().describe('Preconditions for the test'),
94
- postconditions: z.string().optional().describe('Postconditions after the test'),
95
- severity: CaseEnumValueSchema.optional().describe('Test severity (label or numeric ID from the current workspace configuration)'),
96
- priority: CaseEnumValueSchema.optional().describe('Test priority (label or numeric ID: 0=not set, 1=high, 2=medium, 3=low)'),
97
- type: CaseEnumValueSchema.optional().describe('Test type (label or numeric ID: 1=functional, 2=smoke, 3=regression, 4=security, 5=usability, 6=performance, 7=acceptance)'),
98
- layer: CaseEnumValueSchema.optional().describe('Test layer (label or numeric ID from workspace configuration)'),
99
- is_flaky: z.boolean().optional().describe('Mark test case as flaky'),
100
- suite_id: z.number().int().positive().optional().describe('Suite ID to organize test case'),
101
- milestone_id: z.number().int().positive().optional().describe('Milestone ID'),
102
- behavior: CaseEnumValueSchema.optional().describe('Test behavior (label or numeric ID from workspace configuration)'),
103
- automation: z.string().optional().describe('Automation status'),
104
- status: CaseEnumValueSchema.optional().describe('Test case status (label or numeric ID from workspace configuration)'),
105
- steps: z.array(TestStepSchema).optional().describe('Array of test steps'),
106
- steps_type: z
107
- .enum(['classic', 'gherkin'])
108
- .optional()
109
- .describe("Step format: 'classic' for structured steps, 'gherkin' for Given/When/Then scenarios"),
110
- tags: z.array(z.string()).optional().describe('Tags for categorization'),
111
- attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
112
- custom_field: z.record(z.any()).optional().describe('Custom field values'),
113
- });
114
- /**
115
- * Schema for updating a test case
116
- */
117
- const UpdateCaseSchema = z.object({
118
- code: ProjectCodeSchema,
119
- id: IdSchema,
120
- title: z.string().min(1).max(255).optional().describe('Test case title'),
121
- description: z.string().optional().describe('Test case description'),
122
- preconditions: z.string().optional().describe('Preconditions for the test'),
123
- postconditions: z.string().optional().describe('Postconditions after the test'),
124
- severity: CaseEnumValueSchema.optional().describe('Test severity (label or numeric ID from workspace configuration)'),
125
- priority: CaseEnumValueSchema.optional().describe('Test priority (label or numeric ID: 0=not set, 1=high, 2=medium, 3=low)'),
126
- type: CaseEnumValueSchema.optional().describe('Test type (label or numeric ID: 1=functional, 2=smoke, 3=regression, 4=security, 5=usability, 6=performance, 7=acceptance)'),
127
- layer: CaseEnumValueSchema.optional().describe('Test layer (label or numeric ID from workspace configuration)'),
128
- is_flaky: z.boolean().optional().describe('Mark test case as flaky'),
129
- suite_id: z.number().int().positive().optional().describe('Suite ID'),
130
- milestone_id: z.number().int().positive().optional().describe('Milestone ID'),
131
- behavior: CaseEnumValueSchema.optional().describe('Test behavior (label or numeric ID from workspace configuration)'),
132
- automation: z.string().optional().describe('Automation status'),
133
- status: CaseEnumValueSchema.optional().describe('Test case status (label or numeric ID from workspace configuration)'),
134
- steps: z.array(TestStepSchema).optional().describe('Array of test steps'),
135
- steps_type: z
136
- .enum(['classic', 'gherkin'])
137
- .optional()
138
- .describe("Step format: 'classic' for structured steps, 'gherkin' for Given/When/Then scenarios"),
139
- tags: z.array(z.string()).optional().describe('Tags for categorization'),
140
- attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
141
- custom_field: z.record(z.any()).optional().describe('Custom field values'),
142
- });
143
- /**
144
- * Schema for deleting a test case
145
- */
146
- const DeleteCaseSchema = z.object({
147
- code: ProjectCodeSchema,
148
- id: IdSchema,
149
- });
150
- /**
151
- * Schema for bulk creating test cases
152
- */
153
- const BulkCreateCasesSchema = z.object({
154
- code: ProjectCodeSchema,
155
- cases: z.array(CreateCaseSchema.omit({ code: true })).describe('Array of test cases to create'),
156
- });
157
- /**
158
- * Schema for attaching external issue
159
- */
160
- const AttachExternalIssueSchema = z.object({
161
- code: ProjectCodeSchema,
162
- id: IdSchema,
163
- issue_id: z.string().describe('External issue ID (e.g., Jira issue key)'),
164
- type: z
165
- .enum(['jira-cloud', 'jira-server'])
166
- .describe('Type of external issue integration (Jira Cloud or Jira Server)'),
167
- });
168
- /**
169
- * Schema for detaching external issue
170
- */
171
- const DetachExternalIssueSchema = z.object({
172
- code: ProjectCodeSchema,
173
- id: IdSchema,
174
- issue_id: z.string().describe('External issue ID to detach'),
175
- type: z
176
- .enum(['jira-cloud', 'jira-server'])
177
- .describe('Type of external issue integration (Jira Cloud or Jira Server)'),
178
- });
179
- // ============================================================================
180
- // HANDLERS
181
- // ============================================================================
182
- /**
183
- * List all test cases in a project with filtering
184
- */
185
- async function listCases(args) {
186
- const client = getApiClient();
187
- const { code, ...filters } = args;
188
- const result = await toResultAsync(client.cases.getCases(code, filters.search, filters.milestone_id, filters.suite_id, filters.severity, filters.priority, filters.type, filters.behavior, filters.automation, filters.status, filters.external_issues_type, filters.external_issues_ids, filters.include, filters.limit, filters.offset));
189
- return result.match((response) => response.data.result, (error) => {
190
- throw createToolError(error, 'case operation');
191
- });
192
- }
193
- /**
194
- * Get a specific test case
195
- */
196
- async function getCase(args) {
197
- const client = getApiClient();
198
- const { code, id } = args;
199
- const result = await toResultAsync(client.cases.getCase(code, id));
200
- return result.match((response) => response.data.result, (error) => {
201
- throw createToolError(error, 'case operation');
202
- });
203
- }
204
- /**
205
- * Create a new test case
206
- */
207
- async function createCase(args) {
208
- const client = getApiClient();
209
- const { code, ...caseData } = args;
210
- const normalizedCaseData = await normalizeCaseEnums(caseData);
211
- const result = await toResultAsync(client.cases.createCase(code, normalizedCaseData));
212
- return result.match((response) => response.data.result, (error) => {
213
- throw createToolError(error, 'case operation');
214
- });
215
- }
216
- /**
217
- * Update an existing test case
218
- */
219
- async function updateCase(args) {
220
- const client = getApiClient();
221
- const { code, id, ...updateData } = args;
222
- const normalizedUpdateData = await normalizeCaseEnums(updateData);
223
- const result = await toResultAsync(client.cases.updateCase(code, id, normalizedUpdateData));
224
- return result.match((response) => response.data.result, (error) => {
225
- throw createToolError(error, 'case operation');
226
- });
227
- }
228
- /**
229
- * Delete a test case
230
- */
231
- async function deleteCase(args) {
232
- const client = getApiClient();
233
- const { code, id } = args;
234
- const result = await toResultAsync(client.cases.deleteCase(code, id));
235
- return result.match((_response) => ({ success: true, id }), (error) => {
236
- throw createToolError(error, 'case operation');
237
- });
238
- }
239
- /**
240
- * Bulk create multiple test cases
241
- */
242
- async function bulkCreateCases(args) {
243
- const client = getApiClient();
244
- const { code, cases } = args;
245
- const normalizedCases = await Promise.all(cases.map((caseData) => normalizeCaseEnums(caseData)));
246
- const result = await toResultAsync(client.cases.bulk(code, { cases: normalizedCases }));
247
- return result.match((response) => response.data.result, (error) => {
248
- throw createToolError(error, 'case operation');
249
- });
250
- }
251
- /**
252
- * Attach external issue to a test case
253
- */
254
- async function attachExternalIssue(args) {
255
- const client = getApiClient();
256
- const { code, id, issue_id, type } = args;
257
- const result = await toResultAsync(client.cases.caseAttachExternalIssue(code, {
258
- type: type,
259
- links: [{ case_id: id, external_issues: [issue_id] }],
260
- }));
261
- return result.match((_response) => ({ success: true, id, issue_id }), (error) => {
262
- throw createToolError(error, 'case operation');
263
- });
264
- }
265
- /**
266
- * Detach external issue from a test case
267
- */
268
- async function detachExternalIssue(args) {
269
- const client = getApiClient();
270
- const { code, id, issue_id, type } = args;
271
- const result = await toResultAsync(client.cases.caseDetachExternalIssue(code, {
272
- type: type,
273
- links: [{ case_id: id, external_issues: [issue_id] }],
274
- }));
275
- return result.match((_response) => ({ success: true, id, issue_id }), (error) => {
276
- throw createToolError(error, 'case operation');
277
- });
278
- }
279
- // ============================================================================
280
- // TOOL REGISTRATION
281
- // ============================================================================
282
- toolRegistry.register({
283
- name: 'list_cases',
284
- description: 'Get all test cases in a project with optional filtering and pagination',
285
- schema: ListCasesSchema,
286
- handler: listCases,
287
- annotations: ReadAnnotation,
288
- });
289
- toolRegistry.register({
290
- name: 'get_case',
291
- description: 'Get a specific test case by project code and case ID',
292
- schema: GetCaseSchema,
293
- handler: getCase,
294
- annotations: ReadAnnotation,
295
- });
296
- toolRegistry.register({
297
- name: 'create_case',
298
- description: 'Create a new test case in a project',
299
- schema: CreateCaseSchema,
300
- handler: createCase,
301
- annotations: CreateAnnotation,
302
- });
303
- toolRegistry.register({
304
- name: 'update_case',
305
- description: 'Update an existing test case',
306
- schema: UpdateCaseSchema,
307
- handler: updateCase,
308
- annotations: UpdateAnnotation,
309
- });
310
- toolRegistry.register({
311
- name: 'delete_case',
312
- description: 'Delete a test case from a project',
313
- schema: DeleteCaseSchema,
314
- handler: deleteCase,
315
- annotations: DeleteAnnotation,
316
- });
317
- toolRegistry.register({
318
- name: 'bulk_create_cases',
319
- description: 'Create multiple test cases at once in a project',
320
- schema: BulkCreateCasesSchema,
321
- handler: bulkCreateCases,
322
- annotations: CreateAnnotation,
323
- });
324
- toolRegistry.register({
325
- name: 'attach_external_issue',
326
- description: 'Attach an external issue (e.g., Jira ticket) to a test case',
327
- schema: AttachExternalIssueSchema,
328
- handler: attachExternalIssue,
329
- annotations: CreateAnnotation,
330
- });
331
- toolRegistry.register({
332
- name: 'detach_external_issue',
333
- description: 'Detach an external issue from a test case',
334
- schema: DetachExternalIssueSchema,
335
- handler: detachExternalIssue,
336
- annotations: DeleteAnnotation,
337
- });
338
- //# sourceMappingURL=cases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cases.js","sourceRoot":"","sources":["../../src/operations/cases.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Configurations Operations
3
- *
4
- * Implements all MCP tools for managing test configurations in Qase.
5
- * Configurations represent test environment settings (browser, OS, device, etc.).
6
- *
7
- * https://developers.qase.io/reference/get-configurations
8
- */
9
- export {};
10
- //# sourceMappingURL=configurations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configurations.d.ts","sourceRoot":"","sources":["../../src/operations/configurations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}