@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
JavaScript
/**
* @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 {};