Skip to main content
Glama

Draw walls, rooms and more

create

Build floor plans by creating walls, rooms, dimensions, labels, roofs, and solids in one atomic step, producing editable 2D and 3D architectural elements.

Instructions

Create walls (polylines; hs = height per point for gables), rooms (pts, or at=[x,y] to detect from walls; ceiling_flat=false follows wall profiles instead of the default flat ceiling), dims (a+b or wall id), labels, roofs (rectangle pts, gable|shed, pitch or ridge_h, eave h, overhang, gables=true closes the ends, skylights [{at,w,d}] cut glazed openings) and solids (pts outline raised by h at elev: slabs/mezzanines of any shape; or profile [[u,z]] swept from a to b: gables, ramps) in one atomic step.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vNoPlan version (tab) to write to; switches to it first
pxNoEvery point is given in pixels of the background image (converted with its scale and offset); lengths (t, h, off) stay in cm
dimsNoDimension lines: between two points, along a wall, or across a room
roofsNoPitched roofs over a rectangle, built as one group of sloping panels
roomsNoRooms: an outline of points, or `at` inside closed walls
wallsNoWalls, each a chain of points joined corner to corner
labelsNoText on the plan
solidsNoSolids from polygons: plan outlines raised by `h` (slabs, mezzanines, decks with any shape) or cross-sections swept from `a` to `b` (gables, ramps)
polylinesNoFree lines: annotations, arrows, electrical or plumbing runs

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
vNoPlan version written to, when there are several
okYesAlways true
idsNoIds created or touched
revNoPlan revision
textYesThe reply as written

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a write operation. The description adds valuable behavioral context: 'in one atomic step' signals that all elements are committed together, and it explains key behavioral nuances like ceiling_flat=false following wall profiles, gables=true closing ends, and skylights cutting glazed openings. This goes beyond what annotations provide.

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 a single dense sentence that front-loads the main verb and resource list, then packs parameter semantics into parentheticals. It's efficient but slightly long and could be easier to parse; the parenthetical-heavy structure makes it dense. Still, every clause earns its place and there's no fluff.

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?

Given the tool's complexity (9 parameters, 8 element types, nested specs), the description covers the key decision points: how to specify walls, rooms, roofs, and solids, and the atomicity guarantee. The output schema exists, so return values don't need explanation. It doesn't mention error cases or prerequisites, but for a create tool with this breadth, the coverage is strong.

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 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the purpose of each element type and key parameter interactions: hs per point for gables, at=[x,y] to detect rooms from walls, ceiling_flat=false following wall profiles, pitch or ridge_h for roofs, and profile [[u,z]] swept from a to b for solids. This is genuinely additive, not just restating the 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 opens with a specific verb ('Create') and enumerates the exact resources: walls, rooms, dims, labels, roofs, and solids. It distinguishes itself from siblings like 'trace_walls' and 'merge_walls' by covering the full creation surface in one atomic step, and the title 'Draw walls, rooms and more' reinforces the scope.

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 implies when to use this tool: when creating any of the listed element types in one atomic step. It doesn't explicitly name alternatives or exclusions, but the sibling list (trace_walls, merge_walls, split_wall, place) makes the boundary clear enough. A 4 is appropriate because the context is clear but no explicit when-not-to-use guidance is given.

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