get_approval_request
Fetches one approval request by UUID with the record it is about, the approvers the policy named, the tally, the clocks and every verdict given, round by round.
Read one approval request in full: the record under approval, the gate, where it stands, who asked and why, the approvers with how each was found (owner, role, user or stakeholder), the tally, the clocks and their rings, the version under review, and decisions, each with its round, the approver's name, the verdict, the reason and the signature hash. The same record GET /v1/approvals/{approval} answers.
An unknown id, another tenant's request or a guest token the request does not name surfaces as RESOURCE_NOT_FOUND. Read it to explain why a record is still in review, who has answered and who has not; deciding stays with people.
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
approval_id*stringUUID of the approval request to fetch.
What it returns
{ "data": { "id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "approvable_type": "requirement", "approvable_id": "a8b9c0d1-e2f3-4a4b-9c5d-6e7f8a9b0c13", "reference": "CRM-FR-12", "title": "Apply a voucher at checkout", "kind": "requirement_review", "status": "changes_requested", "rule": "any", "quorum": 1, "round": 1, "approvers": [ { "user_id": "3f8a1c2e-7b4d-4e5f-9a6b-1c2d3e4f5a6b", "name": "Pat Manager", "via": "role", "stakeholder_id": null } ], "tally": { "approved": 0, "needed": 1, "total": 1 }, "requires_comment": true, "requested_by": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e", "requester_name": "Bea Analyst", "summary": "First cut of the voucher rules.", "revision_id": "0e1f2a3b-4c5d-4e6f-8a7b-9c0d1e2f3a4b", "due_at": "2026-10-31T09:20:00+00:00", "remind_at": "2026-10-29T09:20:00+00:00", "auto_approve_at": null, "reminded_at": null, "escalated_at": null, "decided_at": null, "auto_approved": false, "decisions": [ { "id": "d4e5f6a7-b8c9-4d0e-9f1a-2b3c4d5e6f7a", "approval_request_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f", "round": 1, "approver_id": "3f8a1c2e-7b4d-4e5f-9a6b-1c2d3e4f5a6b", "approver_name": "Pat Manager", "stakeholder_id": null, "verdict": "changes_requested", "comment": "Name the voucher kinds it applies to.", "signature_hash": "4f9c2a7e1b0d3c5f6a8e9b2d4c6f8a0b1c3d5e7f9a1b3c5d7e9f0a2b4c6d8e0f", "decided_at": "2026-10-28T11:05:00+00:00" } ], "created_at": "2026-10-28T09:20:00+00:00", "updated_at": "2026-10-28T11:05:00+00:00" }}How it fails
RESOURCE_NOT_FOUNDunknown approval_id, a request outside the token's scope or the person's visibility, or a guest token the request does not name.
TOKEN_MISSING_ABILITYtoken lacks approval:view.
How is this guide?
Last updated on