@ecubelabs/atlassian-mcp 1.1.0-next.1 → 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/index.js +134 -33
- package/package.json +2 -3
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ server.tool("get-issue", "Get details of a Jira issue by key", {
|
|
|
25
25
|
])
|
|
26
26
|
.array()
|
|
27
27
|
.optional()
|
|
28
|
-
.describe("Optional fields to expand in the response"),
|
|
28
|
+
.describe("Optional fields to expand in the response. Options include: renderedFields (HTML format), names (display names), schema (field type descriptions), transitions (possible transitions), editmeta (field editing info), changelog (recent updates), versionedRepresentations (field value history)"),
|
|
29
29
|
}, async ({ issueKey, expand }) => {
|
|
30
30
|
try {
|
|
31
31
|
const issue = await jiraService.getIssue(issueKey, expand);
|
|
@@ -50,10 +50,23 @@ server.tool("get-issue", "Get details of a Jira issue by key", {
|
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
server.tool("search-issues", "Search Jira issues using JQL", {
|
|
53
|
-
jql: z
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
jql: z
|
|
54
|
+
.string()
|
|
55
|
+
.describe("JQL query string. Must be a bounded query with search restrictions."),
|
|
56
|
+
fields: z
|
|
57
|
+
.array(z.string())
|
|
58
|
+
.optional()
|
|
59
|
+
.describe("Optional fields to include in the response. Examples: ['summary', 'comment'] or ['*all', '-comment']"),
|
|
60
|
+
maxResults: z
|
|
61
|
+
.number()
|
|
62
|
+
.min(1)
|
|
63
|
+
.max(5000)
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("Maximum number of results to return per page (default: 50, max: 5000)"),
|
|
66
|
+
nextPageToken: z
|
|
67
|
+
.string()
|
|
68
|
+
.optional()
|
|
69
|
+
.describe("Token for fetching the next page of results. The first page has null nextPageToken."),
|
|
57
70
|
expand: z
|
|
58
71
|
.enum([
|
|
59
72
|
"renderedFields",
|
|
@@ -66,11 +79,25 @@ server.tool("search-issues", "Search Jira issues using JQL", {
|
|
|
66
79
|
])
|
|
67
80
|
.array()
|
|
68
81
|
.optional()
|
|
69
|
-
.describe("
|
|
70
|
-
properties: z
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
82
|
+
.describe("Comma-separated values to expand in response: renderedFields, names, schema, transitions, operations, editmeta, changelog, versionedRepresentations"),
|
|
83
|
+
properties: z
|
|
84
|
+
.array(z.string())
|
|
85
|
+
.max(5)
|
|
86
|
+
.optional()
|
|
87
|
+
.describe("List of up to 5 issue properties to include in results"),
|
|
88
|
+
fieldsByKeys: z
|
|
89
|
+
.boolean()
|
|
90
|
+
.optional()
|
|
91
|
+
.describe("Reference fields by their key rather than ID (default: false)"),
|
|
92
|
+
failFast: z
|
|
93
|
+
.boolean()
|
|
94
|
+
.optional()
|
|
95
|
+
.describe("Fail request early if we can't retrieve all field data (default: false)"),
|
|
96
|
+
reconcileIssues: z
|
|
97
|
+
.array(z.number())
|
|
98
|
+
.max(50)
|
|
99
|
+
.optional()
|
|
100
|
+
.describe("Strong consistency issue IDs to be reconciled with search results (max: 50 IDs)"),
|
|
74
101
|
}, async ({ jql, fields, maxResults, nextPageToken, expand, properties, fieldsByKeys, failFast, reconcileIssues, }) => {
|
|
75
102
|
try {
|
|
76
103
|
const issues = await jiraService.searchIssues({
|
|
@@ -106,10 +133,25 @@ server.tool("search-issues", "Search Jira issues using JQL", {
|
|
|
106
133
|
});
|
|
107
134
|
server.tool("get-comments", "Get comments for a Jira issue", {
|
|
108
135
|
issueKey: z.string().describe("Jira issue key (e.g. PROJ-123)"),
|
|
109
|
-
startAt: z
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
136
|
+
startAt: z
|
|
137
|
+
.number()
|
|
138
|
+
.min(0)
|
|
139
|
+
.optional()
|
|
140
|
+
.describe("The index of the first item to return (page offset). Default: 0"),
|
|
141
|
+
maxResults: z
|
|
142
|
+
.number()
|
|
143
|
+
.min(1)
|
|
144
|
+
.max(100)
|
|
145
|
+
.optional()
|
|
146
|
+
.describe("Maximum number of items per page. Default: 100"),
|
|
147
|
+
orderBy: z
|
|
148
|
+
.enum(["created", "-created", "+created"])
|
|
149
|
+
.optional()
|
|
150
|
+
.describe("Order comments by creation date. Default: created"),
|
|
151
|
+
expand: z
|
|
152
|
+
.array(z.enum(["renderedBody"]))
|
|
153
|
+
.optional()
|
|
154
|
+
.describe("Include additional information: renderedBody (comment body in HTML format)"),
|
|
113
155
|
}, async ({ issueKey, startAt, maxResults, orderBy, expand }) => {
|
|
114
156
|
try {
|
|
115
157
|
const result = await jiraService.getComments(issueKey, {
|
|
@@ -139,29 +181,88 @@ server.tool("get-comments", "Get comments for a Jira issue", {
|
|
|
139
181
|
}
|
|
140
182
|
});
|
|
141
183
|
server.tool("get-projects", "Get list of Jira projects", {
|
|
142
|
-
startAt: z
|
|
143
|
-
|
|
184
|
+
startAt: z
|
|
185
|
+
.number()
|
|
186
|
+
.min(0)
|
|
187
|
+
.optional()
|
|
188
|
+
.describe("The index of the first item to return (page offset). Default: 0"),
|
|
189
|
+
maxResults: z
|
|
190
|
+
.number()
|
|
191
|
+
.min(1)
|
|
192
|
+
.max(100)
|
|
193
|
+
.optional()
|
|
194
|
+
.describe("Maximum number of items per page. Default: 50, Maximum: 100"),
|
|
144
195
|
orderBy: z
|
|
145
196
|
.enum([
|
|
146
|
-
"category",
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
197
|
+
"category",
|
|
198
|
+
"-category",
|
|
199
|
+
"+category",
|
|
200
|
+
"key",
|
|
201
|
+
"-key",
|
|
202
|
+
"+key",
|
|
203
|
+
"name",
|
|
204
|
+
"-name",
|
|
205
|
+
"+name",
|
|
206
|
+
"owner",
|
|
207
|
+
"-owner",
|
|
208
|
+
"+owner",
|
|
209
|
+
"issueCount",
|
|
210
|
+
"-issueCount",
|
|
211
|
+
"+issueCount",
|
|
212
|
+
"lastIssueUpdatedTime",
|
|
213
|
+
"-lastIssueUpdatedTime",
|
|
214
|
+
"+lastIssueUpdatedTime",
|
|
215
|
+
"archivedDate",
|
|
216
|
+
"-archivedDate",
|
|
217
|
+
"+archivedDate",
|
|
218
|
+
"deletedDate",
|
|
219
|
+
"-deletedDate",
|
|
220
|
+
"+deletedDate",
|
|
154
221
|
])
|
|
155
222
|
.optional()
|
|
156
|
-
.describe("
|
|
157
|
-
id: z
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
223
|
+
.describe("Field to order results by. Default: key"),
|
|
224
|
+
id: z
|
|
225
|
+
.array(z.number().int())
|
|
226
|
+
.max(50)
|
|
227
|
+
.optional()
|
|
228
|
+
.describe("Filter by project IDs. Maximum: 50 IDs"),
|
|
229
|
+
keys: z
|
|
230
|
+
.array(z.string())
|
|
231
|
+
.max(50)
|
|
232
|
+
.optional()
|
|
233
|
+
.describe("Filter by project keys. Maximum: 50 keys"),
|
|
234
|
+
query: z
|
|
235
|
+
.string()
|
|
236
|
+
.optional()
|
|
237
|
+
.describe("Filter by matching key or name (case insensitive)"),
|
|
238
|
+
typeKey: z
|
|
239
|
+
.string()
|
|
240
|
+
.optional()
|
|
241
|
+
.describe("Filter by project type. Accepts comma-separated list: business, service_desk, software"),
|
|
242
|
+
categoryId: z
|
|
243
|
+
.number()
|
|
244
|
+
.int()
|
|
245
|
+
.optional()
|
|
246
|
+
.describe("Filter by project category ID"),
|
|
247
|
+
action: z
|
|
248
|
+
.enum(["view", "browse", "edit", "create"])
|
|
249
|
+
.optional()
|
|
250
|
+
.describe("Filter by user's project permissions. Default: view"),
|
|
251
|
+
expand: z
|
|
252
|
+
.array(z.enum([
|
|
253
|
+
"description",
|
|
254
|
+
"projectKeys",
|
|
255
|
+
"lead",
|
|
256
|
+
"issueTypes",
|
|
257
|
+
"url",
|
|
258
|
+
"insight",
|
|
259
|
+
]))
|
|
260
|
+
.optional()
|
|
261
|
+
.describe("Additional fields to include: description, projectKeys, lead, issueTypes, url, insight"),
|
|
262
|
+
status: z
|
|
263
|
+
.array(z.enum(["live", "archived", "deleted"]))
|
|
264
|
+
.optional()
|
|
265
|
+
.describe("EXPERIMENTAL. Filter by project status"),
|
|
165
266
|
}, async ({ startAt, maxResults, orderBy, id, keys, query, typeKey, categoryId, action, expand, status, }) => {
|
|
166
267
|
try {
|
|
167
268
|
const projects = await jiraService.getProjects({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecubelabs/atlassian-mcp",
|
|
3
|
-
"version": "1.1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"bin": "./dist/index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/Ecube-Labs/skynet.git"
|
|
@@ -32,6 +32,5 @@
|
|
|
32
32
|
"semantic-release-yarn": "^3.0.2",
|
|
33
33
|
"ts-node": "^10.9.2",
|
|
34
34
|
"typescript": "^5.8.2"
|
|
35
|
-
}
|
|
36
|
-
"stableVersion": "1.0.0"
|
|
35
|
+
}
|
|
37
36
|
}
|