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
TableJSON 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; }; }