Skip to main content
Glama

Record a fact

record_fact

Save facts about customers, tickets, orders, or other records with evidence, source, and attribution, preserving history so values can be corrected or undone.

Instructions

Use when you learn something about a customer, ticket, order or other business record and want it kept. Use this before, and instead of, overwriting records in other systems: the fact is kept with its evidence and attributed to you, and it can be corrected or undone later. Recording a new value for the same entity and predicate makes it the current value; the old one stays in history. When the result includes a receipt link, include it when you tell a person about the change, so they can check it and undo it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valueYesThe value. Any JSON: string, number, boolean, object or array.
evidenceNoWhere the fact came from, so a person can check it.
entity_idYesStable ID of the thing the fact is about, such as customer:42 or ticket:T-1009. Not a display name.
predicateYesWhat the fact is about, such as status, email, owner or amount_due.
confidenceNoOptional confidence from 0 to 1. Leave unset when you are sure.
observed_atNoWhen the fact was observed at the source, RFC 3339. Defaults to unset.
operation_idYesYour ID for this one write, 8-200 characters. Reuse it when retrying the same write so it is not recorded twice. Never reuse it for a different write.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly=false, destructive=false, openWorld=false). The description adds substantive behavior the annotations do not: facts are kept with evidence and attributed, re-recording the same entity+predicate makes it current while the old value stays in history, writes are idempotent via operation_id, and results may carry a receipt link enabling undo. That is meaningful disclosure beyond structured fields.

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 usage trigger and organized around use/behavior/receipt. Every sentence carries information, though the middle sentences are dense and pack versioning, attribution, and idempotency together; a small amount of trimming would help.

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 write tool with no output schema, the description covers the essential return behavior (a receipt link to relay and use for undo), the history/undo semantics, and idempotent retry. It does not address failure modes or required permissions, leaving a small gap for a mutation tool with 7 parameters and a nested evidence object.

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 schema already documents each parameter (evidence, entity_id, predicate, value, confidence, observed_at, operation_id) with examples and constraints. The description adds semantics the schema does not: the entity+predicate pair defines identity and re-recording updates the predicate's current value. That is a real increment above the baseline of 3.

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

Purpose4/5

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

States a specific verb+resource: recording a fact learned about a customer, ticket, order or other business record, with the entity/predicate model making it distinguishable from correct_fact and retract_fact. It does not name those siblings explicitly, so the agent must infer the boundary, which keeps it short of a 5.

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 a clear trigger ("Use when you learn something...") and an explicit alternative to avoid ("before, and instead of, overwriting records in other systems"). It stops short of naming the sibling tools (correct_fact, retract_fact) that an agent would pick between, so the routing guidance is partial.

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