Skip to main content
Glama

quipu_accept_proposal

Destructive

Accept a pending schema proposal by validating Turtle shapes, running migrations atomically, and using dry-run and risk checks to preview or block changes.

Instructions

Accept a pending schema proposal. For shape proposals, validates the Turtle before writing to the shapes table. A proposal carrying a migration runs it in the same transaction; a refused migration leaves the proposal pending and nothing written. With dry_run=true nothing is accepted: the report lists existing facts the new shapes would refuse, what the migration would change, and whether acceptance would go through. Before accepting, a blast-radius plan is computed and returned as 'plan'; a plan whose risk score exceeds risk_threshold, or that cannot be determined, is refused unless accept_risk=true with a risk_reason (recorded in the decision note).

Input Schema

NameRequiredDescriptionDefault
idYesProposal ID to accept
noteNoOptional acceptance note
limitNoDry run: maximum sample facts and violations per list (default 50, max 1000)
dry_runNoReport what acceptance would do without accepting (default false)
timestampNoISO-8601 timestamp
decided_byYesIdentity of the approver (required; there is no default)
accept_riskNoAccept a failing or undetermined plan anyway; requires risk_reason
risk_reasonNoWhy the risk is accepted; recorded in the decision note
risk_thresholdNoRefuse when the plan's risk score is above this (0-100; default 40 or QUIPU_PROPOSAL_RISK_THRESHOLD)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.17.0

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the destructiveHint/openWorldHint annotations: Turtle validation precedes the shapes-table write, the migration runs in the same transaction, and a refused migration leaves the proposal pending with nothing written. The risk-gate mechanics (plan computed, risk score compared to threshold, refusal when undetermined, override recorded in the decision note) are disclosed explicitly and are consistent with the destructive annotation.

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

Conciseness4/5

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

Front-loaded with the action, then layered by mode (dry run, migration, risk gate). Dense and mostly waste-free, though the final sentence is long and packs three separate conditions into one clause.

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

Completeness5/5

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

For a 9-parameter destructive mutation with no output schema, the description carries the full burden and does: it describes the dry-run report contents, the returned plan, the failure modes, and the transactional guarantees. An agent could invoke this correctly, including safely via dry_run, from the description alone.

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 100%, so the baseline is 3, but the description adds real meaning: it explains the coupling between accept_risk and risk_reason (the reason lands in the decision note), the risk_threshold gate including the environment-variable default, and that the computed plan is returned under the key 'plan'. It does not elaborate on limit or timestamp beyond the schema.

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?

Opens with a specific verb+resource ('Accept a pending schema proposal') that cleanly separates it from propose_schema_change, list_proposals, and reject_proposal. The scope is narrowed further by name: only pending proposals are eligible.

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?

Gives rich conditional guidance: use dry_run=true to preview rather than accept, and accept_risk=true plus risk_reason is required when the plan is over threshold or undetermined. It stops short of naming sibling tools (e.g. quipu_reject_proposal) as the alternative path, so it is strong context rather than explicit routing.

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

Deploy Server

Other Tools