Skip to main content
Glama

Measure the plan

measure
Read-only

Check distances, gaps, and free floor space between plan elements or coordinates in cm; find what blocks a piece's growth before a required clearance is broken.

Instructions

Tape measure over the plan, in cm. from= alone: free floor on all four sides, {clear:{"+y":[cm,id,name]}} — dirs picks sides (+x -x +y -y, or front/back/left/right of the piece). from+to (ids or [x,y]): the distance between them, {cm}, or the gap along axis. axis+at: what a straight probe runs into, {spans:[[from,to,id,name]]} with id null for free floor — the answer to "how wide is the corridor here, and between what". Add gap= and grow= and it also answers how big that piece can be along the axis before the gap is broken, and what stops it there: {fit:{free,max,blocked_by}} — the question a layout decision actually ends in, without trying a size and undoing it. z limits the height band that counts (default 0-200).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zNoHeight band that counts, `[z0, z1]` cm above this storey's floor. Default `[0, 200]`: what a person walking through meets
atNoProbe line: with `axis`, the other axis' coordinate. Reports every stretch a straight line crosses, free floor and solids alike
toNoWhat to measure to: an id or `[x,y]`
gapNoWith a probe: how much free floor has to be left along it, cm
axisNoRestrict to one axis, `x` or `y`. Between two boxes this is the gap along that axis (negative when they overlap)
dirsNoSides to measure free floor on: `+x`, `-x`, `+y`, `-y`, or, relative to the piece, `front`, `back`, `left`, `right`
fromNoWhat to measure from: an id or `[x,y]`. Alone, reports the free floor on all four sides of that piece. Openings instead report wall-axis spans, distances to wall ends and neighboring openings; no floor clearances
growNoWith a probe and `gap`: the piece that would grow. The answer says how big it can be along the axis and what stops it there
rangeNoLimits of the probe along `axis`, `[from, to]` cm. Default: the plan

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
cmNo
idNo
fitNo
axisNo
clearNo
facesNo
spansNo
boundsNo
openingNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv3.0.0
    • removedOutput schema / properties / axis / description
      Removed value: -"Axis measured along"
    • removedOutput schema / properties / bounds / description
      Removed value: -"The piece's [[minx,miny],[maxx,maxy]] cm"
    • removedOutput schema / properties / clear / description
      Removed value: -"Free floor by side: [cm, against id, name]"
    • removedOutput schema / properties / cm / description
      Removed value: -"Distance, cm"
    • removedOutput schema / properties / faces / description
      Removed value: -"Side its front looks to"
    • removedOutput schema / properties / fit / description
      Removed value: -"Probe with gap: {free, max, blocked_by}"
    • removedOutput schema / properties / id / description
      Removed value: -"The element measured"
    • removedOutput schema / properties / opening / description
      Removed value: -"A door or window: {basis, hosts}"
    • removedOutput schema / properties / spans / description
      Removed value: -"Probe: [from, to, id, name] along the axis"
    • removedOutput schema / properties / x / description
      Removed value: -"Gap along x, cm"
    • removedOutput schema / properties / y / description
      Removed value: -"Gap along y, cm"
  2. First observedv0.1.0

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe read-only nature is covered. The description adds useful defaults (z band 0-200) and hints at output shapes, but does not elaborate on behavioral traits like performance or interpretation of edge cases beyond what annotations and the output schema supply.

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

Conciseness3/5

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

It is tightly packed but presented as one undifferentiated paragraph covering four distinct modes, which hurts front-loading and scannability. Most sentences earn their place, but structural separation of modes would materially improve it.

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?

With an output schema present and 100% schema coverage, the description only needs to convey mode selection and defaults, which it does. The main gap is the absence of explicit guidance on when NOT to use this tool versus siblings such as layout.

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, but the description goes beyond the schema by explaining how parameters combine (from alone vs from+to vs axis+at vs gap+grow) and what each combination returns. It adds real combinatorial meaning over the per-parameter descriptions.

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?

The description states a specific verb+resource ('Tape measure over the plan, in cm') and enumerates the distinct measurement modes (from alone, from+to, axis+at, gap+grow). It is clearly distinguishable from siblings like layout or move, though the dense prose requires careful reading to extract the core purpose.

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?

It effectively tells the agent when each parameter combination applies, describing the question each mode answers (e.g. 'the answer to how wide is the corridor here' and 'the question a layout decision actually ends in'). It does not name an alternative sibling or state explicit exclusions, keeping it short of a 5.

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