Skip to main content
Glama

room_floor_plan_svg

Draw a room floor plan as an SVG from scan measurements, including walls, dimension lines, doors, windows, furniture, and an optional proposed item for fit checks.

Instructions

Draw the room as a floor plan SVG: walls with dimension lines, doors with swing arcs, windows, furniture, and optionally a proposed item.

Pass placement (one entry of placements from room_check_fit, with an optional "verdict" key to color it) to draw the item; dims / item_name only supply its label. Dimensions are written in the requested units. The SVG is ALWAYS saved into the server's output folder (MEASURE_MCP_OUTPUT_DIR, default ~/measure-mcp-output) as output_name (a plain file name; folders in it are dropped and .svg is enforced, default "floor_plan") and the reply gives path. The svg text is also returned inline when it is under about 30 KB, otherwise only the path and a note. All labels are sanitized and escaped. load_options as in room_summary.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dimsNo
pathYes
unitsNoboth
px_per_mNo
dims_unitNo
item_nameNo
placementNo
output_nameNo
show_labelsNo
load_optionsNo
show_dimensionsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it discloses the persistent side effect (SVG ALWAYS written to MEASURE_MCP_OUTPUT_DIR with the exact default path), filename sanitization (folders stripped, .svg enforced, default 'floor_plan'), the reply shape (path, plus inline svg only under ~30 KB), and label escaping. These are exactly the behavioral traits an agent cannot infer from the schema.

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-loads what is drawn, then parameter semantics, then output/side-effect behavior — a logical order with no filler sentences. It is dense and slightly long, but each sentence (placement provenance, filename rules, size threshold) conveys actionable information.

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 an 11-parameter, no-annotation tool this is substantially complete, and the existence of an output schema means return values need not be repeated. Remaining gaps are the required 'path' argument and the rendering booleans (show_labels, show_dimensions, px_per_m), which an agent must guess at.

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 0% and there are 11 parameters, so the description must compensate. It meaningfully explains placement (source and optional 'verdict' key), dims/item_name (label-only), units (dimensions written in requested units), output_name (sanitization and default), and load_options. It leaves path (required!), px_per_m, dims_unit, show_labels, and show_dimensions unaddressed, so coverage is strong but incomplete.

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?

States a specific verb and resource ('Draw the room as a floor plan SVG') and enumerates exactly what is rendered (walls with dimension lines, doors with swing arcs, windows, furniture, optional item), which separates it from sibling exporters like room_summary. An agent can identify its output artifact without opening the schema.

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?

Gives clear integration context: 'placement' should be one entry of 'placements' from room_check_fit, and load_options behaves 'as in room_summary'. This routes the agent from the fitting/check step to the rendering step. It lacks explicit when-not guidance or a named alternative renderer, so it stops 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.