jira_update_issue
Modify existing Jira issues by updating fields like summary, description, priority, assignee, or labels to reflect current status and requirements.
Instructions
Update an existing Jira issue
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The Jira issue key | |
| summary | No | New summary | |
| description | No | New description | |
| priority | No | New priority name | |
| assignee | No | New assignee username | |
| labels | No | New labels |
Implementation Reference
- src/index.ts:275-294 (registration)Tool registration in the list of available tools, including name, description, and input schema.
{ name: "jira_update_issue", description: "Update an existing Jira issue", inputSchema: { type: "object", properties: { issueKey: { type: "string", description: "The Jira issue key" }, summary: { type: "string", description: "New summary" }, description: { type: "string", description: "New description" }, priority: { type: "string", description: "New priority name" }, assignee: { type: "string", description: "New assignee username" }, labels: { type: "array", items: { type: "string" }, description: "New labels", }, }, required: ["issueKey"], }, }, - src/index.ts:62-69 (schema)Zod schema for validating input parameters to the jira_update_issue tool.
const UpdateIssueSchema = z.object({ issueKey: z.string().describe("The Jira issue key"), summary: z.string().optional().describe("New summary"), description: z.string().optional().describe("New description"), priority: z.string().optional().describe("New priority name"), assignee: z.string().optional().describe("New assignee username"), labels: z.array(z.string()).optional().describe("New labels"), }); - src/index.ts:975-992 (handler)MCP tool handler for jira_update_issue: parses arguments, constructs update fields, calls jiraClient.updateIssue, and returns success message.
case "jira_update_issue": { const { issueKey, summary, description, priority, assignee, labels } = UpdateIssueSchema.parse(args); await jiraClient.updateIssue(issueKey, { fields: { ...(summary && { summary }), ...(description && { description }), ...(priority && { priority: { name: priority } }), ...(assignee && { assignee: { name: assignee } }), ...(labels && { labels }), }, }); return { content: [ { type: "text", text: `Issue ${issueKey} updated successfully` }, ], }; } - src/jira-client.ts:64-72 (handler)Core implementation of issue update: sends PUT request to Jira REST API /issue/{issueKey} with update data.
async updateIssue( issueKey: string, data: JiraUpdateIssueRequest ): Promise<void> { await this.request<void>(`/issue/${issueKey}`, { method: "PUT", body: JSON.stringify(data), }); } - src/types.ts:110-120 (schema)TypeScript interface defining the structure of the update request sent to Jira API.
export interface JiraUpdateIssueRequest { fields: { summary?: string; description?: string; priority?: { name: string }; assignee?: { name: string }; labels?: string[]; [key: string]: unknown; }; }