create_baseline
Composes a draft baseline on a project from approved records, with its name, kind and words, and answers with the draft and its record rows; nothing is frozen until a person submits it and the project manager approves.
Compose a baseline the people will freeze. project_id and a name unique within the project (3 to 120 characters) are required; kind is scope, release, sprint or milestone (default scope), description says what the baseline marks as HTML, and items names the records it holds as objects of type (epic, work-item, requirement, business-rule or use-case) and id. Only an approved record, one that carries a version, may join; a draft or a record in review is refused and nothing is written. The baseline is written as a draft with its rows in the order given, each noted at the record's approved version. Submitting it for the project manager's approval is a person's act, through submit_for_review on their word or in the application; the approval is what freezes it and locks the records. Runs the same action as Create Baseline in the application: a baseline.created event, a baseline.updated event for the records, and the first versions.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Fires one event
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
project_id*stringUUID of the project.
name*stringWhat the baseline is called, 3 to 120 characters, unique within the project.
kindstringoptionalThe kind of baseline.
scopereleasesprintmilestonedescriptionstringoptionalWhat the baseline marks, as HTML.
itemsarrayoptionalThe approved records it holds: objects with type (epic, work-item, requirement, business-rule or use-case) and id.
What it returns
{ "data": { "id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "name": "v1.1 scope", "kind": "scope", "description": "<p>The second release, as agreed on the October call.</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:00:00+00:00" }}How it fails
VALIDATION_FAILEDthe name is missing, shorter than 3 or longer than 120 characters, or already used on the project; an unknown kind; an item whose type cannot be baselined or whose record is not approved; more than 500 items.
RESOURCE_NOT_FOUNDunknown project_id, or an item naming a record that is hidden, gone or another project's; nothing is written.
FORBIDDENthe token is a client guest's, or the holder's role on the project does not carry baseline:create (and baseline:update for the items).
TOKEN_MISSING_ABILITYtoken lacks baseline:create.
How is this guide?
Last updated on