Skip to main content
Glama

save_fact

Records a datasheet value with its source, page, subject, and model ID so later sessions can retrieve it and avoid duplicate entries.

Instructions

Save a value that you read from the original, with its source and your model ID, so that a later session finds it with find_facts. Before you read a value, look for it with find_facts: do not save a value two times. A new fact has the state unchecked. Gives the fact number.

Input Schema

NameRequiredDescriptionDefault
bboxNoOr the region that holds the value: [x0, y0, x1, y1] in pt.
noteNoA note, for example a footnote of the table.
pageYesThe page number, from 1, as get_index and search_text give it.
partNoThe part that the value is for, when the document covers more parts.
unitNoThe unit, for example V, mA, °C.
modelNoYour model ID, for example claude-opus-5-5.
valueYesThe value as the original shows it, for example "3.6". One value: for MIN, TYP and MAX, save one fact for each column. A range with no columns: "1 to 22".
columnNoThe table column of the value: MIN, TYP or MAX.
elementNoThe element ID that holds the value, for example p7.T1.
subjectYesWhat the value is, for example "VDD maximum" or "CTRL register reset value".
documentYesThe document: its reference from list_documents, project_status or add_document (the first 12 characters of its SHA-256). A longer SHA-256 prefix or the numeric document ID also works.
conditionsNoThe conditions of the value, for example "TA = 25 °C, VDD = 3.3 V".

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose meaningful traits: a new fact starts in the 'unchecked' state and the call returns a fact number used for later reference. It does not say whether duplicates are rejected or silently created, nor what permissions or failure modes exist, so it stops short of full transparency for a write operation.

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?

Four short sentences, front-loaded with the purpose before the workflow rule. The closing 'Gives the fact number' is slightly redundant given an output schema exists, but nothing else is wasted.

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 12-parameter write tool with a fully documented schema and an output schema, the description supplies the workflow context an agent actually needs: dedup discipline, initial state, and the returned handle. Only the failure/duplicate-handling semantics are left unstated.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains document, page, subject, value, model, and the optional fields. The description only echoes the 'source and model ID' intent already spelled out in the schema, adding essentially nothing beyond it. Baseline 3 applies.

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 specific verb and resource ('Save a value that you read from the original, with its source and your model ID') plus the downstream payoff ('a later session finds it with find_facts'). The pairing with find_facts makes it immediately distinguishable from read-side siblings like search_text or get_element_text.

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 an explicit workflow rule: check with find_facts before reading a value, and never save the same value twice. That is real when-to-use guidance and names the alternative tool. It does not address the boundary with set_fact_status or what to do if a fact already exists but is wrong.

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