Skip to main content
Glama

measure_surface

Trace an open wall run to calculate surface area in square feet, using wall height from the condition. Ideal for wall tile, wainscot, and wall system takeoffs.

Instructions

Surface Area — wall SF (#146): trace an OPEN run along the wall in plan view (min 2 points, image px) and the quantity is traced LF × height. This is how wall tile, wainscot, and wall systems are taken off — the quantity family one_click and measure_polygon cannot produce. Height lives on the CONDITION (the canvas's H knob): pass height_ft to set it on this call (journals as its own undo step, like typing H before tracing), or set it once with edit_condition; with neither, this refuses and mints nothing. The shape snapshots the height it was quantified at. Requires the sheet's scale. Coordinates are image px at render scale 2.0: PDF pt × 2, origin top-left, y down (the browser canvas's native space). Sheet payloads carry dims in both px and pt.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ptsYesThe wall run, an open polyline (image px)
sheetYes
conditionYesFinish tag to commit under (minted on first use), e.g. 'CT-W1'
height_ftNoWall height in feet — written to the condition's H knob first, then used

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nptsYes
area_sfYeslength_lf × height_ft — the wall SF committed
shape_idYes
conditionYes
height_ftYesThe height this shape was quantified at (snapshotted on the shape)
length_lfYesThe traced run's open length
Behavior5/5

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

With no annotations provided, the description carries the full burden and handles it exceptionally well. It discloses the refusal behavior when height is not set (mints nothing), the undo-step journaling of height_ft, the coordinate system (image px, render scale 2.0, origin top-left, y down), and that the shape snapshots the height used. This level of detail goes beyond typical descriptions.

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?

The description is dense but not bloated; every sentence earns its place. It front-loads the purpose and packs constraints, prerequisites, and coordinate details efficiently. It could be slightly more parseable with clearer separation of topics, but it is far from verbose and maintains a logical flow.

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?

Despite the tool's complexity (4 parameters, no annotations, output schema exists), the description covers purpose, usage, prerequisites, failure behavior, and coordinate details. Since an output schema exists, not explaining return values is acceptable. The description also differentiates from siblings, making it fully contextual for an agent to invoke correctly.

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 75%, so the baseline is 3. The description adds meaningful context: it clarifies that pts are image px in an open polyline (min 2 points), that height_ft is written to the condition's H knob before being used, and that sheet payloads carry dims in both px and pt. However, the 'sheet' parameter itself is still not explicitly described, which is a minor gap given it's a required string.

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 clearly states the tool's function: measuring surface area of walls by tracing an open run in plan view, with the quantity given as LF × height. It explicitly distinguishes itself from siblings by noting that one_click and measure_polygon cannot produce this takeoff, making the purpose and scope unambiguous.

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 provides solid usage context: it is for wall tile, wainscot, and wall systems, and explicitly states that one_click and measure_polygon cannot produce this. It also requires the sheet's scale and height to be set, but doesn't explicitly enumerate when not to use it or mention alternatives like measure_line. Still, the guidance is clear enough for an agent to choose appropriately.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kentucky-ai/opentakeoff'

If you have feedback or need assistance with the MCP directory API, please join our Discord server