list_decisions
A project's decisions in the project's order, with reference, kind, title, context, the options weighed, what was decided, consequences, status, the day decided, deciders and the decision each supersedes; never for a guest token.
Return the decisions of one project: the record of every choice it made, each with its reference (such as CRM-DEC-5), kind (architecture, product, process, vendor or security), title, the context it was taken in, the options weighed with their pros and cons, what was decided, what follows, status, the day decided, who decided and the earlier decision it replaces. Read the accepted decisions before you design or build, so the code follows what the team already chose, and name decisions by their reference when you report.
Optional filters narrow the page to one kind, one status or the decisions whose reference or title contain search. The log is internal: a guest token is refused.
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 decisions to list.
kindstringoptionalNarrow to one kind.
architectureproductprocessvendorsecuritystatusstringoptionalNarrow to one status.
proposedacceptedrejectedsupersededdeprecatedsearchstringoptionalWords the reference or the title must contain.
limitintegeroptionalDecisions per page (1..100, default 25).
1max100pageintegeroptional1-indexed page number.
1What it returns
{ "data": [ { "id": "a8b9c0d1-e2f3-4a4b-9c5d-6e7f8a9b0c13", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "number": 5, "reference": "CRM-DEC-5", "kind": "architecture", "title": "Keep the loyalty ledger in Postgres", "context": "<p>The ledger must be queried with the orders and audited.</p>", "options": [ { "title": "A ledger table in the main Postgres database", "pros": "One backup, one transaction, one place to audit", "cons": "Table growth needs partitioning within two years" }, { "title": "A dedicated event store", "pros": "Append-only by design", "cons": "A second system to run and to secure" } ], "decision": "<p>The ledger lives in Postgres, partitioned by month from the first release.</p>", "consequences": "<p>The reporting queries join the ledger directly.</p>", "status": "accepted", "decided_on": "2026-11-04", "deciders": ["c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f"], "supersedes_id": "b9c0d1e2-f3a4-4b5c-8d6e-7f8a9b0c1d24", "supersedes_reference": "CRM-DEC-2", "position": 4, "created_at": "2026-10-28T09:20:00+00:00", "updated_at": "2026-11-04T15:00:00+00:00" } ], "meta": { "page": 1, "limit": 25, "total": 1, "has_more": false }}How it fails
RESOURCE_NOT_FOUNDunknown project_id, or a project outside the token's scope or the person's visibility.
FORBIDDENthe token is a client guest's, or the person's role on the project does not carry decision:view-any.
VALIDATION_FAILEDkind or status is not one of its values.
TOKEN_MISSING_ABILITYtoken lacks decision:view-any.
How is this guide?
Last updated on