@khanglvm/jira-mcp 1.3.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/LICENSE +21 -0
- package/README.md +126 -0
- package/dist/client.d.ts +287 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +235 -0
- package/dist/client.js.map +1 -0
- package/dist/config-fetcher.d.ts +30 -0
- package/dist/config-fetcher.d.ts.map +1 -0
- package/dist/config-fetcher.js +279 -0
- package/dist/config-fetcher.js.map +1 -0
- package/dist/config.d.ts +54 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +228 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-registry.d.ts +106 -0
- package/dist/mcp-registry.d.ts.map +1 -0
- package/dist/mcp-registry.js +168 -0
- package/dist/mcp-registry.js.map +1 -0
- package/dist/setup.d.ts +41 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +263 -0
- package/dist/setup.js.map +1 -0
- package/dist/tools/index.d.ts +10 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/issues.d.ts +364 -0
- package/dist/tools/issues.d.ts.map +1 -0
- package/dist/tools/issues.js +392 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/projects.d.ts +70 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +101 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/search.d.ts +76 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/tools/search.js +111 -0
- package/dist/tools/search.js.map +1 -0
- package/dist/tools/transitions.d.ts +99 -0
- package/dist/tools/transitions.d.ts.map +1 -0
- package/dist/tools/transitions.js +121 -0
- package/dist/tools/transitions.js.map +1 -0
- package/dist/tools/users.d.ts +70 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +96 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/types/mcp-config.d.ts +154 -0
- package/dist/types/mcp-config.d.ts.map +1 -0
- package/dist/types/mcp-config.js +7 -0
- package/dist/types/mcp-config.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +16 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +37 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/issues.ts
|
|
3
|
+
* @description Issue-related MCP tools for Jira.
|
|
4
|
+
* Provides tools for creating, reading, updating, and deleting issues.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
/**
|
|
8
|
+
* Schema for get_issue tool input.
|
|
9
|
+
*/
|
|
10
|
+
export const getIssueSchema = z.object({
|
|
11
|
+
issueKey: z.string().describe('The issue key (e.g., "PROJ-123") or ID'),
|
|
12
|
+
fields: z
|
|
13
|
+
.string()
|
|
14
|
+
.optional()
|
|
15
|
+
.describe('Comma-separated list of fields to return'),
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Schema for create_issue tool input.
|
|
19
|
+
*/
|
|
20
|
+
export const createIssueSchema = z.object({
|
|
21
|
+
projectKey: z.string().describe('The project key (e.g., "PROJ")'),
|
|
22
|
+
summary: z.string().describe('Issue summary/title'),
|
|
23
|
+
issueType: z
|
|
24
|
+
.string()
|
|
25
|
+
.default('Task')
|
|
26
|
+
.describe('Issue type name (e.g., "Bug", "Task", "Story")'),
|
|
27
|
+
description: z.string().optional().describe('Issue description'),
|
|
28
|
+
assignee: z.string().optional().describe('Assignee username'),
|
|
29
|
+
priority: z.string().optional().describe('Priority name (e.g., "High", "Medium")'),
|
|
30
|
+
labels: z.array(z.string()).optional().describe('Array of labels'),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Schema for update_issue tool input.
|
|
34
|
+
*/
|
|
35
|
+
export const updateIssueSchema = z.object({
|
|
36
|
+
issueKey: z.string().describe('The issue key or ID to update'),
|
|
37
|
+
summary: z.string().optional().describe('New summary'),
|
|
38
|
+
description: z.string().optional().describe('New description'),
|
|
39
|
+
assignee: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.nullable()
|
|
43
|
+
.describe('New assignee username (null to unassign)'),
|
|
44
|
+
priority: z.string().optional().describe('New priority name'),
|
|
45
|
+
labels: z.array(z.string()).optional().describe('New labels array'),
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* Schema for delete_issue tool input.
|
|
49
|
+
*/
|
|
50
|
+
export const deleteIssueSchema = z.object({
|
|
51
|
+
issueKey: z.string().describe('The issue key or ID to delete'),
|
|
52
|
+
deleteSubtasks: z
|
|
53
|
+
.boolean()
|
|
54
|
+
.default(false)
|
|
55
|
+
.describe('Whether to also delete subtasks'),
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Schema for add_comment tool input.
|
|
59
|
+
*/
|
|
60
|
+
export const addCommentSchema = z.object({
|
|
61
|
+
issueKey: z.string().describe('The issue key or ID'),
|
|
62
|
+
body: z.string().describe('Comment body text'),
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Schema for get_comments tool input.
|
|
66
|
+
*/
|
|
67
|
+
export const getCommentsSchema = z.object({
|
|
68
|
+
issueKey: z.string().describe('The issue key or ID'),
|
|
69
|
+
});
|
|
70
|
+
/**
|
|
71
|
+
* Creates issue tool handlers.
|
|
72
|
+
* @param client - Jira client instance
|
|
73
|
+
* @returns Object containing all issue tool handlers
|
|
74
|
+
*/
|
|
75
|
+
export function createIssueTools(client) {
|
|
76
|
+
return {
|
|
77
|
+
/**
|
|
78
|
+
* Gets an issue by key or ID.
|
|
79
|
+
*/
|
|
80
|
+
jira_get_issue: async (args) => {
|
|
81
|
+
const issue = await client.getIssue(args.issueKey, args.fields);
|
|
82
|
+
return {
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: 'text',
|
|
86
|
+
text: JSON.stringify({
|
|
87
|
+
key: issue.key,
|
|
88
|
+
id: issue.id,
|
|
89
|
+
summary: issue.fields.summary,
|
|
90
|
+
description: issue.fields.description,
|
|
91
|
+
status: issue.fields.status.name,
|
|
92
|
+
priority: issue.fields.priority?.name,
|
|
93
|
+
assignee: issue.fields.assignee?.displayName,
|
|
94
|
+
reporter: issue.fields.reporter?.displayName,
|
|
95
|
+
issueType: issue.fields.issuetype.name,
|
|
96
|
+
project: issue.fields.project.key,
|
|
97
|
+
labels: issue.fields.labels,
|
|
98
|
+
created: issue.fields.created,
|
|
99
|
+
updated: issue.fields.updated,
|
|
100
|
+
}, null, 2),
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
/**
|
|
106
|
+
* Creates a new issue.
|
|
107
|
+
*/
|
|
108
|
+
jira_create_issue: async (args) => {
|
|
109
|
+
const result = await client.createIssue({
|
|
110
|
+
project: { key: args.projectKey },
|
|
111
|
+
summary: args.summary,
|
|
112
|
+
issuetype: { name: args.issueType },
|
|
113
|
+
description: args.description,
|
|
114
|
+
assignee: args.assignee ? { name: args.assignee } : undefined,
|
|
115
|
+
priority: args.priority ? { name: args.priority } : undefined,
|
|
116
|
+
labels: args.labels,
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
content: [
|
|
120
|
+
{
|
|
121
|
+
type: 'text',
|
|
122
|
+
text: JSON.stringify({
|
|
123
|
+
success: true,
|
|
124
|
+
key: result.key,
|
|
125
|
+
id: result.id,
|
|
126
|
+
self: result.self,
|
|
127
|
+
}, null, 2),
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
};
|
|
131
|
+
},
|
|
132
|
+
/**
|
|
133
|
+
* Updates an existing issue.
|
|
134
|
+
*/
|
|
135
|
+
jira_update_issue: async (args) => {
|
|
136
|
+
await client.updateIssue(args.issueKey, {
|
|
137
|
+
summary: args.summary,
|
|
138
|
+
description: args.description,
|
|
139
|
+
assignee: args.assignee === null ? null : args.assignee ? { name: args.assignee } : undefined,
|
|
140
|
+
priority: args.priority ? { name: args.priority } : undefined,
|
|
141
|
+
labels: args.labels,
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
content: [
|
|
145
|
+
{
|
|
146
|
+
type: 'text',
|
|
147
|
+
text: JSON.stringify({
|
|
148
|
+
success: true,
|
|
149
|
+
message: `Issue ${args.issueKey} updated successfully`,
|
|
150
|
+
}, null, 2),
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
};
|
|
154
|
+
},
|
|
155
|
+
/**
|
|
156
|
+
* Deletes an issue.
|
|
157
|
+
*/
|
|
158
|
+
jira_delete_issue: async (args) => {
|
|
159
|
+
await client.deleteIssue(args.issueKey, args.deleteSubtasks);
|
|
160
|
+
return {
|
|
161
|
+
content: [
|
|
162
|
+
{
|
|
163
|
+
type: 'text',
|
|
164
|
+
text: JSON.stringify({
|
|
165
|
+
success: true,
|
|
166
|
+
message: `Issue ${args.issueKey} deleted successfully`,
|
|
167
|
+
}, null, 2),
|
|
168
|
+
},
|
|
169
|
+
],
|
|
170
|
+
};
|
|
171
|
+
},
|
|
172
|
+
/**
|
|
173
|
+
* Adds a comment to an issue.
|
|
174
|
+
*/
|
|
175
|
+
jira_add_comment: async (args) => {
|
|
176
|
+
const comment = await client.addComment(args.issueKey, args.body);
|
|
177
|
+
return {
|
|
178
|
+
content: [
|
|
179
|
+
{
|
|
180
|
+
type: 'text',
|
|
181
|
+
text: JSON.stringify({
|
|
182
|
+
success: true,
|
|
183
|
+
commentId: comment.id,
|
|
184
|
+
author: comment.author.displayName,
|
|
185
|
+
created: comment.created,
|
|
186
|
+
}, null, 2),
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
190
|
+
},
|
|
191
|
+
/**
|
|
192
|
+
* Gets comments on an issue.
|
|
193
|
+
*/
|
|
194
|
+
jira_get_comments: async (args) => {
|
|
195
|
+
const result = await client.getComments(args.issueKey);
|
|
196
|
+
return {
|
|
197
|
+
content: [
|
|
198
|
+
{
|
|
199
|
+
type: 'text',
|
|
200
|
+
text: JSON.stringify({
|
|
201
|
+
total: result.total,
|
|
202
|
+
comments: result.comments.map((c) => ({
|
|
203
|
+
id: c.id,
|
|
204
|
+
author: c.author.displayName,
|
|
205
|
+
body: c.body,
|
|
206
|
+
created: c.created,
|
|
207
|
+
updated: c.updated,
|
|
208
|
+
})),
|
|
209
|
+
}, null, 2),
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
};
|
|
213
|
+
},
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Tool definitions for issue-related operations.
|
|
218
|
+
* Semantic descriptions help AI understand when to use each tool.
|
|
219
|
+
*/
|
|
220
|
+
export const issueToolDefinitions = [
|
|
221
|
+
{
|
|
222
|
+
name: 'jira_get_issue',
|
|
223
|
+
description: `Retrieve full details of a specific Jira issue. Use when user:
|
|
224
|
+
- Asks about a specific ticket by key (PROJ-123) or ID
|
|
225
|
+
- Wants to see issue details, description, status, or assignee
|
|
226
|
+
- Needs information about a particular work item
|
|
227
|
+
|
|
228
|
+
Returns: summary, description, status, priority, assignee, reporter, labels, dates.`,
|
|
229
|
+
inputSchema: {
|
|
230
|
+
type: 'object',
|
|
231
|
+
properties: {
|
|
232
|
+
issueKey: {
|
|
233
|
+
type: 'string',
|
|
234
|
+
description: 'Issue key like PROJ-123 or numeric ID',
|
|
235
|
+
},
|
|
236
|
+
fields: {
|
|
237
|
+
type: 'string',
|
|
238
|
+
description: 'Comma-separated fields to return (optional)',
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
required: ['issueKey'],
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: 'jira_create_issue',
|
|
246
|
+
description: `Create a new issue in Jira. Use when user wants to:
|
|
247
|
+
- Log a bug, task, story, or any work item
|
|
248
|
+
- Report a problem or request a feature
|
|
249
|
+
- Create a ticket for new work
|
|
250
|
+
- Add something to the backlog
|
|
251
|
+
|
|
252
|
+
Defaults to 'Task' type. Common types: Bug, Task, Story, Epic, Sub-task.`,
|
|
253
|
+
inputSchema: {
|
|
254
|
+
type: 'object',
|
|
255
|
+
properties: {
|
|
256
|
+
projectKey: {
|
|
257
|
+
type: 'string',
|
|
258
|
+
description: 'Project key like "PROJ"',
|
|
259
|
+
},
|
|
260
|
+
summary: {
|
|
261
|
+
type: 'string',
|
|
262
|
+
description: 'Issue title/summary',
|
|
263
|
+
},
|
|
264
|
+
issueType: {
|
|
265
|
+
type: 'string',
|
|
266
|
+
description: 'Type: Bug, Task, Story, Epic (default: Task)',
|
|
267
|
+
default: 'Task',
|
|
268
|
+
},
|
|
269
|
+
description: {
|
|
270
|
+
type: 'string',
|
|
271
|
+
description: 'Detailed description',
|
|
272
|
+
},
|
|
273
|
+
assignee: {
|
|
274
|
+
type: 'string',
|
|
275
|
+
description: 'Username to assign to',
|
|
276
|
+
},
|
|
277
|
+
priority: {
|
|
278
|
+
type: 'string',
|
|
279
|
+
description: 'Priority: Highest, High, Medium, Low, Lowest',
|
|
280
|
+
},
|
|
281
|
+
labels: {
|
|
282
|
+
type: 'array',
|
|
283
|
+
items: { type: 'string' },
|
|
284
|
+
description: 'Labels to add',
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
required: ['projectKey', 'summary'],
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: 'jira_update_issue',
|
|
292
|
+
description: `Update an existing Jira issue. Use when user wants to:
|
|
293
|
+
- Change issue summary, description, or priority
|
|
294
|
+
- Reassign to someone else or unassign
|
|
295
|
+
- Update labels or other fields
|
|
296
|
+
- Modify ticket details`,
|
|
297
|
+
inputSchema: {
|
|
298
|
+
type: 'object',
|
|
299
|
+
properties: {
|
|
300
|
+
issueKey: {
|
|
301
|
+
type: 'string',
|
|
302
|
+
description: 'Issue key like PROJ-123',
|
|
303
|
+
},
|
|
304
|
+
summary: {
|
|
305
|
+
type: 'string',
|
|
306
|
+
description: 'New summary/title',
|
|
307
|
+
},
|
|
308
|
+
description: {
|
|
309
|
+
type: 'string',
|
|
310
|
+
description: 'New description',
|
|
311
|
+
},
|
|
312
|
+
assignee: {
|
|
313
|
+
type: ['string', 'null'],
|
|
314
|
+
description: 'New assignee username (null to unassign)',
|
|
315
|
+
},
|
|
316
|
+
priority: {
|
|
317
|
+
type: 'string',
|
|
318
|
+
description: 'New priority level',
|
|
319
|
+
},
|
|
320
|
+
labels: {
|
|
321
|
+
type: 'array',
|
|
322
|
+
items: { type: 'string' },
|
|
323
|
+
description: 'New labels (replaces existing)',
|
|
324
|
+
},
|
|
325
|
+
},
|
|
326
|
+
required: ['issueKey'],
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: 'jira_delete_issue',
|
|
331
|
+
description: `Delete a Jira issue permanently. Use when user explicitly asks to:
|
|
332
|
+
- Delete or remove an issue
|
|
333
|
+
- Permanently remove a ticket
|
|
334
|
+
|
|
335
|
+
WARNING: This permanently deletes the issue. Consider transitioning to Closed instead.`,
|
|
336
|
+
inputSchema: {
|
|
337
|
+
type: 'object',
|
|
338
|
+
properties: {
|
|
339
|
+
issueKey: {
|
|
340
|
+
type: 'string',
|
|
341
|
+
description: 'Issue key to delete',
|
|
342
|
+
},
|
|
343
|
+
deleteSubtasks: {
|
|
344
|
+
type: 'boolean',
|
|
345
|
+
description: 'Also delete subtasks (default: false)',
|
|
346
|
+
default: false,
|
|
347
|
+
},
|
|
348
|
+
},
|
|
349
|
+
required: ['issueKey'],
|
|
350
|
+
},
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
name: 'jira_add_comment',
|
|
354
|
+
description: `Add a comment to a Jira issue. Use when user wants to:
|
|
355
|
+
- Comment on a ticket
|
|
356
|
+
- Add notes or feedback to an issue
|
|
357
|
+
- Leave a message on a work item
|
|
358
|
+
- Document something on a ticket`,
|
|
359
|
+
inputSchema: {
|
|
360
|
+
type: 'object',
|
|
361
|
+
properties: {
|
|
362
|
+
issueKey: {
|
|
363
|
+
type: 'string',
|
|
364
|
+
description: 'Issue key to comment on',
|
|
365
|
+
},
|
|
366
|
+
body: {
|
|
367
|
+
type: 'string',
|
|
368
|
+
description: 'Comment text',
|
|
369
|
+
},
|
|
370
|
+
},
|
|
371
|
+
required: ['issueKey', 'body'],
|
|
372
|
+
},
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
name: 'jira_get_comments',
|
|
376
|
+
description: `Get all comments on a Jira issue. Use when user wants to:
|
|
377
|
+
- See comments or discussion on a ticket
|
|
378
|
+
- Review feedback on an issue
|
|
379
|
+
- Check what was said on a work item`,
|
|
380
|
+
inputSchema: {
|
|
381
|
+
type: 'object',
|
|
382
|
+
properties: {
|
|
383
|
+
issueKey: {
|
|
384
|
+
type: 'string',
|
|
385
|
+
description: 'Issue key to get comments from',
|
|
386
|
+
},
|
|
387
|
+
},
|
|
388
|
+
required: ['issueKey'],
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
];
|
|
392
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/tools/issues.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACvE,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;CAC5D,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACnD,SAAS,EAAE,CAAC;SACP,MAAM,EAAE;SACR,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,gDAAgD,CAAC;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAClF,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CACrE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC9D,QAAQ,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CACtE,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC9D,cAAc,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,iCAAiC,CAAC;CACnD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CACjD,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACvD,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IAC/C,OAAO;QACH;;WAEG;QACH,cAAc,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE;YAC3D,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChE,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,GAAG,EAAE,KAAK,CAAC,GAAG;4BACd,EAAE,EAAE,KAAK,CAAC,EAAE;4BACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;4BAC7B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW;4BACrC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;4BAChC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI;4BACrC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW;4BAC5C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW;4BAC5C,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;4BACtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;4BACjC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;4BAC3B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;4BAC7B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;yBAChC,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,iBAAiB,EAAE,KAAK,EAAE,IAAuC,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;gBACpC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;gBACjC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC7D,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,OAAO,EAAE,IAAI;4BACb,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,EAAE,EAAE,MAAM,CAAC,EAAE;4BACb,IAAI,EAAE,MAAM,CAAC,IAAI;yBACpB,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,iBAAiB,EAAE,KAAK,EAAE,IAAuC,EAAE,EAAE;YACjE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC7F,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;gBAC7D,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,SAAS,IAAI,CAAC,QAAQ,uBAAuB;yBACzD,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,iBAAiB,EAAE,KAAK,EAAE,IAAuC,EAAE,EAAE;YACjE,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,SAAS,IAAI,CAAC,QAAQ,uBAAuB;yBACzD,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,gBAAgB,EAAE,KAAK,EAAE,IAAsC,EAAE,EAAE;YAC/D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,OAAO,EAAE,IAAI;4BACb,SAAS,EAAE,OAAO,CAAC,EAAE;4BACrB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW;4BAClC,OAAO,EAAE,OAAO,CAAC,OAAO;yBAC3B,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,iBAAiB,EAAE,KAAK,EAAE,IAAuC,EAAE,EAAE;YACjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAClC,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;gCAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,OAAO,EAAE,CAAC,CAAC,OAAO;6BACrB,CAAC,CAAC;yBACN,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC;QACI,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE;;;;;oFAK+D;QAC5E,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uCAAuC;iBACvD;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC7D;aACJ;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACzB;KACJ;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;;;;yEAMoD;QACjE,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,UAAU,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACzC;gBACD,OAAO,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACrC;gBACD,SAAS,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;oBAC3D,OAAO,EAAE,MAAM;iBAClB;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACtC;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACvC;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8CAA8C;iBAC9D;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,eAAe;iBAC/B;aACJ;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;SACtC;KACJ;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;;wBAIG;QAChB,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACzC;gBACD,OAAO,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mBAAmB;iBACnC;gBACD,WAAW,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iBAAiB;iBACjC;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;oBACxB,WAAW,EAAE,0CAA0C;iBAC1D;gBACD,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBACpC;gBACD,MAAM,EAAE;oBACJ,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EAAE,gCAAgC;iBAChD;aACJ;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACzB;KACJ;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;;uFAIkE;QAC/E,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qBAAqB;iBACrC;gBACD,cAAc,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uCAAuC;oBACpD,OAAO,EAAE,KAAK;iBACjB;aACJ;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACzB;KACJ;IACD;QACI,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE;;;;iCAIY;QACzB,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACzC;gBACD,IAAI,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,cAAc;iBAC9B;aACJ;YACD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;SACjC;KACJ;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE;;;qCAGgB;QAC7B,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,QAAQ,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAChD;aACJ;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACzB;KACJ;CACJ,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/projects.ts
|
|
3
|
+
* @description Project-related MCP tools for Jira.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { JiraClient } from '../client.js';
|
|
7
|
+
/**
|
|
8
|
+
* Schema for get_project tool input.
|
|
9
|
+
*/
|
|
10
|
+
export declare const getProjectSchema: z.ZodObject<{
|
|
11
|
+
projectKey: z.ZodString;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
projectKey: string;
|
|
14
|
+
}, {
|
|
15
|
+
projectKey: string;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Creates project tool handlers.
|
|
19
|
+
* @param client - Jira client instance
|
|
20
|
+
* @returns Object containing project tool handlers
|
|
21
|
+
*/
|
|
22
|
+
export declare function createProjectTools(client: JiraClient): {
|
|
23
|
+
/**
|
|
24
|
+
* Lists all accessible projects.
|
|
25
|
+
*/
|
|
26
|
+
jira_list_projects: () => Promise<{
|
|
27
|
+
content: {
|
|
28
|
+
type: "text";
|
|
29
|
+
text: string;
|
|
30
|
+
}[];
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Gets a project by key or ID.
|
|
34
|
+
*/
|
|
35
|
+
jira_get_project: (args: z.infer<typeof getProjectSchema>) => Promise<{
|
|
36
|
+
content: {
|
|
37
|
+
type: "text";
|
|
38
|
+
text: string;
|
|
39
|
+
}[];
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Tool definitions for project operations.
|
|
44
|
+
* Semantic descriptions help AI understand project browsing.
|
|
45
|
+
*/
|
|
46
|
+
export declare const projectToolDefinitions: ({
|
|
47
|
+
name: string;
|
|
48
|
+
description: string;
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: "object";
|
|
51
|
+
properties: {
|
|
52
|
+
projectKey?: undefined;
|
|
53
|
+
};
|
|
54
|
+
required: never[];
|
|
55
|
+
};
|
|
56
|
+
} | {
|
|
57
|
+
name: string;
|
|
58
|
+
description: string;
|
|
59
|
+
inputSchema: {
|
|
60
|
+
type: "object";
|
|
61
|
+
properties: {
|
|
62
|
+
projectKey: {
|
|
63
|
+
type: string;
|
|
64
|
+
description: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
required: string[];
|
|
68
|
+
};
|
|
69
|
+
})[];
|
|
70
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU;IAE7C;;OAEG;;;;;;;IA0BH;;OAEG;6BAC4B,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC;;;;;;EAuBtE;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;IA+BlC,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/projects.ts
|
|
3
|
+
* @description Project-related MCP tools for Jira.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Schema for get_project tool input.
|
|
8
|
+
*/
|
|
9
|
+
export const getProjectSchema = z.object({
|
|
10
|
+
projectKey: z.string().describe('The project key (e.g., "PROJ") or ID'),
|
|
11
|
+
});
|
|
12
|
+
/**
|
|
13
|
+
* Creates project tool handlers.
|
|
14
|
+
* @param client - Jira client instance
|
|
15
|
+
* @returns Object containing project tool handlers
|
|
16
|
+
*/
|
|
17
|
+
export function createProjectTools(client) {
|
|
18
|
+
return {
|
|
19
|
+
/**
|
|
20
|
+
* Lists all accessible projects.
|
|
21
|
+
*/
|
|
22
|
+
jira_list_projects: async () => {
|
|
23
|
+
const projects = await client.getProjects();
|
|
24
|
+
return {
|
|
25
|
+
content: [
|
|
26
|
+
{
|
|
27
|
+
type: 'text',
|
|
28
|
+
text: JSON.stringify({
|
|
29
|
+
total: projects.length,
|
|
30
|
+
projects: projects.map((p) => ({
|
|
31
|
+
key: p.key,
|
|
32
|
+
name: p.name,
|
|
33
|
+
id: p.id,
|
|
34
|
+
projectType: p.projectTypeKey,
|
|
35
|
+
lead: p.lead?.displayName,
|
|
36
|
+
})),
|
|
37
|
+
}, null, 2),
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Gets a project by key or ID.
|
|
44
|
+
*/
|
|
45
|
+
jira_get_project: async (args) => {
|
|
46
|
+
const project = await client.getProject(args.projectKey);
|
|
47
|
+
return {
|
|
48
|
+
content: [
|
|
49
|
+
{
|
|
50
|
+
type: 'text',
|
|
51
|
+
text: JSON.stringify({
|
|
52
|
+
key: project.key,
|
|
53
|
+
name: project.name,
|
|
54
|
+
id: project.id,
|
|
55
|
+
description: project.description,
|
|
56
|
+
projectType: project.projectTypeKey,
|
|
57
|
+
lead: project.lead?.displayName,
|
|
58
|
+
}, null, 2),
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Tool definitions for project operations.
|
|
67
|
+
* Semantic descriptions help AI understand project browsing.
|
|
68
|
+
*/
|
|
69
|
+
export const projectToolDefinitions = [
|
|
70
|
+
{
|
|
71
|
+
name: 'jira_list_projects',
|
|
72
|
+
description: `List all Jira projects accessible to the user. Use when user wants to:
|
|
73
|
+
- See available projects
|
|
74
|
+
- Find a project key
|
|
75
|
+
- Browse what projects exist
|
|
76
|
+
- Get project list for searching issues`,
|
|
77
|
+
inputSchema: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {},
|
|
80
|
+
required: [],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'jira_get_project',
|
|
85
|
+
description: `Get details of a specific Jira project. Use when user wants to:
|
|
86
|
+
- Get info about a project by key
|
|
87
|
+
- See project description or lead
|
|
88
|
+
- Check project details`,
|
|
89
|
+
inputSchema: {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
projectKey: {
|
|
93
|
+
type: 'string',
|
|
94
|
+
description: 'Project key like "PROJ"',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
required: ['projectKey'],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC1E,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACjD,OAAO;QACH;;WAEG;QACH,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,KAAK,EAAE,QAAQ,CAAC,MAAM;4BACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCAC3B,GAAG,EAAE,CAAC,CAAC,GAAG;gCACV,IAAI,EAAE,CAAC,CAAC,IAAI;gCACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,WAAW,EAAE,CAAC,CAAC,cAAc;gCAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW;6BAC5B,CAAC,CAAC;yBACN,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;QAED;;WAEG;QACH,gBAAgB,EAAE,KAAK,EAAE,IAAsC,EAAE,EAAE;YAC/D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzD,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAChB;4BACI,GAAG,EAAE,OAAO,CAAC,GAAG;4BAChB,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,WAAW,EAAE,OAAO,CAAC,WAAW;4BAChC,WAAW,EAAE,OAAO,CAAC,cAAc;4BACnC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW;yBAClC,EACD,IAAI,EACJ,CAAC,CACJ;qBACJ;iBACJ;aACJ,CAAC;QACN,CAAC;KACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC;QACI,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE;;;;wCAImB;QAChC,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACf;KACJ;IACD;QACI,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE;;;wBAGG;QAChB,WAAW,EAAE;YACT,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACR,UAAU,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACzC;aACJ;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SAC3B;KACJ;CACJ,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file tools/search.ts
|
|
3
|
+
* @description JQL search tool for Jira MCP.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { JiraClient } from '../client.js';
|
|
7
|
+
/**
|
|
8
|
+
* Schema for search tool input.
|
|
9
|
+
*/
|
|
10
|
+
export declare const searchSchema: z.ZodObject<{
|
|
11
|
+
jql: z.ZodString;
|
|
12
|
+
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
13
|
+
startAt: z.ZodDefault<z.ZodNumber>;
|
|
14
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
jql: string;
|
|
17
|
+
maxResults: number;
|
|
18
|
+
startAt: number;
|
|
19
|
+
fields?: string[] | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
jql: string;
|
|
22
|
+
fields?: string[] | undefined;
|
|
23
|
+
maxResults?: number | undefined;
|
|
24
|
+
startAt?: number | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Creates search tool handlers.
|
|
28
|
+
* @param client - Jira client instance
|
|
29
|
+
* @returns Object containing search tool handler
|
|
30
|
+
*/
|
|
31
|
+
export declare function createSearchTools(client: JiraClient): {
|
|
32
|
+
/**
|
|
33
|
+
* Searches for issues using JQL.
|
|
34
|
+
*/
|
|
35
|
+
jira_search: (args: z.infer<typeof searchSchema>) => Promise<{
|
|
36
|
+
content: {
|
|
37
|
+
type: "text";
|
|
38
|
+
text: string;
|
|
39
|
+
}[];
|
|
40
|
+
}>;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Tool definitions for search operations.
|
|
44
|
+
*/
|
|
45
|
+
export declare const searchToolDefinitions: {
|
|
46
|
+
name: string;
|
|
47
|
+
description: string;
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: "object";
|
|
50
|
+
properties: {
|
|
51
|
+
jql: {
|
|
52
|
+
type: string;
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
maxResults: {
|
|
56
|
+
type: string;
|
|
57
|
+
description: string;
|
|
58
|
+
default: number;
|
|
59
|
+
};
|
|
60
|
+
startAt: {
|
|
61
|
+
type: string;
|
|
62
|
+
description: string;
|
|
63
|
+
default: number;
|
|
64
|
+
};
|
|
65
|
+
fields: {
|
|
66
|
+
type: string;
|
|
67
|
+
items: {
|
|
68
|
+
type: string;
|
|
69
|
+
};
|
|
70
|
+
description: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
required: string[];
|
|
74
|
+
};
|
|
75
|
+
}[];
|
|
76
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAmBvB,CAAC;AAEH;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU;IAE5C;;OAEG;wBACuB,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC;;;;;;EAiC7D;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CjC,CAAC"}
|