Edit an issue: change its title, priority, assignee, due date, parent, cycle, type or labels. Only provided fields change; an empty string clears assignee, parent, due date or cycle. labels replaces the whole set ([] removes all); add_labels / remove_labels change it incrementally and cannot be combined with labels. Label names are matched case-insensitively within the issue's project and must exist (create_label). Optional expect guards the write: the values you last read of the fields you change (labels = the EXACT current set); it must name every field you change (add_labels / remove_labels are exempt). If any changed meanwhile, nothing is written and the answer lists the current values: re-read with get_issue_details, merge, retry. A field that already has the value you ask for never conflicts.
add_labelsstring[]optionalLabel names to addassigneestringoptionalUsername, or empty to unassigncyclestringoptionalcurrent, next or a cycle number; "" removes itdue_datestringoptionalDue date, YYYY-MM-DD, or empty to clear itexpectobjectoptionalThe values you last read (get_issue_details) of the fields you change; it must name EVERY field you change (add_labels / remove_labels are exempt). If any changed since, nothing is written and the answer gives the current values: re-read, merge, retry.keystringrequiredIssue keylabelsstring[]optionalFull replacement label set (names); [] clears all labelsparentstringoptionalParent issue key, or empty to detachpriorityenumoptionalPrioritynonelowmediumhighurgentremove_labelsstring[]optionalLabel names to removetitlestringoptionalNew titletypeenumoptionalIssue typeepicstorytask
Returns
due_datestringoptionalYYYY-MM-DD (none: absent)keystringrequiredprioritystringrequiredstatusstringrequiredStatus keystatus_namestringrequiredtitlestringrequiredtypestringrequired
- 2026-10-05 — New optional cycle argument: current, next or a cycle number (list_cycles); "" takes the issue out of its cycle (update only). expect takes cycle too (a number, or empty for none).
- 2026-09-30 — labels, add_labels, remove_labels
- 2026-10-01 — New due_date argument (YYYY-MM-DD, or empty to clear it).
- 2026-10-03 — New optional expect {title, type, priority, assignee (username or "none"), due_date, parent (key or ""), labels (EXACT current set)}: the values you last read of the fields you change. If given it must name every field you change (add_labels / remove_labels exempt). If any changed meanwhile nothing is written and the answer lists the current values: re-read with get_issue_details, merge, retry. A field that already has the value you ask for never conflicts, so a retry is safe.
- 2026-10-03 — Also answers structuredContent (see outputSchema); a failed call adds structuredContent.error. Text unchanged. Details: /docs/mcp, "Structured results and errors".
- 2026-10-04 — Claude Code 2.1.288+ (clientInfo claude-code): the text of a successful answer is itself up to 512 bytes, else "Result in structuredContent (N bytes)."; structuredContent and errors are unchanged. See /docs/mcp.