READ

list_change_requests

Lists a project's change requests in the project's order with their reason, priority, impact level, status, baseline and the people behind them, narrowed by reason, status, priority, impact level, baseline or words; a guest token sees the requests they raised or asked for, without the effort, the cost and Heimdall's draft.

Read what was asked for after the record was agreed. Each row is the change request record: reference (CRM-CR-2), title, reason, priority, impact_level, impact_schedule_days, impact_effort_hours, impact_cost, status from submitted to closed, baseline_id and baseline_name, requested_by with requester_name, stakeholder_id with stakeholder_name, the approval stamps and the clocks. Narrow with reason, status, priority, impact_level, baseline_id (the requests raised against one baseline) or search (words the reference or the title must contain), and page with limit and page. Read it before you change a locked record: an approved request against the baseline that holds it is what unlocked it, and an open one says a change is already on its way. A client guest's token lists only the requests they raised or asked for through their seat, and never the effort, the cost or Heimdall's draft.

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.

Annotations

Read-only

It reads and never changes anything.

Arguments

project_id*string

UUID of the project whose change requests to list.

reasonstringoptional

Narrow to one reason.

new_requirementclarificationdefectregulatoryclient_requesttechnical_debtscope_reduction
statusstringoptional

Narrow to one status.

submittedunder_analysisawaiting_approvalapprovedrejectedimplementingimplementedverifiedclosed
prioritystringoptional

Narrow to one priority.

lowestlowmediumhighhighest
impact_levelstringoptional

Narrow to one impact level.

lowmediumhigh
baseline_idstringoptional

UUID of a baseline, to list the requests raised against it.

searchstringoptional

Words the reference or the title must contain.

limitintegeroptional

Change requests per page (1..100, default 25).

min1max100
pageintegeroptional

1-indexed page number.

min1

What it returns

{  "data": [    {      "id": "c7d8e9f0-a1b2-4c3d-8e4f-5a6b7c8d9e0f",      "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",      "number": 2,      "reference": "CRM-CR-2",      "title": "Accept vouchers on subscriptions too",      "description": "<p>The client wants the voucher applied to the first renewal as well.</p>",      "reason": "client_request",      "requested_by": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",      "requester_name": "Bea Analyst",      "stakeholder_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",      "stakeholder_name": "Gail of the Client",      "baseline_id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d",      "baseline_name": "v1.0 scope",      "impact_scope": "<p>CRM-FR-12 gains a renewal clause; CRM-142 and its checkout tests change.</p>",      "impact_schedule_days": 5,      "impact_effort_hours": "24.00",      "impact_cost": "1800.00",      "impact_risk": "<p>The renewal job runs unattended; a voucher applied twice would refund twice.</p>",      "impact_level": "medium",      "ai_impact_draft": null,      "analysed_at": null,      "priority": "high",      "status": "awaiting_approval",      "decision_note": null,      "verified_by": null,      "verified_at": null,      "version": 0,      "approved_at": null,      "approved_revision_id": null,      "position": 1,      "created_at": "2026-10-29T09:20:00+00:00",      "updated_at": "2026-10-29T11:00:00+00:00"    }  ],  "meta": { "page": 1, "limit": 25, "total": 3, "has_more": false }}

How it fails

VALIDATION_FAILED

unknown reason, status, priority or impact_level (the response lists the supported values), a baseline_id that is not a UUID, or limit outside 1..100.

RESOURCE_NOT_FOUND

unknown project_id, or a project outside the token's scope.

FORBIDDEN

the holder's role on the project does not carry change-request:view-any.

TOKEN_MISSING_ABILITY

token lacks change-request:view-any.

How is this guide?

Last updated on