Skip to main content
Glama

write_document

Destructive

Set or remove one top-level openGym profile/document value not handled by dedicated tools, such as equipment or newer settings. Use null to delete and check the current value first.

Instructions

Escape hatch: set one top-level value of the profile document that no dedicated tool covers (equipment profiles, plate inventory, bar weights, a setting from a newer openGym version), or remove it with null. Lists and maps keep their type. Refused for training data, values with their own tool, the unit and openGym's own bookkeeping. Check the current value with read_document first. openGym merges settings and the plan one setting and one day at a time: only a device that changes the same setting or day later, before it syncs, keeps its own value.

Input Schema

NameRequiredDescriptionDefault
keyYes
valueYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=true, openWorldHint=true. The description adds substantial detail beyond that: null removes the value, lists/maps keep their type, certain keys are refused, and it explains the merge/last-writer-wins behavior for settings and the plan. It does not describe auth or rate limits, but the safety profile is well covered.

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 escape-hatch purpose, then refusals, then guidance, then the merge behavior. Every sentence carries information, though the final merge sentence is dense and could be split for readability.

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 two-param openWorld mutation with no output schema, the description covers purpose, when to use, what is refused, removal semantics, and the concurrent-merge behavior. It omits the key pattern and any return/error format, but is otherwise complete.

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 0%, so the description must compensate. It explains key (top-level profile document keys, with examples) and value (arbitrary value, null removes, lists/maps preserve type). It does not state the key regex pattern, so it is not fully self-contained, but it adds real meaning beyond the empty 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?

The description states a specific verb and resource and immediately frames the tool as an 'escape hatch' for top-level keys no dedicated tool covers, naming concrete examples (equipment profiles, plate inventory, bar weights). This distinguishes it sharply from the many dedicated write_* siblings.

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?

It says explicitly when to use it (only for values with no dedicated tool), when it is refused (training data, values with their own tool, the unit, bookkeeping), and points to read_document for checking the current value. The alternative tools are named.

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