@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,125 +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
- import { z } from 'zod';
10
- import { getApiClient } from '../client/index.js';
11
- import { toolRegistry, ReadAnnotation, CreateAnnotation, DeleteAnnotation, } from '../utils/registry.js';
12
- import { toResultAsync, createToolError } from '../utils/errors.js';
13
- import { ProjectCodeSchema, IdSchema } from '../utils/validation.js';
14
- // ============================================================================
15
- // SCHEMAS
16
- // ============================================================================
17
- /**
18
- * Schema for a single configuration item within a group
19
- */
20
- const ConfigurationItemSchema = z.object({
21
- title: z.string().min(1).describe('Configuration item title (e.g., "Chrome", "Windows 10")'),
22
- });
23
- /**
24
- * Schema for listing configurations in a project
25
- * API: GET /v1/configuration/{code}
26
- * https://developers.qase.io/reference/get-configurations
27
- */
28
- const ListConfigurationsSchema = z.object({
29
- code: ProjectCodeSchema,
30
- });
31
- /**
32
- * Schema for creating a configuration group
33
- * API: POST /v1/configuration/{code}/group
34
- * https://developers.qase.io/reference/create-configuration-group
35
- */
36
- const CreateConfigurationGroupSchema = z.object({
37
- code: ProjectCodeSchema,
38
- title: z.string().min(1).max(255).describe('Configuration group title (e.g., "Browser", "OS")'),
39
- configurations: z
40
- .array(ConfigurationItemSchema)
41
- .min(1)
42
- .describe('Configuration items in the group'),
43
- });
44
- /**
45
- * Schema for deleting a configuration group
46
- * API: DELETE /v1/configuration/{code}/group/{id}
47
- * This endpoint is not documented in the official API docs but follows REST conventions.
48
- */
49
- const DeleteConfigurationGroupSchema = z.object({
50
- code: ProjectCodeSchema,
51
- id: IdSchema.describe('Configuration group ID'),
52
- });
53
- // ============================================================================
54
- // HANDLERS
55
- // ============================================================================
56
- /**
57
- * List all configurations in a project
58
- * API: GET /v1/configuration/{code}
59
- * https://developers.qase.io/reference/get-configurations
60
- */
61
- async function listConfigurations(args) {
62
- const client = getApiClient();
63
- const { code } = args;
64
- const result = await toResultAsync(client.configurations.getConfigurations(code));
65
- return result.match((response) => response.data.result, (error) => {
66
- throw createToolError(error, 'listing configurations');
67
- });
68
- }
69
- /**
70
- * Create a new configuration group
71
- * API: POST /v1/configuration/{code}/group
72
- * https://developers.qase.io/reference/create-configuration-group
73
- *
74
- * Note: The SDK type `ConfigurationGroupCreate` only declares `title`,
75
- * but the API also accepts a `configurations` array. We cast to `any`
76
- * to pass the full payload.
77
- */
78
- async function createConfigurationGroup(args) {
79
- const client = getApiClient();
80
- const { code, title, configurations } = args;
81
- const result = await toResultAsync(client.configurations.createConfigurationGroup(code, { title, configurations }));
82
- return result.match((response) => response.data.result, (error) => {
83
- throw createToolError(error, 'creating configuration group');
84
- });
85
- }
86
- /**
87
- * Delete a configuration group
88
- * API: DELETE /v1/configuration/{code}/group/{id}
89
- *
90
- * The SDK does not expose a delete method for configuration groups,
91
- * so we use a direct API call.
92
- */
93
- async function deleteConfigurationGroup(args) {
94
- const client = getApiClient();
95
- const { code, id } = args;
96
- await client.request(`/v1/configuration/${code}/group/${id}`, {
97
- method: 'DELETE',
98
- });
99
- return { success: true, id };
100
- }
101
- // ============================================================================
102
- // TOOL REGISTRATION
103
- // ============================================================================
104
- toolRegistry.register({
105
- name: 'list_configurations',
106
- description: 'Get all configuration groups and their items in a project',
107
- schema: ListConfigurationsSchema,
108
- handler: listConfigurations,
109
- annotations: ReadAnnotation,
110
- });
111
- toolRegistry.register({
112
- name: 'create_configuration_group',
113
- description: 'Create a new configuration group (e.g., Browser, OS) with items',
114
- schema: CreateConfigurationGroupSchema,
115
- handler: createConfigurationGroup,
116
- annotations: CreateAnnotation,
117
- });
118
- toolRegistry.register({
119
- name: 'delete_configuration_group',
120
- description: 'Delete a configuration group from a project',
121
- schema: DeleteConfigurationGroupSchema,
122
- handler: deleteConfigurationGroup,
123
- annotations: DeleteAnnotation,
124
- });
125
- //# sourceMappingURL=configurations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configurations.js","sourceRoot":"","sources":["../../src/operations/configurations.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Custom Fields Operations
3
- *
4
- * Implements all MCP tools for managing custom fields in Qase.
5
- * Custom fields extend entities with project-specific data fields.
6
- */
7
- export {};
8
- //# sourceMappingURL=custom-fields.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-fields.d.ts","sourceRoot":"","sources":["../../src/operations/custom-fields.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,172 +0,0 @@
1
- /**
2
- * Custom Fields Operations
3
- *
4
- * Implements all MCP tools for managing custom fields in Qase.
5
- * Custom fields extend entities with project-specific data fields.
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 { IdSchema } from '../utils/validation.js';
12
- // ============================================================================
13
- // SCHEMAS
14
- // ============================================================================
15
- /**
16
- * Custom field entity types
17
- */
18
- const CustomFieldEntityEnum = z.enum(['case', 'run', 'defect', 'result']);
19
- /**
20
- * Custom field data types
21
- */
22
- const CustomFieldTypeEnum = z.enum([
23
- 'number',
24
- 'string',
25
- 'text',
26
- 'selectbox',
27
- 'checkbox',
28
- 'radio',
29
- 'multiselect',
30
- 'url',
31
- 'user',
32
- 'datetime',
33
- ]);
34
- /**
35
- * Schema for listing custom fields
36
- */
37
- const ListCustomFieldsSchema = z.object({
38
- limit: z.number().int().positive().max(100).optional().describe('Maximum number of items'),
39
- offset: z.number().int().nonnegative().optional().describe('Number of items to skip'),
40
- });
41
- /**
42
- * Schema for getting a specific custom field
43
- */
44
- const GetCustomFieldSchema = z.object({
45
- id: IdSchema,
46
- });
47
- /**
48
- * Schema for creating a custom field
49
- */
50
- const CreateCustomFieldSchema = z.object({
51
- title: z.string().min(1).max(255).describe('Custom field title'),
52
- entity: CustomFieldEntityEnum.describe('Entity type this field applies to'),
53
- type: CustomFieldTypeEnum.describe('Data type of the field'),
54
- placeholder: z.string().optional().describe('Placeholder text'),
55
- default_value: z.string().optional().describe('Default value'),
56
- is_required: z.boolean().optional().describe('Whether field is required'),
57
- is_visible: z.boolean().optional().describe('Whether field is visible'),
58
- projects: z.array(z.string()).optional().describe('Project codes where field is available'),
59
- });
60
- /**
61
- * Schema for updating a custom field
62
- */
63
- const UpdateCustomFieldSchema = z.object({
64
- id: IdSchema,
65
- title: z.string().min(1).max(255).optional().describe('Custom field title'),
66
- placeholder: z.string().optional().describe('Placeholder text'),
67
- default_value: z.string().optional().describe('Default value'),
68
- is_required: z.boolean().optional().describe('Whether field is required'),
69
- is_visible: z.boolean().optional().describe('Whether field is visible'),
70
- });
71
- /**
72
- * Schema for deleting a custom field
73
- */
74
- const DeleteCustomFieldSchema = z.object({
75
- id: IdSchema,
76
- });
77
- // ============================================================================
78
- // HANDLERS
79
- // ============================================================================
80
- /**
81
- * List all custom fields
82
- */
83
- async function listCustomFields(args) {
84
- const client = getApiClient();
85
- const { limit, offset } = args;
86
- const result = await toResultAsync(client.customFields.getCustomFields(undefined, undefined, limit, offset));
87
- return result.match((response) => response.data.result, (error) => {
88
- throw createToolError(error, 'custom field operation');
89
- });
90
- }
91
- /**
92
- * Get a specific custom field
93
- */
94
- async function getCustomField(args) {
95
- const client = getApiClient();
96
- const { id } = args;
97
- const result = await toResultAsync(client.customFields.getCustomField(id));
98
- return result.match((response) => response.data.result, (error) => {
99
- throw createToolError(error, 'custom field operation');
100
- });
101
- }
102
- /**
103
- * Create a new custom field
104
- */
105
- async function createCustomField(args) {
106
- const client = getApiClient();
107
- const result = await toResultAsync(client.customFields.createCustomField(args));
108
- return result.match((response) => response.data.result, (error) => {
109
- throw createToolError(error, 'custom field operation');
110
- });
111
- }
112
- /**
113
- * Update an existing custom field
114
- */
115
- async function updateCustomField(args) {
116
- const client = getApiClient();
117
- const { id, ...updateData } = args;
118
- const result = await toResultAsync(client.customFields.updateCustomField(id, updateData));
119
- return result.match((response) => response.data.result, (error) => {
120
- throw createToolError(error, 'custom field operation');
121
- });
122
- }
123
- /**
124
- * Delete a custom field
125
- */
126
- async function deleteCustomField(args) {
127
- const client = getApiClient();
128
- const { id } = args;
129
- const result = await toResultAsync(client.customFields.deleteCustomField(id));
130
- return result.match((_response) => ({ success: true, id }), (error) => {
131
- throw createToolError(error, 'custom field operation');
132
- });
133
- }
134
- // ============================================================================
135
- // TOOL REGISTRATION
136
- // ============================================================================
137
- toolRegistry.register({
138
- name: 'list_custom_fields',
139
- description: 'Get all custom field definitions with optional pagination',
140
- schema: ListCustomFieldsSchema,
141
- handler: listCustomFields,
142
- annotations: ReadAnnotation,
143
- });
144
- toolRegistry.register({
145
- name: 'get_custom_field',
146
- description: 'Get a specific custom field definition by ID',
147
- schema: GetCustomFieldSchema,
148
- handler: getCustomField,
149
- annotations: ReadAnnotation,
150
- });
151
- toolRegistry.register({
152
- name: 'create_custom_field',
153
- description: 'Create a new custom field for extending entity data',
154
- schema: CreateCustomFieldSchema,
155
- handler: createCustomField,
156
- annotations: CreateAnnotation,
157
- });
158
- toolRegistry.register({
159
- name: 'update_custom_field',
160
- description: 'Update an existing custom field definition',
161
- schema: UpdateCustomFieldSchema,
162
- handler: updateCustomField,
163
- annotations: UpdateAnnotation,
164
- });
165
- toolRegistry.register({
166
- name: 'delete_custom_field',
167
- description: 'Delete a custom field definition',
168
- schema: DeleteCustomFieldSchema,
169
- handler: deleteCustomField,
170
- annotations: DeleteAnnotation,
171
- });
172
- //# sourceMappingURL=custom-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-fields.js","sourceRoot":"","sources":["../../src/operations/custom-fields.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Defects Operations
3
- *
4
- * Implements all MCP tools for managing defects in Qase.
5
- * Defects represent bugs and issues discovered during testing.
6
- */
7
- export {};
8
- //# sourceMappingURL=defects.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defects.d.ts","sourceRoot":"","sources":["../../src/operations/defects.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,256 +0,0 @@
1
- /**
2
- * Defects Operations
3
- *
4
- * Implements all MCP tools for managing defects in Qase.
5
- * Defects represent bugs and issues discovered during testing.
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
- * Defect severity as human-readable label.
17
- * Converted to numeric ID before sending to the SDK.
18
- */
19
- const DefectSeveritySchema = z
20
- .enum(['undefined', 'blocker', 'critical', 'major', 'normal', 'minor', 'trivial'])
21
- .optional()
22
- .describe('Defect severity level');
23
- const severityToId = {
24
- undefined: 0,
25
- blocker: 1,
26
- critical: 2,
27
- major: 3,
28
- normal: 4,
29
- minor: 5,
30
- trivial: 6,
31
- };
32
- /**
33
- * Defect status values
34
- */
35
- const DefectStatusEnum = z.enum(['open', 'in_progress', 'resolved', 'invalid']);
36
- /**
37
- * Schema for listing defects
38
- * API: GET /v1/defect/{code}
39
- * https://developers.qase.io/reference/get-defects
40
- *
41
- * The Qase API only supports filtering by a single status value.
42
- * Severity filtering is not supported by the API.
43
- */
44
- const ListDefectsSchema = z.object({
45
- code: ProjectCodeSchema,
46
- status: DefectStatusEnum.optional().describe('Filter by status'),
47
- limit: z
48
- .number()
49
- .int()
50
- .positive()
51
- .max(100)
52
- .optional()
53
- .describe('Maximum number of items (default: 10)'),
54
- offset: z
55
- .number()
56
- .int()
57
- .nonnegative()
58
- .optional()
59
- .describe('Number of items to skip (default: 0)'),
60
- });
61
- /**
62
- * Schema for getting a specific defect
63
- */
64
- const GetDefectSchema = z.object({
65
- code: ProjectCodeSchema,
66
- id: IdSchema,
67
- });
68
- /**
69
- * Schema for creating a defect
70
- */
71
- const CreateDefectSchema = z.object({
72
- code: ProjectCodeSchema,
73
- title: z.string().min(1).max(255).describe('Defect title'),
74
- actual_result: z.string().optional().describe('Actual behavior observed'),
75
- severity: DefectSeveritySchema.describe('Defect severity'),
76
- attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
77
- custom_field: z.record(z.any()).optional().describe('Custom field values'),
78
- tags: z.array(z.string()).optional().describe('Tags for categorization'),
79
- });
80
- /**
81
- * Schema for updating a defect
82
- */
83
- const UpdateDefectSchema = z.object({
84
- code: ProjectCodeSchema,
85
- id: IdSchema,
86
- title: z.string().min(1).max(255).optional().describe('Defect title'),
87
- actual_result: z.string().optional().describe('Actual behavior observed'),
88
- severity: DefectSeveritySchema.describe('Defect severity'),
89
- attachments: z.array(z.string()).optional().describe('Array of attachment hashes'),
90
- tags: z.array(z.string()).optional().describe('Tags for categorization'),
91
- });
92
- /**
93
- * Schema for deleting a defect
94
- */
95
- const DeleteDefectSchema = z.object({
96
- code: ProjectCodeSchema,
97
- id: IdSchema,
98
- });
99
- /**
100
- * Schema for resolving a defect
101
- */
102
- const ResolveDefectSchema = z.object({
103
- code: ProjectCodeSchema,
104
- id: IdSchema,
105
- });
106
- /**
107
- * Schema for updating defect status
108
- */
109
- const UpdateDefectStatusSchema = z.object({
110
- code: ProjectCodeSchema,
111
- id: IdSchema,
112
- status: DefectStatusEnum.describe('New defect status'),
113
- });
114
- // ============================================================================
115
- // HANDLERS
116
- // ============================================================================
117
- /**
118
- * List all defects in a project
119
- * API: GET /v1/defect/{code}
120
- * https://developers.qase.io/reference/get-defects
121
- */
122
- async function listDefects(args) {
123
- const client = getApiClient();
124
- const { code, status, limit, offset } = args;
125
- const result = await toResultAsync(client.defects.getDefects(code, status, limit, offset));
126
- return result.match((response) => response.data.result, (error) => {
127
- throw createToolError(error, 'defect operation');
128
- });
129
- }
130
- /**
131
- * Get a specific defect
132
- */
133
- async function getDefect(args) {
134
- const client = getApiClient();
135
- const { code, id } = args;
136
- const result = await toResultAsync(client.defects.getDefect(code, id));
137
- return result.match((response) => response.data.result, (error) => {
138
- throw createToolError(error, 'defect operation');
139
- });
140
- }
141
- /**
142
- * Create a new defect
143
- */
144
- async function createDefect(args) {
145
- const client = getApiClient();
146
- const { code, severity, ...rest } = args;
147
- const defectData = {
148
- ...rest,
149
- ...(severity !== undefined && { severity: severityToId[severity] }),
150
- };
151
- const result = await toResultAsync(client.defects.createDefect(code, defectData));
152
- return result.match((response) => response.data.result, (error) => {
153
- throw createToolError(error, 'defect operation');
154
- });
155
- }
156
- /**
157
- * Update an existing defect
158
- */
159
- async function updateDefect(args) {
160
- const client = getApiClient();
161
- const { code, id, severity, ...rest } = args;
162
- const updateData = {
163
- ...rest,
164
- ...(severity !== undefined && { severity: severityToId[severity] }),
165
- };
166
- const result = await toResultAsync(client.defects.updateDefect(code, id, updateData));
167
- return result.match((response) => response.data.result, (error) => {
168
- throw createToolError(error, 'defect operation');
169
- });
170
- }
171
- /**
172
- * Delete a defect
173
- */
174
- async function deleteDefect(args) {
175
- const client = getApiClient();
176
- const { code, id } = args;
177
- const result = await toResultAsync(client.defects.deleteDefect(code, id));
178
- return result.match((_response) => ({ success: true, id }), (error) => {
179
- throw createToolError(error, 'defect operation');
180
- });
181
- }
182
- /**
183
- * Mark a defect as resolved
184
- */
185
- async function resolveDefect(args) {
186
- const client = getApiClient();
187
- const { code, id } = args;
188
- const result = await toResultAsync(client.defects.resolveDefect(code, id));
189
- return result.match((response) => response.data.result, (error) => {
190
- throw createToolError(error, 'defect operation');
191
- });
192
- }
193
- /**
194
- * Update defect status
195
- */
196
- async function updateDefectStatus(args) {
197
- const client = getApiClient();
198
- const { code, id, status } = args;
199
- const result = await toResultAsync(client.defects.updateDefect(code, id, { status }));
200
- return result.match((response) => response.data.result, (error) => {
201
- throw createToolError(error, 'defect operation');
202
- });
203
- }
204
- // ============================================================================
205
- // TOOL REGISTRATION
206
- // ============================================================================
207
- toolRegistry.register({
208
- name: 'list_defects',
209
- description: 'Get all defects in a project with optional filtering by status and severity',
210
- schema: ListDefectsSchema,
211
- handler: listDefects,
212
- annotations: ReadAnnotation,
213
- });
214
- toolRegistry.register({
215
- name: 'get_defect',
216
- description: 'Get a specific defect by project code and defect ID',
217
- schema: GetDefectSchema,
218
- handler: getDefect,
219
- annotations: ReadAnnotation,
220
- });
221
- toolRegistry.register({
222
- name: 'create_defect',
223
- description: 'Create a new defect/bug report in a project',
224
- schema: CreateDefectSchema,
225
- handler: createDefect,
226
- annotations: CreateAnnotation,
227
- });
228
- toolRegistry.register({
229
- name: 'update_defect',
230
- description: 'Update an existing defect',
231
- schema: UpdateDefectSchema,
232
- handler: updateDefect,
233
- annotations: UpdateAnnotation,
234
- });
235
- toolRegistry.register({
236
- name: 'delete_defect',
237
- description: 'Delete a defect from a project',
238
- schema: DeleteDefectSchema,
239
- handler: deleteDefect,
240
- annotations: DeleteAnnotation,
241
- });
242
- toolRegistry.register({
243
- name: 'resolve_defect',
244
- description: 'Mark a defect as resolved',
245
- schema: ResolveDefectSchema,
246
- handler: resolveDefect,
247
- annotations: UpdateAnnotation,
248
- });
249
- toolRegistry.register({
250
- name: 'update_defect_status',
251
- description: 'Update the status of a defect (open, in_progress, resolved, invalid)',
252
- schema: UpdateDefectStatusSchema,
253
- handler: updateDefectStatus,
254
- annotations: UpdateAnnotation,
255
- });
256
- //# sourceMappingURL=defects.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defects.js","sourceRoot":"","sources":["../../src/operations/defects.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Environments Operations
3
- *
4
- * Implements all MCP tools for managing test environments in Qase.
5
- * Environments represent different testing stages (staging, production, etc.).
6
- */
7
- export {};
8
- //# sourceMappingURL=environments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/operations/environments.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}