DESTRUCTIVE

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.

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

Destructive

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

Arguments

project_id*string

UUID of the project.

name*string

What the baseline is called, 3 to 120 characters, unique within the project.

kindstringoptional

The kind of baseline.

scopereleasesprintmilestone
descriptionstringoptional

What the baseline marks, as HTML.

itemsarrayoptional

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

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

unknown project_id, or an item naming a record that is hidden, gone or another project's; nothing is written.

FORBIDDEN

the 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_ABILITY

token lacks baseline:create.

How is this guide?

Last updated on