Skip to main content
Glama

Export to a file

export
Destructive

Save floor plans, 3D models, or joinery cut lists to PDF, SVG, PNG, GLB, OBJ, CSV, or DXF files; the file extension selects the format.

Instructions

Export to a file, by its extension. what=plan (default): the plan as .pdf (A3; scale=50/100 or fit), .svg (true scale) or .png, or the 3D model as .glb or .obj (every storey). what=cut_list: the joinery's cut list (and that of groups drawn by hand) as .csv (spreadsheet), .dxf (boards laid out on sheets, for CNC) or .svg (sheets to view); cut_list reads it.

Input Schema

NameRequiredDescriptionDefault
hNoFor `plan`, `.png` only: height px (default 1200, 64..2048)
wNoFor `plan`, `.png` only: width px (default 1600, 64..2048)
idsNoFor `cut_list`: builds or drawn groups (default every one on this storey)
pathYesThe file to write; its extension picks the format
whatNoDefault `plan`: the drawing or the 3D model. `cut_list`: the boards of the joinery
scaleNoFor `plan`, `.pdf`: scale denominator (50 → 1:50); omitted fits the sheet

Output Schema

NameRequiredDescriptionDefault
vNo
okNo
idsNo
revNo
rowsNo
textNo
drawnNo
sheetsNo
skippedNo
sourcesNo
hardwareNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv3.2.0
    • changedInput schema / properties / h / description
      Previous value: -"For `plan`, `.png` only: height px (default 1200)"New value: +"For `plan`, `.png` only: height px (default 1200, 64..2048)"
    • changedInput schema / properties / w / description
      Previous value: -"For `plan`, `.png` only: width px (default 1600)"New value: +"For `plan`, `.png` only: width px (default 1600, 64..2048)"
  2. Addedv3.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare destructiveHint=true and openWorldHint=false; the description only says 'the file to write' and never addresses the destructive trait — whether an existing file is overwritten, whether the parent directory must exist, or what happens on failure. It adds useful mode/format behavior but leaves the one flagged risk unexplained.

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 purpose is front-loaded in the first clause, and the following clauses are dense but each carries format or mode information. Slightly long and semicolon-heavy, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and both modes and all formats are covered. The notable gap is the destructive write path: overwrite behavior and failure modes are unaddressed despite destructiveHint=true, which an agent needs before choosing a path.

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 adds real value by explaining the cross-parameter contract: path extension chooses the format, scale (50/100 or fit) belongs to .pdf plans, and w/h only apply to .png plans. This clarifies which parameter combinations are meaningful in a way the schema alone does not.

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 gives a specific verb (export) and resource (file), then enumerates exactly what each mode produces: plan renders as .pdf/.svg/.png or 3D model as .glb/.obj, and cut_list as .csv/.dxf/.svg. Any ambiguity with siblings like render_plan or cut_list is left implicit, but the format matrix makes the tool's job unmistakable.

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?

It explains that the path extension selects the format and notes cut_list output can be read back, which gives some usage context. However, it never states when to reach for this versus render_plan, render_3d, show_plan, or the cut_list sibling, nor any prerequisites (e.g., requiring a saved model or valid path).

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