@jagadeesh52423/atlassian-mcp-server 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clients/base-client.d.ts +26 -0
- package/dist/clients/base-client.d.ts.map +1 -0
- package/dist/clients/base-client.js +58 -0
- package/dist/clients/base-client.js.map +1 -0
- package/dist/clients/bitbucket-client.d.ts +17 -0
- package/dist/clients/bitbucket-client.d.ts.map +1 -0
- package/dist/clients/bitbucket-client.js +36 -0
- package/dist/clients/bitbucket-client.js.map +1 -0
- package/dist/clients/confluence-client.d.ts +8 -0
- package/dist/clients/confluence-client.d.ts.map +1 -0
- package/dist/clients/confluence-client.js +16 -0
- package/dist/clients/confluence-client.js.map +1 -0
- package/dist/clients/index.d.ts +5 -0
- package/dist/clients/index.d.ts.map +1 -0
- package/dist/clients/index.js +5 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/jira-client.d.ts +8 -0
- package/dist/clients/jira-client.d.ts.map +1 -0
- package/dist/clients/jira-client.js +16 -0
- package/dist/clients/jira-client.js.map +1 -0
- package/dist/constants.d.ts +67 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +78 -0
- package/dist/constants.js.map +1 -0
- package/dist/error-handler.d.ts +83 -0
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +141 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/formatters/adf-formatter.d.ts +25 -0
- package/dist/formatters/adf-formatter.d.ts.map +1 -0
- package/dist/formatters/adf-formatter.js +609 -0
- package/dist/formatters/adf-formatter.js.map +1 -0
- package/dist/formatters/index.d.ts +2 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +2 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/handlers/bitbucket-handlers.d.ts +94 -0
- package/dist/handlers/bitbucket-handlers.d.ts.map +1 -0
- package/dist/handlers/bitbucket-handlers.js +251 -0
- package/dist/handlers/bitbucket-handlers.js.map +1 -0
- package/dist/handlers/confluence-handlers.d.ts +106 -0
- package/dist/handlers/confluence-handlers.d.ts.map +1 -0
- package/dist/handlers/confluence-handlers.js +340 -0
- package/dist/handlers/confluence-handlers.js.map +1 -0
- package/dist/handlers/index.d.ts +4 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +4 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/jira-handlers.d.ts +237 -0
- package/dist/handlers/jira-handlers.d.ts.map +1 -0
- package/dist/handlers/jira-handlers.js +816 -0
- package/dist/handlers/jira-handlers.js.map +1 -0
- package/dist/index.js +189 -2536
- package/dist/index.js.map +1 -1
- package/dist/services/bitbucket.d.ts +11 -1
- package/dist/services/bitbucket.d.ts.map +1 -1
- package/dist/services/bitbucket.js +78 -0
- package/dist/services/bitbucket.js.map +1 -1
- package/dist/services/confluence.d.ts +5 -0
- package/dist/services/confluence.d.ts.map +1 -1
- package/dist/services/confluence.js +59 -4
- package/dist/services/confluence.js.map +1 -1
- package/dist/services/jira.d.ts +57 -0
- package/dist/services/jira.d.ts.map +1 -1
- package/dist/services/jira.js +395 -24
- package/dist/services/jira.js.map +1 -1
- package/dist/tools/bitbucket-tools.d.ts +6 -0
- package/dist/tools/bitbucket-tools.d.ts.map +1 -0
- package/dist/tools/bitbucket-tools.js +386 -0
- package/dist/tools/bitbucket-tools.js.map +1 -0
- package/dist/tools/confluence-tools.d.ts +17 -0
- package/dist/tools/confluence-tools.d.ts.map +1 -0
- package/dist/tools/confluence-tools.js +440 -0
- package/dist/tools/confluence-tools.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/jira-tools.d.ts +6 -0
- package/dist/tools/jira-tools.d.ts.map +1 -0
- package/dist/tools/jira-tools.js +1032 -0
- package/dist/tools/jira-tools.js.map +1 -0
- package/dist/types.d.ts +23 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,1032 @@
|
|
|
1
|
+
import { PAGINATION, DEFAULTS } from '../constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Jira tool definitions
|
|
4
|
+
*/
|
|
5
|
+
export const jiraTools = [
|
|
6
|
+
{
|
|
7
|
+
name: 'jira_search_issues',
|
|
8
|
+
description: 'Search Jira issues with flexible filtering. Use individual filters (assignee, status, project, labels) or provide raw JQL for advanced queries.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
query: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'Text to search for in issues',
|
|
15
|
+
},
|
|
16
|
+
assignee: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Filter by assignee. Use "currentUser()" for your own issues, or an account ID',
|
|
19
|
+
},
|
|
20
|
+
status: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'Filter by status name (e.g., "To Do", "In Progress", "Done")',
|
|
23
|
+
},
|
|
24
|
+
project: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'Filter by project key (e.g., "PROJ")',
|
|
27
|
+
},
|
|
28
|
+
labels: {
|
|
29
|
+
type: 'array',
|
|
30
|
+
items: { type: 'string' },
|
|
31
|
+
description: 'Filter by labels (all must match)',
|
|
32
|
+
},
|
|
33
|
+
reporter: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
description: 'Filter by reporter. Use "currentUser()" for issues you reported, or an account ID',
|
|
36
|
+
},
|
|
37
|
+
createdAfter: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Show issues created after this date. Use relative days (e.g., "10d" for last 10 days, "30d" for last 30 days) or absolute date (e.g., "2026-01-15")',
|
|
40
|
+
},
|
|
41
|
+
updatedAfter: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: 'Show issues updated after this date. Use relative days (e.g., "7d" for last 7 days) or absolute date (e.g., "2026-01-15")',
|
|
44
|
+
},
|
|
45
|
+
jql: {
|
|
46
|
+
type: 'string',
|
|
47
|
+
description: 'Raw JQL query (overrides all other filters when provided)',
|
|
48
|
+
},
|
|
49
|
+
fields: {
|
|
50
|
+
type: 'array',
|
|
51
|
+
items: { type: 'string' },
|
|
52
|
+
description: 'Fields to include in the response. When specified, ONLY these fields are returned (plus issue key). When omitted, defaults to: summary, description, status, assignee, labels, created, updated. Use jira_get_fields to discover all available field IDs before using this parameter.',
|
|
53
|
+
},
|
|
54
|
+
limit: {
|
|
55
|
+
type: 'number',
|
|
56
|
+
description: `Maximum number of results (default: ${PAGINATION.JIRA_DEFAULT_LIMIT})`,
|
|
57
|
+
default: PAGINATION.JIRA_DEFAULT_LIMIT,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'jira_get_issue',
|
|
64
|
+
description: 'Get a specific Jira issue by key',
|
|
65
|
+
inputSchema: {
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {
|
|
68
|
+
issueKey: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
description: 'The issue key (e.g., PROJ-123)',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
required: ['issueKey'],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: 'jira_create_issue',
|
|
78
|
+
description: 'Create a new Jira issue with support for custom fields including due dates',
|
|
79
|
+
inputSchema: {
|
|
80
|
+
type: 'object',
|
|
81
|
+
properties: {
|
|
82
|
+
projectKey: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
description: 'The project key where to create the issue',
|
|
85
|
+
},
|
|
86
|
+
summary: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
description: 'Issue summary/title',
|
|
89
|
+
},
|
|
90
|
+
description: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
description: 'Issue description',
|
|
93
|
+
},
|
|
94
|
+
issueType: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: `Issue type (default: ${DEFAULTS.JIRA_ISSUE_TYPE})`,
|
|
97
|
+
default: DEFAULTS.JIRA_ISSUE_TYPE,
|
|
98
|
+
},
|
|
99
|
+
duedate: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'Due date in YYYY-MM-DD format (e.g., 2024-12-31)',
|
|
102
|
+
},
|
|
103
|
+
priority: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Priority name (e.g., High, Medium, Low)',
|
|
106
|
+
},
|
|
107
|
+
labels: {
|
|
108
|
+
type: 'array',
|
|
109
|
+
items: { type: 'string' },
|
|
110
|
+
description: 'Array of label strings',
|
|
111
|
+
},
|
|
112
|
+
components: {
|
|
113
|
+
type: 'array',
|
|
114
|
+
items: { type: 'string' },
|
|
115
|
+
description: 'Array of component names',
|
|
116
|
+
},
|
|
117
|
+
assignee: {
|
|
118
|
+
type: 'string',
|
|
119
|
+
description: 'Account ID of the assignee',
|
|
120
|
+
},
|
|
121
|
+
customFields: {
|
|
122
|
+
type: 'object',
|
|
123
|
+
description: 'Additional custom fields as key-value pairs',
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
required: ['projectKey', 'summary', 'description'],
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'jira_update_issue',
|
|
131
|
+
description: 'Update an existing Jira issue',
|
|
132
|
+
inputSchema: {
|
|
133
|
+
type: 'object',
|
|
134
|
+
properties: {
|
|
135
|
+
issueKey: {
|
|
136
|
+
type: 'string',
|
|
137
|
+
description: 'The issue key to update',
|
|
138
|
+
},
|
|
139
|
+
summary: {
|
|
140
|
+
type: 'string',
|
|
141
|
+
description: 'New issue summary',
|
|
142
|
+
},
|
|
143
|
+
description: {
|
|
144
|
+
type: 'string',
|
|
145
|
+
description: 'New issue description',
|
|
146
|
+
},
|
|
147
|
+
assignee: {
|
|
148
|
+
type: 'string',
|
|
149
|
+
description: 'Account ID of the assignee',
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
required: ['issueKey'],
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: 'jira_add_comment',
|
|
157
|
+
description: 'Add a comment to a Jira issue',
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: 'object',
|
|
160
|
+
properties: {
|
|
161
|
+
issueKey: {
|
|
162
|
+
type: 'string',
|
|
163
|
+
description: 'The issue key to comment on',
|
|
164
|
+
},
|
|
165
|
+
comment: {
|
|
166
|
+
type: 'string',
|
|
167
|
+
description: 'Comment text',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
required: ['issueKey', 'comment'],
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: 'jira_get_comments',
|
|
175
|
+
description: 'Get all comments for a Jira issue',
|
|
176
|
+
inputSchema: {
|
|
177
|
+
type: 'object',
|
|
178
|
+
properties: {
|
|
179
|
+
issueKey: {
|
|
180
|
+
type: 'string',
|
|
181
|
+
description: 'The issue key to get comments for',
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
required: ['issueKey'],
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: 'jira_update_comment',
|
|
189
|
+
description: 'Update an existing comment on a Jira issue',
|
|
190
|
+
inputSchema: {
|
|
191
|
+
type: 'object',
|
|
192
|
+
properties: {
|
|
193
|
+
issueKey: {
|
|
194
|
+
type: 'string',
|
|
195
|
+
description: 'The issue key (e.g., PROJ-123)',
|
|
196
|
+
},
|
|
197
|
+
commentId: {
|
|
198
|
+
type: 'string',
|
|
199
|
+
description: 'The comment ID to update',
|
|
200
|
+
},
|
|
201
|
+
comment: {
|
|
202
|
+
type: 'string',
|
|
203
|
+
description: 'New comment text',
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
required: ['issueKey', 'commentId', 'comment'],
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: 'jira_delete_comment',
|
|
211
|
+
description: 'Delete a comment from a Jira issue',
|
|
212
|
+
inputSchema: {
|
|
213
|
+
type: 'object',
|
|
214
|
+
properties: {
|
|
215
|
+
issueKey: {
|
|
216
|
+
type: 'string',
|
|
217
|
+
description: 'The issue key (e.g., PROJ-123)',
|
|
218
|
+
},
|
|
219
|
+
commentId: {
|
|
220
|
+
type: 'string',
|
|
221
|
+
description: 'The comment ID to delete',
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
required: ['issueKey', 'commentId'],
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: 'jira_get_projects',
|
|
229
|
+
description: 'Get list of Jira projects',
|
|
230
|
+
inputSchema: {
|
|
231
|
+
type: 'object',
|
|
232
|
+
properties: {},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: 'jira_get_issue_transitions',
|
|
237
|
+
description: 'Get available transitions for a Jira issue',
|
|
238
|
+
inputSchema: {
|
|
239
|
+
type: 'object',
|
|
240
|
+
properties: {
|
|
241
|
+
issueKey: {
|
|
242
|
+
type: 'string',
|
|
243
|
+
description: 'The issue key (e.g., PROJECT-123)',
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
required: ['issueKey'],
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
name: 'jira_transition_issue',
|
|
251
|
+
description: 'Transition a Jira issue to a different status with smart field handling',
|
|
252
|
+
inputSchema: {
|
|
253
|
+
type: 'object',
|
|
254
|
+
properties: {
|
|
255
|
+
issueKey: {
|
|
256
|
+
type: 'string',
|
|
257
|
+
description: 'The issue key to transition',
|
|
258
|
+
},
|
|
259
|
+
transitionId: {
|
|
260
|
+
type: 'string',
|
|
261
|
+
description: 'The transition ID',
|
|
262
|
+
},
|
|
263
|
+
fieldValues: {
|
|
264
|
+
type: 'object',
|
|
265
|
+
description: 'Optional field values for the transition',
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
required: ['issueKey', 'transitionId'],
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
name: 'jira_transition_issue_interactive',
|
|
273
|
+
description: 'Transition a Jira issue with automatic field suggestion and validation',
|
|
274
|
+
inputSchema: {
|
|
275
|
+
type: 'object',
|
|
276
|
+
properties: {
|
|
277
|
+
issueKey: {
|
|
278
|
+
type: 'string',
|
|
279
|
+
description: 'The issue key to transition',
|
|
280
|
+
},
|
|
281
|
+
transitionId: {
|
|
282
|
+
type: 'string',
|
|
283
|
+
description: 'The transition ID',
|
|
284
|
+
},
|
|
285
|
+
fieldValues: {
|
|
286
|
+
type: 'object',
|
|
287
|
+
description: 'Optional field values for the transition',
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
required: ['issueKey', 'transitionId'],
|
|
291
|
+
},
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
name: 'jira_get_attachments',
|
|
295
|
+
description: 'Get all attachments for a Jira issue',
|
|
296
|
+
inputSchema: {
|
|
297
|
+
type: 'object',
|
|
298
|
+
properties: {
|
|
299
|
+
issueKey: {
|
|
300
|
+
type: 'string',
|
|
301
|
+
description: 'The issue key to get attachments for',
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
required: ['issueKey'],
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
name: 'jira_add_attachment',
|
|
309
|
+
description: 'Add an attachment to a Jira issue',
|
|
310
|
+
inputSchema: {
|
|
311
|
+
type: 'object',
|
|
312
|
+
properties: {
|
|
313
|
+
issueKey: {
|
|
314
|
+
type: 'string',
|
|
315
|
+
description: 'The issue key to attach file to',
|
|
316
|
+
},
|
|
317
|
+
filename: {
|
|
318
|
+
type: 'string',
|
|
319
|
+
description: 'The filename for the attachment',
|
|
320
|
+
},
|
|
321
|
+
fileContent: {
|
|
322
|
+
type: 'string',
|
|
323
|
+
description: 'Base64 encoded file content',
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
required: ['issueKey', 'filename', 'fileContent'],
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: 'jira_delete_attachment',
|
|
331
|
+
description: 'Delete an attachment from a Jira issue',
|
|
332
|
+
inputSchema: {
|
|
333
|
+
type: 'object',
|
|
334
|
+
properties: {
|
|
335
|
+
attachmentId: {
|
|
336
|
+
type: 'string',
|
|
337
|
+
description: 'The attachment ID to delete',
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
required: ['attachmentId'],
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
name: 'jira_get_issue_links',
|
|
345
|
+
description: 'Get all issue links for a Jira issue',
|
|
346
|
+
inputSchema: {
|
|
347
|
+
type: 'object',
|
|
348
|
+
properties: {
|
|
349
|
+
issueKey: {
|
|
350
|
+
type: 'string',
|
|
351
|
+
description: 'The issue key to get links for',
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
required: ['issueKey'],
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
name: 'jira_create_issue_link',
|
|
359
|
+
description: 'Create a link between two Jira issues',
|
|
360
|
+
inputSchema: {
|
|
361
|
+
type: 'object',
|
|
362
|
+
properties: {
|
|
363
|
+
inwardIssueKey: {
|
|
364
|
+
type: 'string',
|
|
365
|
+
description: 'The inward issue key',
|
|
366
|
+
},
|
|
367
|
+
outwardIssueKey: {
|
|
368
|
+
type: 'string',
|
|
369
|
+
description: 'The outward issue key',
|
|
370
|
+
},
|
|
371
|
+
linkType: {
|
|
372
|
+
type: 'string',
|
|
373
|
+
description: 'Link type name (e.g., "Blocks", "Relates", "Duplicates")',
|
|
374
|
+
},
|
|
375
|
+
},
|
|
376
|
+
required: ['inwardIssueKey', 'outwardIssueKey', 'linkType'],
|
|
377
|
+
},
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
name: 'jira_delete_issue_link',
|
|
381
|
+
description: 'Delete a link between Jira issues',
|
|
382
|
+
inputSchema: {
|
|
383
|
+
type: 'object',
|
|
384
|
+
properties: {
|
|
385
|
+
linkId: {
|
|
386
|
+
type: 'string',
|
|
387
|
+
description: 'The link ID to delete',
|
|
388
|
+
},
|
|
389
|
+
},
|
|
390
|
+
required: ['linkId'],
|
|
391
|
+
},
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
name: 'jira_get_link_types',
|
|
395
|
+
description: 'Get all available issue link types in Jira',
|
|
396
|
+
inputSchema: {
|
|
397
|
+
type: 'object',
|
|
398
|
+
properties: {},
|
|
399
|
+
},
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
name: 'jira_get_worklogs',
|
|
403
|
+
description: 'Get all work logs (time tracking entries) for a Jira issue',
|
|
404
|
+
inputSchema: {
|
|
405
|
+
type: 'object',
|
|
406
|
+
properties: {
|
|
407
|
+
issueKey: {
|
|
408
|
+
type: 'string',
|
|
409
|
+
description: 'The issue key to get work logs for',
|
|
410
|
+
},
|
|
411
|
+
},
|
|
412
|
+
required: ['issueKey'],
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
name: 'jira_add_worklog',
|
|
417
|
+
description: 'Add a work log (time spent) to a Jira issue',
|
|
418
|
+
inputSchema: {
|
|
419
|
+
type: 'object',
|
|
420
|
+
properties: {
|
|
421
|
+
issueKey: {
|
|
422
|
+
type: 'string',
|
|
423
|
+
description: 'The issue key to log work on',
|
|
424
|
+
},
|
|
425
|
+
timeSpentSeconds: {
|
|
426
|
+
type: 'number',
|
|
427
|
+
description: 'Time spent in seconds (e.g., 3600 for 1 hour)',
|
|
428
|
+
},
|
|
429
|
+
comment: {
|
|
430
|
+
type: 'string',
|
|
431
|
+
description: 'Optional comment describing the work done',
|
|
432
|
+
},
|
|
433
|
+
started: {
|
|
434
|
+
type: 'string',
|
|
435
|
+
description: 'Optional start date/time in ISO 8601 format (e.g., 2024-01-15T14:30:00.000+0000)',
|
|
436
|
+
},
|
|
437
|
+
},
|
|
438
|
+
required: ['issueKey', 'timeSpentSeconds'],
|
|
439
|
+
},
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
name: 'jira_update_worklog',
|
|
443
|
+
description: 'Update an existing work log entry',
|
|
444
|
+
inputSchema: {
|
|
445
|
+
type: 'object',
|
|
446
|
+
properties: {
|
|
447
|
+
issueKey: {
|
|
448
|
+
type: 'string',
|
|
449
|
+
description: 'The issue key',
|
|
450
|
+
},
|
|
451
|
+
worklogId: {
|
|
452
|
+
type: 'string',
|
|
453
|
+
description: 'The work log ID to update',
|
|
454
|
+
},
|
|
455
|
+
timeSpentSeconds: {
|
|
456
|
+
type: 'number',
|
|
457
|
+
description: 'Updated time spent in seconds',
|
|
458
|
+
},
|
|
459
|
+
comment: {
|
|
460
|
+
type: 'string',
|
|
461
|
+
description: 'Updated comment',
|
|
462
|
+
},
|
|
463
|
+
},
|
|
464
|
+
required: ['issueKey', 'worklogId'],
|
|
465
|
+
},
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
name: 'jira_delete_worklog',
|
|
469
|
+
description: 'Delete a work log entry from a Jira issue',
|
|
470
|
+
inputSchema: {
|
|
471
|
+
type: 'object',
|
|
472
|
+
properties: {
|
|
473
|
+
issueKey: {
|
|
474
|
+
type: 'string',
|
|
475
|
+
description: 'The issue key',
|
|
476
|
+
},
|
|
477
|
+
worklogId: {
|
|
478
|
+
type: 'string',
|
|
479
|
+
description: 'The work log ID to delete',
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
required: ['issueKey', 'worklogId'],
|
|
483
|
+
},
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
name: 'jira_get_watchers',
|
|
487
|
+
description: 'Get all watchers for a Jira issue',
|
|
488
|
+
inputSchema: {
|
|
489
|
+
type: 'object',
|
|
490
|
+
properties: {
|
|
491
|
+
issueKey: {
|
|
492
|
+
type: 'string',
|
|
493
|
+
description: 'The issue key to get watchers for',
|
|
494
|
+
},
|
|
495
|
+
},
|
|
496
|
+
required: ['issueKey'],
|
|
497
|
+
},
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
name: 'jira_add_watcher',
|
|
501
|
+
description: 'Add a watcher to a Jira issue',
|
|
502
|
+
inputSchema: {
|
|
503
|
+
type: 'object',
|
|
504
|
+
properties: {
|
|
505
|
+
issueKey: {
|
|
506
|
+
type: 'string',
|
|
507
|
+
description: 'The issue key',
|
|
508
|
+
},
|
|
509
|
+
accountId: {
|
|
510
|
+
type: 'string',
|
|
511
|
+
description: 'Account ID of the user to add as watcher',
|
|
512
|
+
},
|
|
513
|
+
},
|
|
514
|
+
required: ['issueKey', 'accountId'],
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
name: 'jira_remove_watcher',
|
|
519
|
+
description: 'Remove a watcher from a Jira issue',
|
|
520
|
+
inputSchema: {
|
|
521
|
+
type: 'object',
|
|
522
|
+
properties: {
|
|
523
|
+
issueKey: {
|
|
524
|
+
type: 'string',
|
|
525
|
+
description: 'The issue key',
|
|
526
|
+
},
|
|
527
|
+
accountId: {
|
|
528
|
+
type: 'string',
|
|
529
|
+
description: 'Account ID of the user to remove as watcher',
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
required: ['issueKey', 'accountId'],
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
name: 'jira_get_subtasks',
|
|
537
|
+
description: 'Get all sub-tasks for a Jira issue',
|
|
538
|
+
inputSchema: {
|
|
539
|
+
type: 'object',
|
|
540
|
+
properties: {
|
|
541
|
+
issueKey: {
|
|
542
|
+
type: 'string',
|
|
543
|
+
description: 'The parent issue key',
|
|
544
|
+
},
|
|
545
|
+
},
|
|
546
|
+
required: ['issueKey'],
|
|
547
|
+
},
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
name: 'jira_create_subtask',
|
|
551
|
+
description: 'Create a sub-task under a parent Jira issue',
|
|
552
|
+
inputSchema: {
|
|
553
|
+
type: 'object',
|
|
554
|
+
properties: {
|
|
555
|
+
parentKey: {
|
|
556
|
+
type: 'string',
|
|
557
|
+
description: 'The parent issue key',
|
|
558
|
+
},
|
|
559
|
+
summary: {
|
|
560
|
+
type: 'string',
|
|
561
|
+
description: 'Sub-task summary/title',
|
|
562
|
+
},
|
|
563
|
+
description: {
|
|
564
|
+
type: 'string',
|
|
565
|
+
description: 'Sub-task description',
|
|
566
|
+
},
|
|
567
|
+
},
|
|
568
|
+
required: ['parentKey', 'summary', 'description'],
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
name: 'jira_get_issue_history',
|
|
573
|
+
description: 'Get complete change history for a Jira issue',
|
|
574
|
+
inputSchema: {
|
|
575
|
+
type: 'object',
|
|
576
|
+
properties: {
|
|
577
|
+
issueKey: {
|
|
578
|
+
type: 'string',
|
|
579
|
+
description: 'The issue key to get history for',
|
|
580
|
+
},
|
|
581
|
+
},
|
|
582
|
+
required: ['issueKey'],
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
name: 'jira_get_fields',
|
|
587
|
+
description: 'Get available fields in Jira. Use this to discover field IDs for use with jira_search_issues fields parameter.',
|
|
588
|
+
inputSchema: {
|
|
589
|
+
type: 'object',
|
|
590
|
+
properties: {
|
|
591
|
+
type: {
|
|
592
|
+
type: 'string',
|
|
593
|
+
enum: ['standard', 'custom', 'all'],
|
|
594
|
+
description: 'Filter by field type: "standard" for built-in fields, "custom" for custom fields, "all" for both (default: "all")',
|
|
595
|
+
},
|
|
596
|
+
},
|
|
597
|
+
},
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
name: 'jira_get_labels',
|
|
601
|
+
description: 'Get available labels in Jira. Optionally filter by a search query.',
|
|
602
|
+
inputSchema: {
|
|
603
|
+
type: 'object',
|
|
604
|
+
properties: {
|
|
605
|
+
query: {
|
|
606
|
+
type: 'string',
|
|
607
|
+
description: 'Optional text to filter labels (prefix match)',
|
|
608
|
+
},
|
|
609
|
+
maxResults: {
|
|
610
|
+
type: 'number',
|
|
611
|
+
description: 'Maximum number of labels to return (default: 50)',
|
|
612
|
+
default: 50,
|
|
613
|
+
},
|
|
614
|
+
},
|
|
615
|
+
},
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
name: 'jira_add_labels',
|
|
619
|
+
description: 'Add labels to a Jira issue',
|
|
620
|
+
inputSchema: {
|
|
621
|
+
type: 'object',
|
|
622
|
+
properties: {
|
|
623
|
+
issueKey: {
|
|
624
|
+
type: 'string',
|
|
625
|
+
description: 'The issue key (e.g., PROJ-123)',
|
|
626
|
+
},
|
|
627
|
+
labels: {
|
|
628
|
+
type: 'array',
|
|
629
|
+
items: { type: 'string' },
|
|
630
|
+
description: 'Array of label strings to add',
|
|
631
|
+
},
|
|
632
|
+
},
|
|
633
|
+
required: ['issueKey', 'labels'],
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
name: 'jira_remove_labels',
|
|
638
|
+
description: 'Remove labels from a Jira issue',
|
|
639
|
+
inputSchema: {
|
|
640
|
+
type: 'object',
|
|
641
|
+
properties: {
|
|
642
|
+
issueKey: {
|
|
643
|
+
type: 'string',
|
|
644
|
+
description: 'The issue key (e.g., PROJ-123)',
|
|
645
|
+
},
|
|
646
|
+
labels: {
|
|
647
|
+
type: 'array',
|
|
648
|
+
items: { type: 'string' },
|
|
649
|
+
description: 'Array of label strings to remove',
|
|
650
|
+
},
|
|
651
|
+
},
|
|
652
|
+
required: ['issueKey', 'labels'],
|
|
653
|
+
},
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
name: 'jira_get_agile_boards',
|
|
657
|
+
description: 'Get Jira agile boards. Optionally filter by name, type (scrum/kanban), or project.',
|
|
658
|
+
inputSchema: {
|
|
659
|
+
type: 'object',
|
|
660
|
+
properties: {
|
|
661
|
+
name: {
|
|
662
|
+
type: 'string',
|
|
663
|
+
description: 'Filter boards by name (contains match)',
|
|
664
|
+
},
|
|
665
|
+
type: {
|
|
666
|
+
type: 'string',
|
|
667
|
+
enum: ['scrum', 'kanban', 'simple'],
|
|
668
|
+
description: 'Filter by board type',
|
|
669
|
+
},
|
|
670
|
+
projectKeyOrId: {
|
|
671
|
+
type: 'string',
|
|
672
|
+
description: 'Filter boards by project key or ID',
|
|
673
|
+
},
|
|
674
|
+
},
|
|
675
|
+
},
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
name: 'jira_get_board_issues',
|
|
679
|
+
description: 'Get all issues on a Jira agile board',
|
|
680
|
+
inputSchema: {
|
|
681
|
+
type: 'object',
|
|
682
|
+
properties: {
|
|
683
|
+
boardId: {
|
|
684
|
+
type: 'number',
|
|
685
|
+
description: 'The board ID',
|
|
686
|
+
},
|
|
687
|
+
jql: {
|
|
688
|
+
type: 'string',
|
|
689
|
+
description: 'Optional JQL to filter issues on the board',
|
|
690
|
+
},
|
|
691
|
+
maxResults: {
|
|
692
|
+
type: 'number',
|
|
693
|
+
description: 'Maximum number of results (default: 50)',
|
|
694
|
+
default: 50,
|
|
695
|
+
},
|
|
696
|
+
startAt: {
|
|
697
|
+
type: 'number',
|
|
698
|
+
description: 'Index of the first result (default: 0)',
|
|
699
|
+
default: 0,
|
|
700
|
+
},
|
|
701
|
+
},
|
|
702
|
+
required: ['boardId'],
|
|
703
|
+
},
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
name: 'jira_get_sprints',
|
|
707
|
+
description: 'Get sprints for a Jira agile board',
|
|
708
|
+
inputSchema: {
|
|
709
|
+
type: 'object',
|
|
710
|
+
properties: {
|
|
711
|
+
boardId: {
|
|
712
|
+
type: 'number',
|
|
713
|
+
description: 'The board ID',
|
|
714
|
+
},
|
|
715
|
+
state: {
|
|
716
|
+
type: 'string',
|
|
717
|
+
enum: ['active', 'closed', 'future'],
|
|
718
|
+
description: 'Filter sprints by state',
|
|
719
|
+
},
|
|
720
|
+
},
|
|
721
|
+
required: ['boardId'],
|
|
722
|
+
},
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
name: 'jira_get_sprint_issues',
|
|
726
|
+
description: 'Get all issues in a specific sprint',
|
|
727
|
+
inputSchema: {
|
|
728
|
+
type: 'object',
|
|
729
|
+
properties: {
|
|
730
|
+
sprintId: {
|
|
731
|
+
type: 'number',
|
|
732
|
+
description: 'The sprint ID',
|
|
733
|
+
},
|
|
734
|
+
jql: {
|
|
735
|
+
type: 'string',
|
|
736
|
+
description: 'Optional JQL to filter issues in the sprint',
|
|
737
|
+
},
|
|
738
|
+
maxResults: {
|
|
739
|
+
type: 'number',
|
|
740
|
+
description: 'Maximum number of results (default: 50)',
|
|
741
|
+
default: 50,
|
|
742
|
+
},
|
|
743
|
+
startAt: {
|
|
744
|
+
type: 'number',
|
|
745
|
+
description: 'Index of the first result (default: 0)',
|
|
746
|
+
default: 0,
|
|
747
|
+
},
|
|
748
|
+
},
|
|
749
|
+
required: ['sprintId'],
|
|
750
|
+
},
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
name: 'jira_batch_create_issues',
|
|
754
|
+
description: 'Create multiple Jira issues in a single request (max 50)',
|
|
755
|
+
inputSchema: {
|
|
756
|
+
type: 'object',
|
|
757
|
+
properties: {
|
|
758
|
+
issues: {
|
|
759
|
+
type: 'array',
|
|
760
|
+
description: 'Array of issues to create (max 50)',
|
|
761
|
+
items: {
|
|
762
|
+
type: 'object',
|
|
763
|
+
properties: {
|
|
764
|
+
projectKey: {
|
|
765
|
+
type: 'string',
|
|
766
|
+
description: 'The project key',
|
|
767
|
+
},
|
|
768
|
+
summary: {
|
|
769
|
+
type: 'string',
|
|
770
|
+
description: 'Issue summary/title',
|
|
771
|
+
},
|
|
772
|
+
description: {
|
|
773
|
+
type: 'string',
|
|
774
|
+
description: 'Issue description',
|
|
775
|
+
},
|
|
776
|
+
issueType: {
|
|
777
|
+
type: 'string',
|
|
778
|
+
description: 'Issue type (default: Task)',
|
|
779
|
+
},
|
|
780
|
+
additionalFields: {
|
|
781
|
+
type: 'object',
|
|
782
|
+
description: 'Additional fields as key-value pairs',
|
|
783
|
+
},
|
|
784
|
+
},
|
|
785
|
+
required: ['projectKey', 'summary', 'description'],
|
|
786
|
+
},
|
|
787
|
+
},
|
|
788
|
+
},
|
|
789
|
+
required: ['issues'],
|
|
790
|
+
},
|
|
791
|
+
},
|
|
792
|
+
{
|
|
793
|
+
name: 'jira_get_dev_status',
|
|
794
|
+
description: 'Get development information (PRs, branches, commits) linked to a Jira issue',
|
|
795
|
+
inputSchema: {
|
|
796
|
+
type: 'object',
|
|
797
|
+
properties: {
|
|
798
|
+
issueId: {
|
|
799
|
+
type: 'string',
|
|
800
|
+
description: 'The numeric issue ID (not the key). Use jira_get_issue to get the ID.',
|
|
801
|
+
},
|
|
802
|
+
applicationType: {
|
|
803
|
+
type: 'string',
|
|
804
|
+
description: 'Filter by application type (e.g., "GitHub", "Bitbucket", "GitLab")',
|
|
805
|
+
},
|
|
806
|
+
dataType: {
|
|
807
|
+
type: 'string',
|
|
808
|
+
description: 'Filter by data type (e.g., "pullrequest", "branch", "repository")',
|
|
809
|
+
},
|
|
810
|
+
},
|
|
811
|
+
required: ['issueId'],
|
|
812
|
+
},
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
name: 'jira_delete_issue',
|
|
816
|
+
description: 'Delete a Jira issue. Optionally delete its subtasks.',
|
|
817
|
+
inputSchema: {
|
|
818
|
+
type: 'object',
|
|
819
|
+
properties: {
|
|
820
|
+
issueKey: {
|
|
821
|
+
type: 'string',
|
|
822
|
+
description: 'The issue key to delete (e.g., PROJ-123)',
|
|
823
|
+
},
|
|
824
|
+
deleteSubtasks: {
|
|
825
|
+
type: 'boolean',
|
|
826
|
+
description: 'Whether to also delete subtasks (default: false)',
|
|
827
|
+
default: false,
|
|
828
|
+
},
|
|
829
|
+
},
|
|
830
|
+
required: ['issueKey'],
|
|
831
|
+
},
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
name: 'jira_lookup_user',
|
|
835
|
+
description: 'Look up Jira users by name or email address. Returns account IDs needed for assignee, watcher, and other user fields.',
|
|
836
|
+
inputSchema: {
|
|
837
|
+
type: 'object',
|
|
838
|
+
properties: {
|
|
839
|
+
query: {
|
|
840
|
+
type: 'string',
|
|
841
|
+
description: 'Name or email address to search for',
|
|
842
|
+
},
|
|
843
|
+
},
|
|
844
|
+
required: ['query'],
|
|
845
|
+
},
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
name: 'jira_get_issue_types',
|
|
849
|
+
description: 'Get available issue types for a Jira project (e.g., Bug, Story, Task, Epic, Sub-task)',
|
|
850
|
+
inputSchema: {
|
|
851
|
+
type: 'object',
|
|
852
|
+
properties: {
|
|
853
|
+
projectKey: {
|
|
854
|
+
type: 'string',
|
|
855
|
+
description: 'The project key (e.g., PROJ)',
|
|
856
|
+
},
|
|
857
|
+
},
|
|
858
|
+
required: ['projectKey'],
|
|
859
|
+
},
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
name: 'jira_create_sprint',
|
|
863
|
+
description: 'Create a new sprint on a Jira agile board',
|
|
864
|
+
inputSchema: {
|
|
865
|
+
type: 'object',
|
|
866
|
+
properties: {
|
|
867
|
+
boardId: {
|
|
868
|
+
type: 'number',
|
|
869
|
+
description: 'The board ID to create the sprint on',
|
|
870
|
+
},
|
|
871
|
+
name: {
|
|
872
|
+
type: 'string',
|
|
873
|
+
description: 'Sprint name',
|
|
874
|
+
},
|
|
875
|
+
startDate: {
|
|
876
|
+
type: 'string',
|
|
877
|
+
description: 'Sprint start date in ISO 8601 format (e.g., 2026-03-01T00:00:00.000Z)',
|
|
878
|
+
},
|
|
879
|
+
endDate: {
|
|
880
|
+
type: 'string',
|
|
881
|
+
description: 'Sprint end date in ISO 8601 format',
|
|
882
|
+
},
|
|
883
|
+
goal: {
|
|
884
|
+
type: 'string',
|
|
885
|
+
description: 'Sprint goal description',
|
|
886
|
+
},
|
|
887
|
+
},
|
|
888
|
+
required: ['boardId', 'name'],
|
|
889
|
+
},
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
name: 'jira_update_sprint',
|
|
893
|
+
description: 'Update an existing sprint (name, dates, state, goal)',
|
|
894
|
+
inputSchema: {
|
|
895
|
+
type: 'object',
|
|
896
|
+
properties: {
|
|
897
|
+
sprintId: {
|
|
898
|
+
type: 'number',
|
|
899
|
+
description: 'The sprint ID to update',
|
|
900
|
+
},
|
|
901
|
+
name: {
|
|
902
|
+
type: 'string',
|
|
903
|
+
description: 'New sprint name',
|
|
904
|
+
},
|
|
905
|
+
state: {
|
|
906
|
+
type: 'string',
|
|
907
|
+
enum: ['active', 'closed', 'future'],
|
|
908
|
+
description: 'New sprint state (use to start or close a sprint)',
|
|
909
|
+
},
|
|
910
|
+
startDate: {
|
|
911
|
+
type: 'string',
|
|
912
|
+
description: 'New start date in ISO 8601 format',
|
|
913
|
+
},
|
|
914
|
+
endDate: {
|
|
915
|
+
type: 'string',
|
|
916
|
+
description: 'New end date in ISO 8601 format',
|
|
917
|
+
},
|
|
918
|
+
goal: {
|
|
919
|
+
type: 'string',
|
|
920
|
+
description: 'Updated sprint goal',
|
|
921
|
+
},
|
|
922
|
+
},
|
|
923
|
+
required: ['sprintId'],
|
|
924
|
+
},
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
name: 'jira_get_project_versions',
|
|
928
|
+
description: 'Get all versions (releases) for a Jira project',
|
|
929
|
+
inputSchema: {
|
|
930
|
+
type: 'object',
|
|
931
|
+
properties: {
|
|
932
|
+
projectKey: {
|
|
933
|
+
type: 'string',
|
|
934
|
+
description: 'The project key (e.g., PROJ)',
|
|
935
|
+
},
|
|
936
|
+
},
|
|
937
|
+
required: ['projectKey'],
|
|
938
|
+
},
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
name: 'jira_create_version',
|
|
942
|
+
description: 'Create a new version (release) in a Jira project',
|
|
943
|
+
inputSchema: {
|
|
944
|
+
type: 'object',
|
|
945
|
+
properties: {
|
|
946
|
+
projectKey: {
|
|
947
|
+
type: 'string',
|
|
948
|
+
description: 'The project key (e.g., PROJ)',
|
|
949
|
+
},
|
|
950
|
+
name: {
|
|
951
|
+
type: 'string',
|
|
952
|
+
description: 'Version name (e.g., "1.2.0")',
|
|
953
|
+
},
|
|
954
|
+
description: {
|
|
955
|
+
type: 'string',
|
|
956
|
+
description: 'Version description',
|
|
957
|
+
},
|
|
958
|
+
startDate: {
|
|
959
|
+
type: 'string',
|
|
960
|
+
description: 'Start date in YYYY-MM-DD format',
|
|
961
|
+
},
|
|
962
|
+
releaseDate: {
|
|
963
|
+
type: 'string',
|
|
964
|
+
description: 'Release date in YYYY-MM-DD format',
|
|
965
|
+
},
|
|
966
|
+
released: {
|
|
967
|
+
type: 'boolean',
|
|
968
|
+
description: 'Whether the version is released (default: false)',
|
|
969
|
+
default: false,
|
|
970
|
+
},
|
|
971
|
+
},
|
|
972
|
+
required: ['projectKey', 'name'],
|
|
973
|
+
},
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
name: 'jira_update_version',
|
|
977
|
+
description: 'Update an existing version (release) in Jira',
|
|
978
|
+
inputSchema: {
|
|
979
|
+
type: 'object',
|
|
980
|
+
properties: {
|
|
981
|
+
versionId: {
|
|
982
|
+
type: 'string',
|
|
983
|
+
description: 'The version ID to update',
|
|
984
|
+
},
|
|
985
|
+
name: {
|
|
986
|
+
type: 'string',
|
|
987
|
+
description: 'New version name',
|
|
988
|
+
},
|
|
989
|
+
description: {
|
|
990
|
+
type: 'string',
|
|
991
|
+
description: 'New version description',
|
|
992
|
+
},
|
|
993
|
+
startDate: {
|
|
994
|
+
type: 'string',
|
|
995
|
+
description: 'New start date in YYYY-MM-DD format',
|
|
996
|
+
},
|
|
997
|
+
releaseDate: {
|
|
998
|
+
type: 'string',
|
|
999
|
+
description: 'New release date in YYYY-MM-DD format',
|
|
1000
|
+
},
|
|
1001
|
+
released: {
|
|
1002
|
+
type: 'boolean',
|
|
1003
|
+
description: 'Mark as released',
|
|
1004
|
+
},
|
|
1005
|
+
archived: {
|
|
1006
|
+
type: 'boolean',
|
|
1007
|
+
description: 'Mark as archived',
|
|
1008
|
+
},
|
|
1009
|
+
},
|
|
1010
|
+
required: ['versionId'],
|
|
1011
|
+
},
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
name: 'jira_link_to_epic',
|
|
1015
|
+
description: 'Link an issue to an epic. Works with both next-gen (parent field) and classic (Epic Link field) projects.',
|
|
1016
|
+
inputSchema: {
|
|
1017
|
+
type: 'object',
|
|
1018
|
+
properties: {
|
|
1019
|
+
issueKey: {
|
|
1020
|
+
type: 'string',
|
|
1021
|
+
description: 'The issue key to link (e.g., PROJ-456)',
|
|
1022
|
+
},
|
|
1023
|
+
epicKey: {
|
|
1024
|
+
type: 'string',
|
|
1025
|
+
description: 'The epic key to link to (e.g., PROJ-100)',
|
|
1026
|
+
},
|
|
1027
|
+
},
|
|
1028
|
+
required: ['issueKey', 'epicKey'],
|
|
1029
|
+
},
|
|
1030
|
+
},
|
|
1031
|
+
];
|
|
1032
|
+
//# sourceMappingURL=jira-tools.js.map
|