jira_update_issue
Modify JIRA issues by updating their summary, description, assignee, or priority using the specified issue key to streamline issue management and tracking.
Instructions
Update an existing JIRA issue
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee | No | New assignee account ID | |
| description | No | New description | |
| issueKey | Yes | The JIRA issue key | |
| priority | No | New priority name | |
| summary | No | New summary |
Implementation Reference
- server.js:311-336 (handler)The asynchronous handler function for the jira_update_issue tool. It destructures input parameters, builds an updateData object with provided fields, calls jiraClient.updateIssue, logs success or error, returns a text content response on success.async ({ issueKey, summary, description, assignee, priority }) => { logger.info('Updating JIRA issue', { issueKey }); try { const updateData = {}; if (summary) updateData.summary = summary; if (description) updateData.description = description; if (assignee) updateData.assignee = { accountId: assignee }; if (priority) updateData.priority = { name: priority }; await jiraClient.updateIssue(issueKey, updateData); logger.info('Successfully updated issue', { issueKey, fieldsUpdated: Object.keys(updateData) }); return { content: [{ type: 'text', text: `Issue ${issueKey} updated successfully` }] }; } catch (error) { logger.error('Failed to update issue', { issueKey, error: error.message }); throw error; } }
- server.js:300-309 (schema)The tool's metadata object including title, description, and Zod-based inputSchema defining required issueKey and optional update fields.{ title: 'Update JIRA Issue', description: 'Update an existing JIRA issue', inputSchema: { issueKey: z.string().describe('The JIRA issue key'), summary: z.string().optional().describe('New summary'), description: z.string().optional().describe('New description'), assignee: z.string().optional().describe('New assignee account ID'), priority: z.string().optional().describe('New priority name') }
- server.js:298-337 (registration)The server.registerTool call that registers the 'jira_update_issue' tool with its name, schema/metadata, and inline handler function.server.registerTool( 'jira_update_issue', { title: 'Update JIRA Issue', description: 'Update an existing JIRA issue', inputSchema: { issueKey: z.string().describe('The JIRA issue key'), summary: z.string().optional().describe('New summary'), description: z.string().optional().describe('New description'), assignee: z.string().optional().describe('New assignee account ID'), priority: z.string().optional().describe('New priority name') } }, async ({ issueKey, summary, description, assignee, priority }) => { logger.info('Updating JIRA issue', { issueKey }); try { const updateData = {}; if (summary) updateData.summary = summary; if (description) updateData.description = description; if (assignee) updateData.assignee = { accountId: assignee }; if (priority) updateData.priority = { name: priority }; await jiraClient.updateIssue(issueKey, updateData); logger.info('Successfully updated issue', { issueKey, fieldsUpdated: Object.keys(updateData) }); return { content: [{ type: 'text', text: `Issue ${issueKey} updated successfully` }] }; } catch (error) { logger.error('Failed to update issue', { issueKey, error: error.message }); throw error; } } );