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.
Runs the same action as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
project_id*stringUUID of the project whose change requests to list.
reasonstringoptionalNarrow to one reason.
new_requirementclarificationdefectregulatoryclient_requesttechnical_debtscope_reductionstatusstringoptionalNarrow to one status.
submittedunder_analysisawaiting_approvalapprovedrejectedimplementingimplementedverifiedclosedprioritystringoptionalNarrow to one priority.
lowestlowmediumhighhighestimpact_levelstringoptionalNarrow to one impact level.
lowmediumhighbaseline_idstringoptionalUUID of a baseline, to list the requests raised against it.
searchstringoptionalWords the reference or the title must contain.
limitintegeroptionalChange requests per page (1..100, default 25).
1max100pageintegeroptional1-indexed page number.
1What 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_FAILEDunknown 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_FOUNDunknown project_id, or a project outside the token's scope.
FORBIDDENthe holder's role on the project does not carry change-request:view-any.
TOKEN_MISSING_ABILITYtoken lacks change-request:view-any.
How is this guide?
Last updated on