Skip to main content
Glama

freeze_set

Lock a memory address to a specific value in DOSBox, rewriting it every frame like a trainer. Set 1-, 2-, or 4-byte little-endian values.

Instructions

Lock a memory address to a value. The value is rewritten every frame, trainer-style. Width is 1/2/4 bytes, little-endian.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valueYesValue to hold at the address.
widthNoWidth in bytes: 1, 2, or 4 (default 1).
addressYesPhysical memory address to freeze.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, so the agent knows this writes. The description adds genuinely useful behavior beyond that: the value is continuously re-written every frame (persistent lock semantics), and the write is little-endian. It stops short of covering failure modes (invalid address, already-frozen addresses) or how the lock is released.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, core action and persistence behavior front-loaded before the width/endianness detail. Nothing redundant with structured fields except the width restatement.

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 mutation tool with only readOnlyHint=false, no output schema, and full schema coverage, this covers the essential mechanics (persistence, width, endianness). It leaves a small gap on lifecycle (how to unfreeze) and error behavior, which is minor given the presence of freeze_clear/freeze_list siblings.

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 baseline is 3; the description earns above-baseline by adding little-endian byte order, which the schema does not state and which determines how `value` maps to memory bytes. The width restatement (1/2/4 bytes) duplicates the schema but is harmless.

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 and resource ("Lock a memory address to a value") and the persistence model ("rewritten every frame, trainer-style"), which implicitly separates it from the one-shot mem_write sibling. It does not explicitly name freeze_clear/freeze_list, so differentiation is inferential rather than stated.

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

Usage Guidelines3/5

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

"trainer-style" and "rewritten every frame" imply when this tool is appropriate versus a single mem_write, but the description never states when-not to use it, that freeze_clear releases the lock, or how it relates to mem_write/mem_read. Usage is implied rather than guided.

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