Skip to main content
Glama

Update any issue fields in one write (requires version)

update_issue
Destructive

Update any issue fields in one write (requires version).

One call = one new version, whatever the number of fields (PO 2026-09-25). links replaces the whole list; board-core adds/removes the inverse links on the other issues in the same commit. transition_issue, assign_issue, move_to_sprint and link_issues stay available as single-purpose tools and follow the same rules. fields (custom fields, spec D129) is merged key by key: send only the keys you change, null removes one.

Call get_issue first and pass its version. Change ANY number of fields in ONE call (title, body, type, priority, severity, status, assignee, points, sprint, release, parent, labels, links) — one call makes exactly one new version, so do not split an edit into several calls. links replaces the whole list. Images in body: upload + attach_file first, then ![file name](path) (never base64). severity (bugs, D113): critical / high / medium / low — how bad it is, separate from priority. release: a planned release id, or null — children of an epic follow the epic's release unless they name another; use move_to_release when the user gives a reason. fields (custom fields, D129) is merged key by key: send only the keys you change, null deletes a value; same types and errors as create_issue (400 unknown_field / invalid_field_value / formula_readonly; types of the field must include the issue's type). Sales & Billing installments (D130): "invoiced" = set invoiced_at (+ invoice_no); "paid" = set paid_at and paid_amount (= amount when paid in full) — dates YYYY-MM-DD, today's date unless the user says another. Do not move the deal to Closed on your own: the deal's all_paid flag says when everything is collected — tell the user and move it only when asked. Rollup fields (D131: a goal's progress / linked, a deal's delivery_progress) are computed like formulas — never in fields (400 formula_readonly); read them in computed. links entries take an issue key of this or another project of the company (403 link_target_forbidden when you cannot open the target's project) or {type: "delivers", id: "KEY/R-n"} for a release (404 release_not_found when it does not exist). For a Roadmap & Goals goal, moving start / end is a fields change like any other. Body: Optional colour (D137, use sparingly; markdown stays the main format): <mark>text</mark> highlights (yellow; or <mark data-color="green">), <span data-color="red">text</span> colours text; colours yellow, green, red, blue, purple (e.g. green = passed / expected, red = bug / actual, purple = question); any other HTML is shown as plain text; keep the open and close tag in the same paragraph.

WRITE: version must be the version from your latest read of this file (get_issue for issues, list_comments for comments, list_sprints for sprints, get_doc for project docs, read_file for md files). If the file changed since, the call fails with 409 version_conflict and the error contains the current file (details.current, details.current_version): re-read it, re-apply your change on top of the current content and retry with the new version. Never overwrite someone else's change blindly — if your change and theirs disagree, ask the user which to keep.

You act with exactly the rights of the user who owns this token; a project you cannot see returns not_found.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNo
typeNo
linksNoThe complete new list; inverse links on other issues are kept in step.
titleNo
fieldsNoCustom field values (spec D129 (3), (6)), keyed by the project's field ids (get_project `frontmatter.fields`): text / select / customer / url / person = string, number / money = number, date = `YYYY-MM-DD`. Merged key by key with the stored values; `null` deletes a key. Unknown id → 400 `unknown_field` (details.field); wrong type, option not in `options`, bad date or url → 400 `invalid_field_value` (details.field, details.expected); formula field → 400 `formula_readonly`; a `required` field missing on create → 400 `invalid_field_value`.
labelsNo
parentNo
pointsNo
sprintNo
statusNoStatus id; must exist in the project's `project.md` statuses.
as_roleNoAI agents (spec D136): the role you work as in this session (e.g. Developer, QA, BA, DevOps) when the user told you one; else your token's role is used. Only changes lane warnings, never what you may do. Ignored for people.
releaseNoReleases on only (D113); a planned release of this project.
versionYesOptimistic-lock version of the file; +1 on every write. Every write must send the version it read.
assigneeNo
priorityNoIssue priority, highest first (spec D89). Missing = `medium`.medium
severityNoBug severity (D113), every plan.
issue_keyYesIssue key `{PROJECT}-{n}`, e.g. `KJ-101`.
project_keyYesProject key, e.g. `KJ`. 2–10 chars, uppercase letters and digits, starts with a letter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources