UNPKG

@pavi_thran_7/jira-mcp-server

Version:

MCP server for Jira integration with ticket creation and time logging

129 lines (115 loc) 4.9 kB
/** * @fileoverview JSDoc type definitions for Jira MCP server */ /** * @typedef {Object} JiraConfig * @property {string} baseUrl - Jira instance URL (e.g., https://company.atlassian.net) * @property {string} email - User's Jira account email * @property {string} apiToken - Jira API token for authentication */ /** * @typedef {Object} JiraProject * @property {string} key - Project key (e.g., "PROJ", "DEV") * @property {string} name - Project name * @property {string} projectTypeKey - Project type (software, business, etc.) * @property {string} id - Project ID */ /** * @typedef {Object} JiraBoard * @property {string} id - Board ID * @property {string} name - Board name * @property {string} type - Board type (scrum, kanban, etc.) * @property {Object} location - Board location info * @property {string} location.projectKey - Associated project key */ /** * @typedef {Object} JiraIssueType * @property {string} id - Issue type ID * @property {string} name - Issue type name (Task, Bug, Story, Epic) * @property {boolean} subtask - Whether this is a subtask type * @property {string} iconUrl - URL to issue type icon */ /** * @typedef {Object} JiraPriority * @property {string} id - Priority ID * @property {string} name - Priority name (Highest, High, Medium, Low, Lowest) * @property {string} iconUrl - URL to priority icon */ /** * @typedef {Object} JiraUser * @property {string} accountId - User account ID * @property {string} displayName - User display name * @property {string} emailAddress - User email address * @property {boolean} active - Whether user is active */ /** * @typedef {Object} JiraIssue * @property {string} key - Issue key (e.g., "PROJ-123") * @property {string} id - Issue ID * @property {string} self - Issue URL * @property {Object} fields - Issue fields * @property {string} fields.summary - Issue summary/title * @property {string} fields.description - Issue description * @property {JiraIssueType} fields.issuetype - Issue type * @property {JiraPriority} fields.priority - Issue priority * @property {JiraUser} fields.assignee - Assigned user * @property {JiraUser} fields.reporter - Reporter user * @property {Object} fields.status - Issue status * @property {string} fields.status.name - Status name * @property {string[]} fields.labels - Issue labels * @property {string} fields.created - Creation timestamp * @property {string} fields.updated - Last update timestamp */ /** * @typedef {Object} JiraWorklog * @property {string} id - Worklog ID * @property {string} issueId - Issue ID * @property {JiraUser} author - Worklog author * @property {string} comment - Work description * @property {string} timeSpent - Time spent (e.g., "2h 30m") * @property {number} timeSpentSeconds - Time spent in seconds * @property {string} started - Work start timestamp * @property {string} created - Worklog creation timestamp * @property {string} updated - Worklog update timestamp */ /** * @typedef {Object} JiraBillingAccount * @property {string} id - Billing account ID * @property {string} name - Billing account name * @property {string} description - Billing account description * @property {string} clientName - Client name * @property {string} costCenter - Cost center code * @property {boolean} active - Whether account is active */ /** * @typedef {Object} CreateTicketParams * @property {string} projectKey - Project identifier (required) * @property {string} summary - Ticket title/summary (required) * @property {string} [description] - Detailed ticket description * @property {string} issueType - Type of issue (Task, Bug, Story, Epic) (required) * @property {string} [priority] - Priority level (Highest, High, Medium, Low, Lowest) * @property {string} [assignee] - User account ID or email to assign ticket * @property {string[]} [labels] - Array of label strings * @property {string} [boardId] - Specific board ID to add ticket to */ /** * @typedef {Object} LogWorkParams * @property {string} issueKey - Ticket identifier (required) * @property {string} timeSpent - Time duration (required) * @property {string} [comment] - Description of work performed * @property {string} [started] - ISO date when work started * @property {string} [billingAccountId] - Billing account ID */ /** * @typedef {Object} JiraApiResponse * @property {boolean} success - Whether the request was successful * @property {*} data - Response data * @property {string} [error] - Error message if request failed * @property {number} [statusCode] - HTTP status code */ /** * @typedef {Object} McpToolResult * @property {boolean} isError - Whether the result is an error * @property {string} content - Result content or error message */ export {};