Sign in
Docs
0%

Transports

Decisions, part 2 of 2 MCP tools

The 18 tools /mcp offers for Decisions, part 2 of 2, what each needs and an example call.

Your spaces and their RFCs, PRDs, ADRs and studies: read, draft, comment and ask for review. These are 18 tools of the 36 tools of the decisions backend (part 2 of 2; the others are part 1); all MCP tools lists the other backends.

decisions_list_pull_requests

List pull requests. The pull requests linked to a document (PRDs, RFCs, ADRs and studies), or with an empty document_id to every document of the space (paged, 0 means 50, at most 200), newest link first, with their state as last read from GitHub: title, author, draft, open, closed or merged, the review decision, the checks, merged at and the merge commit, the document, and counts by state. document_id is the id or what people call it ("rfc 12.1", "prd-39"). Narrow by repo (owner/name) and state (unknown, draft, open, closed, merged, or active for draft and open); compact gives each as id, repo, number, url, state, title and document only.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
compactbooleanEach pull request as its id, repository, number, url, state, title and document only.
document_idstringThe document's id, or what people call it ("prd-39"); empty for every document of the space the caller reads (members only), paged.
page_sizeintegerFor the whole space: 0 means 50, at most 200. A document's list is not paged.
page_tokenstringThe next_page_token of the page before.
repostringOnly this repository ("owner/name"); empty for all.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
statestringOnly this state ("unknown", "draft", "open", "closed" or "merged"), or "active" (draft or open); empty for all.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_pull_requests",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_list_questions

List questions. A space's questions, newest first: open (the default), answered or all, with their answers. 0 means 50, at most 200.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
space_idstringThe space's whole id (lab_ and a ULID, never shortened); decisions_list_spaces names the caller's spaces.
statusstring"open" (the default), "answered" or "all".
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_questions",
    "arguments": {
      "space_id": "<space_id>"
    }
  }
}

decisions_list_review_queue

My review queue. The caller's review queue across an account's spaces: what waits for them (status "waiting", the default) or what they asked of others and is still unanswered ("asked"). Newest first; 0 means 50, at most 200.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
account_idstringThe account; empty is the caller's own.
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
statusstring"waiting" (the default) or "asked".
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_review_queue",
    "arguments": {}
  }
}

decisions_list_reviews

List reviews. The document's review requests and answers, newest first. 0 means 50, at most 200.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
statusstring"pending", "approve", "changes", "waiting" (pending and asked of the caller) or empty for all.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_reviews",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_list_spaces

List spaces. The spaces where PRDs, ADRs, RFCs and studies live, newest first. With account_id, that account's. Empty: the account your sign-in names, or else every account you belong to (your own and each team), each space saying its account (account_id, account_name). A space's id is its space_id. 0 means 50, at most 200.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
account_idstringThe account. Empty: the account the caller's token names (the one they chose), or, for a person whose token names none, every account they belong to (their own and each team), each space naming its account.
departmentstringOnly this department.
kindstringOnly spaces of this kind: space, department or project.
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
parent_idstringOnly the spaces directly under this one.
querystringNarrows to spaces whose name or slug contains this, any case.
top_levelbooleanOnly spaces at the top, with no parent.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_spaces",
    "arguments": {}
  }
}

decisions_list_timeline

Read the timeline. The space's timeline: every status log line of every document's current version, newest date first (one document's when document_id names it). 0 means 100, at most 500.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
document_idstringOne document's lines (the path form); empty for the whole space.
fromstringYYYY-MM-DD, inclusive; empty for no bound.
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
tostring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_timeline",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_list_versions

List versions. The document's versions, newest first, without their text. 0 means 50, at most 200.

Scopes: mcp:read, decisions:read · reads only

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
page_sizeinteger
page_tokenstringThe next_page_token of the page before.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_list_versions",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_request_review

Ask for a review. Ask members of the account to review the document's current version.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
reviewerslist of stringSubjects of members of the space's account, 1 to 20; never the caller.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_request_review",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_resolve_comment

Resolve a thread. Resolve a thread (or reopen it with resolved false).

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
comment_idstringA thread's first comment.
document_idstringThe document's id (decisions_list_documents).
resolvedbooleanFalse reopens the thread.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_resolve_comment",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_save_diagram

Save a diagram. Save a new version of a diagram made from base_version. When someone saved since, the call fails with conflict and the current version's number: nothing is overwritten and nothing is retried.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
base_versioninteger
diagram_idstringThe diagram's id (decisions_list_diagrams).
messagestringAt most 500 characters, on one line.
modelstringAs in CreateDiagram.
namestringEmpty keeps it.
space_idstringThe space's whole id (lab_ and a ULID, never shortened); decisions_list_spaces names the caller's spaces.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_save_diagram",
    "arguments": {
      "space_id": "<space_id>"
    }
  }
}

decisions_save_document

Save a draft. Save a new version of a document made from base_version, the version read. When someone saved since, the call fails with conflict and the current version's number: nothing is overwritten and nothing is retried. Read the document again, apply the change there and save on that version. The findings are returned; a draft is never refused for them.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
base_versionintegerThe version the text was made from: the current one, or ABORTED.
document_idstringThe document's id (decisions_list_documents).
messagestringWhat changed, at most 500 characters, on one line.
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
textstringThe whole document, at most 512 KiB.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_save_document",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_set_access

Keep a document private. Narrow who reads a document: "team" (the account and the people named on it) or "internal" (the account's managers). Making a document public, preview or partner is a person's act in the console and is refused here.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
access (required)team or internal"public", "preview", "partner", "team" or "internal".
document_idstringThe document's id (decisions_list_documents).
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_set_access",
    "arguments": {
      "access": "team",
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_set_status

Move a document's status. Move a document to a status of its kind (for example into review, naming a decider and a review-by day; or decided once its approvals are in). Made from base_version: someone saving since fails with conflict. Deciding needs the space's approvals on the current version. An assistant decides only where the space's ai_approval allows it, or accepts (publishes a study) with approval_id, an approved document ask for the current version that a person decided on their device: the decision is then that person's, once per ask.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
approval_idstringAn approved document ask: lets an assistant accept (or publish a study) where the space's ai_approval does not, on behalf of the person who decided the ask on their device, once. Never for "rejected" or "superseded". Empty: the space's ai_approval decides.
base_versionintegerThe version the caller saw: the current one, or ABORTED.
deciderstringFor "in_review" (an RFC or a PRD): who decides, a subject of the account (default: the decider already named). Needed with review_by.
document_idstringThe document's id (decisions_list_documents).
review_bystringFor "in_review": the day the decision is due, YYYY-MM-DD, today or later (default: the day already named).
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
statusstringA status of the document's kind.
successor_idstringFor "superseded": the document that replaces this one, in the same space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_set_status",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_submit_review

Approve or ask for changes on a document. Answer a review of a version of a document: decision "approve" or "changes". An assistant (an app a person signed in to, or an agent) is refused unless the space's ai_approval is auto for the document's kind (decisions_get_settings); then the answer is recorded on behalf of the person. Elsewhere it may approve with approval_id, an approved document ask for this version that a person decided on their device: the review is then that person's, once per ask.

Scopes: mcp:write, decisions:write · changes something

ArgumentTypeWhat it is
approval_idstringAn approved document ask: lets an assistant approve where the space's ai_approval does not, on behalf of the person who decided the ask on their device, once. Empty: the space's ai_approval decides.
decision (required)approve or changes"approve" or "changes".
document_idstringThe document's id (decisions_list_documents).
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
versionintegerThe version reviewed; it exists.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_submit_review",
    "arguments": {
      "decision": "approve",
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

Stop listing a linked document. Stop listing a document in a space it was linked into. The document itself is untouched.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
space_idstringThe document's home space.
target_space_idstringThe space it is no longer listed in.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_unlink_document",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

Unlink a coordinator job. Unlink a coordinator job from a document. The link's history is kept; linking it again brings it back.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
job_idstring
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_unlink_job",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

Unlink a pull request. Unlink a pull request from a document, named by pull_request_id, or repo and number, or url. The link's history is kept; linking it again brings it back.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
document_idstringThe document's id (decisions_list_documents).
numberinteger
pull_request_idstringThe link to remove: its pull_request_id, or repo and number, or url.
repostring
space_idstringThe space's whole id (lab_ and a ULID; decisions_list_spaces names them). May be left out when document_id is an ldoc_ id: the document names its own space.
urlstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_unlink_pull_request",
    "arguments": {
      "document_id": "<document_id>",
      "space_id": "<space_id>"
    }
  }
}

decisions_update_space

Rename or describe a space. Rename a space (name; empty keeps it) or replace its description (description with set_description true). The old description is replaced, not kept: read it first (decisions_get_space) and check with the person before replacing it. The slug, the documents and the settings stay. Needs the right to manage the space (its account's owner or an admin). Deleting a space, its settings and its people stay in the console.

Scopes: mcp:write, decisions:write · changes something · safe to repeat

ArgumentTypeWhat it is
access_floorstringReplaces its own access floor, empty included, when set_access_floor is true. Raising it raises the documents below it; lowering it lowers none.
departmentstring
descriptionstringReplaces it, empty included, when set_description is true.
kindstringEmpty keeps it; otherwise "space", "department" or "project", with department naming one when it is "department".
namestringEmpty keeps it.
parent_idstringMove it under this space of the same account when set_parent is true; empty with set_parent moves it to the top.
set_access_floorboolean
set_descriptionboolean
set_parentboolean
space_idstringThe space's whole id (lab_ and a ULID, never shortened); decisions_list_spaces names the caller's spaces.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decisions_update_space",
    "arguments": {
      "space_id": "<space_id>"
    }
  }
}