@mcp-monorepo/jira 1.2.0 → 1.4.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 (42) hide show
  1. package/README.md +93 -11
  2. package/dist/index.js +21 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/lib/adf-utils.d.ts +19 -0
  5. package/dist/lib/adf-utils.d.ts.map +1 -0
  6. package/dist/lib/adf-utils.js +52 -0
  7. package/dist/lib/adf-utils.js.map +1 -0
  8. package/dist/lib/jira-env.d.ts +12 -3
  9. package/dist/lib/jira-env.d.ts.map +1 -1
  10. package/dist/lib/jira-env.js +19 -7
  11. package/dist/lib/jira-env.js.map +1 -1
  12. package/dist/lib/jira.service.d.ts +29 -2
  13. package/dist/lib/jira.service.d.ts.map +1 -1
  14. package/dist/lib/jira.service.js +168 -14
  15. package/dist/lib/jira.service.js.map +1 -1
  16. package/dist/lib/types.d.ts +91 -3
  17. package/dist/lib/types.d.ts.map +1 -1
  18. package/dist/tools/add-comment.d.ts +3 -0
  19. package/dist/tools/add-comment.d.ts.map +1 -0
  20. package/dist/tools/add-comment.js +38 -0
  21. package/dist/tools/add-comment.js.map +1 -0
  22. package/dist/tools/create-issue.d.ts +3 -0
  23. package/dist/tools/create-issue.d.ts.map +1 -0
  24. package/dist/tools/create-issue.js +48 -0
  25. package/dist/tools/create-issue.js.map +1 -0
  26. package/dist/tools/execute-jql.d.ts.map +1 -1
  27. package/dist/tools/execute-jql.js +39 -12
  28. package/dist/tools/execute-jql.js.map +1 -1
  29. package/dist/tools/get-create-metadata.d.ts +3 -0
  30. package/dist/tools/get-create-metadata.d.ts.map +1 -0
  31. package/dist/tools/get-create-metadata.js +59 -0
  32. package/dist/tools/get-create-metadata.js.map +1 -0
  33. package/dist/tools/get-current-profile.js +1 -1
  34. package/dist/tools/get-current-profile.js.map +1 -1
  35. package/dist/tools/get-issue.d.ts.map +1 -1
  36. package/dist/tools/get-issue.js +3 -2
  37. package/dist/tools/get-issue.js.map +1 -1
  38. package/dist/tools/update-issue.d.ts +3 -0
  39. package/dist/tools/update-issue.d.ts.map +1 -0
  40. package/dist/tools/update-issue.js +43 -0
  41. package/dist/tools/update-issue.js.map +1 -0
  42. package/package.json +2 -1
@@ -1,10 +1,22 @@
1
- import { getJiraBaseUrl, getJiraToken } from './jira-env.js';
1
+ import { mdToAdf } from './adf-utils.js';
2
+ import { getJiraApiVersion, getJiraAuthMode, getJiraBaseUrl } from './jira-env.js';
3
+ function buildAuthHeaders() {
4
+ const auth = getJiraAuthMode();
5
+ if (auth.type === 'token') {
6
+ return { Authorization: `Bearer ${auth.value}` };
7
+ }
8
+ return { Cookie: auth.value };
9
+ }
10
+ function buildApiPath(endpoint) {
11
+ const version = getJiraApiVersion();
12
+ return `/rest/api/${version}${endpoint}`;
13
+ }
2
14
  async function jiraRequest(endpoint, options = {}) {
3
15
  const url = new URL(endpoint, getJiraBaseUrl());
4
16
  const response = await fetch(url.toString(), {
5
17
  ...options,
6
18
  headers: {
7
- Authorization: `Bearer ${getJiraToken()}`,
19
+ ...buildAuthHeaders(),
8
20
  Accept: 'application/json',
9
21
  'Content-Type': 'application/json',
10
22
  ...options.headers,
@@ -12,9 +24,29 @@ async function jiraRequest(endpoint, options = {}) {
12
24
  });
13
25
  if (!response.ok) {
14
26
  const errorText = await response.text();
15
- throw new Error(`Jira API request failed with status ${response.status}: ${errorText}`);
27
+ let enhancedError = `Jira API request failed with status ${response.status}: ${errorText}`;
28
+ // Parse error and add helpful context
29
+ try {
30
+ const errorJson = JSON.parse(errorText);
31
+ if (errorJson.errors && Object.keys(errorJson.errors).length > 0) {
32
+ enhancedError += '\n\nMissing or invalid fields:';
33
+ Object.entries(errorJson.errors).forEach(([field, message]) => {
34
+ enhancedError += `\n - ${field}: ${message}`;
35
+ });
36
+ enhancedError += '\n\nTip: Use "get-create-metadata" tool to see available fields and requirements.';
37
+ }
38
+ if (errorJson.errorMessages && errorJson.errorMessages.length > 0) {
39
+ enhancedError += '\n\nError messages:';
40
+ errorJson.errorMessages.forEach((msg) => {
41
+ enhancedError += `\n - ${msg}`;
42
+ });
43
+ }
44
+ }
45
+ catch {
46
+ // If JSON parsing fails, use original error text
47
+ }
48
+ throw new Error(enhancedError);
16
49
  }
17
- // Handle cases like 204 No Content
18
50
  if (response.status === 204) {
19
51
  return undefined;
20
52
  }
@@ -26,29 +58,50 @@ export const getIssue = (issueIdOrKey, fields, expand) => {
26
58
  params.set('fields', fields.join(','));
27
59
  if (expand)
28
60
  params.set('expand', expand.join(','));
29
- return jiraRequest(`/rest/api/2/issue/${issueIdOrKey}?${params.toString()}`);
61
+ return jiraRequest(`${buildApiPath(`/issue/${issueIdOrKey}`)}?${params.toString()}`);
30
62
  };
31
- export const executeJql = (jql, maxResults = 50, startAt = 0, fields) => {
32
- return jiraRequest('/rest/api/2/search', {
33
- method: 'POST',
34
- body: JSON.stringify({ jql, maxResults, startAt, fields: fields ?? ['summary', 'status', 'assignee'] }),
35
- });
63
+ /**
64
+ * Execute JQL search using enhanced search endpoint (v3) or legacy search (v2)
65
+ * In v3, uses /rest/api/3/search/jql with nextPageToken pagination
66
+ * In v2, uses /rest/api/2/search with startAt pagination
67
+ */
68
+ export const executeJql = (jql, maxResults = 50, startAt = 0, fields, nextPageToken) => {
69
+ const apiVersion = getJiraApiVersion();
70
+ if (apiVersion === '3') {
71
+ // Use enhanced search endpoint in v3
72
+ return jiraRequest(buildApiPath('/search/jql'), {
73
+ method: 'POST',
74
+ body: JSON.stringify({
75
+ jql,
76
+ maxResults,
77
+ fields: fields ?? ['summary', 'status', 'assignee'],
78
+ ...(nextPageToken && { nextPageToken }),
79
+ }),
80
+ });
81
+ }
82
+ else {
83
+ // Use legacy search endpoint in v2
84
+ return jiraRequest(buildApiPath('/search'), {
85
+ method: 'POST',
86
+ body: JSON.stringify({ jql, maxResults, startAt, fields: fields ?? ['summary', 'status', 'assignee'] }),
87
+ });
88
+ }
36
89
  };
37
90
  export const getLatestProjects = (maxResults = 10) => {
38
- return jiraRequest(`/rest/api/2/project/search?orderBy=created&maxResults=${maxResults}`);
91
+ return jiraRequest(`${buildApiPath('/project/search')}?orderBy=created&maxResults=${maxResults}`);
39
92
  };
40
93
  export const getCurrentProfile = () => {
41
- return jiraRequest('/rest/api/2/myself');
94
+ return jiraRequest(buildApiPath('/myself'));
42
95
  };
43
96
  export const getTicketTransitions = (issueIdOrKey) => {
44
- return jiraRequest(`/rest/api/2/issue/${issueIdOrKey}/transitions`);
97
+ return jiraRequest(buildApiPath(`/issue/${issueIdOrKey}/transitions`));
45
98
  };
46
99
  export const setIssueStatus = async (issueIdOrKey, transitionId, comment) => {
47
100
  const body = { transition: { id: transitionId } };
48
101
  if (comment) {
49
102
  body.update = { comment: [{ add: { body: comment } }] };
50
103
  }
51
- await jiraRequest(`/rest/api/2/issue/${issueIdOrKey}/transitions`, {
104
+ await jiraRequest(buildApiPath(`/issue/${issueIdOrKey}/transitions`), {
52
105
  method: 'POST',
53
106
  body: JSON.stringify(body),
54
107
  });
@@ -58,4 +111,105 @@ export const findTransitionIdByName = async (issueIdOrKey, statusName) => {
58
111
  const transition = response.transitions.find((t) => t.to.name.toLowerCase() === statusName.toLowerCase());
59
112
  return transition?.id;
60
113
  };
114
+ export const getCreateMetadata = async (projectKey, issueTypeId) => {
115
+ const params = new URLSearchParams();
116
+ if (projectKey)
117
+ params.set('projectKeys', projectKey);
118
+ if (issueTypeId)
119
+ params.set('issuetypeIds', issueTypeId);
120
+ params.set('expand', 'projects.issuetypes.fields');
121
+ return jiraRequest(`${buildApiPath('/issue/createmeta')}?${params.toString()}`);
122
+ };
123
+ export const createIssue = async (params) => {
124
+ const apiVersion = getJiraApiVersion();
125
+ const body = {
126
+ fields: {
127
+ project: { key: params.projectKey },
128
+ issuetype: { id: params.issueTypeId },
129
+ summary: params.summary,
130
+ },
131
+ };
132
+ // Description: Markdown → ADF if v3, String if v2
133
+ if (params.description) {
134
+ if (apiVersion === '3') {
135
+ const adf = mdToAdf(params.description);
136
+ if (adf) {
137
+ ;
138
+ body.fields.description = adf;
139
+ }
140
+ }
141
+ else {
142
+ ;
143
+ body.fields.description = params.description;
144
+ }
145
+ }
146
+ // Assignee: accountId works in both v2 and v3
147
+ if (params.assigneeId) {
148
+ ;
149
+ body.fields.assignee = { id: params.assigneeId };
150
+ }
151
+ if (params.priorityId) {
152
+ ;
153
+ body.fields.priority = { id: params.priorityId };
154
+ }
155
+ if (params.labels && params.labels.length > 0) {
156
+ ;
157
+ body.fields.labels = params.labels;
158
+ }
159
+ // Parent for subtasks
160
+ if (params.parentKey) {
161
+ ;
162
+ body.fields.parent = { key: params.parentKey };
163
+ }
164
+ return jiraRequest(buildApiPath('/issue'), {
165
+ method: 'POST',
166
+ body: JSON.stringify(body),
167
+ });
168
+ };
169
+ export const updateIssue = async (issueIdOrKey, updates) => {
170
+ const apiVersion = getJiraApiVersion();
171
+ const fields = {};
172
+ if (updates.summary !== undefined) {
173
+ fields.summary = updates.summary;
174
+ }
175
+ if (updates.description !== undefined) {
176
+ if (apiVersion === '3') {
177
+ const adf = mdToAdf(updates.description);
178
+ if (adf) {
179
+ fields.description = adf;
180
+ }
181
+ }
182
+ else {
183
+ fields.description = updates.description;
184
+ }
185
+ }
186
+ // Assignee: null means unassign, accountId works in both v2 and v3
187
+ if (updates.assigneeId !== undefined) {
188
+ // eslint-disable-next-line no-restricted-syntax
189
+ fields.assignee = updates.assigneeId ? { id: updates.assigneeId } : null;
190
+ }
191
+ if (updates.priorityId !== undefined) {
192
+ fields.priority = { id: updates.priorityId };
193
+ }
194
+ if (updates.labels !== undefined) {
195
+ fields.labels = updates.labels;
196
+ }
197
+ await jiraRequest(buildApiPath(`/issue/${issueIdOrKey}`), {
198
+ method: 'PUT',
199
+ body: JSON.stringify({ fields }),
200
+ });
201
+ };
202
+ export const addComment = async (issueIdOrKey, commentText, visibility) => {
203
+ const apiVersion = getJiraApiVersion();
204
+ const body = {
205
+ body: apiVersion === '3' ? mdToAdf(commentText) : commentText,
206
+ };
207
+ if (visibility) {
208
+ body.visibility = visibility;
209
+ }
210
+ return jiraRequest(buildApiPath(`/issue/${issueIdOrKey}/comment`), {
211
+ method: 'POST',
212
+ body: JSON.stringify(body),
213
+ });
214
+ };
61
215
  //# sourceMappingURL=jira.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jira.service.js","sourceRoot":"","sources":["../../src/lib/jira.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAU5D,KAAK,UAAU,WAAW,CAAI,QAAgB,EAAE,UAAuB,EAAE;IACvE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC3C,GAAG,OAAO;QACV,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,YAAY,EAAE,EAAE;YACzC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;YAClC,GAAG,OAAO,CAAC,OAAO;SACnB;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAA;IACzF,CAAC;IAED,mCAAmC;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAc,CAAA;IACvB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAO,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,MAAiB,EAAE,MAAiB,EAAE,EAAE;IACrF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IACpC,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAClD,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAClD,OAAO,WAAW,CAAY,qBAAqB,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACzF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,MAAiB,EAAE,EAAE;IACzF,OAAO,WAAW,CAAkB,oBAAoB,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;KACxG,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE;IACnD,OAAO,WAAW,CAA2B,yDAAyD,UAAU,EAAE,CAAC,CAAA;AACrH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,OAAO,WAAW,CAAsB,oBAAoB,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAC3D,OAAO,WAAW,CAA0B,qBAAqB,YAAY,cAAc,CAAC,CAAA;AAC9F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,YAAoB,EAAE,YAAoB,EAAE,OAAgB,EAAE,EAAE;IACnG,MAAM,IAAI,GAA4B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,CAAA;IAC1E,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAA;IACzD,CAAC;IACD,MAAM,WAAW,CAAO,qBAAqB,YAAY,cAAc,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,YAAoB,EAAE,UAAkB,EAA+B,EAAE;IACpH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;IACzG,OAAO,UAAU,EAAE,EAAE,CAAA;AACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"jira.service.js","sourceRoot":"","sources":["../../src/lib/jira.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type ADFDocument } from 'extended-markdown-adf-parser';
1
2
  export interface JiraIssue {
2
3
  id: string;
3
4
  key: string;
@@ -8,8 +9,9 @@ export interface JiraIssue {
8
9
  };
9
10
  assignee?: {
10
11
  displayName?: string;
11
- };
12
- description?: string;
12
+ accountId?: string;
13
+ } | null;
14
+ description?: string | ADFDocument;
13
15
  };
14
16
  expand?: string;
15
17
  }
@@ -20,6 +22,18 @@ export interface JiraJqlResponse {
20
22
  total: number;
21
23
  issues: JiraIssue[];
22
24
  }
25
+ /**
26
+ * Enhanced JQL search response (v3 /search/jql endpoint)
27
+ * Uses nextPageToken instead of startAt for pagination
28
+ */
29
+ export interface JiraEnhancedJqlResponse {
30
+ expand?: string;
31
+ maxResults: number;
32
+ isLast: boolean;
33
+ nextPageToken?: string;
34
+ issues: JiraIssue[];
35
+ total?: number;
36
+ }
23
37
  export interface JiraProject {
24
38
  id: string;
25
39
  key: string;
@@ -38,8 +52,10 @@ export interface JiraProfileResponse {
38
52
  key: string;
39
53
  accountId: string;
40
54
  name: string;
41
- emailAddress: string;
55
+ emailAddress: string | null;
42
56
  displayName: string;
57
+ timeZone?: string | null;
58
+ locale?: string | null;
43
59
  }
44
60
  export interface JiraTransition {
45
61
  id: string;
@@ -53,4 +69,76 @@ export interface JiraTransitionsResponse {
53
69
  expand?: string;
54
70
  transitions: JiraTransition[];
55
71
  }
72
+ export interface JiraCreateIssueResponse {
73
+ id: string;
74
+ key: string;
75
+ self: string;
76
+ transition?: {
77
+ status: number;
78
+ errorCollection: {
79
+ errorMessages: string[];
80
+ errors: Record<string, string>;
81
+ };
82
+ };
83
+ }
84
+ export interface JiraComment {
85
+ id: string;
86
+ self: string;
87
+ author: {
88
+ accountId: string;
89
+ displayName: string;
90
+ emailAddress?: string | null;
91
+ };
92
+ body: string | ADFDocument;
93
+ created: string;
94
+ updated: string;
95
+ updateAuthor: {
96
+ accountId: string;
97
+ displayName: string;
98
+ };
99
+ visibility?: {
100
+ type: string;
101
+ value: string;
102
+ identifier: string;
103
+ };
104
+ }
105
+ export interface JiraIssueType {
106
+ id: string;
107
+ name: string;
108
+ description?: string;
109
+ subtask: boolean;
110
+ }
111
+ export interface JiraFieldSchema {
112
+ type: string;
113
+ system?: string;
114
+ items?: string;
115
+ custom?: string;
116
+ }
117
+ export interface JiraFieldMetadata {
118
+ required: boolean;
119
+ name: string;
120
+ schema: JiraFieldSchema;
121
+ key?: string;
122
+ hasDefaultValue?: boolean;
123
+ operations?: string[];
124
+ allowedValues?: Array<{
125
+ id?: string;
126
+ name?: string;
127
+ value?: string;
128
+ }>;
129
+ }
130
+ export interface JiraCreateMetadata {
131
+ projects: Array<{
132
+ id: string;
133
+ key: string;
134
+ name: string;
135
+ issuetypes: Array<{
136
+ id: string;
137
+ name: string;
138
+ description?: string;
139
+ subtask: boolean;
140
+ fields: Record<string, JiraFieldMetadata>;
141
+ }>;
142
+ }>;
143
+ }
56
144
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAChC,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC1B,QAAQ,CAAC,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QACnC,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,SAAS,EAAE,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;KACX,CAAA;CACF;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,cAAc,EAAE,CAAA;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare const registerAddCommentTool: (server: McpServer) => void;
3
+ //# sourceMappingURL=add-comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-comment.d.ts","sourceRoot":"","sources":["../../src/tools/add-comment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,sBAAsB,GAAI,QAAQ,SAAS,SAiCpD,CAAA"}
@@ -0,0 +1,38 @@
1
+ import { registerTool } from '@mcp-monorepo/shared';
2
+ import { z } from 'zod';
3
+ import { getJiraBaseUrl } from '../lib/jira-env.js';
4
+ import { addComment } from '../lib/jira.service.js';
5
+ export const registerAddCommentTool = (server) => registerTool(server, {
6
+ name: 'add-comment',
7
+ title: 'Add Comment to Jira Issue',
8
+ description: 'Add a comment to an existing Jira issue.',
9
+ inputSchema: {
10
+ issueIdOrKey: z.string().describe('Issue key or ID (e.g., "PROJ-123")'),
11
+ comment: z.string().describe('Comment text (supports Markdown formatting in API v3, plain text in v2)'),
12
+ visibility: z
13
+ .object({
14
+ type: z.enum(['role', 'group']).describe('Visibility type: role or group'),
15
+ value: z.string().describe('Role name or group name'),
16
+ })
17
+ .optional()
18
+ .describe('Restrict comment visibility to a specific role or group (optional)'),
19
+ },
20
+ outputSchema: {
21
+ commentId: z.string(),
22
+ created: z.string(),
23
+ url: z.string(),
24
+ },
25
+ isReadOnly: false,
26
+ async fetcher(params) {
27
+ const comment = await addComment(params.issueIdOrKey, params.comment, params.visibility);
28
+ return { comment, issueIdOrKey: params.issueIdOrKey };
29
+ },
30
+ formatter(data) {
31
+ return {
32
+ commentId: data.comment.id,
33
+ created: data.comment.created,
34
+ url: `${getJiraBaseUrl()}/browse/${data.issueIdOrKey}?focusedCommentId=${data.comment.id}`,
35
+ };
36
+ },
37
+ });
38
+ //# sourceMappingURL=add-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-comment.js","sourceRoot":"","sources":["../../src/tools/add-comment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAiB,EAAE,EAAE,CAC1D,YAAY,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,2BAA2B;IAClC,WAAW,EAAE,0CAA0C;IACvD,WAAW,EAAE;QACX,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QACvG,UAAU,EAAE,CAAC;aACV,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YAC1E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SACtD,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,oEAAoE,CAAC;KAClF;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;KAChB;IACD,UAAU,EAAE,KAAK;IACjB,KAAK,CAAC,OAAO,CAAC,MAAM;QAClB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QACxF,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAA;IACvD,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,GAAG,EAAE,GAAG,cAAc,EAAE,WAAW,IAAI,CAAC,YAAY,qBAAqB,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;SAC3F,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare const registerCreateIssueTool: (server: McpServer) => void;
3
+ //# sourceMappingURL=create-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-issue.d.ts","sourceRoot":"","sources":["../../src/tools/create-issue.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,uBAAuB,GAAI,QAAQ,SAAS,SA4CrD,CAAA"}
@@ -0,0 +1,48 @@
1
+ import { registerTool } from '@mcp-monorepo/shared';
2
+ import { z } from 'zod';
3
+ import { getJiraBaseUrl } from '../lib/jira-env.js';
4
+ import { createIssue } from '../lib/jira.service.js';
5
+ export const registerCreateIssueTool = (server) => registerTool(server, {
6
+ name: 'create-issue',
7
+ title: 'Create Jira Issue',
8
+ description: 'Create a new Jira issue. Use get-create-metadata to find valid issueTypeId and priorityId values for your project.',
9
+ inputSchema: {
10
+ projectKey: z.string().describe('Project key (e.g., "PROJ")'),
11
+ issueTypeId: z.string().describe('Issue type ID (use get-create-metadata to find valid IDs)'),
12
+ summary: z.string().describe('Issue title/summary'),
13
+ description: z
14
+ .string()
15
+ .optional()
16
+ .describe('Issue description (supports Markdown formatting in API v3, plain text in v2)'),
17
+ assigneeId: z.string().optional().describe('Assignee account ID (leave empty for unassigned)'),
18
+ priorityId: z.string().optional().describe('Priority ID (use get-create-metadata to find valid IDs)'),
19
+ labels: z.array(z.string()).optional().describe('Labels for the issue'),
20
+ parentKey: z.string().optional().describe('Parent issue key (required for creating subtasks)'),
21
+ },
22
+ outputSchema: {
23
+ id: z.string(),
24
+ key: z.string(),
25
+ url: z.string(),
26
+ },
27
+ isReadOnly: false,
28
+ async fetcher(params) {
29
+ return createIssue({
30
+ projectKey: params.projectKey,
31
+ issueTypeId: params.issueTypeId,
32
+ summary: params.summary,
33
+ description: params.description,
34
+ assigneeId: params.assigneeId,
35
+ priorityId: params.priorityId,
36
+ labels: params.labels,
37
+ parentKey: params.parentKey,
38
+ });
39
+ },
40
+ formatter(data) {
41
+ return {
42
+ id: data.id,
43
+ key: data.key,
44
+ url: `${getJiraBaseUrl()}/browse/${data.key}`,
45
+ };
46
+ },
47
+ });
48
+ //# sourceMappingURL=create-issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-issue.js","sourceRoot":"","sources":["../../src/tools/create-issue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAIpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAiB,EAAE,EAAE,CAC3D,YAAY,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,oHAAoH;IACtH,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAC7F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACnD,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8EAA8E,CAAC;QAC3F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC9F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;QACrG,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KAC/F;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;KAChB;IACD,UAAU,EAAE,KAAK;IACjB,KAAK,CAAC,OAAO,CAAC,MAAM;QAClB,OAAO,WAAW,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;IACJ,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,GAAG,cAAc,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE;SAC9C,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute-jql.d.ts","sourceRoot":"","sources":["../../src/tools/execute-jql.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,sBAAsB,GAAI,QAAQ,SAAS,SA4CpD,CAAA"}
1
+ {"version":3,"file":"execute-jql.d.ts","sourceRoot":"","sources":["../../src/tools/execute-jql.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,sBAAsB,GAAI,QAAQ,SAAS,SAuEpD,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import { registerTool } from '@mcp-monorepo/shared';
2
2
  import { z } from 'zod';
3
+ import { getJiraApiVersion } from '../lib/jira-env.js';
3
4
  import { executeJql } from '../lib/jira.service.js';
4
5
  export const registerExecuteJqlTool = (server) => registerTool(server, {
5
6
  name: 'execute-jql',
6
7
  title: 'Execute Jira JQL',
7
- description: 'Execute a Jira Query Language (JQL) search and return issues.',
8
+ description: 'Execute a Jira Query Language (JQL) search and return issues. In API v3, uses enhanced search with nextPageToken pagination. In API v2, uses legacy search with startAt pagination.',
8
9
  inputSchema: {
9
10
  jql: z.string().describe('JQL query string'),
10
11
  maxResults: z
@@ -14,14 +15,22 @@ export const registerExecuteJqlTool = (server) => registerTool(server, {
14
15
  .max(100)
15
16
  .optional()
16
17
  .describe('Maximum number of results to return (default: 50)'),
17
- startAt: z.number().int().min(0).optional().describe('Index of first result for pagination (default: 0)'),
18
+ startAt: z
19
+ .number()
20
+ .int()
21
+ .min(0)
22
+ .optional()
23
+ .describe('Index of first result for pagination (v2 only, default: 0)'),
24
+ nextPageToken: z.string().optional().describe('Token for next page of results (v3 only)'),
18
25
  fields: z
19
26
  .array(z.string())
20
27
  .optional()
21
28
  .describe('Fields to include in results (default: [summary, status, assignee])'),
22
29
  },
23
30
  outputSchema: {
24
- total: z.number(),
31
+ total: z.number().optional(), // Not always present in v3
32
+ isLast: z.boolean().optional(), // Only in v3
33
+ nextPageToken: z.string().optional(), // Only in v3
25
34
  issues: z.array(z.object({
26
35
  key: z.string(),
27
36
  summary: z.string().optional(),
@@ -30,17 +39,35 @@ export const registerExecuteJqlTool = (server) => registerTool(server, {
30
39
  },
31
40
  isReadOnly: true,
32
41
  async fetcher(params) {
33
- return executeJql(params.jql, params.maxResults, params.startAt, params.fields);
42
+ return executeJql(params.jql, params.maxResults, params.startAt, params.fields, params.nextPageToken);
34
43
  },
35
44
  formatter(data) {
36
- return {
37
- total: data.total,
38
- issues: data.issues.map((issue) => ({
39
- key: issue.key,
40
- summary: issue.fields.summary,
41
- status: issue.fields.status?.name,
42
- })),
43
- };
45
+ const apiVersion = getJiraApiVersion();
46
+ // Handle both v2 and v3 responses
47
+ if (apiVersion === '3' && 'isLast' in data) {
48
+ // v3 enhanced search response
49
+ return {
50
+ isLast: data.isLast,
51
+ nextPageToken: data.nextPageToken,
52
+ total: data.total,
53
+ issues: data.issues.map((issue) => ({
54
+ key: issue.key,
55
+ summary: issue.fields.summary,
56
+ status: issue.fields.status?.name,
57
+ })),
58
+ };
59
+ }
60
+ else {
61
+ // v2 legacy search response
62
+ return {
63
+ total: data.total,
64
+ issues: data.issues.map((issue) => ({
65
+ key: issue.key,
66
+ summary: issue.fields.summary,
67
+ status: issue.fields.status?.name,
68
+ })),
69
+ };
70
+ }
44
71
  },
45
72
  });
46
73
  //# sourceMappingURL=execute-jql.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-jql.js","sourceRoot":"","sources":["../../src/tools/execute-jql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAInD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAiB,EAAE,EAAE,CAC1D,YAAY,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE;QACX,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAC5C,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;QAChE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;QACzG,MAAM,EAAE,CAAC;aACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,qEAAqE,CAAC;KACnF;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,CAAC,CACH;KACF;IACD,UAAU,EAAE,IAAI;IAChB,KAAK,CAAC,OAAO,CAAC,MAAM;QAClB,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACjF,CAAC;IACD,SAAS,CAAC,IAAI;QACZ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;gBAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI;aAClC,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"execute-jql.js","sourceRoot":"","sources":["../../src/tools/execute-jql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare const registerGetCreateMetadataTool: (server: McpServer) => void;
3
+ //# sourceMappingURL=get-create-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-create-metadata.d.ts","sourceRoot":"","sources":["../../src/tools/get-create-metadata.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,eAAO,MAAM,6BAA6B,GAAI,QAAQ,SAAS,SA+D3D,CAAA"}