jira_transition_issue
Change the status of a Jira issue by moving it through its workflow. Provide the issue key, transition ID, and optional comment to update progress.
Instructions
Transition a Jira issue to a new status
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The Jira issue key | |
| transitionId | Yes | Transition ID | |
| comment | No | Optional comment |
Implementation Reference
- src/index.ts:1045-1057 (handler)MCP tool handler for jira_transition_issue: validates input with schema, calls JiraClient.transitionIssue, returns success message.case "jira_transition_issue": { const { issueKey, transitionId, comment } = TransitionIssueSchema.parse(args); await jiraClient.transitionIssue(issueKey, transitionId, comment); return { content: [ { type: "text", text: `Issue ${issueKey} transitioned successfully`, }, ], }; }
- src/index.ts:76-80 (schema)Zod input schema for validating tool parameters: issueKey, transitionId, optional comment.const TransitionIssueSchema = z.object({ issueKey: z.string().describe("The Jira issue key"), transitionId: z.string().describe("Transition ID"), comment: z.string().optional().describe("Optional comment"), });
- src/index.ts:358-370 (registration)Tool registration in ListTools handler: defines name, description, and JSON input schema.{ name: "jira_transition_issue", description: "Transition a Jira issue to a new status", inputSchema: { type: "object", properties: { issueKey: { type: "string", description: "The Jira issue key" }, transitionId: { type: "string", description: "Transition ID" }, comment: { type: "string", description: "Optional comment" }, }, required: ["issueKey", "transitionId"], }, },
- src/jira-client.ts:172-192 (helper)Core implementation in JiraClient: POST to /issue/{issueKey}/transitions with transition ID and optional comment.async transitionIssue( issueKey: string, transitionId: string, comment?: string ): Promise<void> { const body: { transition: { id: string }; update?: { comment: Array<{ add: { body: string } }> }; } = { transition: { id: transitionId }, }; if (comment) { body.update = { comment: [{ add: { body: comment } }], }; } await this.request<void>(`/issue/${issueKey}/transitions`, { method: "POST", body: JSON.stringify(body), }); }