Skip to main content
Glama
Stv-devl
by Stv-devl

PlanPilotMCP

Draw architectural plans, 3D models and BIM files in FreeCAD just by asking Claude. PlanPilotMCP is an MCP server that drives a running FreeCAD (GUI) through its native Python API. Units: millimetres.

"Draw a 10 × 8 m house with a partition in the middle and an entrance door on the south side, fill the walls, dimension the outside, then put it on an A3 sheet at 1:100 and export the PDF."

2D plan

walls (merged, no doubled lines), partitions, doors and windows linked to their wall, stairs, layers, editing (move, copy, rotate, mirror, offset, trim, extend)

Annotation

automatic dimensions, texts, rooms with areas, hatching, solid fill (poché)

Layout

TechDraw sheets (A4–A1, scale, title block), PDF / SVG / DXF export

3D

walls extruded from the plan with openings cut through, slab, flat or gable roof, stairs, isometric view

BIM

levels (one plan each), marks and properties on doors, windows, rooms and wall types, quantity schedules (CSV), IFC4 export

Architecture

flowchart LR
    C["Claude Code"] -- "stdio (MCP)" --> S["server/<br/>MCP tools<br/>Python ≥ 3.11"]
    S -- "TCP 127.0.0.1:9876<br/>JSON lines" --> B["bridge/<br/>inside FreeCAD"]
    B -- "queue + 5 ms QTimer" --> G["Qt GUI thread"]
    G --> T["tools/<br/>handlers"]
    T --> D["FreeCADBackend<br/>Draft · Part · TechDraw"]
    D --> F[("FreeCAD<br/>document")]

The tools/ layers, testable without FreeCAD thanks to a fake backend:

flowchart TB
    H["Handlers<br/>geometry · architecture2d · modify · dimensions · text · hatch · fill<br/>stair_tools · model3d · levels · bim_props · schedules · ifc_export · sheets"]
    P["Ports<br/>DrawingBackend · ModelStore · SolidBuilder · SceneReader · SceneEditor · SheetBackend"]
    G["Pure geometry<br/>geometry2d · shapes · polyunion · openings · build3d · stairs · bim_model"]
    A["FreeCAD adapter<br/>freecad_backend · techdraw_backend"]
    X["Fake backend<br/>tests/fakes.py"]
    H --> P
    H --> G
    P -.implemented by.-> A
    P -.implemented by.-> X

More in docs/ARCHITECTURE.md.

Related MCP server: freecad-mcp

MCP tools (77)

Full parameter reference: docs/TOOLS.md.

Family

Tools

Primitives

ping create_rectangle create_line create_polyline create_circle create_arc

2D architecture

create_wall_2d create_partition_2d create_wall_loop merge_walls create_door_2d create_window_2d create_stair

Reading

get_document get_objects get_selected_objects get_object_geometry get_layers get_bounds

Editing

move_object rotate_object copy_object delete_object mirror offset set_geometry trim extend

Layers

create_layer set_layer set_visibility set_line_width set_line_style

Dimensions

dimension_horizontal dimension_vertical dimension_aligned dimension_linear dimension_angle dimension_chain dimension_exterior dimension_room

Texts

create_text create_note create_room_label get_texts update_text

Hatch and fill

create_hatch create_fill fill_walls

3D

create_walls_3d create_slab create_roof create_stairs_3d clear_3d set_view

Levels

create_level set_active_level get_levels copy_level

BIM

set_properties set_wall_type get_wall_types get_schedule export_schedule export_ifc

Sheets and export

create_drawing_page get_sheet set_page_size set_orientation set_scale add_plan_view position_view add_title_block update_title_block export_pdf export_svg export_dxf

Standard layers (French names, created on first use):

Layer

Content

murs · cloisons

walls · partitions

ouvertures

doors and windows (one block each)

escaliers

stairs

cotations · textes

dimensions · room names, areas, notes

hachures · poche

hatching · solid fill

mobilier

furniture

murs_3d dalles_3d toiture_3d escaliers_3d

3D volumes (kept out of the sheet and the DXF)

Annotations, hatching and fill are real geometry (lines + vector text), so they print in the PDF.

Installation

  1. uv sync

  2. In FreeCAD (Python console: View ▸ Panels ▸ Python console):

    import runpy; runpy.run_path("/path/to/planpilotmcp/bridge/start_bridge.py")

    The Report view prints PlanPilotMCP bridge listening on 127.0.0.1:9876. Once per FreeCAD session.

  3. Register the server in Claude Code:

    claude mcp add planpilot -- uv run --directory /path/to/planpilotmcp python -m server.main

Change the port with FREECAD_MCP_PORT (on both sides). Exports with an explicit path are confined to the document folder, ~/Documents and FREECAD_MCP_EXPORT_DIR (set it on the FreeCAD side to allow another folder), and never replace an existing file unless overwrite=true. Optionally set FREECAD_MCP_TOKEN on both sides: the bridge then rejects requests without the right token. After editing the code, re-run step 2 in FreeCAD (the bridge hot-reloads) and restart Claude Code.

Try it: "draw a 10000 × 8000 mm rectangle". It appears immediately, and Ctrl+Z undoes it.

The IFC export needs ifcopenshell, which FreeCAD ships with; uv sync also installs it for the tests.

Typical run

  1. Draw: create_wall_loop, create_partition_2d, create_door_2d, create_window_2d, create_stair. Walls fuse where they touch. Place doors and windows after the walls.

  2. Annotate: create_room_label, dimension_exterior, dimension_room (they take scale = the print scale denominator), then fill_walls for the solid poché of the cut walls. Do the fill and hatching after the openings are placed.

  3. 3D (optional): create_walls_3d, create_slab, create_roof, create_stairs_3d build volumes at the active level's elevation and turn the view to isometric. clear_3d removes them.

  4. Levels (optional): create_level or copy_level for more storeys. Each level has its own plan; every tool works on the active level (set_active_level).

  5. BIM (optional): set_properties (marks, heights, materials) and set_wall_type, then get_schedule / export_schedule for quantities and export_ifc for the IFC file.

  6. Sheet: create_drawing_page (size="A3", scale="1:100", title block fields), add_plan_view (read its warning), then export_pdf / export_dxf. Save your FreeCAD file first: exports land next to it.

Sheet creation and export run TechDraw in FreeCAD's event loop and can take several seconds.

Known limits

  • The 3D, the BIM model, hatching and fill are read from or drawn over the plan: after editing the plan, run them again (create_walls_3d, fill_walls, export_ifc). A door added after a hatch does not clear it.

  • A wall already cut open by a door is no longer a closed outline and is not merged: merge the walls first, then place the openings.

  • The gable roof is a prism over the bounding box of the house (no hip roof, no L-shaped roof). Stairs are straight, quarter-turn or half-turn only; their 3D steps are solid blocks and do not cut the slab above.

  • Levels cannot be deleted or renamed yet; door/window marks (P1, F1…) are numbered per level; the sheet and the DXF show the active level only.

  • The solid fill is drawn as very dense pen-thick lines, not as a true filled area (the DXF has lines, not a HATCH); on the sheet the grey tone is striped.

  • A long handler freezes the FreeCAD window while it runs (a warning is logged above 5 s).

  • The IFC file was checked by reading it back with ifcopenshell, not in an external BIM viewer.

Tests

uv run pytest            # 698 tests: handlers on a fake backend, protocol, TCP, 3D, BIM, IFC read back
uv run pytest -m freecad # integration, needs FreeCAD importable

Full check against a running FreeCAD (bridge started as in Installation): draws a house through the bridge and asserts walls, openings, stairs, fill, 3D volumes, levels, schedules, IFC, sheet and PDF.

uv run python scripts/e2e_freecad.py --pdf /tmp/plan.pdf

Project layout

bridge/   protocol, dispatcher, TCP server, Qt GUI-thread executor, launcher
server/   MCP tool declarations + bridge client
tools/    validation, pure geometry, ports, FreeCAD adapter, handlers
tests/    unit tests + fake backend
scripts/  end-to-end check against a running FreeCAD
docs/     architecture, tool reference

Adding a tool = write a handler + registry.register(...) in a register_*_tools function wired in bridge/launcher.py + a declaration in server/main.py (a test checks that both sides stay in step).

License

MIT © 2026 stv-devl

Available Tools

77 tools
add_plan_viewA

Put the drawing (all visible layers, or only layers) on the sheet at the sheet's scale (or scale), with line weights by layer: walls heavy, partitions medium, openings/dimensions/texts light. Placed automatically in the free area, clear of the title block; position = [x, y] mm from the sheet's bottom-left corner to centre it yourself. Replaces any previous plan view. Check the result's warning (does not fit / text too small) and suggested_scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
scaleNo
layersNo
positionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

No annotations are present, so the description carries full responsibility. It discloses key behavioral traits: line-weight differentiation by layer, automatic placement in free area, manual position offset, replacement of previous plan views, and the need to check warning and suggested_scale in the output. This is comprehensive for a drawing-placement tool and even flags failure modes.

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; each sentence adds critical operational detail. The semicolon-heavy second sentence packs placement, position, and scale rationale efficiently. Slightly front-loaded but could be structured with clearer separation of default behavior versus manual overrides.

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?

Given that an output schema exists, return values need not be explained. The description covers main behaviors and parameters, but lacks any mention of the 'page' parameter, which is required for full invocation context. It also assumes an existing sheet without stating prerequisites, leaving some ambiguity for an agent deciding whether to call create_drawing_page first.

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%, so the description must compensate. It explicitly explains three of four parameters: layers (drawing subset), scale (sheet scale or override), and position (coordinates from bottom-left corner). The 'page' parameter is not mentioned at all, leaving a gap in the parameter semantics, but the other three are meaningfully clarified.

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 precise verb and resource: 'Put the drawing on the sheet at the sheet's scale' with line weights by layer. It clearly distinguishes from siblings like position_view or set_scale by describing the complete add-plan-view operation, including auto-placement and replacement behavior.

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?

The description implies when to use the tool: when you want to place a drawing on a sheet as a plan view. It gives context about auto-placement and manual position, and notes that it replaces any previous plan view. However, it does not explicitly reference alternatives or state when not to use it, leaving the selection among siblings like position_view or create_drawing_page to inference.

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

add_title_blockA

Add the title block (cartouche) to a sheet created without one, and fill the given fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
pageNo
titreNo
clientNo
indiceNo
numeroNo
projetNo
adresseNo
dessineNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description carries the full behavioral burden. It states the additive action but does not disclose what happens if a title block already exists, whether omitted fields are left blank or reset, or how the target sheet is selected. This is a meaningful gap for a mutation tool.

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

Conciseness5/5

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

A single, front-loaded sentence that names the action, the target, the precondition, and the parameter behavior. There is no redundant or filler content.

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

Completeness2/5

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

Given 9 optional parameters, no annotations, and the sibling update_title_block, the description is too thin. It does not explain how the target sheet is identified, prerequisites, failure behavior, or the relationship to update_title_block, leaving an agent with significant uncertainty about correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 9 parameters, and the descriptions only add 'fill the given fields,' which does not explain formats, units, or meaning beyond the property titles. The property names are somewhat readable, but the description fails to compensate for the complete lack of schema-level documentation.

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 uses a specific verb ('Add') and resource ('title block/cartouche') and clarifies the exact scope: adding to a sheet created without one. This distinguishes it from the sibling update_title_block, which would apply when one already exists.

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 phrase 'created without one' provides a clear precondition and implies that update_title_block is the appropriate alternative for existing title blocks. It does not explicitly mention alternatives or exclusions, but the usage context is clear enough for an agent to route correctly.

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

clear_3dA

Delete the 3D volumes (walls, slab, roof) of one level, or of all levels. The 2D plan is untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly communicates that the tool deletes 3D volumes and explicitly preserves the 2D plan. This is meaningful behavioral context beyond the bare verb 'delete', though it omits details like irreversibility or error conditions.

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

Conciseness5/5

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

The description is a single sentence that front-loads the destructive action and resource, then efficiently covers scope and the key exclusion (2D plan untouched). Every clause earns its place with no redundancy.

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 a tool with only one parameter and an output schema, the description covers the essential behavior: what is deleted, what is preserved, and the scope choices. It is slightly light on how the 'level' parameter maps to actual level identifiers, but overall the definition is sufficient for an agent to invoke it 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 description coverage is 0%, so the description must compensate. The phrase 'of one level, or of all levels' directly explains the single 'level' parameter: a string identifies one level, while the default null means all levels. This adds meaning beyond the bare schema, though it does not specify the exact format expected for a level 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 uses a specific verb ('Delete') and resource ('3D volumes (walls, slab, roof)') with clear scope ('one level, or of all levels'). It also distinguishes itself from 2D operations by explicitly stating the 2D plan is untouched. This clearly separates it from generic delete_object and 2D-focused siblings.

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 the correct use case: removing 3D volume geometry while preserving 2D plans. It does not name alternatives or state explicit when-not-to-use conditions, but the scope options ('one level, or of all levels') give enough context for selection.

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

copy_levelA

Create a level as a copy of source: its whole plan (walls, doors, windows, texts...) is copied, ready to be edited. elevation defaults to on top of the last level.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
heightNo
sourceYes
activateNo
elevationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does disclose key traits: the entire plan (walls, doors, windows, texts) is copied and the result is editable. It also states a meaningful default for elevation ('on top of the last level'). It stops short of explaining activation behavior or independence from the source, but the main side effect is covered.

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

Conciseness5/5

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

Two sentences, with the core action in the first clause and a key default in the second. No filler or repeated schema information.

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

Completeness2/5

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

For a creation tool with no annotations and 5 parameters, the description omits the meaning of required `name` and the `activate`/`height` options. It covers purpose and elevation default, so it is not useless, but an agent cannot confidently set all parameters. Output schema exists, so return values do not need explanation, but parameter coverage is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only prose source for parameter meaning. It adds meaning for `source` (the level being copied) and `elevation` (defaults to top of last level), but leaves `name`, `height`, and `activate` unexplained beyond their schema titles. This partial coverage is insufficient for a 5-parameter tool.

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 states a specific action: create a level as a copy of a source, copying the entire plan. This clearly distinguishes it from create_level, which creates a fresh level, and from other siblings. The 'ready to be edited' note reinforces the copy purpose.

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?

The description implies when to use it: when you need a duplicate of an existing level's plan for editing. It does not name alternatives like create_level or set_active_level, nor does it state when not to use it. This is implied rather than explicit.

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

copy_objectA

Copy objects count times, each copy shifted by another (dx, dy) mm. Copies keep the layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
dxYes
dyYes
countNo
namesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It usefully states that copies keep the layer and are shifted by dx/dy, but it does not clarify whether the originals are modified, whether the operation is additive, or what happens with the existing selection.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It front-loads the core operation and packs in the offset, count, units, and layer behavior efficiently.

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?

The tool is simple and an output schema exists, but the description leaves the required 'names' parameter under-specified and provides no routing guidance relative to similar transformation tools. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by giving units for dx/dy and explaining count, but it never explains the required 'names' parameter or explicitly maps it to the 'objects' being copied.

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 clear verb ('Copy') and resource ('objects'), and specifies the offset semantics in mm. The copy-and-shift behavior distinguishes it from siblings like move_object and mirror, though no sibling is explicitly named.

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?

The intended use case of duplicating objects with a repeated offset is implied, but there is no explicit guidance on when to use this tool versus alternatives like move_object, offset, or mirror, and no exclusions are mentioned.

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

create_arcB

Draw a counter-clockwise arc from start_angle to end_angle (degrees, 0 = +x axis).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
centerYes
radiusYes
fit_viewNo
end_angleYes
start_angleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does add useful geometric behavior (counter-clockwise, degrees, angle origin), but it does not disclose side effects on the drawing, whether the arc is added to the current level, or how fit_view influences the result. For a mutation tool with zero annotation coverage, this is a significant gap.

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

Conciseness5/5

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

A single sentence that is efficiently front-loaded with the most essential information: action, direction, and angle convention. There is no filler, and every word contributes to understanding the core operation.

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

Completeness2/5

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

With six parameters, no annotations, and 0% schema coverage, the description is too sparse. An agent would have to guess the coordinate format for center, units for radius, the meaning of a null layer, and the effect of fit_view. The output schema may help with return values, but not with input decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the six parameters. It only clarifies start_angle and end_angle semantics; center, radius, layer, and fit_view are left entirely to inference from names and schema types. This does not provide enough parameter meaning for an agent to invoke the tool confidently.

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 names a specific verb ('Draw') and resource ('arc'), and distinguishes itself from siblings by specifying counter-clockwise direction and the angular reference (0 = +x axis). This clearly identifies what the tool does and separates it from create_circle or create_line.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives such as create_circle or create_polyline, nor any mention of prerequisites like an active layer or open document. The description states the operation but never addresses when it is appropriate.

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

create_circleC

Draw a circle (mm).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
centerYes
radiusYes
fit_viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the intended action and does not explain what drawing a circle does to the document, whether it operates on the active layer, how fit_view behaves, or what output to expect.

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

Conciseness2/5

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

The description is short and front-loaded, but it is under-specified rather than efficiently complete. It provides minimal information beyond restating the tool's purpose and adds no actionable detail.

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

Completeness1/5

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

For a 4-parameter creation tool with no annotations, this description is incomplete. It omits coordinate system, layer semantics, fit_view behavior, and any guidance about required versus optional parameters, so an agent cannot reliably invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The '(mm)' hint gives some unit context for the radius and center coordinates, which the schema does not specify. However, with 0% schema description coverage, the description does not explain center format, layer behavior, or fit_view, leaving most parameter semantics unexplained.

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 names a specific action ('draw') and resource ('circle'), and the '(mm)' suffix clarifies units. It is distinguishable from sibling tools like create_rectangle and create_arc by the object type, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as create_arc or create_polyline. No context, prerequisites, or exclusions are provided, so the agent must infer usage entirely from the name and schema.

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

create_door_2dA

Cut a door opening in the wall and draw the classic door: jambs, open leaf, swing arc. The door is one block ("Porte"): move/copy/delete it as a single object. It is also a BIM object: it keeps a mark (P1, P2... numbered per level unless mark is given), its height (default 2100 mm) and material (default Bois), used by the 3D, the schedules and the IFC export.

position: [x, y] centre of the opening ON THE WALL AXIS (mm). width: default 900 mm. orientation: direction of the WALL, "horizontal" (along x) or "vertical" (along y). wall_thickness: thickness of the wall/partition crossed (default 200 = wall; use 100 for a partition). hinge: "start" (lower x/y end of the opening) or "end". swing: side the door opens to: north/south for a horizontal wall, east/west for a vertical one (default north / east). Warns if no wall was found at the position.

ParametersJSON Schema
NameRequiredDescriptionDefault
markNo
hingeNostart
swingNo
widthNo
heightNo
fit_viewNo
materialNo
positionYes
orientationNohorizontal
wall_thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden, and it does so well: it states that the tool cuts an opening, draws jambs/leaf/arc, creates a single moveable object, assigns BIM metadata, and warns when no wall is found. It does not fully address destructive consequences or how the wall is modified beyond cutting, but the disclosed behavior is substantially informative.

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

Conciseness5/5

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

The description is dense but well-structured: the first paragraph explains the tool's core behavior and BIM nature, while a compact parameter list covers semantics and defaults. Every sentence adds useful information, and nothing feels redundant or overlong.

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 a 10-parameter tool with no annotations and 0% schema coverage, the description is remarkably complete: it covers the main behavior, defaults, parameter meanings, and an error condition. The main gaps are fit_view not being explained and orientation's default value not being repeated in the description, but the output schema reduces the need to describe return values.

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 0%, so the description must compensate, and it explains nearly all parameters: position center on wall axis, width default, orientation as wall direction, wall_thickness for wall vs partition, hinge start/end, swing direction with defaults, mark numbering, height default, and material default. The one notable omission is fit_view, which is not mentioned in the description.

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 and resource: 'Cut a door opening in the wall and draw the classic door.' It clearly identifies the tool as creating a door, distinguishes it from sibling tools like create_window_2d, and adds concrete detail about the resulting door object being a single block and a BIM object.

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?

Usage context is implied rather than explicitly stated: the tool works on a wall, warns if no wall is found, and suggests using wall_thickness=100 for partitions. However, it does not explicitly contrast this tool with alternatives such as create_window_2d, create_wall_2d, or create_partition_2d, so an agent must infer when this tool is the right choice.

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

create_drawing_pageA

Create a sheet: size A4/A3/A2/A1, landscape or portrait, print scale ("1:50"), with a French title block (cartouche) filled from projet, adresse, client (maitre d'ouvrage), titre (plan title), dessine, date (default today), numero, indice. Then call add_plan_view. Create the plan's dimensions and texts with scale= so they are readable on paper.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
nameNoFeuille
sizeNoA3
scaleNo1:50
titreNo
clientNo
indiceNo
numeroNo
projetNo
adresseNo
dessineNo
orientationNolandscape
title_blockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does reveal non-obvious behavior: a French title block is filled from specific fields, and date defaults to today. However, it does not mention side effects like whether a new page is appended or replaces an existing one, or whether an active document is required.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states the core operation and key parameters, the second gives the immediate follow-up, and the third explains the scale requirement. Every sentence adds practical value with no filler.

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 a complex 13-parameter tool, the description is quite complete: it covers the sheet creation, the title block content, the follow-up add_plan_view call, and the scale rule for readable dimensions. It does not clarify how the created page connects to add_plan_view or what happens to an existing sheet, but an output schema exists and the workflow is mostly unambiguous.

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 0%, so the description must compensate, and it largely does: size, orientation, scale, and the French title-block fields (projet, adresse, client, titre, dessine, date, numero, indice) are all mapped. The 'name' parameter is not explained and the title_block boolean is only indirectly referenced, preventing a perfect score.

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 and resource: 'Create a sheet' and then enumerates the key attributes (size, orientation, scale, title block). It clearly differentiates itself from sibling tools like add_plan_view by presenting that as a follow-up action rather than part of this tool.

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 gives explicit workflow guidance: after creating the sheet, 'call add_plan_view', and when creating dimensions/texts, use scale=<print scale denominator>. It does not enumerate when-not-to-use cases or alternatives, but the context is clear enough for an agent to sequence calls correctly.

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

create_fillA

Solid fill (poché) of an area, as one block on layer 'poche' (mm): what a plan shows for concrete or masonry cut by the section plane. points = outline, holes = outlines left empty (walls: outer outline as points, inner as holes). tone "black" (solid) or "grey" (lighter). scale = print scale denominator (the fill is drawn with pen-thick lines so it prints solid on the sheet and in the PDF). avoid_openings (default true): doors and windows already drawn stay empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoblack
holesNo
scaleNo
pointsYes
avoid_openingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does well: it discloses that the fill becomes 'one block on layer poche', the print mechanism ('drawn with pen-thick lines so it prints solid on the sheet and in the PDF'), and that avoid_openings leaves doors and windows empty. Minor gaps remain, such as interaction with pre-existing fills and prerequisites, but the core behavior is well disclosed.

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?

One dense paragraph with the core purpose front-loaded, followed by compact parameter documentation. Every sentence earns its place and there is no filler, but the inline parameter explanations run together into a wall of text rather than using clear separation or ordering.

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 a 5-parameter tool with zero schema coverage and no annotations, the description covers nearly everything a caller needs: units (mm), layer, hole semantics, tone options, scale behavior, and opening avoidance. It does not address repeat invocation on the same area or required drawing state, but an output schema exists to cover return values, so the remaining gaps are minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it does thoroughly. Every parameter gets meaning beyond its schema name: points/holes outline-relationship with wall-specific guidance, tone semantics (black solid, grey lighter), scale as a print-scale denominator with a rationale, and the behavior of avoid_openings. This is exemplary compensation for a schema that is silent.

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 states a specific verb and resource: 'Solid fill (poché) of an area, as one block on layer poche (mm)'. It grounds the purpose in architectural meaning ('what a plan shows for concrete or masonry cut by the section plane'), which distinguishes it from the sibling tools create_hatch and fill_walls without needing to open schemas.

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?

The description conveys the use context — filling areas that represent concrete or masonry cut by the section plane — and implies why this tool exists. However, it never explicitly says when to prefer it over the closely related siblings fill_walls or create_hatch, and names no alternatives or exclusions.

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

create_hatchA

Hatch an area with parallel lines, as one block "Hachure" on layer 'hachures' (mm). points: the outline [[x, y], ...]. holes: outlines to leave empty, e.g. for a wall ring give the OUTER outline as points and the INNER outline as holes (both from create_wall_loop). pattern: "lines" or "cross" (second set at +90 degrees). angle in degrees (default 45). spacing: mm between lines; default 3 mm on paper = 3 x scale (scale = print denominator). Lines align on the world origin, so neighbouring hatches of the same angle/spacing match. avoid_openings (default true): no hatch inside the doors and windows already drawn. Hatch AFTER placing them; a door added or moved later does not clear the existing hatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNo
holesNo
scaleNo
pointsYes
patternNolines
spacingNo
avoid_openingsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are present, so the description carries the burden. It discloses the single-block layer behavior, world-origin alignment for adjacent hatches, and the non-updating behavior when openings change later. Could add idempotency or overwrite behavior, but overall strong for a creation tool.

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

Conciseness5/5

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

All sentences earn their place; the parameter walkthrough is compact and front-loaded with the main purpose and layer. It packs examples and defaults without rambling.

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 seven parameters and no annotations, it covers coordinates, units, defaults, layer, and a timing caveat. With an output schema present, return values need no description. Minor omissions like invalid-input behavior or whether the layer must pre-exist keep it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description documents every parameter with defaults, units, and examples: points, holes, pattern, angle, spacing, scale, and avoid_openings. This fully compensates for the empty schema descriptions.

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 opening sentence states a specific verb ('Hatch') and resource (an area as one Hachure block on a named layer). This clearly distinguishes it from sibling fill tools by emphasizing parallel-line mechanics and the target layer.

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 gives explicit timing guidance—hatch after placing doors/windows—and explains how to structure outer/inner outlines for wall rings using create_wall_loop output. It does not mention alternative tools or exclusion cases, but the context is clear enough for an agent to decide when to use it.

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

create_layerB

Create a layer. Standard names (murs, cloisons, ouvertures, mobilier, cotations, textes, hachures) have default styles. line_color is [r, g, b] in 0..1; draw_style is Solid, Dashed, Dotted or Dashdot.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
draw_styleNo
line_colorNo
line_widthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does reveal that standard names receive default styles and clarifies color/style formats, but it does not state what happens if a layer name already exists, whether the new layer becomes active, or any side effects. For a state-changing operation, this is a meaningful gap.

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

Conciseness5/5

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

The description is two sentences with no filler or redundancy. Purpose is front-loaded, followed by compact parameter details that earn their place. It is appropriately sized for the tool's complexity.

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?

The output schema presumably covers return values, so that part is not missing. However, the description omits operational context such as line_width semantics, duplicate-name handling, and layer activation behavior. The standard-names default-style context adds useful value, but an agent still lacks important behavioral information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It successfully explains line_color as [r,g,b] in 0..1 and draw_style as Solid/Dashed/Dotted/Dashdot, and it implies that certain 'name' values yield default styles. However, line_width is left completely undefined, and the name semantics beyond standard defaults are not detailed. The compensation is partial.

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 ('Create') and resource ('a layer'), making the primary function unambiguous. It is naturally distinguished from sibling tools like set_layer or get_layers by the 'create' verb, though it does not explicitly name alternatives. The meaning is clear and direct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use create_layer versus related tools like set_layer or set_visibility, and it mentions no exclusions or prerequisites. The standard-names hint is a naming suggestion but does not help an agent choose among siblings. Usage must be inferred from the tool name alone.

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

create_levelA

Add a level (storey), e.g. name="R+1". elevation = floor level in mm (default: on top of the previous level); height = floor to floor. On an existing name, changes its elevation/height. activate=true switches to it (an empty plan).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
heightNo
activateNo
elevationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full load and does well: it discloses that an existing name causes an update, that elevation defaults to stacking on the previous level, that activation switches to an empty plan, and that height means floor-to-floor. These are important side effects beyond 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.

Conciseness5/5

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

Three compact sentences convey the core action, parameter semantics, defaults, and side effects. There is no filler, and the most important information appears first.

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?

The description covers creation, upsert behavior, defaults, and activation side effects well. Minor gaps remain: the height unit is not explicitly stated as mm, and there is no direct guidance on when to use 'set_active_level' instead of the activate flag. The output schema covers return values, so that burden is offloaded.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain every parameter. It does: name gets an example, elevation is defined in mm with a default behavior, height is described as floor-to-floor, and activate is explained as switching to an empty plan. This fully compensates for the schema gaps.

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 and resource, 'Add a level (storey)', which is unambiguous diffusion from 'set_active_level' and 'copy_level'. It also clarifies the update-on-existing-name behavior, so the tool is recognizable as an upsert rather than a plain creation tool.

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?

The description gives good context: when adding a level, when changing elevation/height, and when activating a level. However, it does not explicitly mention alternatives like 'set_active_level' for pure switching or 'get_levels' for listing, leaving the decision partially implied rather than explicit.

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

create_lineA

Draw a straight line between two [x, y] points (mm), optionally on a named layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
layerNo
startYes
fit_viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'Draw' clearly conveys a mutating creation operation, and the named-layer option adds useful context. However, it does not explain what happens when layer is null, nor does it mention the fit_view side effect, which are meaningful behavioral details.

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

Conciseness5/5

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

The description is one front-loaded sentence where every clause adds information: the operation, the geometric primitive, coordinate format, units, and layer option. There is no filler or redundancy.

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?

For a simple drawing tool with an output schema, the core behavior is understandable and identifiable among many siblings. However, the unexplained fit_view parameter and unspecified layer-null behavior leave gaps that an agent would need to infer or probe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains start and end as [x, y] points in mm and layer as optional, but it leaves fit_view entirely unexplained and does not state that the point arrays must contain exactly two numbers. This is partial, not complete, compensation.

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 states a specific verb ('Draw') and resource ('straight line between two [x, y] points'), includes units (mm), and notes the optional layer. This clearly distinguishes it from siblings like create_polyline, create_circle, and create_rectangle without requiring schema inspection.

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?

The description implies when to use it by naming the exact primitive, but it never explicitly contrasts it with alternatives such as create_polyline for multi-segment lines or create_wall_2d for walls. Usage is inferable rather than stated, so it meets the minimum but leaves selection partly to the agent.

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

create_noteC

Multi-line note: lines stacked downwards from position, as one 'Note' block.

ParametersJSON Schema
NameRequiredDescriptionDefault
alignNoleft
layerNo
linesYes
scaleNo
heightNo
positionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that lines are 'stacked downwards from position' and that the result is one 'Note' block, which gives some layout behavior. However, it does not disclose what happens with alignment, scale, layer, or height defaults, whether the note is editable later, or what the output schema contains. For a creation tool with no annotations, this is a significant gap.

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 concise sentence that front-loads the core concept (multi-line note) and the key behavior (stacked downwards from position). It earns its place without fluff, though it could add a bit more detail without becoming verbose.

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

Completeness2/5

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

Given the tool has 6 parameters, no annotations, and no schema descriptions, the description is not complete enough. It explains the basic layout behavior but omits the meaning of align, layer, scale, and height, and does not mention what the output schema contains. An agent would need to infer or guess the semantics of most parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. The description only explains the 'lines' and 'position' parameters implicitly ('lines stacked downwards from position'), but it does not explain 'align', 'layer', 'scale', or 'height'. With 6 parameters and zero schema descriptions, the description leaves most parameter semantics unexplained.

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 ('create') and resource ('Note' block), and clarifies that it is a multi-line note with lines stacked downwards from a position. It distinguishes itself from sibling tools like create_text and create_room_label by emphasizing the multi-line 'Note' block concept, though it doesn't explicitly name those alternatives.

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?

The description implies usage context: it is for creating a multi-line note block at a position, which is a distinct use case from other creation tools. However, it does not explicitly state when to use this tool versus alternatives like create_text or create_room_label, nor does it mention any exclusions or prerequisites.

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

create_partition_2dA

Draw one interior partition on layer 'cloisons' (mm).

start/end are [x, y] points on the partition AXIS. Default thickness 100 mm. merge (default true): fused with the touching partitions into one outline, like create_wall_2d.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
mergeNo
startYes
fit_viewNo
thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the disclosure burden and does useful work: start/end are points on the partition AXIS, thickness defaults to 100 mm, and merge=true fuses touching partitions into one outline. It could add more detail about fit_view or the result, but the key mutating behavior is disclosed.

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

Conciseness5/5

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

The description is compact, front-loaded with the primary action, and every sentence adds information: target layer/units, axis semantics, defaults, and merge side effect. No filler or repetition.

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 a 5-parameter drawing tool with an output schema, the description provides enough operational context: required inputs are explained, optional parameters have defaults, and the main side effect is stated. The missing fit_view explanation and lack of explicit alternative routing keep it from being fully complete.

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%, so parameter meaning falls entirely on the description. It clarifies start/end as [x,y] axis points, thickness default, and merge behavior, covering most of the 5 parameters; fit_view is the only parameter left undefined.

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 and resource: 'Draw one interior partition on layer 'cloisons' (mm).' This clearly separates it from sibling wall/door/window creation tools by object type and target layer.

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?

Usage context is only implied by the phrase 'one interior partition' and the reference 'like create_wall_2d' for merge behavior. The description never explicitly says when to choose this over create_wall_2d, create_wall_loop, or other drawing tools, nor does it state any exclusions.

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

create_polylineA

Draw a polyline through [[x, y], ...] points (mm); closed=True joins last to first.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
closedNo
pointsYes
fit_viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It usefully adds the mm unit and clarifies that closed=True joins the last point to the first. However, it does not disclose behavior for empty or single-point arrays, coordinate interpretation, or the effect of fit_view.

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

Conciseness5/5

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

The description is a single compact sentence that front-loads the core behavior, data format, units, and the key optional flag. Every element earns its place with no filler.

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 a simple drawing tool with an output schema and obvious defaults, the description covers the essential input contract and the closed behavior. The main gaps are layer and fit_view semantics, but these are minor given the schema defaults and the low complexity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the points array structure and the meaning of closed, but layer and fit_view are left entirely unexplained beyond their schema titles and defaults. This is only partial coverage of the four parameters.

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 names a concrete action ('Draw'), the resource ('polyline'), and the exact input format with units ('[[x, y], ...] points (mm)'). It clearly distinguishes this from sibling tools like create_line or create_rectangle.

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?

The intended use case of creating a multi-point polyline is implied by the description, but there is no explicit guidance about when to choose this over create_line or create_arc, and no mention of when not to use it. The usage context is inferable but not stated.

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

create_rectangleA

Draw a 2D rectangle in the open FreeCAD (XY plane, all values in mm).

(x, y) is the lower-left corner; width x height default to 10000 x 8000 mm. layer puts it on a named layer (created on first use; without one the rectangle is on no layer and escapes layer filters). Returns name, dimensions and bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
layerNo
widthNo
heightNo
fit_viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full disclosure burden. It does well by explaining that (x, y) is the lower-left corner, that width/height default to 10000 x 8000 mm, that a layer is created on first use, and that omitting a layer leaves the rectangle unfilterable by layer. The only notable omission is the behavior of the fit_view parameter.

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

Conciseness5/5

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

The description is compact and front-loaded: the primary purpose is stated first, followed by a concise second sentence covering defaults, layer behavior, and return content. Every sentence contributes useful 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?

Given no annotations, the description covers plane, units, coordinate semantics, defaults, layer behavior, and return summary. An output schema exists, so return details need not be spelled out. The only real gap is the unexplained fit_view parameter, which keeps it from being fully complete.

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%, so the description must compensate. It adds meaning for x and y (lower-left corner), width/height (default dimensions), and layer (placement and creation semantics). It does not explain fit_view, which remains ambiguous despite its schema default.

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 and resource: 'Draw a 2D rectangle in the open FreeCAD', and adds the XY plane and mm units. This clearly distinguishes it from sibling primitive tools like create_line, create_circle, and create_arc, which draw different shapes.

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?

Usage is implied by the name and description: this tool is for drawing rectangles. However, it does not explicitly state when to choose this over alternatives or mention any exclusions, such as using create_wall_2d for wall-specific rectangles.

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

create_roofA

Roof over the walls (outline from the walls, or points), starting at base_height (the wall height). "gable" = two slopes: a solid prism over the bounding box of the outline, pitch in degrees (5-70), ridge along the longer side ("x" or "y" to choose). "flat" = a slab of thickness. overhang (mm) extends the roof past the walls. Replaces the previous roof.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNogable
viewNo
pitchNo
ridgeNoauto
pointsNo
replaceNo
overhangNo
thicknessNo
base_heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explicitly warns that the tool 'Replaces the previous roof,' and explains how base_height, overhang, pitch, and thickness affect geometry. It does not mention failure cases or what `view` does, but the most important side effect is disclosed.

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 compact and front-loaded with the core purpose. It uses inline code formatting and packs substantial semantic detail into a single paragraph. It is slightly dense and could be improved with bullet separation, but almost every clause contributes real information.

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?

For a 9-parameter tool with no annotations and no schema descriptions, the description covers the geometry well but leaves meaningful gaps: the `view` flag is unexplained, and the effect of `replace: false` is ambiguous given the blanket statement 'Replaces the previous roof.' The presence of an output schema reduces the need to describe return values, but these parameter gaps keep it from being fully complete.

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 0%, so the description must compensate. It explains kind, pitch range and ridge options, flat thickness, overhang units, points as an alternative to wall outline, and base_height as the starting height. It does not explain the `view` parameter, and `replace` is only indirectly covered by 'Replaces the previous roof.'

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 names a specific action and resource: creating a roof over walls, with detailed behavior for gable and flat variants. It also clearly distinguishes this tool from siblings like create_slab or create_walls_3d by anchoring on roof-specific geometry.

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 establishes clear context ('Roof over the walls') and internal choice guidance between 'gable' and 'flat', plus when to use `points` vs the wall outline. However, it never explicitly names alternative tools or states conditions like 'use create_slab for floors', so cross-tool routing is only implicit.

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

create_room_labelA

Room name with its area (e.g. "36,10 m2") centred in the room, as one block on layer 'textes'. Give points = the room's CLEAR interior corners (wall faces, e.g. from create_wall_loop's inner outline and the partition faces): the area is computed and the label centred. Or give area_m2 and position. Returns the area. The room is also a BIM object (schedules, IFC space): optional usage (e.g. "Séjour") and floor_finish (e.g. "Carrelage").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
scaleNo
usageNo
pointsNo
area_m2No
positionNo
floor_finishNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it reveals the layer, centering behavior, automatic area computation, return value, and the creation of a BIM room object. It is silent on potential duplicate/overwrite behavior and current-level interaction, but it is far more explicit than typical create-tool descriptions.

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

Conciseness5/5

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

The description is compact and front-loaded, with each sentence earning its place: purpose, input mode, fallback mode, return, and BIM semantics. The parenthetical guidance about create_wall_loop is concise and directly actionable.

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?

For a 7-parameter tool with no annotations, the description is mostly complete, but it omits scale semantics and does not explicitly state whether points and area_m2/position are mutually exclusive. The output schema helps with return documentation, but these input ambiguities make the definition not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must define the parameters; it explains points clearly, gives examples for usage and floor_finish, and states the area_m2+position alternative. However, scale is left entirely unexplained and position is only named, so the compensation is 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?

The description names an exact deliverable—a room label consisting of name and area, centered, as a block on layer 'textes'—and thereby clearly separates it from generic text tools like create_text or dimension tools. It also states the extra BIM-object feature, making the purpose 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?

It provides clear selection context: use points from interior wall faces to get automatic area, or supply area_m2 and position directly; optional usage and floor_finish tie into schedules/IFC. It does not explicitly compare to siblings such as create_text or dimension_room, so it falls 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.

create_slabA

Floor slab under the house: points = its outline, or omit it to use the outer outline of the walls (offset outward by margin). It occupies z from top - thickness to top (top = 0, the floor level, by default). replace=false to add a second slab instead of replacing the first.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
viewNo
marginNo
pointsNo
replaceNo
thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and provides substantial behavioral detail: it explains the z-range calculation, the default top/floor level, the wall-outline fallback with outward margin, and the replace semantics. It leaves one notable behavior undocumented (the `view` parameter) but otherwise gives a strong picture of what the tool does.

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

Conciseness5/5

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

Three dense sentences, each earning its place: the first defines the geometry source, the second defines vertical placement, and the third defines replacement behavior. No filler or repetition, and the core purpose is front-loaded.

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?

Given the tool's geometric complexity and zero annotation coverage, the description is reasonably complete but has gaps: `view` is undocumented, units for `margin`/`thickness` are not stated, and the prerequisite that walls must exist when `points` is omitted is only implied. An agent could still invoke it incorrectly without this missing context.

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%, so the description must compensate, and it covers most parameters: points, margin, top, thickness, and replace all receive meaningful explanations. Only `view` is left unexplained, which prevents a perfect score.

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?

Description clearly states a specific verb ('create') and resource ('floor slab under the house'), and the 'under the house' context differentiates it from related tools like create_roof or create_wall_2d. However, it does not explicitly name or contrast any sibling tool, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to choose this tool over alternatives such as create_roof, create_rectangle, or create_wall_2d. The only usage-related note, 'replace=false to add a second slab,' concerns parameter behavior rather than tool-selection criteria.

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

create_stairA

Draw a stair on the active level as one block "Escalier" on layer 'escaliers' (mm): treads, riser lines, walking line with arrow, and the cut line at 1.2 m. start = [x, y] the MIDDLE of the first riser (the bottom of the stair); angle = direction of the first flight in degrees (0 = east, 90 = north). stair_type: "straight", "quarter" (L, a square landing then a second flight turning turn left or right) or "half" (U, landing then a parallel flight back). width = flight width. tread = depth of a step (giron, default 270). rise = floor-to-floor height climbed (default the level height); risers = number of risers (default so that each is about 175 mm); landing_at = the riser number where the landing sits (default the middle). The result warns about steep or narrow stairs (rule 2 x riser + tread = 600-640). It is also a BIM object: mark E1, E2..., material Béton.

ParametersJSON Schema
NameRequiredDescriptionDefault
markNo
riseNo
turnNoleft
angleNo
startYes
treadNo
widthNo
risersNo
fit_viewNo
materialNo
landing_atNo
stair_typeNostraight

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the disclosure burden. It discloses output composition, layer/unit context, the warning rule for steep or narrow stairs, and BIM behavior with mark E1/E2 and material Béton. It does not mention whether the active level must exist or whether repeated calls are additive, but the core behavior is clearly conveyed.

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 front-loaded with the main action and layer, and every clause contributes useful parameter or behavior information. It could be easier to scan with structured bullets, but no sentence feels wasted.

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 12 parameters, no annotations, and an output schema present, the description is largely complete: it defines geometry semantics, defaults, the warning rule, and BIM result. The main remaining gaps are fit_view behavior and an explicit active-level prerequisite, which keep it from being fully comprehensive.

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%, so the description must compensate, and it does for most parameters: start, angle, stair_type, turn, width, tread, rise, risers, and landing_at are all explained with units or defaults. However, fit_view is left unexplained and mark/material are only indirectly referenced, so it is not a complete substitute for 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 and resource: 'Draw a stair on the active level as one block Escalier on layer escaliers', then lists the exact drawn elements. It clearly distinguishes itself from sibling create_stairs_3d by describing 2D plan features such as riser lines, walking line with arrow, and the 1.2 m cut line.

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 gives clear context: it targets the active level, uses layer 'escaliers', and is intended for plan-style stair drawing with a cut line. It does not explicitly contrast with create_stairs_3d or state when not to use it, so it stops short of full alternative routing.

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

create_stairs_3dA

Build the 3D steps of every stair of the active level (solid blocks from the floor up to each tread), standing on the level's floor. Replaces the previous ones of that level.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It explicitly reveals a destructive side effect ('Replaces the previous ones of that level') and clarifies the generated geometry ('solid blocks from the floor up to each tread'). It does not discuss reversibility or the view parameter, but the core behavior is transparent.

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

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the action and scope, then adds geometry context and the replacement side effect. Every sentence contributes useful information.

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?

The main action, scope, geometry, and side effect are all covered, and the presence of an output schema means return values do not need detailed explanation. However, the description leaves the `view` parameter undocumented and does not state prerequisites such as whether the active level must already have a floor, leaving some completeness gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, `view`, is not mentioned anywhere in the description. Schema coverage is 0%, and the description does not clarify whether `view` controls a preview, toggles the 3D view, or determines something else. The default value of `true` is not enough to make this optional parameter meaningful.

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 states a specific verb and resource: 'Build the 3D steps of every stair of the active level.' It also defines scope, geometry ('solid blocks from the floor up to each tread'), and a distinguishing side effect ('Replaces the previous ones of that level'), which separates it from sibling tools like create_stair.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context ('active level') but provides no guidance on when to use this tool versus alternatives. It does not mention the sibling create_stair tool or any exclusion criteria, so an agent must infer the appropriate choice from the name alone.

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

create_textA

Single-line text (real vector geometry, prints in PDF). position = anchor on the baseline, align = left/center/right, angle in degrees. height = capital height in mm (default 2.5 mm on paper = 125 at 1:50). Layer 'textes' by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
alignNoleft
angleNo
layerNo
scaleNo
heightNo
positionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does substantial work: it explains that text is real vector geometry, prints in PDF, anchors position on the baseline, defines align/angle semantics, specifies height as capital height in mm with a concrete default conversion, and states the default layer. It does not cover every edge behavior, but it is unusually informative for an unannotated tool.

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

Conciseness5/5

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

The description is compact and front-loaded with the most important fact (single-line vector text that prints), then efficiently maps each key parameter to its semantics. Every clause earns its place, with no filler or repetition.

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 7-parameter schema with only 2 required parameters, the description covers most invocation-critical details: defaults, anchoring, units, and layer behavior. An output schema exists, so return shape need not be described. The main gaps are explicit scale semantics and coordinate-system units, but these are minor for a tool with this much inline guidance.

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%, so the description must compensate. It explains position, align, angle, height, and layer defaults directly, and the '1:50' reference connects to scale. Only the scale parameter itself is left somewhat implicit, but most parameters receive meaningful clarification beyond the raw schema.

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 clearly states the tool creates a single-line text object with real vector geometry that prints in PDF. It gives the resource and key behavioral characteristics, and the 'single-line' qualifier helps separate it from richer text/note tools, though it does not name an alternative sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use create_text versus alternatives like create_note or update_text. The description implies text creation but does not state conditions, exclusions, or which sibling tool to prefer for other text needs.

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

create_wall_2dA

Draw one straight wall as a closed outline on layer 'murs' (mm).

start/end are [x, y] points on the wall AXIS. Default thickness 200 mm. merge (default true): a wall that overlaps or touches other closed walls on 'murs' is fused with them into one clean outline (no doubled lines at corners and T junctions). Do it BEFORE placing doors/windows: a wall already cut open by a door is not merged. Returns the 4 corners, length, thickness and the resulting outline name(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
mergeNo
startYes
fit_viewNo
thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It does well by disclosing that the wall is drawn as a closed outline, that overlapping/touching walls are fused, that this fusion should happen before doors/windows, and that the tool returns corners, length, thickness, and outline names. It does not explain the fit_view parameter's behavior, so it is not fully exhaustive, but it is substantially transparent.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states the core function, followed by concise parameter notes, a timing warning, and a return summary. Every sentence adds value and there is no filler.

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 a 5-parameter creation tool with no annotations, the description is nearly complete: it covers units, layer, geometry semantics, defaults, merge behavior, timing constraints, and return values. The missing fit_view behavior and lack of any mention of errors or coordinate system leave a small but real gap, so it is not a 5.

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%, so the description must compensate. It clarifies that start/end are [x,y] points on the wall axis, explains the merge default and its fusion behavior, and gives the effective default thickness of 200 mm. The only parameter left unexplained is fit_view, whose schema default is true but whose behavior is never described.

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 ('Draw'), a specific object ('one straight wall as a closed outline'), and a target layer ('murs' with mm units). The phrase 'one straight wall' distinguishes it from sibling tools like create_wall_loop and create_walls_3d, so an agent can tell what this tool is for.

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?

The description gives useful context by warning that merging should happen before placing doors/windows, and by explaining when merge will not apply. However, it never explicitly says when to choose this tool over siblings such as create_partition_2d or create_wall_loop; the differentiation is only implied by 'one straight wall'.

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

create_wall_loopA

Draw a closed run of walls (e.g. a house perimeter) with clean mitered corners. thickness defaults to 200 mm.

points: polygon vertices [[x, y], ...] in mm, in order. alignment says where the points lie: "outer" (outside face - use this for "house 12 x 8 m"), "center" (wall axis) or "inner" (inside face). Draws the outer and inner outlines on layer 'murs' and returns axis_points (wall centre line: place doors/windows on it), plus the interior bounds and area (mm2).

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsYes
fit_viewNo
alignmentNoouter
thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing side effects and behavior. It does this well by stating that it draws outer and inner outlines on layer 'murs' and returns axis_points plus interior bounds and area. It also clarifies that thickness defaults to 200 mm, which is useful because the schema default is null. It does not mention fit_view behavior, but overall it is transparent enough.

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

Conciseness5/5

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

The description is compact and well-structured: purpose first, then parameter semantics, then side effects and return value. Each sentence adds necessary information and there is no filler or restatement of the tool name.

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 a 4-parameter tool with an output schema, the description covers points, alignment, thickness, the drawing side effect, the target layer, and the key return value. The only gap is fit_view, but since it defaults to true and is likely a viewport nicety, the description is nearly complete.

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%, so the description must compensate. It explains points as polygon vertices in mm and in order, defines each alignment value with concrete examples, and states the thickness default. The only parameter it fails to describe is fit_view, which prevents a perfect score.

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 and resource: 'Draw a closed run of walls' with 'clean mitered corners.' This clearly distinguishes it from open-wall creation tools like create_wall_2d or create_line, and the 'house perimeter' example reinforces the intended loop use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives alignment advice ('use this for house 12 x 8 m' with outer alignment), but it never says when to choose create_wall_loop over create_wall_2d, create_partition_2d, or create_rectangle. There is no explicit when-to-use or when-not-to-use guidance for tool selection.

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

create_walls_3dA

Extrude the 2D walls (layer 'murs', and 'cloisons' unless partitions=false) into solids of the given height (mm), from z=0. The doors and windows drawn in 2D are cut through: doors from the floor to door_height, windows from window_sill to window_sill + window_height. Replaces the previous 3D walls. Returns the volume (m3) and z range of each solid.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNo
heightNo
partitionsNo
door_heightNo
window_sillNo
window_heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the behavioral disclosure burden and does so thoroughly: it states the origin (z=0), units (mm), layer selection, door/window cutting rules, and the destructive 'Replaces the previous 3D walls' side effect. It also discloses the return value (volume and z range).

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

Conciseness5/5

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

The description packs all essential behavioral and parameter information into three focused sentences with no filler. The main action is front-loaded, followed by cutout details, replacement warning, and return value.

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?

The description covers the core transformation, parameters, side effects, and return type, so an agent can likely call the tool correctly by relying on defaults. It is slightly incomplete because 'view' is not explained and prerequisites (existence of 2D wall layers) are only implied, not stated.

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 0%, but the description compensates for height, partitions, door_height, window_sill, and window_height by explaining their role and units. Only 'view' is left unexplained; the schema only provides a default, so an agent would not know what setting it to false does.

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 and resource ('Extrude the 2D walls ... into solids'), names the exact layers and parameters, and clearly distinguishes itself from 2D wall creation siblings by describing the 3D extrusion and cutout behavior. The replacement behavior also clarifies its role among wall-related tools.

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?

The description implies the tool is used after 2D walls exist on the named layers and when a 3D extrusion with door/window openings is needed. It does not explicitly state when to prefer create_walls_3d over alternatives like merge_walls or create_wall_2d, nor give exclusion criteria.

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

create_window_2dA

Cut a window opening in the wall and draw the 2D window (jambs, frame and glazing lines). A BIM object like the door: mark (F1, F2...), height (default 1200 mm), sill = height of the bottom above the floor (default 900 mm) and material (default PVC).

position: [x, y] centre of the window ON THE WALL AXIS (mm). width: default 1200 mm. orientation: direction of the WALL, "horizontal" or "vertical". wall_thickness: thickness of the wall crossed (default 200). Warns if no wall was found there.

ParametersJSON Schema
NameRequiredDescriptionDefault
markNo
sillNo
widthNo
heightNo
fit_viewNo
materialNo
positionYes
orientationNohorizontal
wall_thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/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 disclose key behavior: it cuts a physical opening in the wall, draws jamb/frame/glazing lines, creates a BIM object, and warns if no wall is found. These are meaningful effects beyond a generic 'create window'. It could still state whether the operation is destructive/irreversible or what happens after the warning, but the disclosed behavior is substantial.

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

Conciseness5/5

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

The description is compact, front-loads the purpose, and then groups defaults and geometric parameters without wasted prose. Line breaks and inline parenthetical defaults make it easy to scan.

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 a 9-parameter tool with no annotations, the description is unusually complete: it explains the wall-cutting action, the shared BIM conventions, the exact center/axis semantics, and a warning condition. The missing fit_view explanation and the lack of explicit alternative routing are the main gaps; output schema existence reduces the need to document return values.

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?

Input schema coverage is 0%, and the description compensates by explaining eight of the nine parameters with domain-specific meaning, units (mm), and defaults (height 1200, sill 900, width 1200, wall_thickness 200, material PVC). The only unexplained parameter is fit_view, whose name and boolean default may be enough in some contexts but is not described.

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 action—'Cut a window opening in the wall and draw the 2D window'—identifying both the resource and the exact 2D elements created. It is clearly a window-creation tool and is visually distinct from siblings like create_door_2d or create_wall_2d. The 'BIM object like the door' comparison also signals the model of object being created.

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 intended context is clear: use this tool when a 2D window opening needs to be cut and drawn in a wall Alert. The description also implies a prerequisite by warning if no wall is found at the position. It does not explicitly name alternatives or state 'for a door use create_door_2d', but the context is strong enough for an agent to infer when to call it.

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

delete_objectC

Delete objects (a block is deleted with its parts).

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does mention that deleting a block deletes its parts, which is a useful side-effect. However, it does not disclose whether deletion is permanent, reversible, or requires permissions, nor does it describe error handling or effects on dependent objects (e.g., dimensions, texts). The description carries minimal burden but falls short.

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 one sentence, efficient and free of fluff. The key detail about blocks is front-loaded in the parenthetical. It is appropriately concise for its purpose.

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

Completeness2/5

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

With an output schema present, return values are covered. However, the tool is a destructive operation (delete) and lacks annotations to communicate safety. The description should provide more context about irreversible consequences, prerequisites (e.g., object must exist), and interaction with nested objects (only blocks are mentioned). It is adequate but minimal for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter (names) with no description coverage (0%). The description does not explain what 'names' refers to (object names? layer names?) or how to specify multiple objects. However, with only one simple array parameter, the risk is low. The description adds a hint about blocks, but it does not clarify the parameter format. Given the simplicity, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Delete') and resource ('objects'), and it adds a clarifying detail about block deletion cascading to parts. However, it does not differentiate from sibling tools like move_object, copy_object, or clear_3d, which are also mutation tools. The parenthetical is useful but the core purpose is generic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. Notably, sibling tools like clear_3d (clear the 3D view) and get_objects (query objects) exist, but the description does not clarify that this tool is for removing objects from the model, not clearing the view or other operations. No exclusions or conditions are provided.

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

dimension_alignedB

Dimension of the true distance p1-p2, line parallel to it (offset > 0 = left of p1->p2).

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
unitNom
scaleNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden and does add useful geometry semantics: the dimension is parallel to p1-p2 and offset > 0 places it left of the direction p1->p2. It does not disclose whether the tool creates/updates a drawing object, what coordinate dimensions p1/p2 require, or how unit/scale affect the result, leaving notable gaps.

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

Conciseness5/5

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

A single front-loaded sentence conveys the core behavior and the key offset convention with no filler. Every phrase contributes meaning.

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

Completeness2/5

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

The tool has five parameters and zero annotation coverage; the terse description omits prerequisites, the coordinate dimensionality of p1/p2, scale/unit behavior, and placement/creation context. An output schema exists, but the description still under-specifies what an agent needs to invoke this tool correctly among many dimension siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning to p1/p2 (true distance endpoints) and offset (left side when positive), but it leaves unit and scale semantics to their schema defaults/enums, and it does not specify the required array length or coordinate system for the point parameters.

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 geometric operation: dimensioning the true distance p1-p2 with a line parallel to that segment. This clearly identifies the tool's purpose and distinguishes it from horizontal/vertical dimension siblings, though it never names an alternative.

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?

Usage context is implied by 'line parallel to it' – an agent can infer this tool is for dimensions aligned with p1->p2 rather than axis-aligned dimensions. However, no explicit when-to-use, when-not-to-use, or alternative tool names are provided, so the guidance is inferred rather than stated.

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

dimension_angleB

Angle at vertex between the rays towards p1 and p2 (smaller angle), drawn as an arc.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
scaleNo
radiusNo
vertexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool draws an arc (visual output) and computes the smaller angle, which is useful. However, it doesn't disclose whether the tool modifies existing geometry, requires specific coordinate systems, or has side effects like creating a new object in the document. The description adds some behavioral context but not comprehensive.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the core purpose (angle at vertex) and includes the key behavioral detail (smaller angle, drawn as arc). Every word earns its place; there is no fluff or repetition.

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?

The tool has 5 parameters, 3 required, and an output schema exists. The description explains the geometric meaning of the three required parameters but omits 'scale' and 'radius', which likely control the visual size of the arc. Given the output schema exists, return values are covered, but the missing parameter semantics and lack of usage guidance make the description incomplete for an agent to call the tool correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. The description mentions 'vertex', 'p1', and 'p2' implicitly by explaining the angle is at the vertex between rays to p1 and p2, but it doesn't explain the 'scale' or 'radius' parameters at all. The description adds meaning for the three required parameters but leaves two optional parameters completely unexplained, which is a significant gap.

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 clearly states the tool's function: it creates an angle dimension at a vertex between two rays, drawn as an arc. It uses a specific verb ('Angle at...') and identifies the resource (dimension). It doesn't explicitly differentiate from sibling dimension tools like dimension_vertical or dimension_aligned, but the geometric definition (angle between rays) is distinct enough to infer its purpose.

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?

The description implies usage context: it's for dimensioning an angle between two points relative to a vertex. However, it doesn't explicitly state when to use this tool versus alternatives like dimension_linear or dimension_aligned, nor does it mention any prerequisites (e.g., needing an existing drawing or active view). The context is clear but not fully elaborated.

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

dimension_chainB

A chain of consecutive dimensions plus the overall dimension on a second line. axis="horizontal": coordinates are x values measured along the face at y=edge; the line is offset from it (> 0 above, < 0 below). axis="vertical": y values along x=edge (> 0 right).

ParametersJSON Schema
NameRequiredDescriptionDefault
axisNohorizontal
edgeYes
unitNom
scaleNo
offsetNo
overallNo
coordinatesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It does add genuine behavioral context beyond the schema: the coordinate convention (x values measured along the face at y=edge), the offset sign convention (>0 above, <0 below), and the second-line overall dimension. However, it omits whether the tool mutates the document by inserting a drawing object and what effect default values (offset=null, overall=true) have on output.

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?

Two dense sentences with zero filler; the purpose is front-loaded and the axis/offset semantics follow compactly. The style is telegraphic but efficient. It could be slightly more readable, but every phrase earns its place.

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?

For a 7-parameter tool with no annotations and 0% schema coverage, the description is only partially complete. Output schema exists so return values need no explanation, but the description leaves unit/scale semantics, the behavior of offset=null, and how to choose this over the sibling dimension tools unaddressed. An agent could call it correctly for the common horizontal case but would be guessing on non-default options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for 7 parameters. It adds real meaning for axis, edge, offset, and coordinates (axis-dependent x/y interpretation and offset sign), but says nothing about unit (m/cm/mm), scale (default 50), or overall (default true). Roughly half the parameters remain semantically unexplained, which is insufficient at 0% schema coverage.

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 first sentence, 'A chain of consecutive dimensions plus the overall dimension on a second line,' states a specific construct with a clear resource (a dimension chain with an overall dimension) and an implied verb (create/draw). This distinguishes it from the many single-dimension siblings (dimension_linear, dimension_horizontal, etc.) by the 'chain' concept, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus the ~7 sibling dimension tools (dimension_vertical, dimension_linear, dimension_aligned, dimension_angle, dimension_exterior, dimension_room, dimension_horizontal). There are no exclusions, prerequisites, or alternative-routing statements — the axis explanation is geometry, not usage context.

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

dimension_exteriorB

Automatic exterior dimensions on the 4 sides of the walls (layer 'murs'): a chain through corners, door/window openings on that face and partitions meeting it, plus the overall dimension. Draw walls, partitions, doors and windows first. Returns the stops per side.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNom
scaleNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It explains the automatic behavior, the affected layer, the elements included, and that it returns stops per side. However, it does not disclose side effects such as whether existing dimensions are replaced, where the dimensions are placed, or any unit/scale implications.

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?

Two sentences with no filler. It front-loads the core purpose, then adds prerequisites and return value compactly. Minor loss for packing behavior details densely, but overall well-structured.

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

Completeness2/5

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

Given the large sibling set of dimension tools, the complete lack of parameter guidance, and no annotations, the description is not fully actionable. The prerequisite and return value are helpful, but an agent still lacks enough information to choose this tool confidently or set parameters correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the three parameters (unit, scale, offset). It does not mention any of them or explain how they influence the dimensioning. The schema only provides names, defaults, and an enum, leaving the agent without meaningful parameter semantics.

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 states a specific action and resource: automatic exterior dimensioning on all 4 wall sides for layer 'murs'. It specifies what the dimension chain includes (corners, door/window openings, partitions, overall dimension), making it clearly distinct from sibling dimension tools like dimension_chain or dimension_horizontal.

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 gives a clear prerequisite ('Draw walls, partitions, doors and windows first'), which is useful usage guidance. However, it does not explain when to choose this tool over the many sibling dimension tools, nor does it provide exclusion criteria or alternative routing.

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

dimension_horizontalB

Horizontal dimension between two [x, y] points (mm). offset: distance of the dimension line from the points, > 0 above, < 0 below (default 600 at 1:50, i.e. 12 mm on paper). One 'Cote' block on layer 'cotations'.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
unitNom
scaleNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It explains the offset parameter's direction and default value, and mentions the output block on layer 'cotations'. However, it does not disclose coordinate system assumptions, side effects, or prerequisites, and the offset default expression ('600 at 1:50, i.e. 12 mm on paper') is somewhat cryptic.

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 concise, front-loads the purpose, and packs useful information into two sentences. However, the offset default phrasing is unclear and could be simplified without losing meaning.

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

Completeness2/5

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

Given no annotations and 0% schema descriptions, this description is incomplete. It lacks usage guidance against the many dimension siblings, leaves unit and scale unexplained, and the offset default is confusing. The presence of an output schema mitigates the need to describe return values, but the overall gap is still significant for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains offset semantics in some detail but does not explain p1/p2 beyond calling them [x,y] points, nor does it explain the unit or scale parameters. With 5 parameters, this leaves a major gap for an agent trying to invoke the tool correctly.

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 'Horizontal dimension between two [x, y] points (mm).' This identifies a specific verb and resource, and distinguishes it from vertical, aligned, and other dimension siblings. The added detail about a 'Cote' block on layer 'cotations' further clarifies the expected output.

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?

The name and description imply usage for horizontal dimensions, but no explicit guidance is given on when to prefer this tool over the many sibling dimension tools (dimension_vertical, dimension_aligned, dimension_linear, etc.). No exclusions or alternative conditions are provided, leaving the agent to infer from 'Horizontal' alone.

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

dimension_linearC

Horizontal or vertical dimension, picked from the points (or direction="horizontal"/"vertical").

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
unitNom
scaleNo
offsetNo
directionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses the direction derivation behavior (from points or explicit direction), but does not mention that this creates a dimension entity, any prerequisites, coordinate expectations, or side effects.

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?

The description is concise and front-loaded with the core concept, but it is under-sized for a tool with six parameters and no annotation support. It avoids waste, yet sacrifices necessary detail.

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

Completeness2/5

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

Given no annotations, low schema coverage, and several dimension siblings, the description is incomplete. It omits parameter meanings, required setup, and behavior context, though an output schema exists to cover return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It minimally covers p1/p2 as 'points' and direction as 'horizontal'/'vertical', but unit, scale, and offset are completely unexplained, leaving most of the 6 parameters ambiguous.

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 that the tool creates a horizontal or vertical dimension from points or an explicit direction. This distinguishes it from aligned, angle, and other dimension siblings, even though it lacks an explicit verb like 'create'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus dimension_horizontal, dimension_vertical, or dimension_aligned. It implies a direction can be auto-derived or set, but does not name alternatives or exclusion criteria.

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

dimension_roomB

Clear interior width and depth of a room, drawn inside it along its bottom and left sides. points: the room's clear corners (wall FACES, not axes). Uses the bounding box.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNom
scaleNo
offsetNo
pointsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does add useful behavioral context: dimensions are drawn inside the room, points must be wall faces rather than axes, and the bounding box is used. It omits important details such as how many points must be supplied, how unit/scale/offset affect the drawing, and what side effects or document changes occur.

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 short, front-loaded with the outcome, and includes no filler. The key qualifiers about wall faces and the bounding box are present in just a few lines. The repeated use of 'clear' creates mild ambiguity but does not make the text bloated.

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?

This is an adequate but incomplete definition for a tool with no annotations and no parameter descriptions in the schema. It explains what the tool dimensions and where the dimension is placed, and the output schema covers return values. However, the undocumented parameters and lack of guidance about points count/order and tool selection leave noticeable gaps for an agent trying to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It only explains 'points' as the room's clear corners on wall faces, which is genuinely helpful. Unit, scale, and offset are not described at all, and the structure, ordering, and expected count of the points array are left to inference from names and schema defaults.

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 identifies a specific function: generating the clear interior width and depth dimensions of a room, drawn inside it along the bottom and left sides. The extra details about wall faces vs. axes and using the bounding box help differentiate it from generic sibling tools like dimension_horizontal, dimension_vertical, and dimension_exterior. Some ambiguity remains in the word 'clear,' which could be read as clearance or as a verb.

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?

The description implies this tool is for room-level width and depth dimensions and states where the dimensions are drawn. However, it never explicitly explains when to prefer this tool over dimension_aligned, dimension_chain, or dimension_exterior, and it gives no exclusion conditions. An agent must infer usage primarily from the tool name and the word 'room.'

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

dimension_verticalC

Vertical dimension between two points. offset > 0 puts the line to the right, < 0 to the left.

ParametersJSON Schema
NameRequiredDescriptionDefault
p1Yes
p2Yes
unitNom
scaleNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the offset direction ('offset > 0 puts the line to the right, < 0 to the left') but does not disclose what the tool returns, whether it mutates the document, how it handles invalid points, or how the vertical dimension is positioned relative to the points. The offset behavior is useful but incomplete.

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 concise sentence that front-loads the core purpose and then adds the offset rule. Every word earns its place, though it could be slightly more structured by separating the offset behavior into its own sentence.

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

Completeness2/5

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

Given the tool has 5 parameters, no annotations, and an output schema, the description is too thin. It does not explain the coordinate format for p1/p2, the meaning of scale, the default unit behavior, or what the output schema contains. An agent would need to inspect the schema and guess at conventions, which is risky for a drawing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. It only explains the offset parameter's sign convention; p1, p2, unit, and scale are left entirely to the schema's bare type/enum definitions. The description adds minimal value beyond the schema for most parameters.

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 and resource: it creates a vertical dimension between two points. It distinguishes itself from siblings like dimension_horizontal and dimension_aligned by the 'vertical' qualifier, though it doesn't explicitly name alternatives. The offset direction rule adds useful specificity.

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?

The description implies usage by defining the tool's function and the offset sign convention, but it does not explicitly state when to choose this over dimension_aligned, dimension_linear, or dimension_horizontal. No exclusions or alternative conditions are given, leaving the agent to infer from the name and sibling list.

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

export_dxfA

Export a DXF. mode="model" (default): the plan at 1:1 in mm with its layers (murs, cloisons, ouvertures, cotations, textes...) and real editable texts, no sheet needed: use it to work in a CAD program. mode="sheet": the TechDraw page as drawn on paper (scaled). Path rules and overwrite as export_schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNomodel
pageNo
pathNo
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does substantial work: it discloses output scale, units, layer inclusion, editable text, and the no-sheet-needed behavior of model mode. It also mentions overwrite and path rules, though the exact semantics are deferred to export_schedule rather than spelled out.

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 compact and front-loaded, with each mode explained in a separate clause and the cross-reference to export_schedule kept to one sentence. The parenthetical layer list adds useful domain detail without bloating the text.

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?

The core export behavior and the two modes are well covered, and an output schema exists so return-value details are not required. The main gaps are the semantics of the page parameter and the exact path/overwrite defaults, both of which rely on external knowledge of export_schedule rather than being self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The mode parameter is well explained, including its default and the meaning of both enum values. However, the page parameter is only implied by the sheet-mode explanation, and path/overwrite behavior relies on a reference to export_schedule rather than being described here, which is thin given 0% schema description coverage.

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 opening sentence names the exact operation and artifact ('Export a DXF'), and the two modes specify what is produced: a 1:1 mm CAD plan with layers and editable text vs. the scaled TechDraw sheet. This clearly distinguishes it from sibling export tools like export_svg, export_pdf, and export_ifc without requiring schema inspection.

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 gives concrete use context for each mode: model mode is 'to work in a CAD program' and sheet mode exports 'the TechDraw page as drawn on paper (scaled)'. It also signals consistency with export_schedule for path/overwrite behavior, but it does not explicitly state when to prefer export_dxf over the other export siblings.

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

export_ifcA

Export the building to an IFC4 file (BIM): one storey per level, walls with their openings, doors and windows (mark, height, material) filling those openings, slabs, spaces (rooms with area and usage) and optionally a roof over the top level. Default path: next to the FreeCAD document. Path rules and overwrite as export_schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
roofNonone
authorNo
overhangNo
overwriteNo
roof_pitchNo
wall_heightNo
project_nameNo
slab_thicknessNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of explaining behavior. It discloses the output content, optional roof behavior, default file path, and overwrite/path behavior via reference to export_schedule. However, it does not explain failure conditions, required document state, or what happens when overwrite is false or true beyond that reference.

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

Conciseness5/5

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

The description is compact and efficiently front-loaded: the first sentence states the core purpose and scope, the second gives the default path, and the third points to shared rules. Every clause adds relevant information without redundancy.

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?

For a 9-parameter export tool with no annotations and no parameter descriptions in the schema, the description is moderately complete. It explains the main output, contents, default path, and reuse of export_schedule's rules, but it leaves several parameters and their units/effects underspecified, and relies on an external sibling definition for overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only partially explains roof, path, and overwrite behavior. Parameters such as overhang, roof_pitch, wall_height, slab_thickness, author, and project_name are left to their schema titles and defaults, with no units or clarifying semantics.

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 a specific action and resource: 'Export the building to an IFC4 file (BIM)'. It adds a detailed, meaningful list of what is included, which distinguishes it from other export tools in the sibling set like export_svg, export_pdf, and export_schedule.

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 IFC4/BIM framing makes the intended use unmistakable, and the reference to 'path rules and overwrite as export_schedule' connects it to a sibling export tool's conventions. It does not explicitly state when to avoid this tool or prefer a different export tool, but the format and content make the use case clear.

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

export_pdfA

Export the sheet to a PDF (vector, at print size). Default path: next to the saved FreeCAD file, else in ~/Documents. Path rules and overwrite as export_schedule. Returns the file path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
pathNo
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the default path behavior, vector/print-size output, and that overwrite rules follow export_schedule. However, it doesn't mention whether the operation is destructive, what happens on failure, or whether it requires an active document/sheet, which would be useful for a file-exporting tool.

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

Conciseness5/5

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

The description is compact and front-loaded: it states the core action, format, and size in the first sentence, then covers path defaults and return value in two more sentences. Every sentence earns its place with no redundancy.

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?

The tool has 3 optional parameters, no annotations, and an output schema (which presumably documents the return value). The description covers the path default and overwrite convention, but the 'page' parameter is unexplained, and there's no mention of prerequisites (e.g., an active sheet) or failure behavior. It's adequate for a simple export but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the 'path' parameter's default behavior and mentions 'overwrite' rules via export_schedule, but it doesn't explain the 'page' parameter at all. The description adds some meaning beyond the bare schema but leaves one parameter undocumented.

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 clearly states the tool exports a sheet to PDF, specifies vector format and print size, and mentions the default path behavior. It distinguishes itself from export_schedule and export_svg by referencing export_schedule for path rules, though it doesn't explicitly name the sibling alternatives.

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 context on when to use this tool (exporting a sheet to PDF) and references export_schedule for path rules, implying a shared convention. It doesn't explicitly state when not to use it or name alternatives like export_svg or export_dxf, but the PDF-specific purpose is clear enough for an agent to select it appropriately.

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

export_scheduleA

Save a schedule as a CSV file (semicolon-separated, opens in Excel/LibreOffice). Default path: next to the FreeCAD document. An explicit path must be in the document folder, ~/Documents or $FREECAD_MCP_EXPORT_DIR; an existing file is only replaced with overwrite=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
pathNo
levelNo
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It clearly states the file format, default output location, path allowlist, and the overwrite=true requirement for replacing existing files. It does not describe error behavior when path constraints are violated, but the main safety-relevant behavior is covered.

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

Conciseness5/5

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

Three dense sentences with the core purpose front-loaded and operational constraints following. There is no filler, tautology, or restatement of schema fields; every clause adds information an agent needs.

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?

For a 4-parameter export tool with no annotations, the description covers path and overwrite behavior well. Yet it omits explanation of the required 'kind' argument and optional 'level' argument, and it does not address when to choose this tool over sibling export tools. These gaps make the definition functional but not fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It adds useful semantics for path (default and allowed locations) and overwrite (replacement only when true). However, it does not explain the required 'kind' parameter or the optional 'level' filter beyond the raw enum values in the schema, leaving a meaningful semantic gap.

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 opens with 'Save a schedule as a CSV file', giving a specific verb, resource, and output format. The parenthetical '(semicolon-separated, opens in Excel/LibreOffice)' makes the deliverable concrete. It does not explicitly differentiate from sibling export tools such as export_pdf or export_dxf, though the CSV format makes the distinction largely inferable.

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?

The description provides useful operational context: default path next to the FreeCAD document, restricted allowed directories, and the overwrite=true requirement. However, it never explicitly states when to prefer this tool over get_schedule or the other export_* siblings, so selection guidance is only implied by the CSV format and tool name.

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

export_svgB

Export the sheet to an SVG file. Default path as export_pdf.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
pathNo
overwriteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions a 'default path as export_pdf' but does not explain what that path resolves to, what happens when overwrite is false, or whether the operation modifies the document or only creates a file.

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, efficient sentence with no filler. The core purpose is front-loaded, though 'Default path as export_pdf' is terse and relies on knowledge of another tool.

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

Completeness2/5

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

For an export tool with three parameters and no annotations, the description is incomplete. Key operational details such as overwrite behavior, which page is exported, and the actual default path are missing or only vaguely referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented parameters. The only parameter-related hint is 'Default path as export_pdf,' which partially addresses 'path' but leaves 'page' and 'overwrite' entirely unexplained.

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 a specific action ('Export'), a resource ('the sheet'), and an output format ('SVG file'). It distinguishes itself from sibling tools like export_pdf, export_dxf, and export_ifc by naming SVG as the target format.

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?

The usage context is implied by the format name: use this tool when an SVG export is needed. However, it does not explicitly say when to prefer this over export_pdf/export_dxf/export_ifc, nor does it describe any exclusions or prerequisites.

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

extendC

Extend a straight line (end = "start", "end" or "nearest") until it meets boundary.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNonearest
targetYes
boundaryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It mentions the straight-line restriction and the general result, but it does not state whether the target is mutated in place, what happens when no intersection exists, or whether the operation is destructive or reversible. For a geometry modification tool this is a meaningful gap.

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 one sentence with no filler, and the core verb and object are front-loaded. The parenthetical is compact but slightly awkward, mixing a parameter name with an enum value and reducing immediate clarity.

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

Completeness2/5

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

For a three-parameter geometry mutation with no annotations, this description leaves important gaps: parameter semantics, mutation behavior, edge cases, and usage context. An output schema may document return values, but that does not help an agent know how to construct a valid `target` and `boundary` or what to expect when the extension is impossible.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the missing parameter docs. It partially does by implying `target` is a straight line and `boundary` is the thing to meet, and it connects `end` to the enum values. However, it never explicitly defines `target`, does not explain what "nearest" means relative to the line's endpoints, and provides no detail on how the entities are referenced.

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 clearly states an operation (extend), a resource (a straight line), and a termination condition (until it meets `boundary`). However, the parenthetical "end = "start", "end" or "nearest"" is ambiguous because "end" is both the parameter name and one of the enum values, and it does not explicitly distinguish target from boundary. Still, an agent can tell this apart from trimming or offsetting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use `extend` rather than sibling tools like `trim`, `offset`, or the line-creation tools. No prerequisites or selection context are provided, so the agent must infer the intended use case entirely from the one-line description.

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

fill_wallsA

Fill (or hatch) the walls of the active level in one call: the wall outlines of layers 'murs' and 'cloisons' (or layers) are rebuilt even where doors and windows cut them, and the openings stay empty. style "solid" = poché (tone black/grey), "hatch" = diagonal hatching at angle. Replaces the fill/hatch a previous fill_walls call drew for the same layers.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoblack
angleNo
scaleNo
styleNosolid
layersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description correctly carries the full behavioral burden. It discloses several non-obvious traits: openings remain empty while outlines are rebuilt around cuts, the style enum semantics (solid = poché with tone black/grey, hatch = diagonal at angle), and that a call replaces the fill/hatch drawn by a prior fill_walls call for the same layers. This is meaningful behavioral context beyond the schema, so a 4; it falls short of a 5 only because it leaves scale's effect and any output-schema specifics undisclosed.

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 two focused sentences, front-loaded with the primary purpose before diving into style semantics and replacement behavior. Every clause carries information — no filler or repetition of the tool name. It is slightly denser than strictly necessary, but well-organized and efficient, so a 4.

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?

The tool is moderately complex (5 optional parameters, two enum-driven, output schema present). The description covers the purpose, both style modes, the replacement semantics, and the layer scoping, which is most of what an agent needs to call it correctly. The presence of an output schema relieves the description of documenting return values. The main completeness gap is the unexplained 'scale' parameter and the lack of explicit sibling differentiation, so a 4.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for four of five parameters: it explains 'layers' (selects from 'murs'/'cloisons'), 'style' (solid vs hatch), 'angle' (hatch angle), and 'tone' (black/grey poché). However, 'scale' is entirely unexplained, which is a real gap given nothing else documents the schema. Covering most but not all parameters at 0% coverage earns a 3, not higher.

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 and resource: 'Fill (or hatch) the walls of the active level in one call', and details the core behavior — rebuilding wall outlines around doors and windows while keeping openings empty. It explains both styles (solid poché, diagonal hatch). It doesn't explicitly distinguish itself from the closely-related siblings create_hatch and create_fill, but the 'active level' + layers scoping makes the purpose materially clear, so a 4 is warranted.

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?

The description implies the usage context — filling walls of the active level in one call for layers 'murs'/'cloisons' — but provides no explicit when-to-use versus alternatives guidance, nor any exclusions. Given siblings like create_hatch, create_fill, and merge_walls exist in the same family, naming when this should be preferred would help. The guidance is effective but left to inference, so a 3.

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

get_boundsA

Bounding box of the whole drawing (or one layer): x/y min/max, width, height (mm). visible_only=true ignores hidden layers and objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
visible_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It states the visible_only behavior (ignores hidden layers and objects), the optional layer scoping, and the output units in mm. This is solid coverage for a read-only bounding-box query, though it does not describe edge cases like an empty drawing.

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

Conciseness5/5

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

Two tight sentences front-load the key output fields and units, then add the parameter behavior. Every clause earns its place with no filler or redundancy.

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 a simple getter with an output schema present, the description covers the main calling details: scope, visibility filter, and units. It is slightly terse on default layer behavior, but overall an agent has enough to invoke the tool 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 description coverage is 0%, so the description must compensate for both parameters. It does explain visible_only explicitly and gives context for layer via 'whole drawing (or one layer)', but it does not specify the expected layer-name format or the exact meaning of null. This is useful but not exhaustive.

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 clearly identifies the tool's output: a bounding box for either the whole drawing or a single layer, with x/y min/max, width, and height in mm. It is specific about the resource type and scope, though it does not explicitly compare itself to sibling tools like get_object_geometry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the layer and visible_only parameters, but it provides no explicit guidance on when to choose this tool over alternatives, nor any exclusions or prerequisites. An agent must infer the appropriate context.

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

get_documentA

Active document: name, file, unit (mm), object count, layers and overall bounds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully states that the tool reports on the active document and enumerates the returned fields, but it does not explicitly state read-only behavior, error conditions, or what happens when no active document exists.

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

Conciseness5/5

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

The description is a single concise sentence with no filler words. It front-loads the key concept 'Active document' and then efficiently lists the output fields.

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 a zero-parameter getter with an output schema, the description is largely complete: it identifies the active-document context and enumerates the main returned data. It doesn't explain how the active document is determined or error behavior, but that is a minor gap given the tool's simplicity.

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?

The tool has zero parameters, and the schema confirms this with 100% coverage. The baseline for a zero-parameter tool is 4, and the description adds helpful context about what the tool returns even though no parameter semantics are needed.

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 clearly identifies the tool as returning information about the active document and lists the specific contents: name, file, unit, object count, layers, and bounds. It lacks an explicit verb like 'returns' and doesn't differentiate itself from sibling getters such as get_layers or get_bounds, but the resource and purpose are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to call get_document versus sibling tools like get_layers, get_bounds, or get_objects. There are no usage conditions, exclusions, or references to alternatives, so an agent is left to infer when this tool is appropriate.

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

get_layersB

Layers with object count, visibility, line width, colour and style.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reads as a list of returned fields rather than a statement of behavior; it does not explicitly say the operation is read-only, whether it can fail, or whether any filtering/scope semantics apply. The 'get_layers' name implies retrieval, but the description itself adds no behavioral transparency.

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, lean phrase with no filler words, and it front-loads the key attributes. It is appropriately sized for a simple getter, though it would be slightly clearer as a full sentence like 'Get all layers with...'

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?

For a zero-parameter getter with an output schema present, the description is nearly sufficient for invocation. However, it is missing an explicit scope statement (all layers vs. active layer) and any usage context, so an agent may not know exactly when this tool is the right choice.

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?

There are zero parameters, so there is nothing for the description to explain beyond what the empty schema already shows. The description correctly omits parameter details; the baseline for a zero-parameter tool is 4.

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 identifies the resource (layers) and the attributes returned (object count, visibility, line width, colour, style). The verb is only implied by the tool name 'get_layers', and it does not explicitly distinguish itself from siblings, but the resource is specific and clear enough for an agent to understand what it does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like get_levels, get_objects, or get_wall_types. It does not state whether this returns all layers, the active layer, or layers in the current view, nor does it mention any exclusions or prerequisites.

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

get_levelsA

The levels (name, elevation, height) and which one is active.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. It indicates a retrieval operation and what data is returned, but it does not explicitly state that the tool is read-only or side-effect free, nor does it mention any permissions or limitations. This is a moderate gap for a getter with no annotation coverage.

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

Conciseness5/5

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

The description is a single, compact phrase with no filler or redundancy. It front-loads the key information about what levels contain and which one is active, earning its place fully.

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 a zero-parameter getter with an output schema present, the description is largely complete: it identifies the core return fields and the active-level state. It could be strengthened with usage context or an explicit read-only statement, but the low complexity means nothing critical is missing for invoking it 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?

The tool has zero parameters and the schema is empty with 100% coverage, so the baseline is 4. The description adds no parameter syntax, which is correct since there are none to document; it appropriately focuses on the result content.

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 clearly names the resource ('levels') and the specific fields returned ('name, elevation, height'), plus the active level. It is specific and easy to understand, though it lacks an explicit verb and does not directly contrast with sibling tools like create_level or set_active_level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as get_schedule, get_wall_types, or set_active_level. The intended use is only implied by the tool name and output description, not stated explicitly.

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

get_object_geometryA

Exact geometry of one object: points/length/area (polyline), center/radius/angles (arc, circle) or components (block), in global mm coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses the output scope (exact geometry, global mm coordinates) and the type-dependent return structure, which is useful. However, it does not mention whether the object must exist, what happens if the name is invalid, or whether this is a read-only operation. The description adds some behavioral context but not comprehensive.

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

Conciseness5/5

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

One sentence, front-loaded with the core purpose, and every clause adds value: the object types and their respective geometry fields are specified, and the coordinate system is stated. No wasted words.

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 has a single parameter and an output schema exists, the description is largely complete. It explains what geometry is returned for each object type and the coordinate system. The only minor gap is the lack of error behavior or name format details, but for a simple getter with an output schema, this is sufficient.

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%, so the description must compensate. It explains that the single parameter 'name' identifies the object whose geometry is returned, and it clarifies the output format per object type. This adds meaning beyond the bare schema, though it doesn't specify the exact string format for 'name' (e.g., object ID vs. user label).

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 states a specific verb ('get') and resource ('object geometry'), and enumerates exactly what geometry is returned for each object type (points/length/area for polylines, center/radius/angles for arcs/circles, components for blocks) in global mm coordinates. This clearly distinguishes it from sibling tools like get_bounds or get_objects.

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?

The description implies when to use it: when you need exact geometric details of a single object. However, it does not explicitly state when not to use it or mention alternatives like get_bounds for bounding boxes or get_objects for listing objects. The context is clear but exclusions are absent.

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

get_objectsA

List drawing objects (name, label, type, layer, visible, bounds), optionally filtered by layer or type (Wire, Rectangle, Circle, Block). visible_only=true leaves out hidden objects and layers. Door/window blocks appear as one 'Block' object.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo
layerNo
visible_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that visible_only=true excludes hidden objects and layers, and that door/window blocks are represented as a single 'Block' object—useful behavioral details. However, it does not mention whether the operation is read-only, whether it returns all objects by default, or any performance/pagination behavior. The description is honest and non-contradictory but not deeply transparent.

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

Conciseness5/5

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

Three sentences, all informative and front-loaded. The first sentence states the core function and return fields, the second explains filters, and the third clarifies a domain-specific nuance. No filler or repetition.

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?

The tool is a simple read/list operation with 3 optional parameters and an output schema present, so the description covers the essential semantics. It could add a note about default behavior (e.g., returns all objects if no filters) or clarify that it is read-only, but the output schema and simple parameter set mean the description is largely complete.

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%, so the description must compensate. It explains the meaning of 'type' (Wire, Rectangle, Circle, Block), 'layer' (filter by layer), and 'visible_only' (leaves out hidden objects and layers). This adds real semantic value beyond the bare schema property names, though it does not specify exact string formats for layer/type values.

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 states a specific verb ('List') and resource ('drawing objects'), enumerates the returned fields (name, label, type, layer, visible, bounds), and clarifies that door/window blocks appear as one 'Block' object. This distinguishes it from sibling tools like get_selected_objects, get_object_geometry, and get_layers.

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 clearly explains the optional filters (by layer or type) and the visible_only flag behavior, which tells an agent when to use this tool for listing/filtering objects. It does not explicitly name alternatives or exclusions, but the context signals and sibling list make the use case clear enough.

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

get_scheduleA

A quantity schedule of the building, read from the plan of every level (or one level): doors and windows (mark, size, material), walls (area, volume per wall type), rooms (area, usage), stairs (type, risers, tread), levels (elevation, height, totals). wall_height (mm) is used for the wall volumes. Returns columns, rows and totals.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
levelNo
wall_heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It states the tool reads from the plan, uses wall_height for wall volumes, and returns columns, rows, and totals – useful behavioral context. It does not mention side effects, but the 'read' framing strongly implies a non-mutating operation.

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

Conciseness5/5

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

The description is compact and information-dense, with no filler. It front-loads the core purpose, lists the covered categories, and ends with the return shape and a parameter dependency note. Every sentence earns its place.

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 a read-only schedule tool with an output schema, the description covers the key parameters and their effects. It explains the kind options, optional level filter, and wall_height role. It could be slightly more complete by explicitly noting that kind is required, but the schema already marks it required.

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%, so the description must compensate, and it does. It explains the meaning of each kind value, clarifies that level optionally filters to one level, and specifies wall_height is in mm and used for wall volumes. Minor gaps remain, such as units for other measurements, but it adds substantial meaning beyond the raw schema.

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 clearly states the tool returns a quantity schedule of the building and enumerates the content categories (doors, windows, walls, rooms, stairs, levels). It is specific about what is included, but lacks an explicit verb like 'retrieve' and does not differentiate itself from sibling export_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as export_schedule or get_levels. It implies usage through its purpose but provides no exclusions, prerequisites, or comparison to sibling tools.

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

get_selected_objectsB

Objects currently selected by the user in FreeCAD.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden. It indicates the tool returns 'currently selected' objects, implying dynamic state, but does not disclose edge cases (empty selection, failure behavior, or whether it returns a list or a single object). The output schema likely covers return shape, but the description adds minimal behavioral context.

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

Conciseness5/5

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

A single, compact sentence with no redundancy. It states exactly what the tool delivers without 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 (even if its details are not shown here), so the description need not detail return values. For a simple getter, the description conveys the essential purpose. However, it omits usage cues and does not explain how selection is defined within FreeCAD, which could be valuable given the many related tools.

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?

The tool takes zero parameters and schema coverage is 100%, so the description has no obligation to explain parameters. Baseline 4 applies because with no parameters, the description cannot add semantic value beyond the schema.

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?

Description states a clear verb ('get') and resource ('selected objects'), and the qualifier 'selected' distinguishes it from siblings like get_objects. However, it doesn't explicitly contrast with alternatives, so it doesn't fully preempt ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus other object-querying tools such as get_objects or get_object_geometry. The description gives no context for the selection state or any prerequisites.

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

get_sheetC

The sheet's format, scale, title block fields and plan placement (fits / overlaps warnings).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations present, the description carries the behavioral disclosure burden. It does reveal that the tool returns placement warnings and title block fields, which is useful. However, it does not explicitly state that the operation is read-only, how the 'page' parameter changes behavior, or what happens for missing/invalid input.

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 extremely concise with no filler words, and it leads with the sheet resource. It is slightly elliptical because it is a noun phrase rather than a complete sentence, but it earns high marks for economy.

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

Completeness2/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 value structure is partially covered, but the description still leaves key gaps: the 'page' parameter is semantically undefined, no usage context is provided, and there is no guidance about which sibling tools to prefer. For a one-parameter getter this is underwhelming.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention the 'page' parameter at all. The parameter name gives a minimal hint, but its meaning, allowed values, and the effect of the default null are entirely unexplained.

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 clearly identifies the resource (the sheet) and enumerates the specific data returned: format, scale, title block fields, and plan placement warnings. It lacks an explicit verb, but the tool name 'get_sheet' supplies the action, and the listed aspects distinguish it from sibling getters such as get_document and get_bounds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. Sibling tools like set_scale, add_title_block, position_view, and get_bounds are conceptually close, but the description provides no trigger conditions, exclusions, or selection criteria.

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

get_textsA

All texts of the drawing (room names, areas, dimension values, notes) with position, height, layer and the block that holds them.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral burden. It adds useful scope ('All texts of the drawing') and enumerates returned attributes, but it does not explicitly state read-only behavior, coordinate system, units, or whether all pages/views are included. The getter nature makes this a minor gap, so a mid-range score is appropriate.

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

Conciseness5/5

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

A single, compact sentence that front-loads the core scope and includes the key returned fields without any wasted words.

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 a no-parameter retrieval tool with an output schema present, the description is sufficiently complete: it names the entity type and the fields an agent can expect. It does not explain coordinate systems or units, but those are likely covered by the output schema and are not needed to select or invoke the tool 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?

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and the schema already covers the parameter set completely.

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 clearly identifies the resource (all text entities in the drawing) and the data returned (position, height, layer, block). It is distinguishable from siblings like get_objects and get_layers because it specifically targets texts, though it lacks an explicit verb and relies on the tool name for the action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like get_objects or get_selected_objects. There are no exclusions, prerequisites, or conditions described, so the agent must infer usage from the name and content list alone.

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

get_wall_typesB

The wall type (name, material, fire rating...) of the 'murs' and 'cloisons' layers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of explaining behavior. It does disclose the data content (name, material, fire rating) and the layers involved, which is useful. However, it does not explicitly say the operation is read-only, that no side effects occur, or that it returns a listing of wall types.

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 compact and contains no filler or redundant wording. The core subject and example fields are front-loaded and easy to scan. It is a sentence fragment rather than a complete statement, but the conciseness itself is strong.

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 a zero-parameter read-style tool with an output schema present, the description provides the essential domain context: the source layers and example fields. It lacks an explicit statement about usage relative to set_wall_type, but that is a minor gap for a simple getter. An agent can reasonably infer how and why to invoke it.

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?

The tool has zero parameters, so there are no argument semantics for the description to clarify. The schema is already complete, and the description provides relevant context about the data being returned. The baseline for a zero-parameter tool is appropriate here.

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 identifies a concrete resource—wall types from the 'murs' and 'cloisons' layers—and gives example attributes (name, material, fire rating). It is clear what subject the tool deals with, though it is a noun phrase rather than an explicit verb phrase like 'returns' or 'lists'. It does not explicitly distinguish itself from sibling query tools, but the subject is distinct enough from tools like set_wall_type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as set_wall_type, get_objects, or get_layers. The description mentions the source layers but does not explain prerequisites, intended workflow, or when not to use it. The agent must infer usage entirely from the tool name and context.

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

merge_wallsA

Fuse the closed wall outlines that overlap or touch into clean outlines (no doubled lines), on layers 'murs' and 'cloisons' (or the given layers). The inside of a wall ring made by create_wall_loop stays empty. Walls already opened by a door/window are not merged.

ParametersJSON Schema
NameRequiredDescriptionDefault
layersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden, and it does so well: it explains fusing, the empty interior of create_wall_loop rings, and the non-merging of door/window-opened walls. It does not state whether the original outlines are replaced or deleted, but the merge semantics and edge cases are clearly communicated.

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

Conciseness5/5

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

The description is three sentences with the core operation front-loaded first, followed by two high-value caveats. Every clause earns its place; there is no redundancy or filler.

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 a one-parameter, one-output-schema tool, the description covers operation, layer scoping, parameter override, and key edge cases. The main omission is an explicit before/after statement about what happens to the original wall objects, but this is not blocking for selecting and invoking the tool 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 description coverage is 0%, so the description must add meaning to the only parameter, and it does: 'on layers 'murs' and 'cloisons' (or the given `layers`)' clarifies that `layers` overrides the default. It could add behavior for null vs empty arrays or where valid layer names come from, but this is adequate for a single optional parameter.

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 precise action and resource: 'Fuse the closed wall outlines that overlap or touch into clean outlines (no doubled lines)'. It also identifies target layers and names the related create_wall_loop behavior, making the tool's role distinct from wall-creation siblings.

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 provides clear context for when the tool applies: overlapping/touching closed wall outlines on 'murs'/'cloisons' or the given layers, and it states an important limitation ('Walls already opened by a door/window are not merged'). However, it stops short of explicitly naming alternatives or saying when to prefer this over sibling tools like fill_walls.

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

mirrorB

Mirror objects across the line through axis_start and axis_end ([x, y] mm).

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
axis_endYes
axis_startYes
keep_originalNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention whether mirroring creates a new object or modifies the original, despite the keep_original parameter. It also does not clarify if it works on 2D objects only (given the [x,y] coordinate format) or what happens to the original by default. These are significant behavioral gaps for a mutation-like operation.

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

Conciseness5/5

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

The description is a single, well-formed sentence that directly states the operation and the axis definition. It is front-loaded with the verb and resource, contains no redundant words, and is perfectly sized for the tool's simplicity. Every element contributes to understanding the core function.

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?

The description outlines the main operation and coordinate format, which is adequate for the simplest invocation. However, it omits behavioral details like the default action of keep_original and whether the tool applies to both 2D and 3D objects. Since the output schema exists, return values are not needed, but the missing parameter semantics and behavior leave the agent guessing on how to correctly set all parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to axis_start and axis_end by specifying they are [x, y] coordinates in millimeters. However, it does not explain the 'names' parameter (list of objects) or the effect of 'keep_original' beyond its name. Given zero schema description coverage, the description should compensate for all parameters but only covers the two coordinate parameters, resulting in partial semantic support.

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 uses a specific verb ('Mirror') with a clear resource ('objects') and defines the mirror line using the two parameters. It distinguishes the tool from siblings like rotate_object, move_object, and copy_object, since no other sibling mirrors objects. The axis definition is explicitly tied to the parameters, leaving no ambiguity about the tool's core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool instead of alternatives such as copy_object or rotate_object. The description simply states what the tool does, leaving the agent to infer usage context. It does not mention any prerequisites, object types, or scenarios where mirroring is appropriate.

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

move_objectA

Move objects by (dx, dy) mm. A door/window block moves as one, but the hole it cut in the wall stays where it was.

ParametersJSON Schema
NameRequiredDescriptionDefault
dxYes
dyYes
namesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the non-obvious side effect that door/window blocks move as one but the wall hole stays put, and it states the mm units. It does not cover failure modes or coordinate-system details, but the core behavior is transparent.

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

Conciseness5/5

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

Two sentences, front-loaded with the operational core and followed by the single important caveat. No filler or redundant text.

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 a simple three-parameter translation tool with an output schema, the description covers the operation, units, and the main special-case behavior. The main gap is the absence of usage guidance against sibling operations, but nothing needed to execute a basic move is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that dx/dy are mm displacements and implies names identifies the objects to move, but it does not explicitly describe the array semantics or the coordinate reference. This is partial compensation.

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 clear verb ('Move'), resource ('objects'), and the exact displacement convention ('by (dx, dy) mm'). It doesn't explicitly call out sibling tools like rotate_object or copy_object, so it misses the top-tier differentiation but is unambiguous on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use move_object versus its alternatives, no exclusions, and no prerequisite conditions. The door/window note is a behavior caveat, not a usage decision rule.

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

offsetA

Create a parallel copy at distance mm. Closed polyline: positive = outward, negative = inward. Open polyline: positive = left of its direction. Circle/arc: positive = larger radius.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
distanceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It reveals key behaviors: creates a new copy (not in-place modification), offsets by distance in mm, and defines directional semantics for each geometry type. This is meaningful behavioral context beyond the raw schema. However, it omits side effects (e.g., whether the original is left unchanged) and does not state required inputs like which object the 'name' refers to, leaving some ambiguity.

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

Conciseness5/5

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

Three short sentences front-load the core action and then pack geometry-specific rules efficiently. No filler or redundancy; every sentence earns its place.

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?

The tool has only two parameters and no annotations, so completeness hinges on the description. It covers offset direction well but leaves the `name` parameter unexplained, which is essential for invocation. The presence of an output schema reduces the need to describe return values, but the ambiguity about the object being offset makes the description incomplete for correct agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It thoroughly explains `distance`, including sign conventions per geometry type, which adds real value. However, `name`—the only other parameter—is not described at all; it is unclear whether it names the source object or the new copy. With two parameters and only one explained, the description provides partial compensation.

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 and resource: 'Create a parallel copy at `distance` mm.' It clearly identifies the operation (offsetting geometry) and distinguishes it from siblings like create_line or copy_object by detailing behavior for different geometry types. The sign conventions for closed/open polylines and circles/arcs further clarify the tool's specific purpose.

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?

The description implies usage by defining offset direction for various geometry types, but it never explicitly states when to use this tool versus alternatives (e.g., copy_object + move, or other creation tools). There is no mention of prerequisites like 'selected object' or when not to use it. The shape-specific semantics provide partial guidance but no explicit routing or exclusions.

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

pingA

Check the link to the open FreeCAD: returns its version and active document.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of conveying behavior. It discloses the return payload (version and active document) and implies a non-mutating probe, but it does not explicitly state that it has no side effects or what happens when no FreeCAD document/connection exists.

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

Conciseness5/5

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

One concise sentence conveys purpose and return value without any filler. The key action 'Check the link' is front-loaded.

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?

For a simple, parameterless health-check tool with an output schema present, the description provides sufficient context. Nothing more is needed for an agent to invoke it 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?

The tool has zero parameters, so there is no parameter semantics to clarify. The description does not need to compensate for any schema gap, and the baseline of 4 for a parameterless tool is appropriate.

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 identifies this as a connectivity/status check for the open FreeCAD instance, with a specific result: it returns the version and active document. This distinguishes it from the many geometry- and export-oriented sibling tools.

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?

The description implies the tool is used to verify the FreeCAD link before or during other operations, but it does not explicitly state when to prefer it over alternatives. The role is fairly obvious from its health-check nature, but no explicit usage guidance is given.

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

position_viewA

Move the plan so its centre is at (x, y) mm from the sheet's bottom-left corner.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYes
yYes
pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does explain the operation clearly as an absolute repositioning in millimeters from the sheet origin, which is meaningful. However, it does not disclose whether this mutates the document, whether it is reversible, or whether it requires an active or specific page.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the action, target, units, and coordinate frame with no wasted words. It earns its place entirely.

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?

The core invocation is clear for the required parameters, and the output schema covers return values. But the description does not address the optional 'page' parameter, which context signals show is present, nor does it clarify which plan or view is being positioned. This is a moderate completeness gap for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaningful semantics for the required x and y parameters by specifying units (mm), reference point (sheet's bottom-left), and the center-of-plan behavior. However, schema coverage is 0%, and the optional 'page' parameter is not explained at all, leaving a coverage gap.

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 states a specific action ('Move the plan'), the exact target behavior ('its centre is at (x, y) mm'), and the coordinate reference ('sheet's bottom-left corner'). This clearly distinguishes it from sibling tools like set_view or add_plan_view by describing what position adjustment does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as set_view or create_drawing_page. The description only explains the operation, not the conditions under which it should be chosen, nor any prerequisites or exclusions.

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

rotate_objectA

Rotate objects counter-clockwise by angle degrees around center (default: centre of the objects).

ParametersJSON Schema
NameRequiredDescriptionDefault
angleYes
namesYes
centerNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden, but it does convey key traits: rotation is counter-clockwise, angle is in degrees, and center defaults to the objects' center. It does not state whether the operation modifies the objects in place, whether it is reversible, or what happens to existing geometry or properties, leaving some behavioral ambiguity.

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

Conciseness5/5

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

A single, front-loaded sentence conveys the operation, direction, units, and default behavior with no redundant content.

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?

The tool is simple and an output schema exists, so return-value details are covered. However, the description does not resolve the ambiguity of 'center: centre of the objects' when multiple names are supplied, nor does it clarify whether rotation applies per object or to the set as a whole, so an agent invoking it with multiple objects may be unsure of the behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning to angle (degrees, counter-clockwise) and center (defaults to objects' center), but names is only implied by 'objects' and the center's coordinate format is not specified. It is adequate but not thorough.

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 states a specific verb ('Rotate'), the resource ('objects'), and the precise operation parameters: counter-clockwise direction, angle in degrees, and rotation center with a default. This clearly distinguishes it from siblings like move_object and mirror without needing to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use rotate_object instead of alternatives such as mirror, offset, or set_geometry, and no exclusions or prerequisites are mentioned. The description only defines what the operation does, not the context in which it should be chosen.

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

set_active_levelA

Switch the drawing to a level: only its plan is shown, and new objects belong to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
fit_viewNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It goes beyond a generic 'switch level' by explaining that only the level's plan is shown and that new objects will belong to that level, which are meaningful side effects. It does not mention fit_view behavior, but the core state-changing semantics are clearly disclosed.

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

Conciseness5/5

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

The description is a single concise sentence with no wasted words. The core action is front-loaded, and the behavioral consequences are packed efficiently into the second clause.

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?

For a simple two-parameter command, the description covers the main action and its key side effects, and an output schema is present. However, it omits the meaning of 'fit_view' and does not address what happens to the current viewport or whether the operation is reversible, leaving a noticeable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate, but it only weakly implies that 'name' identifies the target level and says nothing about 'fit_view'. The schema provides no descriptions, and the description adds little semantic value for the parameters.

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 states a specific action ('Switch the drawing to a level') and a clear resource, then clarifies the effect: only that level's plan is shown and new objects belong to it. This distinguishes it from siblings like get_levels, create_level, and copy_level.

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?

The description implies the tool should be used when changing the current active level, and the behavioral effects help clarify the intended use. However, it does not explicitly state when to use this tool versus alternatives like set_view or get_levels, nor does it mention exclusions or prerequisites.

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

set_geometryA

Redefine an object's geometry. Polyline: points (+closed). Rectangle: x, y, width, height. Circle/arc: center, radius (+start_angle and end_angle for an arc). Not for blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
xNo
yNo
nameYes
widthNo
centerNo
closedNo
heightNo
pointsNo
radiusNo
end_angleNo
start_angleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

The word 'Redefine' implies a destructive or overwriting behavior, and the parameter mapping implies that related parameters should be supplied together. The exclusion of blocks is useful boundary information. However, the description does not disclose assumptions such as the object must already exist, whether omitted properties are reset, units, or coordinate conventions. With zero annotations, this is partial transparency but not misleading.

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

Conciseness5/5

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

Three short sentences, each providing distinct information: the general action, the geometry-to-parameter mapping, and the exclusion. Information is front-loaded and there is no filler or repetition.

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?

The description is sufficient for a rough understanding, but not complete for correct invocation: it does not explain whether points is a list of coordinate pairs, whether the shape's previous parameters are discarded, what happens if no geometry-specific parameters are set, or how errors are reported. An output schema exists, which may cover return values, but invocation still carries ambiguity.

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%, so the description carries the full semantic burden. It does map parameters to geometry types: 'points (+closed)' for polyline, 'x, y, width, height' for rectangle, and 'center, radius (+start_angle and end_angle for an arc)' for circle/arc. It does not specify the format of 'points' or 'center' (e.g., [x,y] pairs), but it goes far beyond the raw 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 names a specific verb ('Redefine') and resource ('an object's geometry'), then enumerates geometry types and their parameters. It also states the exclusion 'Not for blocks,' which distinguishes it from broader setting tools. An agent can tell what the tool does 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mapping shape types to parameter sets, and it gives one explicit exclusion ('Not for blocks'). However, it does not name alternatives or say when to prefer this over sibling tools like set_properties, move_object, or get_object_geometry, nor does it clarify whether the geometry replacement is a full redraw. Guidance exists but is incomplete.

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

set_layerB

Put objects on a layer (created if needed).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerYes
namesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does disclose a key side effect—that the layer will be created if needed—which is useful. However, it does not mention whether objects are removed from their previous layer, what happens on failure, or any required permissions or return behavior.

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

Conciseness5/5

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

The description is a single compact sentence with no unnecessary words. The core action is front-loaded, and the important 'created if needed' behavior is included efficiently.

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?

For a simple two-parameter mutation tool, the description covers the basic operation and the automatic layer creation edge case. However, with no annotations and no usage guidance, an agent gets minimal contextual support for choosing this tool among many similar layer-related siblings. The presence of an output schema reduces the need to describe return values, so overall this is adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps 'objects' to the names parameter and 'layer' to the layer parameter, but it does not clarify that 'names' is an array of object identifiers or describe how layer names are matched. The parameter names themselves are fairly self-explanatory, but the description adds only minimal semantic value.

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 names a specific action ('Put objects on a layer') and resource ('layer'), which clearly identifies what the tool does. The parenthetical 'created if needed' helps distinguish it from pure layer-creation tools like create_layer, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is provided, and no alternatives or exclusions are mentioned. The description implies the tool is used for assigning objects to layers, but it does not explain when to choose set_layer over create_layer, set_visibility, or set_properties.

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

set_line_styleA

Set Solid, Dashed, Dotted or Dashdot on a layer OR on objects (exactly one of layer / names).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
namesNo
styleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It implies a mutation by 'set' but does not state whether the change is reversible, whether it applies to all objects on a layer or only selected ones, or whether it overwrites existing styles. It does not mention side effects or required permissions.

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

Conciseness5/5

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

The description is a single, direct sentence with no filler. It front-loads the action and provides the necessary targeting constraint in a parenthetical, keeping it compact.

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?

The tool has an output schema, so return values are covered. However, since there are no annotations, the description should clarify behavioral aspects such as whether the action affects all objects on a layer, whether it is reversible, and any prerequisites. These are absent, making the description incomplete for a mutation tool with no annotation support.

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?

The schema provides no property descriptions, so the description must compensate. It does add meaning by stating that layer and names are mutually exclusive (exactly one must be provided) and clarifies that 'names' refers to objects. It repeats the enum values already in the schema, but the exclusivity constraint is valuable.

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 action: setting line styles (Solid, Dashed, Dotted, Dashdot) on either a layer or objects. The 'exactly one of layer / names' constraint distinguishes the two targeting modes. It is specific and uses a verb-resource structure that separates it from siblings like set_line_width.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No information is provided about when to choose this tool over alternatives such as set_properties or set_line_width. There is no mention of prerequisites, workflow context, or exclusions. The only guidance given is the parameter-level exclusivity, which does not help with tool selection.

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

set_line_widthA

Set the line width of a layer OR of objects (give exactly one of layer / names).

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNo
namesNo
widthYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the exclusivity constraint but does not mention whether the operation is a mutation, whether it affects existing objects, whether it requires a selected layer, or what the return value is. For a mutating tool, this is a significant gap.

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

Conciseness5/5

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

One sentence, front-loaded with the action and resource, and the critical exclusivity rule is included. Every word earns its place.

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?

The tool has 3 parameters, no annotations, and an output schema. The description covers the key selection rule but omits behavioral details like mutation effects, error conditions, and return value. It is adequate for a simple setter but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the relationship between 'layer' and 'names' (exactly one) and that 'width' is the value to set. However, it doesn't clarify the format of 'names' (array of object names) or the units/range of 'width', leaving some ambiguity.

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 ('Set') and resource ('line width of a layer OR of objects'), and it distinguishes the two target modes. It doesn't explicitly differentiate from sibling tools like set_line_style or set_properties, but the resource and action are clear enough to identify what it does.

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 gives a clear usage constraint: 'give exactly one of layer / names'. This tells the agent when to use which parameter and implies mutual exclusivity. It doesn't explicitly name alternatives or when-not-to-use, but the instruction is actionable and context-rich.

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

set_orientationA

Switch the sheet to "landscape" or "portrait"; the plan is re-placed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
orientationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose a meaningful side effect: 'the plan is re-placed automatically.' However, it does not mention whether the change is reversible, whether existing content is preserved, or what the output schema contains. The disclosed behavior is helpful but incomplete.

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

Conciseness5/5

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

The description is a single sentence that front-loads the action and the allowed values, then adds the key behavioral note about automatic re-placement. Every word earns its place; there is no 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?

The tool is simple (one required enum parameter) and has an output schema, so the description need not explain return values. However, the 'page' parameter is undocumented in the description, and there is no guidance on when to use this tool versus related sheet tools. For a simple tool this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the 'orientation' parameter by listing its two enum values, which adds meaning. However, the 'page' parameter is not mentioned at all, leaving the agent to infer its purpose from the schema alone. The description partially compensates but leaves a gap.

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 ('Switch') and resource ('the sheet'), and names the two allowed values ('landscape' or 'portrait'). It is clear what the tool does, though it does not explicitly distinguish it from sibling tools like set_page_size or set_scale, which are also sheet-related.

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?

The description implies the tool is used when the user wants to change sheet orientation, and the automatic re-placement of the plan is a useful contextual hint. However, it does not explicitly state when to use this tool versus alternatives like set_page_size or set_scale, nor does it mention any prerequisites or exclusions.

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

set_page_sizeB

Change the sheet format (A4, A3, A2, A1); the plan is re-placed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sizeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

The description voluntarily discloses an important side effect: 'the plan is re-placed automatically.' With no annotations provided, this is useful behavioral context, but it does not mention other potential effects or required permissions. For a simple mutation this is adequate but not rich.

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

Conciseness5/5

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

A single sentence states the operation, the accepted values, and the key automatic behavior with no wasted words. The essential information is front-loaded.

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?

For a simple setter the description covers the core operation and one side effect, and an output schema exists so return values need not be described. However, the unexplained 'page' parameter and absence of any annotation safety hints leave a meaningful gap for an agent deciding whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives context for the required 'size' parameter by listing the allowed formats, but it never explains the optional 'page' parameter, which is part of the schema and may be significant in multi-sheet documents. Thus it only partially compensates for the lack of schema 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 uses a specific verb ('Change') and a clear resource ('sheet format'), and it enumerates the supported sizes (A4, A3, A2, A1), so an agent knows what operation is offered. It does not explicitly contrast itself with sibling sheet-related tools like set_orientation or set_scale, so it stops short of full differentiation.

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?

The intended use is implied: call this when the sheet format needs to be changed. However, there is no explicit guidance about when to prefer it over alternatives, nor any exclusions or prerequisites, which the sibling set of sheet-related tools would benefit from.

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

set_propertiesA

Change the BIM properties of a door/window block (mark, height, sill [windows], material, description) or of a room label (name, usage, floor_finish, description). Heights and sills in mm. After changing a height or sill, call create_walls_3d again to update the 3D.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
propertiesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses that the tool mutates BIM properties, that heights and sills are expressed in millimeters, and that height/sill changes require regenerating the 3D model via create_walls_3d. This goes beyond the bare 'change' semantics and helps the agent anticipate downstream effects.

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

Conciseness5/5

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

Three short sentences deliver all essential information: target objects, editable properties, units, and the required follow-up action. There is no filler, and the most important information is front-loaded.

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 a two-parameter tool with a generic properties object, the description covers the key decision points: which elements can be edited, which fields are accepted, unit conventions, and the need to regenerate 3D walls after dimensional changes. The missing behavior around invalid names or unknown property keys is a minor gap, and the output schema helps cover return expectations.

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?

The schema provides no descriptions and the properties parameter is an untyped object with additionalProperties, giving 0% schema coverage. The description compensates well by listing the valid property keys per target type (mark, height, sill, material, description for doors/windows; name, usage, floor_finish, description for room labels). It could be even stronger with value type constraints, but it gives the agent a working vocabulary for the tool.

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 states an explicit verb ('Change'), specific resources (door/window block or room label), and enumerates the exact properties that can be set. This distinguishes it clearly from sibling tools like set_wall_type, which target wall types rather than BIM elements or labels.

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 gives clear context about what the tool is for and provides a concrete follow-up instruction: after changing height or sill, call create_walls_3d again to update the 3D model. It does not explicitly mention when not to use this tool or recommend an alternative, but its scope is well defined by the listed target objects and properties.

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

set_scaleB

Change the print scale ("1:50", "1:100"...). The result warns if the plan no longer fits or if the dimensions/texts are too small to read at that scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
scaleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose that the result warns about plan fit and text legibility, which is useful. However, it does not state side effects, scope of change (page vs document), or whether the operation is reversible.

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

Conciseness5/5

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

The description is short, front-loaded with the action, and includes only relevant details: scale value formats and the warning behavior. Every clause adds value.

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?

The description is adequate for a simple setter: it explains the action, provides value examples, and notes warnings. However, the undocumented page parameter and lack of usage guidance leave clear gaps, even though an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides meaningful examples for the scale parameter ('1:50', '1:100'), but the optional page parameter is completely undocumented, leaving agents unable to determine its purpose or acceptable values.

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 action ('Change the print scale') and the resource ('print scale') with concrete examples. It does not explicitly contrast with sibling tools such as set_page_size or set_orientation, but 'print scale' is clear enough to avoid most ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like set_page_size or set_view, and no prerequisites or exclusions. The warning clause describes outcome, not usage context.

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

set_viewA

Turn the FreeCAD 3D view like the navigation cube: top (plan view, the default), front, rear, left, right, bottom or isometric. rotation = extra turn in degrees in the screen plane (positive = the drawing turns counter-clockwise, i.e. to the left). fit=True also zooms to show the whole drawing. This only moves the camera; the drawing itself is unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNo
rotationNo
orientationNotop

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The description explicitly states that the tool only moves the camera and does not modify the drawing, which is important behavioral context. It also explains the rotation direction (positive = counter-clockwise) and fit behavior. No annotations are provided, so the description carries the full burden, and it does so well.

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

Conciseness5/5

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

The description is concise and front-loaded: it states the main action first, then explains parameters and side effects. Every sentence adds value, and there is no redundancy with the schema.

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?

The description covers the tool's behavior, parameters, and side effects. It doesn't mention return values, but an output schema exists, so that's not required. It could be more explicit about when to use this tool vs position_view, but overall it's complete for an agent to call it 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 description coverage is 0%, so the description must compensate. It explains the meaning of rotation (extra turn in degrees, positive = counter-clockwise) and fit (zooms to show whole drawing), and lists the valid orientation values. It doesn't explicitly describe the orientation parameter's default, but the schema already provides that.

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 purpose: turning the FreeCAD 3D view to a specified orientation (top, front, rear, left, right, bottom, isometric), with optional rotation and fit. It uses a specific verb ('Turn') and resource ('FreeCAD 3D view'), and distinguishes itself from sibling tools like position_view by focusing on camera orientation rather than placement.

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 explains the effect of each parameter (rotation, fit) and clarifies that it only moves the camera, not the drawing. It doesn't explicitly state when to use this tool vs alternatives like position_view, but the context is clear enough for an agent to infer when to use it.

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

set_visibilityC

Show or hide a layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerYes
visibleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It only states the action (show/hide) without mentioning side effects, reversibility, interactions with other layers, or the output format. It does not contradict annotations (there are none), but it also fails to provide any meaningful behavioral detail beyond the obvious action.

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, concise sentence with no wasted words. It front-loads the action and is efficient. However, it is so brief that it sacrifices essential information, but for a tool this simple, the conciseness is acceptable. It could be improved by adding a second sentence with parameter details.

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

Completeness2/5

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

The tool has 2 required parameters with no descriptions, and the description provides no guidance on how to call it. There is a known output schema, but the description does not mention what the tool returns. Given the simplicity of the tool, a slightly longer description could easily cover the missing parameter and usage context, but it currently leaves the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source for parameter semantics. It does not mention 'layer' or 'visible' at all, leaving the agent to rely solely on the schema's field names and types. There is no added meaning about what values are expected, what 'visible' controls, or any relationships between parameters.

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 clear action ('show or hide') and a clear object ('a layer'), which is specific enough to distinguish it from sibling tools that set other properties (e.g., set_properties, set_layer). It clearly communicates the tool's core function without ambiguity. However, it could further clarify the scope (e.g., whether it affects only the current view), so it doesn't earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is zero guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or any conditions under which using this tool is appropriate. No sibling references or context are provided, leaving the agent to infer usage entirely.

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

set_wall_typeA

Describe the walls of a layer for the schedules and the IFC export: type name, material, fire rating (e.g. "REI 60"), finish, load_bearing. Defaults: murs = Mur, Maçonnerie, load-bearing; cloisons = Cloison, Plâtre. Only the given fields change.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
layerNomurs
finishNo
materialNo
fire_ratingNo
load_bearingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

There are no annotations, so the description carries the full behavioral burden. It adds useful update semantics ('Only the given fields change') and documents defaults for murs and cloisons. However, it does not disclose potential side effects on existing walls, required existing layers, validation behavior, or error cases, which would be valuable for a mutation tool.

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

Conciseness5/5

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

The description is compact and front-loaded: purpose, field list, defaults, and update behavior are each covered in a single dense sentence. Every sentence earns its place and there is no filler or repetition of schema 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 a six-parameter mutation tool with no annotations and zero schema description coverage, the description covers the essential facts: purpose, affected fields, defaults, and partial-update semantics. It could be more complete by pointing to get_wall_types for reading existing values or by explaining validation/error behavior, but nothing critical is missing for a basic invocation.

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%, so the description must compensate. It maps the parameters to real-world meaning (type name, material, fire rating, finish, load_bearing), provides a fire rating example ('REI 60'), and defines defaults per layer (murs = Mur, Maçonnerie, load-bearing; cloisons = Cloison, Plâtre). This goes well beyond the bare schema, though it leaves the exact semantics of the name parameter slightly implicit.

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 clearly states the resource being affected (walls of a layer), the purpose (schedules and IFC export), and the fields (type name, material, fire rating, finish, load_bearing). The verb 'describe' is a bit less direct than 'set' or 'update', but the tool name and field list resolve the intent. It does not explicitly differentiate from get_wall_types, but the write-focused wording is enough to avoid confusion.

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 gives clear context: use this when configuring wall type metadata for schedules and IFC export. It also clarifies partial-update behavior with 'Only the given fields change.' It does not explicitly mention alternatives or when not to use it, but the stated purpose is sufficiently clear for an agent to select it over read-style siblings like get_wall_types.

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

trimB

Trim a straight line: remove the part of target around the point pick, up to the nearest crossings with cutter (any line/polyline/rectangle).

ParametersJSON Schema
NameRequiredDescriptionDefault
pickYes
cutterYes
targetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the core mutating behavior ('remove the part of `target`'), which implies destructiveness, and it scopes the cutter type. However, it leaves open whether the operation is reversible, what happens if no crossing exists, or whether `pick` must lie on the target.

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

Conciseness5/5

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

A single 33-word sentence that front-loads the verb and resource, then explains the mechanism efficiently. The parenthetical '(any line/polyline/rectangle)' earns its place by clarifying the cutter's accepted types. No filler or restatement of the tool name.

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?

For a 3-required-param geometry tool with zero annotations and zero schema descriptions, the description covers the core operation and all parameter roles, and an output schema exists so return values needn't be explained. However, edge-case behavior (no crossing found, pick off the line), the pick coordinate format, and mutation semantics are unaddressed, leaving an agent to guess on failure paths.

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%, so the description must compensate, and it does: it assigns a clear role to each of the three parameters — `target` as the line being trimmed, `pick` as the reference point for the cut, and `cutter` as any line/polyline/rectangle boundary. It stops short of format details (e.g., pick's coordinate order), but the semantic roles are fully established.

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?

States a specific verb ('trim'), resource ('a straight line'), and the exact mechanism: remove the part of `target` around `pick` up to nearest crossings with `cutter`. The mechanics clearly separate it from siblings like `extend`, `offset`, or `mirror`, though it never names those alternatives explicitly, so it misses the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this tool over alternatives (e.g., `extend` for lengthening, `delete_object` + recreate for removing a line). No prerequisites are stated (e.g., cutter must intersect target), and there are no when-not-to-use indications. The usage context is only implied by the procedural mechanics.

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

update_textA

Change the string of an existing text (name from get_texts), keeping its anchor and alignment.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations present, the description must carry the behavioral burden. It discloses the mutation ('change the string') and adds a useful preservation detail ('keeping its anchor and alignment'), but it does not reveal what happens to other text properties, whether the update is destructive, or what kind of response to expect.

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

Conciseness5/5

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

The entire description is a single efficient sentence with the key action and resource front-loaded)Skiphen the parenthetical supplies the necessary provenance for the identifier. There is no filler or repetition of schema field names.

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?

The tool takes only two simple string parameters and has an output schema, so the description does not need to explain return values. It gives the source for the identifier and states the preserved attributes, making the operation reasonably clear. It might benefit from a note on other affected properties, but that is a minor gap for this complexity.

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%, so the description must compensate. It does so by explaining that 'name' is an identifier originating from get_texts and that 'text' is the new string value. This is meaningful semantic guidance beyond the raw schema labels 'Name' and 'Text'.

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 uses a specific verb-resource pair ('Change the string of an existing text') and clearly distinguishes this from sibling tools like create_text by emphasizing it operates on an existing text object. The parenthetical 'name from get_texts' further anchors the resource identity, leaving no ambiguity about what the tool is for.

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 clear context by instructing the agent to obtain the 'name' from get_texts, which routes usage to the correct workflow. While it doesn't explicitly state when not to use this tool versus create_text, the word 'existing' and the named source make the appropriate use case clear.

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

update_title_blockC

Change fields of the sheet's title block (only the given ones).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
pageNo
titreNo
clientNo
indiceNo
numeroNo
projetNo
adresseNo
dessineNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It does disclose one important behavior—only supplied fields are changed—but it does not clarify whether null values clear a field, what happens if no title block exists, or what side effects occur.

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 front-loaded sentence with no filler or repetition. It is appropriately compact, though it errs on the side of under-specification.

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

Completeness2/5

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

For a 9-parameter mutation with no annotations and no parameter documentation, the description is too thin. The presence of an output schema covers return values, but an agent still lacks guidance on when to use add vs update and how to handle null fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for 9 parameters, yet the description adds no meaning about individual fields. French names like 'indice' and 'dessine' are ambiguous without field-level explanations, so an agent cannot confidently map parameters to intent.

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 clearly states a specific action (change fields) and a specific resource (the sheet's title block), and the parenthetical 'only the given ones' conveys a partial-update scope. It is distinguishable from sibling add_title_block through the update-vs-add wording, though it never names the sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool instead of add_title_block, whether a title block must already exist, or any prerequisites. The agent must infer usage from the tool name.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 77 tool updatesv0.1.0
    • First observedadd_plan_view
    • First observedadd_title_block
    • First observedclear_3d
    • First observedcopy_level
    • First observedcopy_object
    • First observedcreate_arc
    • First observedcreate_circle
    • First observedcreate_door_2d
    • First observedcreate_drawing_page
    • First observedcreate_fill
    • First observedcreate_hatch
    • First observedcreate_layer
    • First observedcreate_level
    • First observedcreate_line
    • First observedcreate_note
    • First observedcreate_partition_2d
    • First observedcreate_polyline
    • First observedcreate_rectangle
    • First observedcreate_roof
    • First observedcreate_room_label
    • First observedcreate_slab
    • First observedcreate_stair
    • First observedcreate_stairs_3d
    • First observedcreate_text
    • First observedcreate_wall_2d
    • First observedcreate_wall_loop
    • First observedcreate_walls_3d
    • First observedcreate_window_2d
    • First observeddelete_object
    • First observeddimension_aligned
    • First observeddimension_angle
    • First observeddimension_chain
    • First observeddimension_exterior
    • First observeddimension_horizontal
    • First observeddimension_linear
    • First observeddimension_room
    • First observeddimension_vertical
    • First observedexport_dxf
    • First observedexport_ifc
    • First observedexport_pdf
    • First observedexport_schedule
    • First observedexport_svg
    • First observedextend
    • First observedfill_walls
    • First observedget_bounds
    • First observedget_document
    • First observedget_layers
    • First observedget_levels
    • First observedget_object_geometry
    • First observedget_objects
    • First observedget_schedule
    • First observedget_selected_objects
    • First observedget_sheet
    • First observedget_texts
    • First observedget_wall_types
    • First observedmerge_walls
    • First observedmirror
    • First observedmove_object
    • First observedoffset
    • First observedping
    • First observedposition_view
    • First observedrotate_object
    • First observedset_active_level
    • First observedset_geometry
    • First observedset_layer
    • First observedset_line_style
    • First observedset_line_width
    • First observedset_orientation
    • First observedset_page_size
    • First observedset_properties
    • First observedset_scale
    • First observedset_view
    • First observedset_visibility
    • First observedset_wall_type
    • First observedtrim
    • First observedupdate_text
    • First observedupdate_title_block

TDQS

B3.2/5.0

Scored across 77 tools

Disambiguation4/5

Most tools target a distinct resource and action, but there are overlapping clusters: seven dimension tools, three fill/hatch tools, and three wall creation tools. The detailed descriptions disambiguate them, though an agent could still misselect between dimension_variant or fill_walls vs create_hatch.

Naming Consistency5/5

All tools use a consistent verb_noun snake_case pattern, including dimensional variants (dimension_vertical, dimension_aligned) and level/export names. The few single-verb tools (mirror, offset, trim, extend) are conventional imperative commands and do not break the pattern.

Tool Count2/5

77 tools is far beyond the well-scoped 3-15 range and the 25+ threshold, making the surface heavy. The broad architectural/BIM domain justifies some size, but this is still an extreme count that risks overwhelming agents and consuming context.

Completeness4/5

The tool surface covers the full lifecycle for the domain: create/get/update/delete for objects and levels, walls, doors/windows, stairs, 3D extrusion, schedules, and many export formats. Minor gaps exist (no delete_level, no door/window width update), but these can be worked around with existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables control of FreeCAD CAD software from Claude Desktop through natural language commands. Supports creating, editing, and managing 3D objects, executing Python code, and generating screenshots of designs.
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables to control FreeCAD from Claude Desktop through MCP, allowing CAD operations like creating and editing objects, taking screenshots, and executing Python code.
    11
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables Claude Desktop to control FreeCAD for 3D CAD modeling, including creating, editing, and deleting objects, executing Python code, and running FEM analyses.
    14
    MIT