Skip to main content
Glama
littlebigbrains

@littlebigbrain/mcp

lbb_reviews_manage

Destructive

Create, answer, comment on, or withdraw review items for ontology changes, value confirmations, choices, grades, or written answers, collecting person-approved decisions before committing.

Instructions

File, answer, comment on or withdraw review items. Show the item to the user and answer only what the user decided. Kinds and their decisions: change (accept an ontology change, identities or facts: accept, reject, cant_tell), value (confirm one value of a property, question.property and question.value: accept, correct with the right value, reject, cant_tell; accept and correct commit the value), choice (pick one of question.options: choose with option, cant_tell), grade (grade question.output on the scale question.options: choose with option, cant_tell), answer (answer question.prompt in words: accept with the text in note, cant_tell). Status is open, answered or withdrawn. Scope is live (default) or test: a test item writes nothing. An answer that accepts or corrects a value item, or accepts a change item, commits facts or applies an ontology change (which can remove types and relations): the server reads the items and asks the person to approve first, with the count and the effect. Any other answer, such as the grade or choice of an item Evals filed, asks nothing. The server asks the person to approve it through the client (MCP form elicitation) and sends nothing when they decline (approval_declined). A client that cannot show the question gets approval_required and nothing is sent, unless the MCP server's environment sets LBB_MCP_DESTRUCTIVE=allow. create files an item of kind value, choice, grade or answer (kind, title, question, and optionally subject, evidence, rationale, key, scope, facts, origin); the same key again updates it, and an answered item comes back unchanged. File an ontology change with lbb_configure action=suggest_ontology_change. answer records the person's answer (decision, with value for correct, option for choose, note). An item has one answer: the same answer again returns the item, another one answers 409 review_answered. revision is the revision the person saw; a later one answers 409 review_stale. answer_batch gives one answer to up to 500 ids. comment adds text to an item's discussion. withdraw takes back an item you filed, with a reason. Each write sends an idempotency key, and a retry after a network failure or a 5xx sends the same key, so the write happens once.

Input Schema

NameRequiredDescriptionDefault
idNoanswer, comment, withdraw: the item's id (rev_…).
idsNoanswer_batch: 1 to 500 item ids.
keyNocreate: your key for the item; the same key again updates it. Default: from the kind, subject and question.
evalNocreate: the model check, calibration or test that asks.
kindNocreate: the kind of question.
textNocomment: the comment, 1 to 4,000 characters.
waitNocreate: the engine identity and turn of a run that waits for the answer as the signal review.<id>.
factsNocreate, a value item: the facts that accept or correct commits, as lbb_commit takes them (at most 200 triplets and property rows together).
graphNoGraph to target; defaults to the connection's graph
scopeNocreate: live (default) or test (writes nothing).
titleNocreate: the question in words, at most 200 characters.
actionYes
answerNoanswer, answer_batch: the answer, { decision, value, option, note }.
authorNocomment: who writes it.
detailNoResponse detail level. Defaults to compact.
originNocreate: the producer. Default {"kind": "agent", "id": "mcp agent"}.
reasonNowithdraw: why, at most 1,000 characters.
subjectNocreate: the record the question is about.
evidenceNocreate: the quotes you read, and where they are.
questionNocreate: what the item asks, by kind.
revisionNoanswer: the revision of the item the person saw.
workflowNocreate: the workflow run and step that asks.
rationaleNocreate: why a person sees it, at most 4,000 characters.
evidence_hashNocreate: a mark of the evidence (a document version, a hash of the text). Asking again with other evidence and another proposal reopens an answered item.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.16.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far beyond the annotations: it discloses that accepting a change or accepting/correcting a value commits facts or applies an ontology change that can remove types and relations, that approval flows through MCP form elicitation with approval_declined and approval_required outcomes, and that LBB_MCP_DESTRUCTIVE=allow bypasses the client question. It also names 409 review_answered and 409 review_stale and the idempotency-key retry contract, all consistent with destructiveHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is well front-loaded, but the body is a dense block that restates the approval flow twice ('the server reads the items and asks the person to approve first' and again 'The server asks the person to approve it through the client'), and mixes create, answer, comment and withdraw semantics without paragraphing. Every fact is defensible but the packaging makes it hard to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 24-parameter, five-action tool with nested objects and no output schema, the description covers actions, per-kind decisions, approval and error outcomes, scope and idempotency. It never indicates what a successful response contains beyond 'returns the item' / 'comes back unchanged', which is a real gap given the absence of an output schema, though the detail parameter partially signals shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 96%, so the schema already documents most parameters and the baseline is 3. The description still adds real meaning the schema does not: which decision each kind accepts, that value/option/note are conditional on the decision, that 'the same key again updates it' for create, that an item has exactly one answer, and the 1-500 bound on answer_batch.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names five concrete verbs against one resource ('File, answer, comment on or withdraw review items'), mapping directly onto the action enum, and the resource is distinguishable from the read-only sibling lbb_reviews. The follow-up detail on kinds and decisions sharpens rather than restates the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong internal routing: it states when to use each action, that an ontology change must go through lbb_configure action=suggest_ontology_change instead of create, and that test scope writes nothing. It never explicitly contrasts this tool with the sibling lbb_reviews (read) or lbb_commit for direct commits, so a small inference is left to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.