Skip to main content
Glama

Correct a recorded value

correct_value
Destructive

Fix a wrongly recorded health value by appending a corrected row with the original date and marking the old row entered-in-error. Nothing is deleted; a mismatch in expected value refuses the change.

Instructions

Fix a value that was recorded wrongly. This appends a new row with the corrected number and the ORIGINAL date, and marks the old row "entered-in-error" — permanently. Nothing is deleted or overwritten. unit says what newValue is in — lab tests too; omit it when the number already is the row’s stored unit. Read the record first: you need the row id, and expectedValue — the value you believe the row holds right now. On the hosted server it is required and the call is refused without it; everywhere, a mismatch refuses the call and writes nothing. On the hosted server this takes two calls: the first answers with what it would do and a confirm receipt; show it to the user and call again with confirm and approval (the user’s own words, quoted verbatim) only after their own yes, in their own words.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe id of the active row to correct.
unitNoThe unit `newValue` is in. Omit when it already is the row’s stored unit.
confirmNoHosted server, second call only: the receipt the first call returned, after the user’s own yes.
approvalNo
newValueYesThe corrected number.
expectedValueNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe row id — cite this to correct the row later.
unitYesThe unit the corrected value is stored in.
valueYesThe number as stored.
metricYesThe metric or test the row is for.
confirmNoThe receipt to send back, unchanged, after the user’s own yes.
proposalNoTrue on the first call of a two-phase write: nothing was written yet.
correctsIdYesThe row now marked "entered-in-error".
recordedAtYesThe clinical day the row is filed under.
confirmFromNoWhen the receipt becomes usable. Do not call before it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations flag a destructive write, and the description goes well beyond that: append-only semantics, permanent entered-in-error marking, no deletion/overwrite, call refusal on expectedValue mismatch (writes nothing), and the two-call confirmation flow with verbatim user approval. This is exactly the context an agent needs before mutating data.

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?

Dense but waste-free, with the core purpose front-loaded and each subsequent sentence adding a distinct constraint. The single-paragraph packing of the two-call flow makes it slightly harder to scan than a structured breakdown would be.

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?

An output schema exists, so return-value detail is unnecessary; the description instead covers the non-obvious things the schema cannot express, namely the read-first requirement, mismatch refusal, and hosted-server confirmation sequence. Nothing an agent needs to invoke it correctly is missing.

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

Parameters5/5

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

Schema coverage is only 67% and leaves expectedValue and approval undocumented in the schema, but the description supplies both: expectedValue is a required read-first guard whose mismatch aborts the write, and approval must be the user's own words quoted verbatim. unit's omit-when-redundant rule is also clarified 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?

States a precise verb+resource ('Fix a value that was recorded wrongly') and immediately defines the mechanism that separates it from sibling write tools like add_measurement or update_profile: append a new row, mark the old one entered-in-error.

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

Usage Guidelines5/5

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

Explicitly directs the agent to 'Read the record first' to obtain the id and expectedValue, states when unit can be omitted, and spells out the conditional two-call hosted-server flow with confirm/approval. When-to-use and prerequisites are fully covered.

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