update_baseline
Changes a draft baseline's name, kind, words or records, or moves a frozen baseline to superseded; a frozen baseline's fields and records never change, and the approval engine's moves are refused.
Change a draft, or retire a frozen baseline. For a draft, send any of name, kind and description, and items to replace the record rows wholesale (the same objects of type and id as create_baseline; an empty list empties the draft); only approved records join. For a frozen baseline the one change allowed is status: superseded, which keeps the baseline readable with every stamp and stops it locking its records; the moves through in review, approved, awaiting sign-off and signed off belong to the approval engine and are refused. Runs the same actions as the application's editor and Move to menu: baseline.updated with what changed, baseline.status_changed for a supersede, and a version per save.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same actions as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires events
Delivered to every endpoint subscribed to it once the change is made.
Annotations
A client that honours annotations asks a person before running it.
Arguments
baseline_id*stringUUID of the baseline.
namestringoptionalWhat the baseline is called, 3 to 120 characters.
kindstringoptionalThe kind of baseline.
scopereleasesprintmilestonedescriptionstringoptionalWhat the baseline marks, as HTML.
itemsarrayoptionalThe approved records it holds, replacing the list: objects with type and id.
statusstringoptionalSuperseded, when a newer baseline replaces this one; the other states are the approval engine's.
draftin_reviewapprovedawaiting_sign_offsigned_offsupersededWhat it returns
{ "data": { "id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "name": "v1.1 scope (pilot)", "kind": "milestone", "description": "<p>The pilot cut of the second release.</p>", "status": "draft", "frozen": false, "locks_items": false, "version": 0, "approved_at": null, "approved_revision_id": null, "frozen_at": null, "frozen_by": null, "signed_off_at": null, "items": [ { "id": "b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e", "baseline_id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d", "artefact_type": "requirement", "artefact_id": "a8b9c0d1-e2f3-4a4b-9c5d-6e7f8a9b0c13", "reference": "CRM-FR-12", "title": "Password reset by email", "version": 2, "revision_id": null, "frozen_at": null, "locked": false, "unlocked_at": null, "unlocked_by_change_request_id": null, "position": 0 } ], "position": 1, "created_at": "2026-10-29T09:00:00+00:00", "updated_at": "2026-10-29T09:30:00+00:00" }}How it fails
VALIDATION_FAILEDa field or record change on a baseline past its draft; a status other than superseded, or superseded from a status that does not allow it; a name shorter than 3 or longer than 120 characters or already used; an unknown kind; an item that cannot be baselined or is not approved.
RESOURCE_NOT_FOUNDunknown baseline_id, a baseline outside the token's scope, or an item naming a record that is hidden, gone or another project's.
FORBIDDENthe token is a client guest's, or the holder's role on the project does not carry baseline:update.
TOKEN_MISSING_ABILITYtoken lacks baseline:update.
How is this guide?
Last updated on