Skip to main content
Glama

Set calibration offset

set_maintenance_offset
Idempotent

Record how far a maintenance job moved the reference, on an entry that opened a calibration epoch. Takes an ENTRY, not a piece of equipment: the offset belongs to the event that caused it, which is what lets several of them compose for a recipe locked before all of them. Zero is a legitimate measurement and means "measured, and it had not moved" — omit offset_value entirely to clear it back to unmeasured.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceNoHow it was arrived at: pull, counted, or typed
entry_idYesThe maintenance entry that opened the epoch, from list_grinders
evidenceNoOne line recording what it rested on, e.g. "Reference pull 1.38 g/s against 1.74 g/s locked."
offset_valueNoClicks to ADD to a pre-clean reading to get the same grind today, signed along the collar's own number direction. 0 records "unchanged"; omit to clear the measurement

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
entryYes
messageYes

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses subtle behavioral semantics that are not visible in the annotations: zero means a legitimate measurement of no movement, while omitting offset_value clears the measurement to unmeasured. It also explains how multiple offsets compose for a recipe locked before them. These are precisely the kinds of non-obvious behaviors an agent needs to invoke the tool correctly.

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?

Three sentences, each carrying distinct information: the core action, the entry-not-equipment distinction with its compositional rationale, and the zero-vs-clear edge-case. The second sentence is dense and somewhat complex, but the complexity mirrors the domain nuance. Front-loading the purpose works well.

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?

The description, together with the 100%-covered schema and output schema, gives an agent everything needed to call the tool correctly: the object type, the meaning of the parameter values, how to handle zero and clearing, and why the abstraction exists. The annotation set covers idempotency and non-destructiveness, so no safety-relevant behavior is left unstated.

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 description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying the critical semantics of offset_value (0 vs omitted) and reinforcing that entry_id refers to an entry, not equipment. It does not add detail for source or evidence beyond what the schema already states, so the score remains 4 rather than 5.

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 description opens with a specific verb and resource: 'Record how far a maintenance job moved the reference, on an entry that opened a calibration epoch.' It clearly differentiates the target ('Takes an ENTRY, not a piece of equipment') from siblings that operate on equipment, so an agent can distinguish set_maintenance_offset from tools like set_grinder_position.

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?

The description gives clear context for when to use this tool: recording offsets for maintenance entries that opened calibration epochs, and explains why the entry-centric semantics matter for composing recipes locked earlier. It does not name specific alternative tools or state explicit when-not-to-use conditions, but the entry-versus-equipment distinction serves as a strong routing signal.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.4/5.0
Disambiguation5/5

Each tool maps to a distinct resource or action: register_* and list_* are separated by entity, shot tools are split into log/update/delete/diagnose, and the two diagnose variants are explicitly differentiated by dry-run vs. logged evaluation. There is no meaningful overlap that would make an agent choose the wrong tool if it reads the descriptions.

Naming Consistency4/5

The vast majority of tools follow a consistent verb_noun snake_case pattern: register_*, list_*, set_*, update_*, log_*, get_*. The only deviations are noun-first compound names like grinder_math and kb_changelog, which are still readable and do not break the overall predictability.

Tool Count2/5

At 34 tools, this server exceeds the 25+ threshold where the interface becomes heavy for an agent to navigate. Many of the tools are simple register_/List_ pairs across seven entity types, which inflates the surface area even though each individual tool is understandable.

Completeness3/5

Core workflows are well covered: logging, updating, deleting, and diagnosing shots; maintaining equipment; and navigating machine state. However, there are notable lifecycle gaps such as no way to list or delete registered programs, no update/delete operations for most equipment types, and no recipe deletion or unlock, which can leave an agent stuck after certain user requests.

Resources