org-jira-mcp-adapter 1.0.0 → 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/index.js CHANGED
@@ -49,4 +49,39 @@ server.tool("jira_postIssueComment", `Post a comment on a JIRA issue in the ${ji
49
49
  return formatToolResponse(result);
50
50
  });
51
51
 
52
+ server.tool("jira_getTransitions", `Get available transitions for a JIRA issue in the ${jiraInstanceType}`, jiraToolSchemas.getTransitions, async ({ issueKey }) => {
53
+ const result = await jiraService.getTransitions(issueKey);
54
+ return formatToolResponse(result);
55
+ });
56
+
57
+ server.tool("jira_transitionIssue", `Perform a transition on a JIRA issue in the ${jiraInstanceType}`, jiraToolSchemas.transitionIssue, async ({ issueKey, transitionId, comment }) => {
58
+ const result = await jiraService.transitionIssue(issueKey, transitionId, comment);
59
+ return formatToolResponse(result);
60
+ });
61
+
62
+ server.tool("jira_addWorklog", `Add a worklog entry to a JIRA issue in the ${jiraInstanceType}`, jiraToolSchemas.addWorklog, async ({ issueKey, timeSpent, comment, started }) => {
63
+ const result = await jiraService.addWorklog(issueKey, timeSpent, comment, started);
64
+ return formatToolResponse(result);
65
+ });
66
+
67
+ server.tool("jira_getIssueWorklogs", `Get worklogs for a JIRA issue in the ${jiraInstanceType}`, jiraToolSchemas.getIssueWorklogs, async ({ issueKey }) => {
68
+ const result = await jiraService.getIssueWorklogs(issueKey);
69
+ return formatToolResponse(result);
70
+ });
71
+
72
+ server.tool("jira_getAllProjects", `Get all visible projects in the ${jiraInstanceType}`, jiraToolSchemas.getAllProjects, async ({ recent }) => {
73
+ const result = await jiraService.getAllProjects(recent);
74
+ return formatToolResponse(result);
75
+ });
76
+
77
+ server.tool("jira_getCurrentUser", `Get the currently logged in user in the ${jiraInstanceType}`, jiraToolSchemas.getCurrentUser, async () => {
78
+ const result = await jiraService.getCurrentUser();
79
+ return formatToolResponse(result);
80
+ });
81
+
82
+ server.tool("jira_findUsers", `Find users in the ${jiraInstanceType}`, jiraToolSchemas.findUsers, async ({ query, maxResults }) => {
83
+ const result = await jiraService.findUsers(query, maxResults);
84
+ return formatToolResponse(result);
85
+ });
86
+
52
87
  await connectServer(server);
package/jira-service.js CHANGED
@@ -3,19 +3,14 @@ import { handleApiOperation } from '@atlassian-dc-mcp/common';
3
3
  import { IssueService, OpenAPI, SearchService } from '@atlassian-dc-mcp/jira/build/jira-client/index.js';
4
4
 
5
5
  export class JiraService {
6
- constructor(host, token, fullBaseUrl, email) {
6
+ constructor(host, token, fullBaseUrl) {
7
7
  if (fullBaseUrl) {
8
8
  OpenAPI.BASE = fullBaseUrl;
9
9
  } else if (host) {
10
10
  const cleanHost = host.replace(/^https?:\/\//, '').replace(/\/$/, '');
11
11
  OpenAPI.BASE = `https://${cleanHost}/rest`;
12
12
  }
13
- if (email) {
14
- OpenAPI.USERNAME = email;
15
- OpenAPI.PASSWORD = token;
16
- } else {
17
- OpenAPI.TOKEN = token;
18
- }
13
+ OpenAPI.TOKEN = token;
19
14
  OpenAPI.VERSION = '2';
20
15
  }
21
16
 
@@ -103,6 +98,31 @@ export const jiraToolSchemas = {
103
98
  issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)"),
104
99
  expand: z.string().optional().describe("Comma separated fields to expand")
105
100
  },
101
+ getTransitions: {
102
+ issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)")
103
+ },
104
+ transitionIssue: {
105
+ issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)"),
106
+ transitionId: z.string().describe("Transition ID to perform"),
107
+ comment: z.string().optional().describe("Comment to add with transition")
108
+ },
109
+ addWorklog: {
110
+ issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)"),
111
+ timeSpent: z.string().describe("Time spent (e.g. 1h 30m)"),
112
+ comment: z.string().optional().describe("Worklog comment"),
113
+ started: z.string().optional().describe("Start time (ISO 8601 string), defaults to now")
114
+ },
115
+ getIssueWorklogs: {
116
+ issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)")
117
+ },
118
+ getAllProjects: {
119
+ recent: z.boolean().optional().describe("Return only recent projects")
120
+ },
121
+ getCurrentUser: {},
122
+ findUsers: {
123
+ query: z.string().describe("Search query (username, name, email)"),
124
+ maxResults: z.number().optional().describe("Max results")
125
+ },
106
126
  getIssueComments: {
107
127
  issueKey: z.string().describe("JIRA issue key (e.g., PROJ-123)"),
108
128
  expand: z.string().optional().describe("Comma separated fields to expand")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "org-jira-mcp-adapter",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "MCP server for Jira Data Center/Server (On-Premise)",
5
5
  "type": "module",
6
6
  "main": "index.js",