DESTRUCTIVE

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.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Delivered to every endpoint subscribed to it once the change is made.

Annotations

Destructive

A client that honours annotations asks a person before running it.

Arguments

baseline_id*string

UUID of the baseline.

namestringoptional

What the baseline is called, 3 to 120 characters.

kindstringoptional

The kind of baseline.

scopereleasesprintmilestone
descriptionstringoptional

What the baseline marks, as HTML.

itemsarrayoptional

The approved records it holds, replacing the list: objects with type and id.

statusstringoptional

Superseded, when a newer baseline replaces this one; the other states are the approval engine's.

draftin_reviewapprovedawaiting_sign_offsigned_offsuperseded

What 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_FAILED

a 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_FOUND

unknown baseline_id, a baseline outside the token's scope, or an item naming a record that is hidden, gone or another project's.

FORBIDDEN

the token is a client guest's, or the holder's role on the project does not carry baseline:update.

TOKEN_MISSING_ABILITY

token lacks baseline:update.

How is this guide?

Last updated on