Skip to main content
Glama
U-C4N
by U-C4N

AutoCAD MCP Pro

Production-grade AutoCAD automation for AI agents. Live through COM on Windows, or headless through ezdxf anywhere — one typed contract, two engines.

CI PyPI Downloads Python 3.11+ License: MIT

Install · Tools · Engines · Evidence · Limits · Config · Changelog

Not a mockup. Every line on this sheet was drawn by the tools this server exposes — ISO layers, involute gear geometry, DIN 6885 keyway, section A-A, ISO 129 dimensions, an ISO 286 H7 bore fit, ISO 7200 title block — then rendered headlessly by view_screenshot. drawing_critique returns 0 issues on it. Rebuild it with python scripts/render_readme_showcase.py.

v1.5 release snapshot: 154 tools · 6 resources · 5 prompt templates · 1369 collected tests. 154 is the registered count; a default install advertises 149 over tools/list, because ENABLE_3D is unset. system_about is the runtime authority.

Why this exists

A big MCP server is expensive to be connected to. The full catalog costs a client 40,305 tokens before it has asked for anything. Discovery mode replaces it with two tools and costs 356.

A drafter searches for FILLET, not entity_fillet. Those command names appeared in no tool name or description — df = 0 against a stock index, not badly ranked but absent. The fix was data: an authored corpus of 158 AutoCAD command names and 672 synonym phrases covering all 154 tools. A test refuses to let a tool exist without one.

Advertised surface

Tools seen

Idle cost

TOOL_PROFILE=full (default)

149

40,305 tokens

TOOL_PROFILE=lean

47

12,131 tokens

DISCOVERY_MODE=search

2

356 tokens

NOTE

Offline ratio estimates, not tokenizer counts, and theuncached ratio — prompt caching amortises the idle term. benchmarks/token_suite.py --tokenizer anthropic counts for real.

Related MCP server: multiCAD-mcp

Install

pip install autocad-mcp-pro     # or: uvx autocad-mcp-pro
autocad-mcp                     # stdio MCP server, backend auto-selected
AUTOCAD_MCP_BACKEND=ezdxf autocad-mcp    # portable DXF engine, no AutoCAD needed
AUTOCAD_MCP_BACKEND=com   autocad-mcp    # live AutoCAD (needs the [com] extra)

Extra

Pulls in

For

(none)

fastmcp, ezdxf, pydantic

Headless DXF on any OS — no rendering

[com]

pywin32, Pillow

Live AutoCAD control + window capture

[pdf]

matplotlib

PDF export and headless PNG, any platform

[full]

everything above

Development and CI

NOTE

The bare installcannot draw pixelsezdxf.addons.drawing imports Pillow unconditionally, so every render path needs it. Add [pdf] for images on Linux or macOS.

{
  "mcpServers": {
    "autocad": {
      "command": "autocad-mcp",
      "env": {
        "AUTOCAD_MCP_BACKEND": "auto",
        "ALLOWED_PATHS": "C:\\Users\\you\\Documents\\AutoCAD",
        "TOOL_PROFILE": "full",
        "DISCOVERY_MODE": "off"
      }
    }
  }
}

Claude Desktop, Cursor, or any stdio MCP host. For HTTP: autocad-mcp --transport http --port 8000 — loopback only unless remote HTTP is explicitly enabled and a bearer token is set.

What you get

Area

What it does

Drawing lifecycle

create, open, save, export DXF/PDF, audit (repairs), purge, undo/redo

Geometry

lines, arcs, polylines, splines, hatches, trim/extend/fillet/chamfer, handle-preserving edits

Annotation

ISO 129 toleranced dimensions, ISO 286 fits (fit="H7"), TABLE, MLEADER, GD&T frames and datums (ISO 1101)

Engineering generators

involute gears (front + section A-A), DIN 6885 keyed bores, ISO A3 title block

Discovery

search_tools ranked over an AutoCAD command and synonym corpus — FILLET, BPOLY, QSELECT, WBLOCK, OVERKILL, CHSPACE each rank #1 of the 149-tool advertised catalog

Batching

cad_batch runs a step list in one round trip; fields= projects 11 result-heavy tools

Paper space

tab lifecycle, viewports, entity_change_space (CHSPACE), drawing_export_pdf(layout=…)

Selection

window vs crossing stated back to the caller; a polygon tested against its own shape, not its bounding box

Boundaries

boundary_trace (BOUNDARY/BPOLY) chains loose edges into one closed polyline, arcs kept as bulges (headless)

Measurement

analysis_measure_entity measures what is in the drawing, by handle

Hatch depth

gradients, in-place edits, typed edge boundaries (headless), island styles

Annotation objects

WIPEOUT, REVCLOUD, MTEXT background masks (headless), text find/replace

3D solids

solid_box/cylinder/extrude/revolve/boolean on live AutoCAD (ENABLE_3D=true)

Quality loop

drawing_preflightdrawing_plandrawing_critiquedrawing_refinedrawing_finalize (0–100 score)

Delivery

drawing_deliver: DXF/PDF/PNG + SHA-256 manifest + reopen-parity checks

154 tools in 19 groups. Plus 6 resources that cost nothing in the tool budget (autocad://drawing/info, layers, blocks, entities/stats, entities/{layer_name}, system/status) and 5 prompt templates.

Two rules worth knowing. Every coordinate in and out of a tool is WCS on both engines — the one exception is TEXT rotation, which stays in the entity frame because a mirrored TEXT is mirror-imaged and no scalar angle expresses that. And never read vertices back and shoelace them: that loses 28.2% of the area on a semicircular edge, silently. analysis_measure_entity(handle) reads the real geometry and states its own accuracy.

The two engines

One contract across 19 modules in backends/contracts/. @capability(key, reason=…) supplies a default that refuses, and a test holds both backends' capability key sets equal. There are 27 capability keys; read system_capabilities at runtime rather than trusting the table — five of them depend on how the machine is set up.

Capability

COM (live AutoCAD)

ezdxf (headless)

Live document control

Cross-platform, no AutoCAD

Transactions and rollback

Paper-space layouts + viewports

Viewport model-content rendering

✅ ᵐ (no borders)

Selection window / crossing / polygon

Entity area by handle

ActiveX .Area

Analytic, bulges included

HATCH filled area (islands subtracted)

AutoCAD's own number

Loops walked, hatch_style reported

REGION / 3DSOLID area

ACIS is opaque to ezdxf

3D solids

with ENABLE_3D=true

DWG write

WIPEOUT · MTEXT background colour

verified absent, AutoCAD 2026

REVCLOUD · BPOLY · typed hatch edges

no ActiveX member

CHSPACE

unverified on a live seat

✅ ᶜ

Undo history

opt-in — EZDXF_UNDO_DEPTH

TABLE and MLEADER

Native

Portable composite

Screenshots and PDF

Window capture

Matplotlib ᵐ

ᵐ Needs matplotlib ([pdf]/[full]); without it png, pdf, viewport_render and handle_overlay report unsupported headlessly. ᶜ Headless CHSPACE carries four named restrictions in its capability reason: top-view untwisted viewports only, dimensions refused unless frozen, ACIS/proxy/table refused, viewport clipping reported rather than applied.

IMPORTANT

Every COM path added in v1.5 was executed against alive AutoCAD 2026. That run found four defects reading could not — the largest being that AcadPViewport has no ViewCenter member, so the line setting it had been silently swallowed by a bare except since v1.4.

Evidence

Self-measurement, produced by scripts in benchmarks/.

Correctness — every release re-proves itself

26 deterministic headless checks against the previous tag and the current tree, each in its own subprocess so a hard crash counts as a miss rather than killing the run.

Version

Checks passing

Pass rate

Fixed

Regressed

v1.5.0 (baseline)

24 / 26

92.3 %

v1.5.1 (this release)

26 / 26

100 %

2

0

Against the older v1.4.0 baseline the same suite reports 21 / 26 → 26 / 26, five fixed, zero regressed. Three of the five are new capability (miss → pass); two are repaired defects (fail → pass) — the diameter and radius callouts, which measured the leader as geometry and dimensioned a 40 mm bore as 60 at default settings.

The task matrix — five tasks that can fail

An earlier matrix scored this server 10/10, which carried no information: every task in it exercised something the server was built around. Five were added because they can fail, and three did while being written.

Task

Verified against

tool_discovery

six AutoCAD command names, each ranking #1

token_budget

40,305 → 356 tokens, against a ceiling fixed in advance

hatch_islands

300 filled with the island, 400 ignoring it

selection_filter

window 1, crossing 2, bounding box 3, polygon 1

measure_from_handle

139.2699 against the 100.0 a vertex shoelace gives

Headless performance

Workloads call the same backend methods the MCP tools call, so server-side overhead is included. Numbers move with hardware; the report records the machine fingerprint. Read the next section before quoting them — this release is slower than v1.4.0 at creating entities, on purpose.

What this release is bad at

A page that only lists strengths is a page that has not been measured.

Entity creation is slower than v1.4.0. Median of three runs on one machine and interpreter: 2,000 lines 1.4× slower, the 10,000-line roundtrip 2.3× slower. Attributed — setting EZDXF_CALL_TIMEOUT=0 returns creation to v1.4.0's numbers. The cost is the per-call asyncio.wait_for wrapped around every headless call so one hung call can no longer wedge a server whose document lock is a single asyncio.Lock. Deliberate trade, documented knob, on the 1.6 roadmap. The premium quality pass went the other way — 3.7× faster.

Wave A shipped 13 tools of a planned 39. Every cut is backed by a measurement. The REGION and 2D-boolean family went because add_region() produces a REGION with zero ACIS bytes, and the greiner_hormann substitute loses 28.2% of the area on a square with one semicircular edge.

system_run_command / system_run_lisp are a guardrail, not a security boundary — the rejection message says so in those words. A 36-verb denylist refuses the obvious cases, but AutoCAD accepts hundreds of commands and DANGEROUS_COMMANDS_ENABLED=true switches it off entirely.

Path validation is per-tool, and unscoped until you scope it. With ALLOWED_PATHS empty — the default — the only positive bound is a ten-entry system-directory denylist that does not include C:/Users, /home, /root or /var. Set ALLOWED_PATHS.

Non-AutoCAD ProgIDs are unverified. CAD_PROGID changes which COM application the backend attaches to; nothing beyond the connection has been tested against BricsCAD, ZWCAD or GstarCAD.

Configuration

Nothing loads a .env file — export these, or set them in your MCP client's env block.

Variable

Default

Purpose

AUTOCAD_MCP_BACKEND

auto

auto, com, or ezdxf

CAD_PROGID

AutoCAD.Application

COM ProgID the live backend attaches to

TOOL_PROFILE

full

lean (47 curated tools) or full

DISCOVERY_MODE

off

search replaces the catalog with search_tools + call_tool

ENABLE_3D

false

Expose the opt-in solid_* tools (COM)

LOG_LEVEL

INFO

Python logging level

ALLOWED_PATHS

(empty)

Comma-separated absolute paths the server may access

MAX_UNDO_STACK

5

Maximum retained undo snapshots

EZDXF_UNDO_DEPTH

0

Headless undo history depth; 0 disables it

MAX_DXF_BYTES

52428800

Reject larger DXF input; 0 disables

MAX_LIST_LIMIT

5000

Bound list/selection response sizes

COM_CALL_TIMEOUT

60

Per-call live AutoCAD timeout (s); 0 disables

EZDXF_CALL_TIMEOUT

120

Per-call headless timeout (s); 0 disables

DANGEROUS_COMMANDS_ENABLED

false

Allow blocked commands/LISP; reported as unsafe mode

ALLOW_REMOTE_HTTP

false

Permit a non-loopback HTTP bind

MCP_AUTH_TOKEN

(empty)

Bearer token required for remote HTTP

Architecture

flowchart LR
  A[MCP host / AI agent] --> B[FastMCP 3 server]
  B --> C[Error · audit · timing · logging · capability-refusal middleware]
  C --> D[Typed contract · 19 modules · 27 capabilities]
  D --> E[COM backend<br/>single-STA thread]
  D --> F[ezdxf backend<br/>asyncio.to_thread]
  E --> G[Live AutoCAD]
  F --> H[Headless DXF]
  E --> I[Engineering · critique · scoring · delivery]
  F --> I

The sequence in scripts/render_readme_showcase.py, which produced the hero sheet:

drawing_new()                                    ISO linetypes + layers bootstrapped
drawing_apply_iso_layers("mech")                 ISO 128 lineweights per layer
drawing_settings({units: "mm", linear_precision: 2})

gear_draw_spur_front_view(                       involute flanks, not a decorated circle
    module=6, teeth=24, center=[135, 172],
    bore_diameter=40, keyway_width=12, keyway_depth=3.3)
gear_draw_section_aa(x_offset=300, face_width=46)

dimension_linear(...)                            ISO 129
dimension_diameter(..., fit="H7")                deviations from authored ISO 286 tables
titleblock_apply_iso_a3(title="SPUR GEAR m6 z24", material="C45E", ...)

drawing_critique(focus=None)                     -> []  must be empty before finalize
view_screenshot()                                -> PNG

The full production loop adds drawing_preflight and drawing_plan at the front, drawing_refine after the critique, and layout_create + viewport_create + drawing_deliver at the end.

Development

uv sync --locked --all-extras
uv run pytest
uv run ruff check . && uv run ruff format --check .

uv.lock pins the whole transitive graph, so this reproduces CI exactly. CI runs Linux (3.11 / 3.12), Windows (mocked-COM), plus package, Docker and MCP-registry jobs; the release gate runs the same three test lanes before anything reaches PyPI. Releases are tag-driven: git tag vX.Y.Z && git push origin vX.Y.Z.

Roadmap (1.6)

Give back the creation throughput the per-call timeout costs — arm it only for calls that can actually block. ISO 286 interference shafts r/s/t/u. HATCH boundary geometry in entity_get (1.5 measures a hatch's filled area but does not hand back its loops). REGION/3DSOLID area headlessly, which needs a modelling kernel ezdxf does not have. An allowlist of permitted AutoLISP heads, replacing the denylist — enumerating dangerous symbols does not terminate. ezdxf.recover as a fallback on drawing_open.

Features ship when their contracts and limitations are testable — not when they make a longer checklist.

Star History

Star History Chart

Author

Umutcan Edizsalan · Mechanical engineering work at Anka-Makine · GitHub @U-C4N

Built from production drawing work, then made model-agnostic through MCP.

License

MIT

mcp-name: io.github.u-c4n/autocad-mcp

Available Tools

149 tools
analysis_bounding_boxDrawing Bounding BoxA
Read-only

Get the bounding box (extents) of all entities in the drawing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

The description ('Get') aligns with the readOnlyHint annotation, but it does not disclose additional behavioral traits such as the format of the bounding box (e.g., coordinate order or units). The annotation already covers the safety profile, so the description adds minimal extra context beyond confirming the read 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?

A single, complete sentence that conveys the tool's purpose without unnecessary words. It is front-loaded and efficient.

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 is sufficient for a simple query tool with no parameters and an expected output schema. It explains what the tool does, though it could mention the output format or coordinate system context. However, completeness is high 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?

There are no parameters, and the schema coverage is 100%. The description does not need to add parameter semantics. The baseline of 4 is appropriate for a parameterless 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 clearly states the action ('Get') and the resource ('bounding box of all entities in the drawing'). It is specific and distinguishes this tool from siblings like layout_list or analysis_measure_distance, which serve different purposes.

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 that this tool is for retrieving the overall extents of a drawing, but it does not explicitly state when to use it versus alternatives like analysis_measure_area or analysis_entity_stats. No exclusions or prerequisites are mentioned, leaving usage decisions to the agent.

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

analysis_entity_statsEntity StatisticsB
Read-only

Analyze the drawing and return entity counts grouped by type and by layer.

Returns: total_entities, by_type (sorted by count), by_layer (sorted by count). This is unique to AutoCAD MCP Pro – no other MCP server provides this!

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already declare readOnlyHint=true. Description adds that counts are sorted and output structure. No contradictions, but lacks disclosure of boundary conditions (e.g., behavior with empty drawings or performance).

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?

Three sentences, front-loaded with main action and output structure. The marketing sentence is slightly extraneous but not harmful. Efficient overall.

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?

With no parameters and an output schema, the description explains output format. However, it assumes knowledge of entity types and layer names; no mention of scope (all entities? visible only?). Still, fairly complete for a simple analysis 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?

No parameters, schema coverage 100% trivially. Description adds no parameter info, but baseline 3 is appropriate as schema already covers 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?

Clearly states it analyzes the drawing and returns entity counts grouped by type and layer, specifying the return structure. Sibling tools like analysis_layer_stats and analysis_select_by_type are differentiated by combining both groupings.

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 over alternatives. Despite marketing claim, it doesn't explain context or prerequisites. Missing explicit when-to-use or when-not-to-use information.

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

analysis_find_in_regionFind Entities in RegionA
Read-only

Find all entities within a rectangular region (crossing selection).

Uncapped: a window over a busy drawing returns every hit. Project with fields and/or compact before widening the window.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesRegion minimum X
x2YesRegion maximum X
y1YesRegion minimum Y
y2YesRegion maximum Y
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses the important uncapped behavior: 'a window over a busy drawing returns every hit.' It also suggests performance-oriented usage with fields/compact. This adds behavioral context without contradicting annotations.

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 only two sentences: a clear one-sentence definition followed by an actionable warning. It is front-loaded with the core purpose and contains no filler.

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?

Given the rich input schema, readOnlyHint annotation, and existence of an output schema, the description covers the critical non-obvious behavior (uncapped results) and mitigation. No major contextual gap remains for an agent to invoke the tool safely.

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 input schema already provides 100% description coverage for all six parameters, including details for x1/x2/y1/y2, fields projection, and compact envelope. The description's mention of fields/compact reinforces their use but adds no new parameter meaning beyond what schema states.

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 begins with 'Find all entities within a rectangular region', giving a specific verb and resource scope. The parenthetical '(crossing selection)' clarifies the selection semantics and distinguishes this analysis query from sibling selection tools like selection_window.

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 operational advice ('Project with fields and/or compact before widening the window') and warns about the uncapped result set, which implies when to use lightweight projections. However, it does not explicitly compare against sibling tools such as selection_window or entity_list, leaving the choice to the agent based on naming.

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

analysis_layer_statsLayer StatisticsA
Read-only

Return detailed statistics for each layer: entity count, types present.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

Annotations already provide readOnlyHint=true, and the description adds no further behavioral context (e.g., performance, auth, or side effects). It only restates the read-only nature implicitly.

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 with no extraneous words. Every word adds 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 the tool has an output schema, the description adequately covers what is returned (entity count, types present). It could mention scope (all layers or only those with entities), but is otherwise complete for its 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?

No parameters exist, so schema coverage is 100%. The description adds value by specifying that the output includes 'entity count, types present', which is not in 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 uses a specific verb 'Return' and resource 'statistics for each layer', and provides concrete examples 'entity count, types present'. It clearly distinguishes from siblings like analysis_entity_stats (per entity) and layer_list (list only).

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 for retrieving per-layer statistics, but does not explicitly state when to use this tool over similar siblings (e.g., analysis_entity_stats, layer_list) nor when not to use it.

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

analysis_list_propertiesList Entity PropertiesA
Read-only

AutoCAD's LIST: the full DXF attribute set for one handle.

dxf_attributes is the raw attribute set entity_get deliberately does not carry. Coordinates in it are WCS, like everywhere else in this server, and extrusion is reported so the entity's own frame is still visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesHandle of the entity to dump.

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?

Beyond the readOnlyHint annotation, the description discloses that coordinates are in WCS and that extrusion is reported, which is useful behavioral context. It does not contradict annotations and adds value by explaining a subtle coordinate frame detail.

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 exceptionally concise: two sentences that front-load the core purpose and then provide essential clarifications. Every sentence adds information and no words are wasted.

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 read-only single-parameter tool with an output schema, the description is complete. It explains the tool's raison d'être, differentiates from entity_get, and clarifies coordinate behavior. There is no missing critical context.

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 input schema already covers the only parameter 'handle' with a description. The tool description adds no further parameter detail beyond 'one handle', so schema coverage (100%) carries the load. Baseline 3 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 states the tool's function: returning the full DXF attribute set for a single handle, analogous to AutoCAD's LIST command. It distinguishes itself from sibling 'entity_get' by noting that 'entity_get deliberately does not carry' dxf_attributes, 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?

The description implies usage context by contrasting with entity_get: use this tool when you need the raw DXF attribute set that entity_get omits. It also provides coordinate system context (WCS). However, it does not explicitly list exclusions or when to prefer alternatives, so it falls short of a full 5.

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

analysis_measure_areaMeasure AreaA
Read-onlyIdempotent

Area and perimeter of a polygon you supply the vertices for.

This measures the numbers in the call, NOT the drawing. To measure something that exists, use analysis_measure_entity(handle) — it reads the real geometry, including curvature this tool can only see if you pass it.

Straight-edged polygons are exact. Pass a third bulge element per vertex for arc edges; omitting it on curved geometry under-reports (28% on a semicircular edge), which is why assumes says what was taken on faith.

ParametersJSON Schema
NameRequiredDescriptionDefault
pointsYesPolygon vertices, min 3. Each is [x, y] or [x, y, bulge] — the bulge (DXF convention) makes the edge leaving that vertex a circular arc.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Adds substantial context beyond annotations: it describes the non-drawing nature, the bulge parameter effect, exactness for straight edges, and a specific under-reporting example (28% on a semicircular edge). It also mentions `assumes` to convey what is taken on faith. No contradiction with readOnly/idempotent hints.

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 well-structured with three concise paragraphs: clear function statement, comparison to alternative, and accuracy caveats. Every sentence adds value, with no fluff or repetition.

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?

Covers purpose, usage, limitations, parameter semantics, and alternative tool. The tool is simple (one parameter) and the description is sufficiently complete for an agent to select and invoke it correctly, especially with output schema and annotations present.

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?

The description enriches the schema's `points` parameter by explaining the bulge (DXF convention), arc edge behavior, and warns about omitting bulge on curved geometry. This goes well beyond the basic schema definition.

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+resource: 'Area and perimeter of a polygon you supply the vertices for.' It clearly distinguishes from `analysis_measure_entity` by stating this tool measures the numbers in the call, not the drawing.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool vs. the alternative: 'To measure something that exists, use analysis_measure_entity(handle)...' and clarifies that this tool is for supplied vertices, not existing geometry.

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

analysis_measure_distanceMeasure DistanceA
Read-onlyIdempotent

Measure the Euclidean distance between two points.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesPoint 1 X
x2YesPoint 2 X
y1YesPoint 1 Y
y2YesPoint 2 Y

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond stating the action, but it does not contradict annotations. Thus, score 3 for not enhancing what annotations provide.

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

Conciseness5/5

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

Extremely concise: a single sentence that fully captures the tool's purpose with no unnecessary words. Perfectly 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?

Given the tool's simplicity, full parameter documentation, and an output schema (implied), the description is largely complete. However, it could optionally mention that the result is a scalar value, but this is a minor gap.

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 100%, with each parameter clearly described in the schema. The description adds no further meaning beyond the schema, so baseline score 3 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 states the tool measures Euclidean distance between two points, using a specific verb and resource. It is unambiguous and distinguishes itself from sibling tools like analysis_measure_area.

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 vs alternatives (e.g., analysis_measure_area or other measurement tools). Lacks context or exclusions, providing zero decision support.

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

analysis_measure_entityMeasure EntityA
Read-onlyIdempotent

Measure something already in the drawing, by handle.

Reads the real geometry, so polyline bulges (arc edges) are included — reading vertices back and shoelacing them yourself loses 28% of the area on a semicircular edge, silently.

Measurable: LWPOLYLINE, 2D POLYLINE, CIRCLE, ELLIPSE, SPLINE, HATCH, SOLID, TRACE, 3DFACE. REGION and 3DSOLID need the live COM backend (their area is in ACIS data ezdxf cannot evaluate) and refuse with capability: "measure_area_acis". LINE/TEXT/INSERT bound no area on any engine and are a plain error, not a capability gap.

The payload states its own accuracy: exact is false when the shape had to be flattened (then flatten_tolerance says how finely), assumed_closed is true when an open boundary was closed the way AutoCAD's AREA does, and self_intersecting warns when the shoelace cancelled crossed lobes — a bowtie measures 0.0 and that number is worse than useless unflagged.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesEntity handle (hex string) from create/list/select
flatten_toleranceNoMax chord deviation when geometry has no closed form (splines, partial ellipses)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations already mark readOnlyHint and idempotentHint, but the description adds substantial context: it reads real geometry including bulges, and it discloses accuracy flags (exact, assumed_closed, self_intersecting) with concrete implications (bowtie measures 0.0). It also clarifies platform dependencies for ACIS-backed entities. No contradiction with annotations.

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 long but tightly organized and front-loaded with the core action. Every paragraph adds necessary detail: supported types, error semantics, accuracy flags, and parameter implications. The use of paragraphs and explicit terms (exact, assumed_closed, self_intersecting) keeps it scannable without waste.

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?

Given the tool's complexity (multiple entity types, platform-specific behavior, accuracy nuances), the description is exhaustive. It covers what is measurable, what is not, how errors are surfaced, what accuracy flags mean, and how flatten_tolerance affects results. The output schema presumably details return fields, so no need to explain them in text.

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?

The schema has 100% parameter coverage, but the description enriches this by explaining flatten_tolerance's role in accuracy (how finely a shape is flattened and when it applies). It also ties handle to 'from create/list/select' in the schema, and the description clarifies that the measurement itself depends on the handle's entity. This goes beyond a bare baseline.

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 'Measure something already in the drawing, by handle,' which is a specific verb + resource + method. It then enumerates measurable entity types and contrasts with unsupported ones, making the tool's purpose and scope unmistakable. It also differentiates from siblings like analysis_measure_area by emphasizing handle-based measurement and including details about geometry accuracy.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use (you have a handle and want to measure a supported entity) and when-not-to-use guidance: REGION and 3DSOLID refuse with a capability gap flag, and LINE/TEXT/INSERT yield a plain error. It also references a manual alternative (shoelacing vertices) and explains why this tool is superior, giving clear decision support.

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

analysis_select_by_layerSelect Entities By LayerA
Read-only

Get all entities on a specific layer. Returns entity list with handles.

Capped at MAX_LIST_LIMIT (default 5000). The plain list cannot say it was capped — the warning goes to the log stream, which most clients never show the model — so use compact=True when the count matters: its total is the layer's real population and truncated states whether the cap fired.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
layer_nameYesLayer name to select entities from

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral traits: the MAX_LIST_LIMIT cap, the fact that the plain list cannot indicate truncation, the log-stream warning invisible to most clients, and the compact mode's 'total' and 'truncated' fields. This is rich, non-obvious context that significantly aids correct use.

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 well-structured: one sentence stating the core function, then a focused paragraph about the cap and the compact workaround. Every sentence earns its place, with no fluff or repetition.

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?

The tool is a read-only selection operation with an output schema, so the description need not explain return values. It covers the essential caveat (truncation) and gives explicit guidance for the common pitfall. Combined with the schema and annotations, the description makes the tool's behavior fully understandable.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the cap implications and why compact should be used when the count matters, supplementing the schema's already detailed compact parameter description. It does not add much for layer_name or fields, but the extra compact context justifies a slightly higher 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 'Get all entities on a specific layer,' a specific verb+resource that exactly matches the tool name. It also states the return type (entity list with handles) and differentiates from siblings like layer_list and analysis_select_by_type.

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?

Provides clear context for when to use the tool (to get layer entities) and gives a conditional usage guideline: 'use compact=True when the count matters.' However, it does not explicitly discuss alternatives or exclusions relative to sibling tools, 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.

analysis_select_by_typeSelect Entities By TypeA
Read-only

Get all entities of a specific type. Returns entity list with handles.

Capped at MAX_LIST_LIMIT (default 5000); as with analysis_select_by_layer, compact=True is the only shape that reports total and truncated.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
entity_typeYesEntity type: LINE, CIRCLE, ARC, LWPOLYLINE, TEXT, MTEXT, INSERT, HATCH, SPLINE, ELLIPSE

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behaviors: the result is capped at MAX_LIST_LIMIT (default 5000) and that only compact=True reports total and truncated. This lets the agent anticipate truncation and the difference in output shape, which is valuable contextual information.

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 core purpose, and every sentence carries useful information. The second sentence adds limit and compact behavior without redundancy, fitting within two concise paragraphs.

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?

The description, together with the rich schema and readOnly annotation, fully covers what an agent needs: what the tool does, what the output shape is (list with handles), limitations (cap), and the way to get truncation info. The presence of an output schema means return-value details are not required in the description.

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 input schema already provides 100% description coverage for all parameters, so the description does not need to add param-level details. It does add a note about compact behavior, but this does not extend the meaning of the schema parameters. This aligns with the baseline 3 for high schema 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 description clearly states 'Get all entities of a specific type' with a specific verb and resource, and mentions the output includes handles. This distinguishes it from siblings like analysis_select_by_layer by the selection criterion (type vs layer), making its 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 Guidelines3/5

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

The description conveys when to use the tool (when you need entities of a specific type) but does not explicitly contrast it with alternatives such as selection_filter or entity_list. The reference to analysis_select_by_layer is for behavioral similarity, not for guiding tool choice. Thus the usage context is clear but exclusionary guidance is missing.

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

block_create_from_entitiesCreate Block From EntitiesA

Create a new block definition from existing entities in the drawing.

Works on both engines. The originals stay in model space — this defines a reusable block from them rather than consuming them the way AutoCAD's BLOCK command does; use block_insert to place copies, and delete the originals yourself if you want the command's behaviour.

Handles that do not resolve are listed in skipped rather than silently dropped, and a call where none resolve fails instead of leaving an empty definition behind.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew block definition name
base_xNoBlock base point X
base_yNoBlock base point Y
handlesYesList of entity handles to include in the block

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, so the description carries the burden of behavioral disclosure. It explains that originals stay in model space, unresolved handles appear in `skipped`, and the call fails if none resolve — all valuable context beyond the annotation.

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 appropriately sized: three focused paragraphs. The first sentence states purpose, the second adds key behavioral contrast, and the third handles error semantics. Every sentence contributes without fluff.

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?

Given the tool's complexity (creating a block definition, 4 params, output schema present), the description covers all essential operational context: non-destructive behavior, alternative to AutoCAD BLOCK, skipped handles, and failure condition. No missing critical 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 100%, with each parameter (name, handles, base_x, base_y) already described meaningfully. The description adds no extra parameter-specific detail, so the baseline of 3 applies.

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+resource: 'Create a new block definition from existing entities in the drawing.' It clearly distinguishes itself from siblings like block_insert (placing copies) and the AutoCAD BLOCK command (which consumes originals).

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

Usage Guidelines5/5

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

Explicitly provides usage context: 'use `block_insert` to place copies, and delete the originals yourself if you want the command's behaviour.' This tells agents when to use this tool versus an alternative. Also notes 'Works on both engines,' giving compatibility guidance.

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

block_explodeExplode BlockA
Destructive

Explode a block reference into its individual component entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesBlock reference (INSERT) entity handle

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?

Annotations already indicate destructiveHint=true. Description adds minimal context beyond stating the operation; does not discuss irreversibility or needed 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?

Single sentence of 10 words, front-loaded with the core action. No wasted words.

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?

Given the tool's simplicity, single parameter, and presence of output schema, the description is complete and 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 provides 100% coverage with a clear description of the handle parameter. Description does not add additional semantic value beyond 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?

Description clearly states the verb 'explode' and the resource 'block reference', distinguishing it from sibling tools like block_insert or block_find_references.

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?

No explicit when-to-use or alternatives provided. Usage is implied but could benefit from guidance such as using transactions for undoability.

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

block_find_referencesFind Blocks By NameA
Read-only

Find all insert references to a specific block definition.

Bounded by the backend's own default entity_list page (200 INSERTs scanned), which is a pre-existing limit, not a new one: the compact envelope's total counts the references found within that scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBlock definition name to search for
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, so the safe-read nature is already known. The description adds meaningful behavioral detail about the scan limit and the meaning of the compact envelope's total, going beyond the annotation and helping the agent interpret results correctly.

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: the first states the purpose, the second a key caveat. No fluff, front-loaded, and 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?

With output schema present and annotations covering read-only behavior, the description covers the main behavior and limitation. It's complete enough for an agent to invoke correctly, though a tiny bit more detail on default behavior (e.g., what happens with no matches) would make it 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 coverage is 100%, with each parameter thoroughly described (e.g., fields projection syntax, compact envelope shape). The description supplements by explaining the scanning boundary and total semantics, adding context to the compact 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 specific verb and resource: 'Find all insert references to a specific block definition.' This clearly distinguishes it from siblings like block_list (which lists definitions) and block_insert (which creates references), so the agent understands exactly what this tool 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 implies usage for locating where a block is inserted, and adds a crucial limitation about the 200-INSERT scan bound, giving context for expected scope. However, it doesn't explicitly name alternatives or when-not-to-use, which keeps it just 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.

block_get_attributesGet Block AttributesA
Read-only

Get all attribute values from a block reference as {TAG: value} dict.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesBlock reference (INSERT) entity handle

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?

The description is consistent with the readOnlyHint annotation, indicating a read operation. It adds minimal behavioral context beyond what annotations already provide.

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

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. It could be slightly more structured, but it is concise and front-loaded with key 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 the tool's simplicity (one input, one output with schema), the description is largely complete. The output schema covers return values, so no additional explanation is needed.

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 100% for the single parameter 'handle', and the description does not add additional meaning beyond the schema's description. Baseline score of 3 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 states the verb 'Get', the resource 'attribute values from a block reference', and the output format '{TAG: value} dict'. It distinguishes from siblings like block_list and block_set_attributes.

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 when you have a block reference handle, but does not explicitly state when to use or not use this tool, nor mentions alternatives. It provides no exclusions or context for selection.

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

block_insertInsert BlockC

Insert a block and optionally set attribute values.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesInsertion X
yYesInsertion Y
nameYesBlock definition name
layerNoLayer name
scale_xNoX scale factor
scale_yNoY scale factor
rotationNoRotation angle in degrees
attributesNoAttribute values: {TAG: value}

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?

Annotations indicate readOnlyHint=false, and description says 'Insert,' implying mutation. However, no further details on side effects, required preconditions (e.g., block definition must exist), or error states.

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?

Single sentence, no wasted words. Could be slightly more informative while remaining concise.

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 complex mutation tool with 8 parameters and no output schema description, more context is needed. Lacks info on return value, block existence requirement, or behavior on failure.

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 100%, so baseline is 3. Description adds minimal value by mentioning optional attributes, but otherwise repeats schema info.

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 'Insert a block and optionally set attribute values,' using specific verb and resource. It distinguishes from sibling tools like entity_create_block_ref by mentioning attribute setting, but does not explicitly differentiate.

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 alternatives like entity_create_block_ref or block_list. No prerequisites or conditions mentioned.

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

block_listList BlocksA
Read-only

List all block definitions in the drawing (name, origin, attribute count, entity count).

Never truncated — the whole block table is returned — so a compact envelope here always reports truncated=false.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond the readOnlyHint annotation by disclosing that the output is never truncated, and it explains how the compact envelope always reports truncated=false. This adds valuable behavioral context about completeness and a specific output detail.

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 the primary purpose in the first and a key behavioral note in the second. It is concise, front-loaded, and contains no filler.

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?

The tool is simple with only two parameters, both fully documented in the schema, and an output schema is present. The description covers the essential behavior (listing all blocks, never truncating), making it complete without needing to explain return values.

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 input schema already provides 100% coverage of the two parameters, including descriptions and defaults. The tool description does not add any additional parameter-level meaning beyond what the schema offers, so it stays at the baseline for full schema 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 description clearly states the tool lists all block definitions in the drawing, enumerating specific attributes (name, origin, attribute count, entity count). It is distinct from sibling listing tools by targeting blocks specifically, making the verb+resource combination unmistakable.

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 establishes a clear use case: retrieving all block definitions. However, it does not explicitly mention alternatives or situations where a different tool would be more appropriate, so it lacks the explicit when-not-to-use guidance needed for a 5.

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

block_set_attributesSet Block AttributesA

Update attribute values in a block reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesBlock reference (INSERT) entity handle
attributesYesAttribute values to update: {TAG: new_value}

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?

Annotations already indicate readOnlyHint=false, so description's 'Update' is consistent. However, no additional behavioral context (e.g., error handling, what happens if attribute tag doesn't exist) is added beyond the annotations.

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?

Single sentence of 6 words is extremely concise. While efficient, it could add more structure or information without becoming verbose.

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?

Tool is simple with only 2 parameters and output schema exists, so description need not explain return values. However, side effects or prerequisites could be mentioned.

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 covers parameter descriptions fully (handle string, attributes object). Description adds no extra meaning beyond what schema provides.

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?

Description uses specific verb 'Update' and identifies resource 'attribute values in a block reference' clearly. It distinguishes from sibling tools like block_get_attributes (read) and block_create_from_entities (creation).

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 vs alternatives (e.g., block_insert, block_get_attributes). No conditions or exclusions provided.

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

boundary_from_entitiesBoundary from EntitiesA

Chain the given entities into one closed polyline.

The handles may arrive in any order — putting them in chain order is the tool's job. A chain that does not close is refused, and the error names the coordinates of the gap.

ParametersJSON Schema
NameRequiredDescriptionDefault
handlesYesHandles of the 2D entities that form the loop.
toleranceNoGap tolerance for joining endpoints.

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?

The description adds valuable behavioral context beyond annotations: handles may arrive in any order, the tool orders them, refuses non-closing chains, and names gap coordinates. Since annotations only provide destructiveHint=false, this information significantly helps the agent understand error 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 concise and front-loaded, with two short paragraphs covering the core action and key behavioral notes. There is no redundant wording 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?

An output schema is present, reducing the need to explain return values. The description covers the main workflow, order-independence, and error behavior. It could specify which entity types are accepted (e.g., lines, arcs) but overall is sufficiently complete for the tool's complexity.

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 input schema already fully documents both parameters (handles and tolerance). The description adds a relevant note about handle ordering but does not elaborate on the tolerance parameter's semantics beyond the schema's built-in 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 clearly states the tool's function: 'Chain the given entities into one closed polyline.' The specific verb 'chain' and resource 'entities into one closed polyline' distinguish it from sibling tools like boundary_trace or entity_create_polyline.

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 use case (entities forming a closed loop) but does not explicitly state when to use this tool over alternatives. It does not mention sibling tools or exclusion criteria, so usage context is only implicit.

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

boundary_traceTrace BoundaryA

AutoCAD's BOUNDARY/BPOLY: create a closed polyline around a seed point.

Returns the nearest enclosing loop, so a seed inside an island gives the island rather than the outer region. Straight edges are split where they cross, so a line drawn across a shape divides it the way it looks like it should. A seed with no enclosing loop is refused, and the error names the gap when the edges nearly close.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesSeed point X, inside the region to trace.
yYesSeed point Y, inside the region to trace.
layerNoOnly consider edges on this layer. Empty considers all.
toleranceNoGap tolerance for joining edges.

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?

The description goes well beyond the sparse annotations (only destructiveHint: false). It discloses that the tool creates an entity (polyline), explains the nearest-enclosing-loop behavior, edge-splitting behavior, and error conditions when no loop is found. This gives the agent crucial expectations for how the tool behaves in edge cases.

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 well-structured: a one-sentence introduction followed by three action-packed sentences describing behavioral nuances. No filler or redundant text; every sentence adds value for selection and usage.

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 is highly informative given the tool's complexity, covering creation, edge cases, and errors. It does not explain return values, but the presence of an output schema means that is not required. It could have mentioned prerequisites (e.g., existing geometry) but that is reasonably inferred. Overall, it is complete enough for an agent to select and invoke correctly.

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 100%, with clear parameter descriptions for x, y, layer, and tolerance. The description adds minimal semantic value by mentioning 'seed point' and edge-gap errors but does not elaborate on parameter formats or units. Since the schema already carries the parameter meanings, a baseline score of 3 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 states the tool creates a closed polyline around a seed point, explicitly referencing AutoCAD's BOUNDARY/BPOLY command. It distinguishes itself from sibling tools like boundary_from_entities (which likely creates boundaries from existing entities) by focusing on the seed-point method.

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 describing the seed-point workflow and the resulting boundary, but it does not explicitly state when to use this tool versus alternatives like boundary_from_entities or entity_create_polyline. There are no exclusions or named alternatives, so the guidance 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.

cad_batchBatch: Run ToolsA
Destructive

Execute an ordered list of tool calls in ONE round trip.

N calls collapse into one request/response pair, and bind lets a later step reference an earlier step's result so handles never have to be echoed back through the model.

steps=[
  {"tool": "entity_create_line",  "args": {...}, "bind": "edge"},
  {"tool": "point_from_snap",     "args": {"handle": "$edge", "snap": "mid"},
                                  "bind": "mid"},
  {"tool": "entity_create_circle","args": {"cx": "$mid.x", "cy": "$mid.y",
                                           "radius": 4}},
]

Successful steps report only their handle; pass verbose=True for the full result. Anything without a handle is returned whole.

VALIDATION runs first, always: an unknown tool, a schema-invalid argument or a reference no earlier step binds refuses the whole batch before anything executes. on_error governs run-time failures only. dry_run=True returns that validation report and executes nothing.

ERRORS are typed, never text: each failed step carries error.kind - one of unsupported (with the backend capability), invalid_args, refused, failed, unknown_tool, unresolved_ref, denied, malformed_step.

ATOMICITY is reported, not assumed. Read the atomicity block: on the headless backend rollback restores a full document snapshot; on live AutoCAD it sends an UNDO whose landing AutoCAD never confirms. The default on_error="stop" claims nothing and is exact on both.

NOT CALLABLE from a batch: the raw command/LISP escape hatches, and cad_batch itself. Call those directly.

For a few hundred entities of the same kind, entity_batch_create is denser still (no per-step tool name) - and it can be one step of a cad_batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYesOrdered steps. Each: {'tool': <tool name>, 'args': {...}, 'bind': <optional name>}. 'bind' names this step's result so a later step can reference it as '$name' (its handle), '$name.field' or '$name.list.0'. '$$' is a literal dollar sign.
dry_runNoValidate every step against its tool's real JSON Schema and execute nothing.
verboseNoReturn each step's full result instead of just its handle.
on_errorNostop (default): halt at the first failure, keep what already ran. continue: run every step. rollback: open a checkpoint first and undo on failure - read the returned `atomicity` block for what that is worth on this backend.stop

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

The description adds extensive behavioral detail beyond annotations: validation runs first, error types are typed, atomicity is reported but not assumed, and rollback behavior differs between backends. This goes far beyond the destructiveHint annotation and provides critical 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?

Although lengthy, every section earns its place: code example, validation semantics, error types, atomicity, exclusions, and alternative tools. The structure uses bold headers and a clear logical flow, making complex information digestible.

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?

The description covers all critical aspects of a complex orchestration tool: validation, error taxonomy, atomicity, dry_run, verbose, nesting limitations, and alternatives. With an output schema present, not detailing return format is acceptable. No gaps identified.

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 coverage is 100%, but the description enriches parameters with a concrete example, explains 'bind' referencing syntax ($name, $name.field, $name.list.0), and clarifies '$$' as a literal dollar sign. It also explains the semantics of on_error options like rollback and its caveats.

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 'Execute an ordered list of tool calls in ONE round trip,' which is a specific verb+resource statement clearly distinguishing it from other tools. It also names sibling tool entity_batch_create as an alternative, providing clear differentiation.

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

Usage Guidelines5/5

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

Explicitly states when to use cad_batch vs alternatives: 'For a few hundred entities of the same kind, entity_batch_create is denser still.' It also lists exclusions: 'NOT CALLABLE from a batch: the raw command/LISP escape hatches, and cad_batch itself. Call those directly.' This is exemplary usage guidance.

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

construction_clearConstruction: Clear (delete scaffold)A
Destructive

Delete every entity on the CONSTRUCTION layer. Idempotent. Must be called before drawing_finalize to satisfy construction_left critique.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoLayer to clearCONSTRUCTION

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?

Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds 'Idempotent' and the sequencing requirement, which are valuable behavioral details beyond what annotations provide. No contradictions.

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 action, no wasted words. Every sentence adds value: action, idempotency, and usage order.

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 covers the core action, idempotency, and order dependency. However, it doesn't clarify whether the 'layer' parameter changes which layer is cleared or always clears CONSTRUCTION, creating a slight ambiguity. Also lacks mentions of prerequisites like needing an open drawing, but that is somewhat assumed.

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 100% with the parameter 'layer' described as 'Layer to clear'. The description doesn't add new meaning beyond the schema, only mentioning the CONSTRUCTION layer in the action. Adequate but no extra value.

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 'Delete every entity on the CONSTRUCTION layer' with a specific verb and resource. It distinguishes itself from siblings like construction_xline (creates) and drawing_finalize (finalizes), leaving no ambiguity.

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 explicitly states 'Must be called before drawing_finalize to satisfy construction_left critique', providing clear when-to-use guidance. It doesn't discuss when not to use or alternative methods, but the context is sufficient for a cleanup tool.

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

construction_xlineConstruction: XLine (infinite reference)A

Create an infinite construction line on the CONSTRUCTION layer. Use as scaffolding; call construction_clear() before finalize.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesBase point X
yYesBase point Y
layerNoLayer for the construction lineCONSTRUCTION
angle_degYesAngle in degrees (0=horizontal, 90=vertical)

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?

Annotations only provide destructiveHint: false. The description adds that the line is on the CONSTRUCTION layer and intended as scaffolding, which provides behavioral context beyond annotations. However, it does not detail what happens when the tool is invoked multiple times or how the infinite line behaves.

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 only two sentences, front-loading the core purpose and then providing a key usage guideline. No redundant information.

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

Completeness5/5

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

Despite being brief, the description covers the tool's purpose, its intended use as temporary scaffolding, and how to clean it up. With an output schema present and simple creation semantics, this is complete for the agent's needs.

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 100%, so the schema already documents all parameters. The description does not add any additional parameter semantics beyond what is in the schema (e.g., no explanation of x, y, angle_deg formats).

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 action 'Create an infinite construction line' on a specific layer ('CONSTRUCTION'), distinguishing it from regular line creation tools like entity_create_line. The mention of 'scaffolding' and 'construction_clear()' further clarifies its role.

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 explicitly says 'Use as scaffolding' and instructs to call construction_clear() before finalizing, providing clear context for when to use this tool. It does not explicitly exclude other scenarios, but the guidance is sufficient for typical usage.

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

datum_featureGD&T: Datum Feature (ISO 1101)A

Place a datum feature symbol (filled triangle + boxed letter).

Establishes the datum so a feature control frame referencing this letter passes the gdt critique focus.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesDatum triangle apex X (on the referenced feature).
yYesDatum triangle apex Y.
sizeNoTriangle/label size (mm).
layerNoLayer (defaults to the active DIM layer).
letterYesDatum letter, e.g. 'A' (avoid I, O, Q per ISO 1101).

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?

Annotations already indicate non-destructive (destructiveHint=false). The description adds context about establishing a datum for critique, but does not disclose further behavioral details like impact on existing entities or prerequisites.

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, efficiently conveying the action and purpose with no extraneous words. The purpose 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 standardized GD&T symbol tool with good parameter descriptions and an output schema, the description sufficiently covers the tool's function and its role in the GDT workflow.

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?

Input schema has 100% coverage with clear descriptions for all parameters (x, y, size, layer, letter). The tool description does not add significant meaning beyond the schema, hence baseline 3.

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 it places a datum feature symbol with specific components (filled triangle + boxed letter) and relates it to GDT critique, distinguishing it from other drawing tools like dimensions or GD&T frames.

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 purpose of establishing a datum for GDT critique, giving clear context for when to use. However, it does not explicitly mention when not to use or alternatives.

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

dimension_alignedAligned DimensionB

Create an aligned dimension that measures the true distance between two points.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst point X
x2YesSecond point X
y1YesFirst point Y
y2YesSecond point Y
dim_xYesDimension line position X
dim_yYesDimension line position Y
layerNoLayer name

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 states 'Create', which indicates a write operation, consistent with the annotation readOnlyHint=false. However, no additional behavioral details are disclosed (e.g., that a dimension entity is added to the drawing, or any side effects like requiring a current layout). With annotations already providing the read-only status, the description adds minimal value beyond that.

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, clear sentence with no wasted words. It fits on one line and is easily parseable by an agent. Every word contributes to the purpose.

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 (not shown), the description doesn't need to explain return values. However, it lacks context about the layer parameter (optional) and the fact that this tool creates a persistent entity. For a 7-parameter creation tool with a sibling set of 10+ dimension-related tools, more contextual hand-holding would improve usability.

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 input schema covers all 7 parameters with descriptions (100% coverage), such as 'First point X' and 'Dimension line position X'. The description does not elaborate on these beyond the schema, so it provides no added semantic value. Baseline 3 is appropriate as the schema is self-sufficient.

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 action ('Create') and the resource ('aligned dimension') and explains the purpose ('measures the true distance between two points'). This distinguishes it from linear dimensions (orthogonal) and other dimension types, though it could be more explicit about the alignment concept.

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 on when to use this tool versus sibling dimension tools (e.g., dimension_linear for orthogonal distances, dimension_angular for angles). The description does not specify context, prerequisites, or alternatives, leaving the agent to infer 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.

dimension_angularAngular DimensionA

Create an angular dimension measuring the angle between two lines from a vertex.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst ray endpoint X
x2YesSecond ray endpoint X
y1YesFirst ray endpoint Y
y2YesSecond ray endpoint Y
layerNoLayer name
text_xYesDimension text position X
text_yYesDimension text position Y
vertex_xYesAngle vertex X
vertex_yYesAngle vertex Y

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?

Annotations already indicate readOnlyHint=false, matching the creation behavior. The description adds no further behavioral context beyond what's obvious from the verb 'Create', such as potential side effects or prerequisites.

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 succinct sentence front-loading the purpose with no unnecessary words 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 presence of an output schema and full parameter coverage, the description is complete enough for a straightforward creation tool. Minor improvement could clarify the angle range, but not essential.

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 100%, so all parameters have descriptions. The description adds no additional meaning beyond what the schema provides; baseline score of 3 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 states it creates an angular dimension measuring the angle between two lines from a vertex, using specific verb-resource pair and distinguishing from other dimension tools like linear, aligned, radius, diameter.

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 for angular dimensions but does not provide explicit guidance on when to use this tool versus alternatives (e.g., dimension_auto) or when not to use it.

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

dimension_autoDimension: Auto (chain / baseline / ordinate)A

Generate ISO 129 dimensions across the listed entities in the chosen style. V1 supports LINE entities only.

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNochain | baseline | ordinatechain
offsetNoDimension-line offset from the geometry (mm)
handlesYesList of entity handles to dimension

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

The description adds that the tool generates dimensions and supports only lines, but it does not explain what exactly happens (e.g., creates dimension entities) or side effects. Annotations state destructiveHint: false, which is consistent. The description is adequate but not rich in 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?

Two short sentences convey the core functionality and a critical constraint. Every word is essential; no redundancy or fluff.

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

Completeness4/5

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

The description covers the main purpose and a key limitation (only lines). Given the tool has an output schema (not shown), the description does not need to detail return values. It is complete enough for a straightforward auto-dimensioning tool, though it could mention that it creates multiple dimension objects.

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 100%, so all parameters are documented in the input schema. The description does not add further details beyond the schema, such as the meaning of 'style' or 'offset'. Baseline score of 3 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 states the tool generates ISO 129 dimensions across entities in a chosen style, and specifies 'V1 supports LINE entities only.' This distinguishes it from sibling dimension tools like dimension_linear or dimension_aligned, which handle single dimensions or other entity types.

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 guidance that the tool works on LINE entities only, implying it should be used when auto-dimensioning multiple lines. However, it does not explicitly mention when not to use it (e.g., for other entity types) or name alternative tools like dimension_linear for single lines.

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

dimension_diameterDiameter DimensionA

Create a diameter dimension for a circle, optionally toleranced (e.g. ⌀20 H7).

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst point on diameter X
x2YesSecond point on diameter (opposite side) X
y1YesFirst point on diameter Y
y2YesSecond point on diameter Y
fitNoISO 286 fit code (e.g. 'H7' hole / 'g6' shaft) resolved for the measured diameter. Mutually exclusive with tol_*.
layerNoLayer name
tol_modeNoISO 129 tolerance display: none | symmetric | deviation | limit | basic.none
tol_lowerNoLower deviation (mm)
tol_upperNoUpper deviation (mm)
leader_lengthNoLeader line length
text_overrideNoReplace the measured text ('<>' keeps the measurement)

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?

The description indicates it's a 'create' operation, consistent with the readOnlyHint=false annotation. However, it provides no additional behavioral context such as side effects, permissions, 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?

Single sentence, front-loaded with action and example. 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?

For a tool with 11 parameters and an output schema, the description is adequate but could mention prerequisites (e.g., existing circle), or common use cases.

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 100%, so the description doesn't need to add much. The tolerance example hints at the fit parameter but doesn't explicitly link to schema fields.

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 creates a diameter dimension for a circle, with an example of tolerance. It distinctly differentiates from sibling tools like dimension_radius, dimension_linear, etc.

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 (for circles requiring diameter dimension) but no explicit guidance on when to use this versus alternatives like dimension_radius for arcs or circles with smaller radii.

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

dimension_linearLinear DimensionA

Create a linear dimension, optionally toleranced (ISO 129 or ISO 286 fit).

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst extension line origin X
x2YesSecond extension line origin X
y1YesFirst extension line origin Y
y2YesSecond extension line origin Y
fitNoISO 286 fit code (e.g. 'H7', 'g6', 'js9'); resolves deviations from the authored tables for the measured nominal. Mutually exclusive with tol_*.
dim_xYesDimension line position X
dim_yYesDimension line position Y
layerNoLayer name
rotationNoAngle of the measured dimension (0=horizontal, 90=vertical)
tol_modeNoISO 129 tolerance display: none | symmetric (±tol_upper) | deviation (+tol_upper/-tol_lower) | limit (stacked limits) | basic (boxed).none
tol_lowerNoLower deviation (mm), e.g. 0.01 for -0.01
tol_upperNoUpper deviation (mm), e.g. 0.02 for +0.02
text_overrideNoReplace the measured text ('<>' keeps the measurement)

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?

Annotations indicate readOnlyHint=false (mutation), which the description supports with 'Create'. It adds tolerance context (ISO 129 and ISO 286 fit) but fails to disclose other behavioral traits like prerequisites (open drawing) or that the dimension is an entity added to the 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?

The description is a single, front-loaded sentence that efficiently conveys the core action and optional feature. Every word is meaningful, with no redundancy or 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?

Given the tool's complexity (13 parameters, 6 required) and the presence of an output schema, the description is minimal. It omits spatial context (e.g., points define extension lines, dim_x/dim_y position the dimension line) that would help an agent fully understand the geometry.

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 100% with detailed parameter descriptions (e.g., fit, tol_mode). The description adds no new parameter information beyond mentioning tolerance standards, so it does not compensate beyond the baseline for schema-rich tools.

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 'Create a linear dimension, optionally toleranced', which is a specific verb ('Create'), a distinct resource ('linear dimension'), and a key distinguishing feature ('optionally toleranced'). This differentiates it from sibling tools like 'dimension_aligned' and 'dimension_angular'.

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 provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest alternative tools for different scenarios, such as 'dimension_aligned' for rotated measurements.

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

dimension_radiusRadius DimensionB

Create a radius dimension for a circle or arc, optionally toleranced.

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNoISO 286 fit code resolved for the measured radius value. Mutually exclusive with tol_*.
layerNoLayer name
chord_xYesPoint on the circle/arc X (determines angle)
chord_yYesPoint on the circle/arc Y
center_xYesCircle/arc center X
center_yYesCircle/arc center Y
tol_modeNoISO 129 tolerance display: none | symmetric | deviation | limit | basic.none
tol_lowerNoLower deviation (mm)
tol_upperNoUpper deviation (mm)
leader_lengthNoLength of the leader line
text_overrideNoReplace the measured text ('<>' keeps the measurement)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, so the description aligns by stating 'Create'. However, it adds minimal behavioral context beyond that—only mentioning 'optionally toleranced'. It does not disclose what happens if geometry is invalid, whether the dimension is associative, or other 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.

Conciseness5/5

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

The description is a single, front-loaded sentence (12 words) that efficiently conveys the essential operation. Every word adds value, with no redundancy or extraneous 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?

Despite having 11 parameters, 4 required, and an output schema, the description is too brief. It omits critical context such as the geometric relationship between center and chord points, that the dimension is placed in the current drawing, and how the tool interacts with existing entities. This leaves the agent with insufficient information for correct invocation.

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 100%, so the input schema already documents all parameters thoroughly. The description adds no new parameter meaning beyond hinting at tolerance capability. According to guidelines, baseline is 3 when coverage is high.

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 purpose with a specific verb ('Create') and resource ('radius dimension for a circle or arc'), and it distinguishes itself from sibling dimension tools (linear, aligned, angular, diameter) by specifying the geometry type.

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 for creating radius dimensions but provides no explicit guidance on when to use this tool versus alternatives like dimension_diameter or dimension_linear. No 'when-not-to-use' conditions or references to siblings are included.

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

drawing_apply_iso_layersDrawing: Apply ISO Layer Set (bootstrap)A

Bootstrap a full ISO-conformant layer set with correct colors and lineweights. Idempotent — existing layers are not modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
standardNoLayer set: mech (DIN/ISO mechanical), pid (P&ID), iso13567 (CAD layer naming).mech

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?

Not only is destructiveHint=false but description adds 'idempotent — existing layers are not modified', which is a key behavioral trait beyond annotation.

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 no fluff; front-loaded with core purpose and key property (idempotent).

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?

Simple tool with one param and output schema; description covers purpose and idempotency. Could mention exactly what layers are created or that it only creates missing layers.

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 100% and description adds no additional meaning to the 'standard' parameter beyond what's already in 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?

Description clearly states it bootstraps a full ISO-conformant layer set with correct colors and lineweights, and distinguishes from siblings like layer_create or template_apply_layers by focusing on a complete standard set.

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?

Implies usage for initial setup via 'bootstrap', but no explicit when-to-use or alternatives mentioned. Does not differentiate from template_apply_layers or other layer tools.

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

drawing_auditAudit DrawingA

Audit the drawing: repair every fixable structural problem, and report it.

This mutates the drawing. fixes lists repairs that have ALREADY been applied, so save afterwards to keep them; errors lists problems that could not be repaired. On the live COM backend AutoCAD applies repairs but hands back no counts, so they arrive as null with detail: "unavailable" rather than as zero.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

The description goes far beyond the readOnlyHint:false annotation by explicitly stating 'This mutates the drawing,' explaining that fixes are already applied and require a save, and detailing the live COM backend quirk with null counts and detail: 'unavailable'. It also describes the result lists (fixes and errors) and their meaning, providing exceptional transparency.

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 opens with the core action and output, then warns about the mutation, explains the fixes and errors lists, and ends with a backend-specific note. Every sentence carries necessary information and there is no redundancy or filler.

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?

Given zero parameters and the presence of an output schema, the description supplies all essential context: what the tool does, that it mutates the drawing, what the return fields mean, and how to retain the changes. It is fully sufficient for an agent to invoke this tool correctly in 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?

The tool has zero parameters and the input schema coverage is complete, so there are no parameter semantics to clarify. The description focuses on behavior and outputs, which is appropriate. A score of 4 reflects the no-parameter baseline.

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 and resource: 'Audit the drawing' and clearly states the outcome: 'repair every fixable structural problem, and report it.' It distinguishes the tool from read-only analysis or validation tools by emphasizing that it mutates the drawing. The action is unmistakable.

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

Usage Guidelines3/5

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

The description implies when to use the tool—when you want to fix and audit structural issues—and provides actionable guidance to save afterwards to persist fixes. However, it does not explicitly name alternatives or state when not to use it, such as when a non-mutating review (e.g., drawing_critique) would be preferred. This is adequate but not fully explicit.

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

drawing_closeClose DrawingA
Destructive

Close the current drawing. If save is True (default), the drawing is saved to its current path before closing. After this call, you must call drawing_new or drawing_open before any other tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNoSave the drawing before closing

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true, and the description confirms the close action. It explains the save behavior and mandatory follow-up calls, but does not explicitly warn about unsaved data loss if save=False.

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 concise sentences cover purpose, parameter behavior, and post-usage requirement. 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's simplicity and the presence of an output schema, the description provides essential info. However, it could briefly note that unsaved changes are lost if save=False.

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?

The only parameter 'save' is described in context (default True, saves before closing), adding meaning beyond the schema 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 clearly states the tool closes the current drawing, with an option to save. This distinguishes it from siblings like drawing_new, drawing_open, and drawing_save.

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

Usage Guidelines5/5

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

It explicitly states the post-condition: after closing, you must call drawing_new or drawing_open before other tools. This provides clear sequencing guidance.

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

drawing_critiqueDrawing: Critique (premium quality checks)A
Read-only

Run premium-quality checks. Returns zero issues for a clean drawing.

Standard production gate: must return [] before drawing_finalize.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoSubset of: iso128, layer_color, dim_overlap, untrimmed_corner, duplicate_entities, construction_left. None = run all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true and destructiveHint=false. The description adds that the tool returns an empty list for clean drawings, which clarifies the output behavior. No additional behavioral details are needed.

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 concise sentences with no redundant information. It front-loads the core purpose and immediately adds the critical usage context.

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

Completeness4/5

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

Given the tool's simplicity (1 optional param, output schema present, annotations), the description is mostly complete. It could explicitly clarify the difference from similar checks like drawing_audit, but it's sufficient for agent understanding.

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 covers the single parameter 'focus' with 100% documentation, including possible values and default. The description does not add any parameter information beyond what the schema provides, so baseline 3 is appropriate.

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 runs premium-quality checks on a drawing and returns zero issues for a clean drawing. It references drawing_finalize as a gate, but does not explicitly differentiate from sibling tools like drawing_audit or validation_check.

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 a usage hint: 'must return [] before drawing_finalize', indicating it's a pre-finalization gate. However, it does not mention when not to use it or compare with alternative validation tools.

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

drawing_deliverDrawing: Deliver Auditable BundleA
Destructive

Create a hashed, validated delivery bundle and verify DXF save/reopen parity.

The result status is success, failed_validation or failed_export. Failure intentionally keeps all generated artifacts for diagnosis.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatsNoRequested formats: dxf, pdf, png.
expectedNoOptional validator expectations for the drawing.
min_scoreNoMinimum accepted quality score.
output_dirYesOutput directory for drawing artifacts and manifest.json.
strict_critiqueNoBlock delivery on every non-info critique issue.

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?

Annotations already declare destructiveHint=true, warning about destructive behavior. The description adds context about failure behavior ('keeps all generated artifacts for diagnosis') and result statuses, which goes beyond annotations.

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 concise, front-loaded sentences that convey the core purpose and key behavioral notes with zero 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?

Given the tool has an output schema (not shown but present), the description is sufficient. It covers the main outcomes and failure modes, but could mention that the bundle includes a manifest.json to be 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 coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the input schema already provides for parameters like output_dir, formats, etc.

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 it creates a 'hashed, validated delivery bundle' and 'verify DXF save/reopen parity', which is a specific verb+resource combination distinct from sibling tools like drawing_save or drawing_export_dxf.

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 this tool is for producing an auditable bundle with validation, which differentiates it from simpler export tools. However, it does not explicitly state when to use it or mention alternatives, leaving some ambiguity.

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

drawing_export_dxfExport DXFB

Export the current drawing as a DXF file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesOutput .dxf file path

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations lack readOnlyHint or destructiveHint, so the description must disclose behavioral traits. It only states 'Export' without explaining side effects like file overwriting or error handling. The mutation implication is weak.

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, directly conveying the tool's purpose. It is front-loaded and efficient.

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 one-parameter tool with an output schema, the description is largely adequate. It identifies the action, resource, and output. Minor improvement would be to clarify that it exports the current drawing's state.

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 100% and the parameter description 'Output .dxf file path' is already clear. The description adds no additional meaning beyond the schema, so baseline 3 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 states the verb 'Export', the resource 'current drawing', and the output format 'DXF file'. It effectively distinguishes from sibling tools like drawing_export_pdf and drawing_save_as.

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 on when to use this tool versus alternatives such as drawing_export_pdf or drawing_save_as. There is no mention of prerequisites, limitations, or context for usage.

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

drawing_export_pdfExport PDFA

Export the current drawing (or a paper-space layout) to PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesOutput .pdf file path
layoutNoPaper-space layout to plot (default: model space). COM plots the layout natively incl. viewport content; ezdxf renders the layout's own entities.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior2/5

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

No annotations (readOnlyHint, destructiveHint) provided, so description should disclose side effects. It only states export without mentioning whether the original file is modified, required permissions, or file overwrite behavior. Minimal transparency beyond the action.

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 short sentences: one for purpose, one for parameter details. No redundant words, front-loaded with primary action.

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?

Output schema exists, so return values are documented. Description covers main functionality and param semantics. Lacks mention of file overwrite behavior, error conditions, or prerequisites. Adequate for a simple export tool but missing some edge-case 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 covers 100% of parameters, so baseline 3. Description adds extra context for layout parameter: explains COM vs ezdxf rendering differences. This adds value beyond schema properties. However, path parameter gets only a brief 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?

Description clearly states 'Export the current drawing (or a paper-space layout) to PDF.' It specifies the verb (export), resource (drawing/layout), and format (PDF), distinguishing it from sibling export_dxf.

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?

Implicitly indicates use for PDF export, but lacks explicit exclusion or alternatives. Mentions layout parameter but no guidance on when to use model vs paper space. Sibling tools provide context but no direct comparison in description.

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

drawing_finalizeDrawing: Finalize (validate + save + screenshot)A
Destructive

Premium completion gate: runs BOTH the 8-step validator AND the premium critique focuses (iso128, layer_color, dim_overlap, untrimmed_corner, duplicate_entities, construction_left), then saves to disk, exports a screenshot, and returns the DWG path.

Raises ToolError if any validator 'error' finding is present, or if critique reports an 'error' (or, with strict_critique=True, any critique issue). Critique warnings are surfaced under payload['critique'] without failing the gate by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
expectedNoOptional contract: {'part_type', 'helix_angle', 'must_have_bore', 'must_have_keyway'}
save_pathNoIf given, save drawing here before validation. Pass full path including extension.
screenshot_pathNoIf given, write PNG screenshot to this path.
strict_critiqueNoIf true, ANY critique issue (including warnings) fails the gate — the full premium discipline. Default false: only critique 'error' issues (e.g. leftover construction geometry) fail; warnings are surfaced in the payload.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations provide destructiveHint=true; description adds validation behavior, error conditions, and strict_critique toggle. No contradictions. Fully informs about 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.

Conciseness5/5

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

Two concise paragraphs: first covers core function, second covers error behavior. No redundancy, efficiently 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?

Given output schema exists, description explains validation process, error handling, and return value (DWG path). Fully adequate for complex tool.

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 covers all 4 parameters with descriptions. Description adds context like 'Optional contract' and explains strict_critique default behavior, supplementing schema well.

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 it runs both validator and critique, saves, screenshots, and returns DWG path. It lists specific validator steps and critique focuses, distinguishing it from simple save or export tools.

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?

Describes as 'Premium completion gate' implying final step. Mentions error raising conditions and strict_critique behavior. Lacks explicit comparison to alternatives, but usage context is clear.

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

drawing_infoDrawing InfoA
Read-only

Get comprehensive metadata for the current drawing.

Returns: name, path, entity_count, layer_count, block_count, extents (min/max), units, version, backend name.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

The readOnlyHint annotation already signals read-only behavior. The description adds valuable context by listing the exact metadata returned (name, path, entity_count, etc.), which goes beyond the annotation. No side effects or contradictions.

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 (two sentences plus a bulleted list) with no wasted words. It front-loads the purpose and efficiently conveys the return 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?

The description covers the return fields, which likely overlap with the output schema. It could mention that a drawing must be open, but given the simplicity and the existence of an output schema, it is sufficiently 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?

The tool has no parameters, and schema coverage is 100% (empty schema). The description does not need to explain parameters, so it meets the baseline for a no-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 clearly states 'Get comprehensive metadata for the current drawing' and lists the specific fields returned. This verb+resource pairing is distinct from sibling tools like drawing_close or system_status, 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 Guidelines3/5

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

The description implies the tool is for retrieving metadata, but does not provide explicit guidance on when to use it versus alternatives (e.g., system_status or drawing_settings). No exclusions or when-not-to-use context is given.

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

drawing_newNew DrawingA

Create a new empty drawing, optionally from a template (.dwt).

When bootstrap=True (default), the drawing is also seeded with the standard engineering linetypes (CENTER/HIDDEN/PHANTOM) and layers (GEOMETRY, DIM, CENTER, HIDDEN, PHANTOM, HATCH, TEXT, TITLEBLOCK).

ParametersJSON Schema
NameRequiredDescriptionDefault
templateNoOptional path to .dwt template file
bootstrapNoAuto-load CENTER/HIDDEN/PHANTOM linetypes and create standard engineering layers (GEOMETRY, DIM, CENTER, HIDDEN, PHANTOM, HATCH, TEXT, TITLEBLOCK). Disable for vanilla DXF.

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 adds detail beyond annotations: it specifies that the drawing is created from scratch and details the bootstrap layers/linetypes. The annotation already states destructiveHint=false, so there is no contradiction. The behavior is accurately described.

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: two sentences clearly separated. The first sentence states the core purpose, the second details the bootstrap behavior. Every word is informative 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?

Given the output schema exists (not shown), description does not need return values. It covers creation, template, and bootstrap sufficiently. Could mention that the new drawing becomes current, but it's adequate.

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?

With 100% schema coverage, baseline is 3. The description adds significant value by explaining the effect of 'bootstrap' and what it seeds (standard linetypes and layers), and clarifies 'template' as optional path. This goes beyond 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 clearly states the tool creates a new empty drawing, optionally from a template. The verb 'Create' and resource 'new drawing' are specific. It distinguishes from siblings like 'drawing_open' or 'drawing_save' by emphasizing 'empty' and the bootstrap feature.

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 when bootstrap is applied by default and when to disable it for 'vanilla DXF'. However, it does not explicitly contrast with 'drawing_open' or other creation methods, but the intent is clear.

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

drawing_openOpen DrawingA

Open an existing DXF drawing file (DWG too, on the live COM backend).

T0.2: a .dwg path is refused up front when the active backend has no dwg capability. ezdxf sniffs content rather than extensions, so it would parse a mislabelled DXF-in-a-.dwg and this tool would answer with a document that does not exist in that format.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull path to the .dxf file. .dwg needs a backend that can read it (the live COM backend); the headless ezdxf backend refuses it.

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?

Annotations provide only a title, so the description carries the full transparency burden. It discloses a non-obvious behavior: ezdxf sniffs content rather than extensions, meaning a mislabelled DXF-in-a-.dwg would be parsed and return a document that doesn't exist in that format. This adds valuable insight beyond the basic 'open' action, though it doesn't mention success/failure responses 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.

Conciseness4/5

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

The description is mostly concise, with the core purpose in the first sentence and a valuable technical caveat in the second paragraph. The 'T0.2' version marker is unnecessary noise, but the overall structure is effective in front-loading the primary action and then detailing important edge-case behavior.

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 one-parameter open tool, the description covers the primary use case, the conditional DWG support, and a subtle parsing gotcha. With an output schema present, there is no need to explain return values. The description is complete enough for an agent to correctly invoke the tool and understand when it will fail.

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 input schema already provides a rich description for the single 'path' parameter, covering the .dxf/.dwg distinction and backend requirements (100% coverage). The description itself does not add new parameter details beyond echoing the schema, so the baseline of 3 applies.

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: 'Open an existing DXF drawing file.' It also specifies the conditional DWG support, distinguishing it from sibling tools like drawing_new and drawing_save. The verb and resource are explicit and immediately understandable.

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: use for existing DXF files, with DWG only on the live COM backend. It also gives a practical exclusion by stating that a .dwg path is refused on backends lacking the `dwg` capability. While it does not explicitly compare to drawing_new, the wording 'existing' implies the alternative use case for new drawings.

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

drawing_planDrawing: Plan (commit intent before drawing)A

Commit a PlanSpec before any geometry is created.

The PlanSpec is stored on the backend and surfaced for reference during the workflow (it is not replayed as a critique). Always call this FIRST in a premium workflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-form constraint notes.
scaleNoDrawing scale (1.0 = 1:1, 0.1 = 1:10, etc).
intentYesOne-line description of what this drawing represents.
dim_styleNoDefault dimensioning style: chain / baseline / ordinate / mixed.chain
spec_hashNoHash returned by the latest ready drawing_preflight.
sheet_sizeNoPaper size: A4 / A3 / A2 / A1 / A0.A3
view_countNo
layer_set_idNoLayer set to bootstrap: mech / pid / iso13567.mech
requirementsNoNormalized preflight requirements.

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?

The description explains that the PlanSpec is stored, surfaced for reference, and not replayed as a critique, adding behavioral insight beyond the destructiveHint annotation. It also notes the timing requirement.

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 concise sentences, front-loaded with purpose, each adding value without 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?

Given the complexity (9 params, well-covered schema, output schema present), the description sufficiently explains the tool's role. Could mention idempotency but adequate.

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 high (89%), so the description does not need to elaborate on parameters. It adds no parameter-specific information, meeting the baseline.

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 commits a PlanSpec before geometry creation, with the title adding context. It distinguishes from sibling drawing and entity creation tools by being a preparatory planning step.

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 instruction 'Always call this FIRST in a premium workflow' provides clear usage context but does not explicitly state when not to use or mention alternatives.

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

drawing_preflightDrawing: PreflightB
Read-only

Validate and normalize requirements before committing a drawing plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
intentYesOne-line description of what this drawing represents.
dim_styleNochain / baseline / ordinate / mixed.chain
sheet_sizeNoA4 / A3 / A2 / A1 / A0.A3
view_countNo
layer_set_idNomech / pid / iso13567.mech
requirementsNoUnits, part_type, dimensions, tolerance_policy and optional constraints.
allow_assumptionsNoAllow documented defaults for units and tolerance policy.

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?

The annotation readOnlyHint: true declares the tool as read-only. The description mentions 'normalize', which could be misinterpreted as a modification, but likely refers to output normalization without side effects. The description adds limited behavioral context beyond the annotation, such as 'validate' implying a check-and-report function. A score of 3 is appropriate because the annotation carries most of the transparency burden.

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 (9 words). It earns its place by conveying the core purpose without verbosity. However, it could be slightly improved by front-loading the key action more prominently, hence not a perfect 5.

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?

With 8 parameters, 1 required, and an output schema present, the description is minimal. The output schema relieves the need to explain return values, but the description does not mention that the tool returns validated/normalized requirements or any error reporting. It is adequate but leaves the agent wondering about the full capabilities.

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 75%, so the input schema already documents most parameters. The high-level description ('validate and normalize requirements') provides context but adds no specific meaning to individual parameters beyond what the schema offers. The baseline 3 is correct; the description does not compensate for the remaining 25% undocumented 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 clearly states the verb-resource pair: 'validate and normalize requirements before committing a drawing plan.' It positions the tool as a pre-commit step, distinguishing it from drawing creation or finalization tools. However, it lacks explicit differentiation from closely related siblings like 'drawing_plan' or 'drawing_critique', preventing a higher 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 is provided on when to use this tool versus alternatives. While the name and description imply it should be used before finalizing a drawing, there is no explicit statement of context, exclusions, or prerequisites. This leaves the agent uncertain about the appropriate invocation scenario.

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

drawing_purgePurge DrawingA

Purge all unused objects (layers, blocks, linetypes, styles) from the drawing.

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?

The description discloses the tool deletes unused objects, but does not explicitly warn about irreversible changes or need for confirmation. Given no annotations (no destructiveHint), the description should be more explicit about destructiveness.

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 efficiently communicates the purpose without extraneous content.

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?

Given no parameters and a clear description, the tool's behavior is fully specified. The output schema handles return details, so description 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?

Tool has zero parameters, and the description does not need to add parameter info. Baseline for 0 parameters is 4.

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 action (purge) and specific objects (layers, blocks, linetypes, styles). It distinguishes from sibling tools like entity_delete or drawing_audit by specifying 'unused objects' and listing categories.

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?

No explicit guidance on when to use this tool vs alternatives like drawing_audit or entity_delete. The description implies cleanup of unused items but does not specify conditions or when not to use.

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

drawing_redoRedoA

Reapply the operation you just undid.

Same history as drawing_undo, so the headless backend needs EZDXF_UNDO_DEPTH set. Anything drawn after an undo discards the redo branch — otherwise redo would restore a state that never existed, with geometry you had removed reappearing beside geometry you drew afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses important behavior: it shares history with drawing_undo, requires the EZDXF_UNDO_DEPTH environment variable, and explains the redo branch discard rule. This is genuinely useful behavioral context that the annotations do not provide.

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 yet complete: a one-line purpose, a prerequisite, and a behavioral caveat. Each sentence earns its place, 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.

Completeness5/5

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

For a zero-parameter tool, this description covers the essential aspects: what it does, the required backend setting, and the branch-discard semantics. The presence of an output schema reduces the need to describe return values, and no critical gaps remain.

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 parameter semantics to clarify. The description focuses on the operation and its prerequisites, which is appropriate. A baseline of 4 is warranted since no parameter documentation is needed.

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: "Reapply the operation you just undid," which clearly defines the tool's action and distinguishes it from drawing_undo. It also explicitly references the undo tool, making the relationship unambiguous.

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

Usage Guidelines4/5

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

The description provides clear usage context: it names drawing_undo as the sibling, states the EZDXF_UNDO_DEPTH prerequisite, and warns that drawing after an undo discards the redo branch. However, it does not explicitly list alternative tools or say when not to use this tool beyond the discard condition.

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

drawing_refineDrawing: RefineC
Destructive

Run a bounded, transaction-safe critique/repair/re-critique loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusNoCritique focuses to repair; None runs all.
dry_runNoReturn the repair plan without modifying the drawing.
min_scoreNo
max_roundsNo
allowed_repairsNoOptional allowlist of repair focus names.

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?

Annotations already indicate destructiveHint. Description adds that it is bounded (max_rounds) and transaction-safe, providing some behavioral context. However, it does not elaborate on side effects like modification to the drawing or that it may require transactions to be started/committed.

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?

Single sentence is concise and front-loaded with key terms (bounded, transaction-safe). It is appropriate in length for a tool description, though could include more detail without losing conciseness.

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 5 optional parameters, an output schema, and many sibling tools, the description is too brief to be complete. It omits context about working on the current drawing, interactions with transactions, and expected outcomes.

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 tool description does not add meaning to the parameters beyond the input schema. Only 60% of parameters have descriptions in the schema, and the description gives no extra context on focus, dry_run, etc.

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 process: bounded, transaction-safe critique/repair/re-critique loop. It distinguishes from plain critique by indicating iteration, but could more clearly differentiate from sibling tools like drawing_critique or drawing_plan.

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 over alternatives. The description does not mention prerequisites, when to choose this vs manual repair steps, or that it is for automated refinement.

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

drawing_saveSave DrawingC

Save the current drawing. Optionally specify a new path.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional save path; uses current path if omitted

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 beyond the title, the description must disclose behavioral traits. It states 'Save the current drawing' but does not clarify whether this overwrites the existing file, creates a backup, or if it requires a prior save. It fails to explain the destination when no path is given (current path). The destructive nature is implied but not explicit.

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 with two sentences. It is front-loaded with the primary action. However, it could be slightly more precise without significant verbosity, e.g., specifying that it overwrites the existing file unless a new path is given.

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 presence of many sibling tools, no output schema details, and the simplicity of the tool, the description is too minimal. It does not mention return values (despite an output schema existing), error conditions, or the impact of saving (e.g., it may finalize the drawing state). For a potentially destructive operation, more context is needed.

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 100%, with the path parameter fully described. The description adds minimal value beyond the schema: 'Optionally specify a new path' paraphrases the schema. It does not explain what happens when a new path is given (e.g., changes the drawing's current path or just exports a copy), missing an opportunity to clarify behavior.

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 'Save the current drawing' with a specific verb and resource. However, it does not distinguish from the sibling tool 'drawing_save_as', as both allow specifying a new path. The phrase 'Optionally specify a new path' creates ambiguity about whether this changes the current file's path or just saves a copy.

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 on when to use this tool versus alternatives like 'drawing_save_as' or 'drawing_close'. There is no mention of prerequisites, such as the drawing needing a path already set, or when not to use it. The description lacks any context for appropriate usage.

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

drawing_save_asSave AsA

Save current drawing to a new path/format (DWG, DXF, or DWT template).

The on-disk format is derived from the file extension so the bytes always match the name (N2) — e.g. 'part.dxf' writes DXF, not DWG. format overrides only when the path has no recognised extension.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFull destination path including extension
formatNoOutput format override: dwg, dxf, dwt. Default: derive from the path extension (the extension is authoritative).

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?

Annotations provide only title, so description carries full burden. It details that format derives from extension and how 'format' parameter works, preventing confusion. However, it does not clarify whether the current drawing session now points to the new file (typical Save As behavior), which is a behavioral 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 concise (three short sentences) with purpose front-loaded. Every sentence contributes essential behavior without 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?

Given the tool's simplicity and presence of output schema, the description covers format logic well. The only missing element is whether the original drawing is unchanged or the session switches to the new file—a minor gap for such a tool.

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

Parameters4/5

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

Schema coverage is 100%, and the description adds value by explaining the N2 principle (bytes match name) and the override condition in plain language, going beyond schema descriptions. This helps agent understand parameter interplay.

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 saves the current drawing to a new path/format, listing DWG, DXF, or DWT. It distinguishes from sibling tools like 'drawing_save' (which saves to existing path) and 'drawing_export_dxf' (specific export) by focusing on saving to a new location.

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 when format override applies, but does not explicitly contrast with export tools or state prerequisites (e.g., ensure drawing is open). The title 'Save As' implies usage for saving copies, but more direct guidance would improve clarity.

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

drawing_settingsDrawing Settings (read / change)A

Read or change common AutoCAD drawing settings by friendly name.

A convenience facade over the system variables (INSUNITS, LUPREC, LTSCALE, DIMSCALE, DIMTXT, DIMASZ, DIMDEC, DIMDSEP, DIMZIN, TEXTSIZE, OSMODE, …) so the user can say "set units to mm and dimension text to 3.5" without memorising sysvar names. Call with no argument to get a full snapshot of the current settings.

dim_text_height / dim_arrow_size / dim_decimals / decimal_separator / zero_suppression shape the dimensiontext_size is TEXTSIZE, the height of a standalone TEXT entity, and does not touch dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
settingsNoOmit to READ every setting; pass a dict to CHANGE them. Friendly keys: units (mm/cm/m/inch/feet), linear_precision, angular_precision, ltscale, dimscale, dim_text_height, dim_arrow_size, dim_decimals, decimal_separator ("." or ","), zero_suppression, text_size, point_mode, point_size, osmode, fillet_radius. Example: {"units": "mm", "dimscale": 1.0, "dim_text_height": 3.5}.

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 annotations only stating readOnlyHint=false and destructiveHint=false, the description carries the burden of disclosing behavioral nuance. It does so by enumerating the exact system variables it wraps and explaining the no-argument return behavior. The explicit distinction between dimension-related parameters and standalone text size is a valuable transparency addition. No contradiction with annotations is present.

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 three sentences, each serving a purpose: stating the operation, explaining the facade and no-arg behavior, and disambiguating dimension vs. text settings. The sysvar list is lengthy but justified for transparency. The structure is front-loaded with the core purpose and avoids fluff, though it is slightly dense.

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?

Given the tool has a rich input schema, an output schema, and annotations, the description is complete for its complexity. It covers read/write behavior, usage patterns, the full set of friendly keys, and a key semantic nuance. No additional behavioral or return-value documentation is needed because the output schema exists and the description adequately addresses the tool's role.

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 input schema already covers the single `settings` parameter with 100% description coverage, including keys and an example. The description adds semantic meaning beyond the schema: it maps friendly names to system variables and highlights the subtle difference between text_size and dim_text_height. This contextualization helps the agent choose the correct keys and understand their effects.

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+resource construction: 'Read or change common AutoCAD drawing settings by friendly name.' It clearly identifies itself as a convenience facade over system variables (INSUNITS, LUPREC, LTSCALE, etc.), distinguishing it from sibling tools like system_get_variable and system_set_variable. The explicit list of wrapped variables and the example use case further solidify its scope.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Call with no argument to get a full snapshot of the current settings' and explains the friendly-key mapping with an example. It also clarifies the potential confusion between dim_text_height (affects dimensions) and text_size (does not touch dimensions), which helps prevent misuse. It does not explicitly name alternatives like system_set_variable, but the facade framing makes the intended use evident.

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

drawing_undoUndoA

Undo the last drawing operation.

On the live COM backend this is AutoCAD's own undo. The headless backend has no journal, so a step is a full DXF snapshot and history is off by default — set EZDXF_UNDO_DEPTH to the number of steps you want. Measured cost of switching it on: 37x on entity creation (0.18 -> 6.65 ms per call). For a single checkpoint around a risky sequence, transaction_begin / transaction_rollback is far cheaper.

Drawing something after an undo discards the redo branch, as in AutoCAD.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

The description goes far beyond annotations by disclosing backend-specific behavior (COM vs headless), performance costs (37x slowdown), configuration requirements (EZDXF_UNDO_DEPTH), and redo-branch semantics. No contradiction with idempotentHint or destructiveHint.

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?

Every sentence earns its place: purpose, backend detail, performance cost, alternative, and redo semantics. The structure is logical, front-loaded with the core function, and efficiently dense without being verbose.

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?

Given the tool's complexity (backend differences, configuration, performance trade-offs), the description is remarkably complete. It covers behavior, setup, alternatives, and edge cases like redo discard. An output schema exists, so return values need not be explained.

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 description need not explain parameter syntax. The schema coverage is 100% (empty). The description implicitly confirms no arguments are needed, which is appropriate; baseline for 0 params is 4.

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 'Undo the last drawing operation' with a specific verb and resource. It distinguishes itself from related operations like drawing_redo and transaction_rollback by explaining exactly what it does and contrasting with alternatives.

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

Usage Guidelines5/5

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

Explicitly provides when-to-use guidance: mentions backend differences, default history off, and the need to set EZDXF_UNDO_DEPTH. It also names transaction_begin/transaction_rollback as a cheaper alternative for single checkpoints, giving clear usage context.

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

entity_array_polarPolar ArrayA

Create a polar (circular) array of copies around a center point.

count is unbounded, so the same result-shaping applies as for the rectangular array: fields=["handle"] when the geometry is already known.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesTotal number of items in the array
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
handleYesEntity handle to array
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
center_xYesArray center X
center_yYesArray center Y
fill_angleYesTotal angle to fill in degrees (360 for full circle)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, indicating a mutation/write operation. The description adds useful behavioral context: count is unbounded (potential performance implication) and the fields=['handle'] optimization when geometry is already known. However, it does not clarify whether the original entity is preserved or altered, nor does it explain the behavior around zero or negative fill angles. The added value is moderate 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?

The description is two sentences with no filler. The first sentence states the core purpose; the second provides a high-value param tip with a cross-reference. Every word 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?

The description covers the tool's purpose, a key parameter behavior, and a link to the rectangular array sibling. An output schema exists, so return values are documented elsewhere. The main gap is that it assumes the agent is familiar with the rectangular array's 'result-shaping' concept, which could confuse a new agent, but the reference is explicit enough to allow lookup.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by explaining that count is unbounded (a caveat not present in the schema description) and by giving a specific usage tip for the fields parameter ('fields=["handle"] when the geometry is already known'). This adds practical meaning to two parameters beyond their 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 description clearly states 'Create a polar (circular) array of copies around a center point' with a specific verb (create) and resource (array), and the 'circular' qualifier distinguishes it from the rectangular array sibling. The title 'Polar Array' reinforces the purpose without ambiguity.

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 references the rectangular array ('same result-shaping applies as for the rectangular array'), which anchors the usage to a known sibling tool and implies that the polar array is the circular counterpart. It does not explicitly state when to choose polar over rectangular, but the purpose is clear from the name and description, and the cross-reference provides meaningful context.

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

entity_array_rectangularRectangular ArrayA

Create a rectangular array of copies. Returns info of all created copies.

rows x cols is unbounded, so this is a result-heavy tool despite being a create: a 40x40 grid hands back 1600 full records. fields=["handle"] is usually all a caller needs from it.

ParametersJSON Schema
NameRequiredDescriptionDefault
colsYesNumber of columns
rowsYesNumber of rows
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
handleYesEntity handle to array
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
col_spacingYesSpacing between columns (X direction)
row_spacingYesSpacing between rows (Y direction)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

The annotation readOnlyHint=false already indicates mutation, and the description reinforces that by saying 'Create.' It goes beyond annotations by disclosing the potentially large result set ('a 40x40 grid hands back 1600 full records') and the ability to control output via `fields`. This adds meaningful behavioral context about resource usage and return volume that the annotations alone do not convey.

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, each earning its place. The first sentence states the core purpose, while the second delivers a critical performance warning and a practical tip. There is no filler or repetition of schema details, making it extremely efficient and well-structured.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, output schema present, readOnlyHint annotation), the description covers the essential behavioral aspects: it identifies the creation nature, the return of all copies, and the risk of large results. The output schema handles return value details, so the description doesn't need to repeat those. A minor gap is the lack of explicit mention of spacing parameters, but the schema provides that. Overall, it is complete enough for an agent to invoke correctly.

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

Parameters4/5

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

The input schema already provides 100% coverage with descriptions for all parameters, so the baseline is 3. The description adds further meaning by highlighting that 'rows x cols is unbounded,' which warns about the multiplicative nature of these parameters and their impact on result size. It also recommends a specific value for `fields`, enriching the semantics of that parameter beyond the schema's generic 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 clearly states the action: 'Create a rectangular array of copies.' It specifies the resource (rectangular array) and is distinct from siblings like entity_array_polar, which handles polar arrays. The verb 'Create' and the resource 'rectangular array' are precise and unambiguous.

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

Usage Guidelines4/5

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

The description provides practical usage guidance by noting the result-heavy nature ('rows x cols is unbounded') and recommending a minimal field projection ('fields=["handle"] is usually all a caller needs from it'). It does not explicitly name alternatives, but the tool's name and context imply when to use it (rectangular vs polar). This is a clear, useful guideline, falling just short of offering explicit when-not-to-use or alternative tool recommendations.

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

entity_batch_createBatch Create EntitiesA

Create multiple entities in a single call for better performance.

Each entity dict must have a 'type' key and the parameters for that type. Example: [{"type": "line", "x1": 0, "y1": 0, "x2": 100, "y2": 0}, {"type": "circle", "cx": 50, "cy": 50, "radius": 25}]

Denser than cad_batch for many entities of the same kind (no per-step tool name), and usable as one step of a cad_batch. Use cad_batch when the calls differ, must be ordered, or must feed each other.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesList of entity definitions. Each dict must have 'type' and type-specific params. Types: line, circle, arc, polyline, rectangle, text, point

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior2/5

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

Annotations only provide readOnlyHint=false, which the description aligns with by saying 'Create'. However, the description does not disclose important batch behaviors such as atomicity (all-or-nothing), what happens if one entity fails, or any limits on the number of entities. The only extra trait mentioned is performance, which is not a safety or error behavior. The burden falls on the description, and it 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.

Conciseness5/5

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

The description is compact and well-structured: purpose first, then a clarifying example, then comparative usage guidance. Every sentence contributes essential information, and there is no filler or repetition of schema details.

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

Completeness4/5

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

Given the tool's moderate complexity (one parameter, clear schema), the description covers the key aspects: purpose, entity format, and relationship to cad_batch. The existence of an output schema alleviates the need to explain return values. However, missing error-handling details slightly reduce completeness for a batch operation.

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 already covers the entities parameter with 100% description coverage, including the requirement for a 'type' key. The description adds a concrete example showing the exact format for line and circle entities, which helps the agent construct valid input. This added example is valuable 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 clearly states the tool's function: 'Create multiple entities in a single call for better performance.' It specifically names the resource (entities) and action (batch create), and distinguishes from cad_batch by contrasting density and order requirements. This goes beyond a vague verb.

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

Usage Guidelines5/5

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

Explicit guidance is given: 'Denser than cad_batch for many entities of the same kind' and 'Use cad_batch when the calls differ, must be ordered, or must feed each other.' This directly tells the agent when to choose this tool over the primary alternative, and also implies it should be preferred over single-entity create tools for batching.

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

entity_batch_modifyBatch Modify EntitiesA

Apply multiple modifications in a single call.

Example: [{"handle": "1A", "action": "move", "dx": 10, "dy": 20}, {"handle": "2B", "action": "delete"}]

Covers move/rotate/scale/delete/set_properties only. For anything else, for ordering, or to feed one step's result into the next, use cad_batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYesList of operations. Each dict: {handle, action, ...params}. Actions: move(dx,dy), rotate(base_x,base_y,angle_deg), scale(base_x,base_y,factor), delete, set_properties(layer,color,...)

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?

The description reveals that it applies multiple modifications in a single call but does not disclose behavior on partial failure or atomicity. With only readOnlyHint=false provided by annotations, the description carries full burden for behavioral context; the current text is minimal and leaves important operational questions unanswered.

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 very concise and front-loaded, with a clear main sentence, a concrete example, and a short scope/limitation statement. Every sentence 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?

The description clearly states scope, alternatives, and gives an example. The schema covers parameter details, and an output schema exists (so return values need not be explained). The main gap is the lack of information about failure handling or atomicity, but given the other strengths, it is nearly 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?

The input schema already describes the 'operations' parameter and its actions in detail, providing 100% coverage. The description adds an example that illustrates usage, which is helpful, but it does not introduce new semantics beyond the schema. Baseline 3 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 uses a specific verb ('Apply multiple modifications') and resource ('entities') and clearly lists the supported actions (move/rotate/scale/delete/set_properties). This distinguishes it from single-action tools like entity_move or entity_scale, and from cad_batch.

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

Usage Guidelines5/5

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

The description explicitly states what the tool covers ('Covers move/rotate/scale/delete/set_properties only') and directs users to cad_batch for anything else, ordering, or chaining results. This gives clear when-to-use and when-not-to-use guidance.

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

entity_chamferChamfer Two EntitiesA

Bevel a corner with a chamfer line. Returns info on the new chamfer LINE. V1 supports LINE+LINE only.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoIf true, trim source entities to the tangent points (AutoCAD default)
dist1YesChamfer distance along first line
dist2NoChamfer distance along second line (None = symmetric, dist2=dist1)
handle1YesFirst entity handle
handle2YesSecond entity handle

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

The description does not disclose the default trimming behavior (trim=true) or clarify that the source entities may be modified. Annotations set destructiveHint=false, which may be contradicted by the default trimming action. This omission reduces transparency for a tool that alters geometry.

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 efficiently convey the core purpose and a key limitation. No extraneous information; structure is front-loaded with the main action.

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 description omits critical behavioral details such as how the chamfer distances are applied, the effect on source entities (trimming), and the format of the returned line info. While an output schema exists, the description lacks completeness for a modification tool with multiple parameters.

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?

Although schema coverage is 100%, the description adds meaningful constraint by stating 'V1 supports LINE+LINE only', which restricts the entity types for handle1 and handle2 beyond the schema descriptions. This extra context improves parameter understanding.

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 verb 'bevel', the resource 'corner', and the result 'returns info on the new chamfer LINE'. It also specifies the V1 limitation to LINE+LINE only, distinguishing it from fillet and other modifications.

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 for chamfering corners, but does not explicitly state when to use this tool versus alternatives like entity_fillet. It lacks guidance on exclusions or conditions for use.

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

entity_change_spaceChange SpaceA

AutoCAD's CHSPACE: move entities across spaces, rescaled by the viewport.

Geometry is transformed by the viewport's own matrix so it stays the same size on screen — a move without that transform would leave a 100 mm feature as 100 mm of paper inside a 1:2 viewport.

Refused per entity for dimensions (unless freeze_dimensions), ACIS solids, tables and proxies, viewports, and entities already in the target space; refused outright for a twisted or non-plan viewport. Entities that end up outside the viewport or off the sheet are moved and flagged, not refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
handlesYesEntity handles to move.
directionNoto_paper (model -> sheet) or to_model (sheet -> model).to_paper
viewport_handleYesViewport that defines the model-to-paper mapping.
freeze_dimensionsNoBake each dimension's current measurement into its text before scaling.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description goes well beyond the annotation (destructiveHint=false) by disclosing exact behavioral traits: geometry is transformed by the viewport matrix to preserve on-screen size, certain entity types are refused per entity unless freeze_dimensions is set, twisted or non-plan viewports cause outright refusal, and out-of-bounds entities are moved and flagged rather than refused. These details are not available from annotations alone.

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 organized into three focused paragraphs: introduction, scaling rationale with a concrete example, and list of refusal/flagging behaviors. Every sentence contributes essential information without redundancy or fluff.

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?

Given the moderate complexity, full schema coverage, output schema, and sparse annotations, the description is comprehensive. It covers the tool's purpose, scaling behavior, per-entity and viewport-level refusals, and edge-case handling, leaving no critical gap for an agent to predict behavior.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining that dimensions are refused unless freeze_dimensions is set, which clarifies the purpose of that parameter in context, and by emphasizing viewport_handle's role in defining the model-to-paper mapping. This is more than what the schema provides.

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 'AutoCAD's CHSPACE: move entities across spaces, rescaled by the viewport', clearly stating a specific verb, resource, and core behavior. It distinguishes itself from same-space moves like entity_move by emphasizing 'across spaces' and viewport-based rescaling.

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 indicates when to use the tool: to move entities between model and paper space with viewport scaling. It also provides explicit when-not conditions, listing entity types that are refused and viewport configurations that cause outright refusal. However, it does not explicitly name an alternative for same-space movement, though the context strongly implies it.

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

entity_copyCopy EntityA

Copy an entity and move the copy by (dx, dy, dz). Returns info of the new copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
dxYesX displacement for the copy
dyYesY displacement for the copy
dzNoZ displacement
handleYesEntity handle to copy

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that the tool copies an entity and returns info of the new copy, confirming it is a mutation that does not alter the original. However, it does not elaborate on permissions, side effects, or response format beyond what is implied.

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 consists of two short sentences, each serving a purpose: one for the action and one for the return value. It is front-loaded with the main action and contains zero 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?

Given the tool's simplicity, full schema coverage, and the presence of an output schema (implied by 'Returns info'), the description is fairly complete. It covers the core operation and return. However, it does not explicitly state that the original entity remains unchanged, which is a minor gap for a copy operation.

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 100%, so the schema already documents each parameter. The description restates the displacement parameters (dx, dy, dz) in the context of copying, but adds no new meaning beyond aggregating them. No additional parameter semantics like units or coordinate system are provided.

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 it copies an entity and moves the copy by x, y, z displacements. It uses a specific verb ('Copy') and resource ('entity'), distinguishing it from siblings like entity_move (which moves the original) and entity_create_* (which create new entities from scratch).

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 provides no guidance on when to use this tool versus alternatives such as entity_move or entity_rotate. It does not mention exclusions or prerequisites, leaving the agent to infer context from sibling tool names.

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

entity_create_arcCreate ArcA

Create a circular arc. Angles are in degrees, measured counter-clockwise from the positive X axis.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxYesCenter X
cyYesCenter Y
colorNoACI color code
layerNoLayer name
radiusYesArc radius
end_angleYesEnd angle in degrees
start_angleYesStart angle in degrees (0 = right, CCW positive)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Description adds that angles are in degrees and CCW, but lacks details on edge cases (e.g., start_angle > end_angle) or side effects. Annotations show readOnlyHint=false, so no contradiction.

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 action, no wasted words. Efficiently conveys core info.

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?

Covers key aspects: creation, angle units, orientation. Output schema exists, so return values not needed. Lacks behavior for edge cases, but overall adequate.

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 100%, so baseline is 3. Description adds angle units and direction, but schema for start_angle already includes similar info. Minimal additional value.

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?

Description clearly states 'Create a circular arc' with specific verb and resource. Distinguishes from siblings like entity_create_circle and entity_create_ellipse.

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 vs alternatives like circleor ellipse. Does not provide when-not or context for selection.

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

entity_create_block_refInsert Block ReferenceB

Insert a block reference (instance of an existing block definition).

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesInsertion X
yYesInsertion Y
nameYesBlock definition name (must exist in drawing)
layerNoLayer name
scale_xNoX scale factor
scale_yNoY scale factor
rotationNoRotation angle in degrees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (write operation), but the description does not disclose behavioral traits such as requiring the block definition to exist (only hinted in schema parameter description) or any side effects. The description fails to add contextual safety information beyond what annotations provide.

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

Conciseness4/5

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

The description is a single short sentence, very concise, but could be more informative without losing conciseness. Still earns a high score for efficiency.

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 many sibling entity creation tools, the description is minimal. It does not clarify that the block definition must already exist (though schema hints) or describe the return value. With an output schema present, it is barely adequate.

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 100% with descriptions for all 7 parameters. The tool description adds no additional meaning beyond what the schema already provides, placing it at the baseline of 3.

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 verb 'Insert' and resource 'block reference' and distinguishes it from other entity creation tools by specifying it is an instance of an existing block definition.

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?

No explicit guidance on when to use this tool versus alternatives (e.g., entity_create_line). The sibling context implies it is for block references, but no when-not statements.

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

entity_create_circleCreate CircleB

Create a circle at (cx, cy) with given radius.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxYesCenter X
cyYesCenter Y
colorNoACI color code
layerNoLayer name
radiusYesCircle radius

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?

Annotations already indicate readOnlyHint=false, so the mutation behavior is clear. The description adds no further behavioral context (e.g., whether the circle is added to the current layer, or if it returns an entity ID). No contradiction with annotations.

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 immediately conveys the tool's purpose. No unnecessary words.

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?

Despite having an output schema and numerous sibling tools, the description lacks context about the return value, default behavior (e.g., layer/color), or prerequisites. For a creation tool, more detail is needed to ensure proper invocation.

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 100%, so the schema already documents all parameters. The description only repeats cx, cy, and radius without adding meaning beyond the schema (e.g., units, coordinate system, or effect of color/layer defaults).

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 verb 'Create' and the resource 'circle', specifying the location (cx, cy) and radius. This distinguishes it from sibling tools like entity_create_line or entity_create_arc, which have different geometries.

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 on when to use this tool versus alternatives such as entity_create_arc or entity_create_ellipse. The description does not mention prerequisites like having an open drawing.

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

entity_create_ellipseCreate EllipseB

Create an ellipse. major_x/major_y define the major axis vector from the center.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxYesCenter X
cyYesCenter Y
colorNoACI color code
layerNoLayer name
ratioNoMinor-to-major axis ratio (0 < ratio ≤ 1)
major_xYesMajor axis endpoint X (relative to center)
major_yYesMajor axis endpoint Y (relative to center)

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?

Description says 'Create an ellipse' but doesn't disclose that it adds an entity to the current drawing, or whether it returns an entity ID. Annotations indicate readOnlyHint=false, so no contradiction, but behavioral details are missing.

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?

Description is a single sentence, concise and front-loaded with the action. No unnecessary words.

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 7 parameters and an output schema, the description is too minimal. It doesn't explain the ellipse creation process, the meaning of ratio, or the return value. Incomplete for an entity creation 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?

Schema coverage is 100% with good parameter descriptions. Description adds clarification for major_x/major_y but adds little beyond schema. Baseline 3 applies.

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?

Title 'Create Ellipse' and description clearly state the action and resource. 'major_x/major_y define the major axis vector from the center' provides specificity. Distinguishes from sibling tools like entity_create_circle and entity_create_arc.

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 vs alternatives (e.g., circle, arc). No prerequisites or context provided.

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

entity_create_hatchCreate HatchA

Create a hatch fill pattern inside a closed boundary polygon.

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNoPattern rotation angle in degrees
colorNoACI color code
layerNoLayer name
scaleNoPattern scale factor
patternYesHatch pattern name: SOLID, ANSI31, ANSI32, STEEL, GRAVEL, etc.
boundary_pointsYesClosed boundary as list of [x, y] points

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?

Annotations already indicate readOnlyHint=false (write operation), and the description confirms creating a hatch. No additional behavioral context is provided, such as effects on existing geometry, required permissions, or that the boundary must be closed. The description does not contradict annotations.

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 unnecessary words. It is front-loaded and efficiently conveys the tool's function.

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 creation tool with an output schema (presumably returning the created entity), the description covers the essence. However, it could mention that the boundary must be closed and non-self-intersecting for the operation to succeed. Still, it is nearly 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 coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning beyond the schema; it does not explain parameter relationships or constraints. Baseline score of 3 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 states the tool's purpose: creating a hatch fill pattern inside a closed boundary polygon. It uses specific verbs ('create') and a resource ('hatch fill pattern'), and the context ('inside a closed boundary polygon') distinguishes it from other entity creation tools like lines or circles.

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?

No explicit guidance on when to use this tool versus alternatives. While hatch is distinct from other entity types, the description does not mention prerequisites (e.g., must have a closed boundary) or when not to use it. Usage is implied but not clarified.

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

entity_create_lineCreate LineA

Create a line from (x1,y1) to (x2,y2). Returns entity info with handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesStart X coordinate
x2YesEnd X coordinate
y1YesStart Y coordinate
y2YesEnd Y coordinate
z1NoStart Z coordinate (default 0)
z2NoEnd Z coordinate (default 0)
colorNoACI color code 1-255, 256=ByLayer, 0=ByBlock
layerNoLayer name (default: current layer)
linetypeNoLinetype name (e.g. 'DASHED', 'CENTER')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false, so the tool is a write operation. The description adds that it returns entity info with handle, which provides some behavioral context. However, it does not mention that it modifies the drawing or requires an active document. With annotations already covering the safety profile, the description adds moderate value.

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 key parameters. Every word is necessary and there is no extraneous 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 simple line creation tool with a complete input schema and output schema, the description is mostly sufficient. It covers the essential purpose and return value. A minor gap is not explicitly stating that the line is created in the current drawing.

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 100%, so all parameters are already documented. The description does not add any semantic detail beyond the schema (e.g., coordinate system, units). Baseline of 3 is appropriate as the schema does the heavy lifting.

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 verb 'Create' and resource 'line', and specifies the parameters as coordinates (x1,y1) to (x2,y2). It distinguishes from sibling tools like 'entity_create_circle' or 'entity_create_arc' by explicitly mentioning line creation.

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 provides no guidance on when to use this tool versus alternatives such as polyline or rectangle. It only states what the tool does, without any context about prerequisites, when-not-to-use, or references to other tools.

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

entity_create_mtextCreate MTextA

Create a multi-line text entity (MTEXT) with word-wrap at the specified width.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesInsertion point X
yYesInsertion point Y
textYesText content (supports \P for paragraph breaks, {\H...;} for formatting)
colorNoACI color code
layerNoLayer name
widthNoText box width in drawing units
heightNoCharacter height in drawing units
rotationNoRotation in degrees, CCW from +X

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate this is a write operation (readOnlyHint=false). The description adds the word-wrap feature but little else. No annotations are contradicted, but the description offers minimal behavioral context beyond creation.

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 immediately conveys the tool's function. It is well front-loaded and contains no unnecessary 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 simple creation tool with rich schema coverage and an output schema, the description is fairly complete. It could mention that only one entity is created per call, but overall adequate.

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 100%, so the schema fully documents each parameter. The description adds no extra meaning beyond what is in the schema, justifying the baseline score of 3.

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 creates a multi-line text entity (MTEXT) with word-wrap at specified width. It uses a specific verb-resource pair ('Create MText') and distinguishes from sibling tools like entity_create_text (single-line) and entity_create_table.

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 for multi-line text with word-wrap, distinguishing from single-line text tools, but does not explicitly state when to use this vs alternatives or provide any exclusions.

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

entity_create_pointCreate PointA

Create a point marker entity at (x, y).

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesPoint X coordinate
yYesPoint Y coordinate
colorNoACI color code
layerNoLayer name

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?

Annotations indicate readOnlyHint=false, confirming a write operation. The description adds that it creates a 'point marker entity', which is slightly more specific than the title. However, no additional behavioral traits (e.g., return value, error behavior, drawing context) are disclosed. Since an output schema exists, the need for description is slightly reduced, but more detail would be beneficial.

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 fluff. It efficiently conveys the core purpose.

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 point creation tool, the description is adequate but could be more complete. It does not mention the optional parameters (color, layer) or the output (e.g., created entity ID). Given the existence of an output schema and full parameter schema coverage, the description's brevity is acceptable but not exceptional.

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?

With 100% schema description coverage, the schema already documents x, y, color, and layer. The description reinforces x and y as coordinates but adds no new meaning. Baseline 3 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 'Create a point marker entity at (x, y)' clearly states the action (create), the resource (point marker entity), and the key parameters (coordinates). It distinguishes from sibling tools like entity_create_line or entity_create_circle.

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 for creating point markers but does not explicitly state when to use this tool over alternatives or provide any conditions for use. No exclusion criteria or context is given.

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

entity_create_polylineCreate PolylineA

Create a lightweight 2D polyline through the given points.

Example: points=[[0,0],[100,0],[100,100],[0,100]], closed=true → rectangle

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoACI color code
layerNoLayer name
closedNoWhether to close the polyline
pointsYesList of [x, y] coordinate pairs

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?

The description labels it 'lightweight 2D polyline', adding some behavioral context. However, it doesn't disclose side effects, permissions, or other traits beyond what annotations provide (readOnlyHint=false). No contradictions.

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 and an example, all front-loaded. No wasted words; every part 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?

Given the tool has 4 parameters, an output schema (context signal), and a straightforward purpose, the minimal description is adequate but lacks depth. No guidance on context or edge cases. Could mention that the polyline is created in the current drawing.

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 100%, so baseline is 3. The example adds slight value by showing 'points' and 'closed' usage, but doesn't explain parameters like 'color' or 'layer' beyond the schema. The description does not significantly enhance parameter understanding.

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 'Create a lightweight 2D polyline through the given points' with a specific example. It uses a strong verb-resource pairing and distinguishes from siblings like entity_create_line by specifying polyline and including 'lightweight 2D' qualifier.

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?

No explicit guidance on when to use this tool versus alternatives like entity_create_line or entity_create_rectangle. The example implies it's for arbitrary polylines, but no when-not or alternative tools are mentioned.

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

entity_create_rectangleCreate RectangleA

Create a closed rectangular polyline between two corner points.

Convenience wrapper around entity_create_polyline.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst corner X
x2YesOpposite corner X
y1YesFirst corner Y
y2YesOpposite corner Y
colorNoACI color code
layerNoLayer name

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?

Annotations indicate non-read-only and non-idempotent. Description adds that it creates a closed rectangular polyline, which is consistent. No additional behavioral details are provided, but annotations cover safety basics, making this adequate.

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 core purpose, no wasted words. Structurally optimal for quick understanding.

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 presence of output schema, full schema coverage, and annotations, the description sufficiently covers the tool's role. Could mention that it creates a polyline entity specifically, but 'closed rectangular polyline' implies that. Nearly complete for a simple creation 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?

Schema coverage is 100% with clear parameter descriptions. Description adds the concept of 'two corner points,' which aligns with x1,y1 and x2,y2 but does not further clarify formats or constraints. Baseline 3 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?

Clearly states the tool creates a closed rectangular polyline from two corner points. Distinguish from sibling entity_create_polyline by specifying 'rectangular' and noting it's a convenience wrapper.

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?

Identifies as a convenience wrapper around entity_create_polyline, implying use for rectangles. Lacks explicit when-not-to-use or alternatives beyond polyline, but sufficient for a simple tool.

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

entity_create_revcloudCreate Revision CloudA

Draw a revision cloud: a polyline whose every segment carries an arc.

A segment_length longer than the shortest edge is refused — the result would carry no arcs at all and would be a plain polyline reported as a cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoTarget layer. Empty uses the current layer.
closedNoClose the path back to the first point.
pointsYesPath corners as [[x, y], ...].
segment_lengthYesApproximate arc length of each cloud bump, in drawing units.

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?

Annotations only include destructiveHint=false, so the description carries the burden of behavioral disclosure. It adds valuable context by explaining that a revision cloud is a polyline with arcs and discloses a refusal condition when segment_length exceeds the shortest edge, which prevents a misleading plain-polyline result. This goes beyond the schema and annotations, though it does not mention other side effects like layer handling or undo 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 two sentences long, front-loaded with the core purpose and followed by a single, high-value edge case. Every sentence earns its place; there is no fluff or repetition of schema details.

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?

With an output schema present, return values need no explanation. The description covers the essential concept, the key constraint, and the tool's non-destructive nature (via annotations). It is complete enough for a 4-parameter create tool, though it could theoretically mention how the cloud is integrated into the current drawing or any prerequisites (e.g., active drawing), but these are standard and implied.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning for segment_length by linking it to the shortest edge and explaining that too long a value gets refused—a semantic constraint not present in the schema. The other parameters are already well described in the schema, so no further compensation is needed.

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 starts with a specific verb and resource: 'Draw a revision cloud' and immediately defines its unique nature as a polyline where every segment carries an arc. This clearly distinguishes it from sibling tools like entity_create_polyline or entity_create_arc, making the purpose unmistakable.

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

Usage Guidelines3/5

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

The description implies when to use the tool (whenever a revision cloud is needed) and provides a critical constraint on segment_length, but it does not explicitly state when to choose this over alternatives or mention any exclusions. The usage context is clear enough from the purpose, but no explicit guidance on alternatives or preconditions is given.

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

entity_create_splineCreate SplineA

Create a NURBS spline curve passing through the specified fit points.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoACI color code
layerNoLayer name
fit_pointsYesList of [x, y] fit points the spline passes through

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?

The description matches the annotation readOnlyHint=false, confirming it is a write operation. However, it adds no additional behavioral context such as permission requirements, side effects, or error conditions beyond what annotations already indicate.

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, self-contained sentence that is clear and free of unnecessary words. It efficiently communicates the essential information without 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?

Given that an output schema exists (so return values are covered) and the input schema is fully documented, the description provides a complete enough summary. It could offer slightly more context on when a spline is preferred over other curves, but it is largely 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?

All three parameters have descriptions in the input schema (100% coverage), so the description adds no additional meaning. The baseline of 3 is appropriate as the schema already provides sufficient 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 clearly states the action ('Create'), the resource ('NURBS spline curve'), and the specific method ('passing through the specified fit points'). This effectively distinguishes it from sibling entity creation tools like entity_create_line or entity_create_circle.

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 for creating a spline with fit points but does not provide explicit guidance on when to use this tool versus alternatives (e.g., polyline or arc). No when-not-to-use or context for selection is given.

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

entity_create_tableCreate TableB

Create a native COM table or an explicitly-labelled ezdxf composite table.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesTop-left X coordinate
yYesTop-left Y coordinate
rowsYesData rows; every row must have the same length
layerNoTarget layerTEXT
titleNoOptional title row
headersNoOptional column header row
row_heightNo
text_heightNo
column_widthsNoOptional explicit widths per column

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?

Annotations indicate it is not read-only, and description mentions internal types (COM vs ezdxf), but does not disclose other behavioral traits like mutability or side effects beyond creation.

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?

Single sentence, concise and to the point. No superfluous information, but could be slightly more structured.

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?

With output schema present and good schema coverage, the description is minimally adequate. However, it lacks contextual details like placement in a drawing or relationship to other entities.

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?

Description does not add meaning beyond the input schema, which already describes parameters adequately. Schema coverage is 78%, so baseline 3 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?

Description explicitly states the tool creates a native COM table or an explicitly-labelled ezdxf composite table. It clearly distinguishes from sibling tools that create other entity types like lines, circles, etc.

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 alternatives. Does not mention context like drawing creation or prerequisites.

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

entity_create_textCreate TextB

Create a single-line text entity (DTEXT/TEXT).

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesInsertion point X
yYesInsertion point Y
textYesText content to display
colorNoACI color code
layerNoLayer name
heightNoText height in drawing units
rotationNoRotation angle in degrees

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

The description only states the action 'create', but does not disclose behavioral traits such as error handling (e.g., invalid layer/color, zero height), truncation of long text, or the effect of default values. Annotations indicate readOnlyHint=false, so mutation is expected, but no additional context is provided.

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 directly states the tool's purpose with no extraneous words. It is front-loaded and efficient.

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 is fairly complete given the simplicity of the tool and the presence of a full input schema and output schema. However, it lacks usage context compared to its sibling mtext tool, which slightly diminishes completeness.

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 100%, so the schema already documents all parameters. The description does not add any new meaning beyond naming the key parameters (text, x, y). Baseline score of 3 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 states the action 'Create' and the resource 'single-line text entity (DTEXT/TEXT)', which is specific and distinguishes it from sibling tools like entity_create_mtext for multi-line text.

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 (e.g., entity_create_mtext for multi-line, leader_create_mleader, or block attributes). The agent must infer usage from the type name.

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

entity_create_wipeoutCreate WipeoutA

Create a WIPEOUT that hides drawing content behind its outline.

Refuses fewer than three points: a zero-area mask hides nothing while reporting success.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoTarget layer. Empty uses the current layer.
pointsYesClosed polygon as [[x, y], ...]; at least 3 points.

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?

The description discloses an important behavioral nuance: it refuses fewer than three points and warns that a zero-area mask would hide nothing while still reporting success. This goes beyond the destructiveHint annotation, which only indicates non-destructiveness, by highlighting an edge case that could confuse users.

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 extremely concise, consisting of two sentences. The first sentence front-loads the main purpose, and the second sentence adds a critical edge-case warning without unnecessary fluff. Every word 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 simple entity creation tool, the description is sufficient. It covers the main behavior, key constraint, and has an output schema that likely details return values. No major information gaps are apparent given the low complexity.

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 input schema already provides full descriptions for both parameters (points and layer), including the requirement of at least 3 points. The description does not add significant new parameter semantics beyond restating the point count constraint, so baseline 3 is appropriate given 100% schema 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 description clearly states the specific action ('Create a WIPEOUT') and its purpose ('hides drawing content behind its outline'), which distinguishes it from sibling entity creation tools like lines or circles. The use of the term 'WIPEOUT' is precise and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear usage context by explaining what the tool does (hides content), implying the right scenario for use. It does not explicitly mention alternatives or when not to use it, but the unique function of hiding content differentiates it from related tools. The constraint about three points also guides correct usage.

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

entity_deleteDelete EntityB
Destructive

Permanently delete an entity by its handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesEntity handle to delete

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?

The annotation already declares destructiveHint=true, so the description's addition of 'permanently' does not provide new safety-critical insights beyond what is structured.

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 with no extraneous words. Every word 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 tool is simple with one parameter and an output schema, but the description omits details like return value or post-deletion effects. It is adequate but not thorough.

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 100% and the description merely restates the parameter's purpose ('by its handle') without adding format constraints or usage nuances. Baseline 3 applies.

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 action ('delete'), the object ('entity'), and the identifier ('handle'). It also emphasizes permanence, and the sibling 'entity_delete_many' distinguishes this as a single-entity deletion.

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 vs. alternatives like 'entity_delete_many' for batch deletion. It lacks context on appropriate use cases.

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

entity_delete_manyDelete Multiple EntitiesA
Destructive

Delete multiple entities in one call. Returns count of deleted entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
handlesYesList of entity handles to delete

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?

Annotations already declare destructiveHint=true, so the description carries a lower burden. It adds that the tool returns a count of deleted entities, which is useful behavioral info beyond the annotations.

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, front-loaded, with no extraneous information. Every sentence serves a purpose.

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 destructive tool with a single parameter and output schema (implied), the description is sufficient. However, it could mention potential failure modes or idempotency, but overall complete given the simplicity.

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 100%, and the description does not add additional meaning beyond what the schema provides for the 'handles' parameter. Baseline score applies.

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 deletes multiple entities in one call, distinguishing it from sibling tools like entity_delete. The verb 'delete' and resource 'entities' are specific.

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 for batch deletion but does not provide explicit guidance on when to use this tool versus alternatives like entity_delete for single deletions. No exclusions or context provided.

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

entity_edit_geometryEdit GeometryA

Edit the defining geometry of an existing entity in place (no delete/recreate).

CIRCLE: cx/cy/radius · LINE: x1/y1/x2/y2 · ARC: cx/cy/radius/start_angle/end_angle. Any argument left out is unchanged; the handle is preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
cxNoNew center X (CIRCLE/ARC)
cyNoNew center Y (CIRCLE/ARC)
x1NoNew start X (LINE)
x2NoNew end X (LINE)
y1NoNew start Y (LINE)
y2NoNew end Y (LINE)
handleYesHandle of an existing CIRCLE, LINE, or ARC
radiusNoNew radius (CIRCLE/ARC)
end_angleNoNew end angle in degrees (ARC)
start_angleNoNew start angle in degrees (ARC)

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?

Beyond annotations, description reveals partial update behavior ('any argument left out is unchanged') and handle preservation. Annotations only provide readOnlyHint and destructiveHint, which are consistent.

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 concise sentences: first states purpose, second lists parameters per entity type with the crucial note on unchanged args. No wasted words, 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?

Covers essential info: purpose, supported entity types, behavior for omitted parameters. Has output schema, so return values need not be explained. Could mention error cases (e.g., invalid handle) but not required.

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 100%, so the description adds no additional meaning over the parameter descriptions. It lists the parameters per entity type but does not provide extra semantics beyond 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?

Clear verb 'edit' and specific resource 'defining geometry of an existing entity'. Distinguishes from siblings like entity_move or entity_set_properties. Lists applicable entity types (CIRCLE, LINE, ARC).

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?

States 'in place (no delete/recreate)' and lists entity-specific parameters, giving context for when to use. Does not explicitly compare to alternatives like entity_set_properties, but the purpose is sufficiently distinct.

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

entity_edit_textEdit TextA

Edit an existing text label in place — change its content, height, or rotation.

Use this to rename/relabel without deleting and recreating (which would lose the handle). Works on both TEXT and MTEXT.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoNew text content (unchanged if omitted)
handleYesHandle of an existing TEXT or MTEXT entity
heightNoNew text height (unchanged if omitted)
rotationNoNew rotation in degrees (unchanged if omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=false and destructiveHint=false. The description adds that editing happens 'in place' and preserves the handle, which is useful behavioral context beyond annotations.

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: purpose, usage guidance, entity type specification. No superfluous words.

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 an edit operation with three optional parameters and an output schema, the description covers the main points: what can be changed, which entity types, and the advantage over deletion. 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 coverage is 100%, so the description adds no extra meaning beyond what the schema already provides for each parameter. Baseline 3 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 states the action ('Edit'), the resource ('existing text label'), and specific attributes (content, height, rotation). It distinguishes from sibling tools like entity_create_text and entity_delete.

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

Usage Guidelines5/5

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

The description explicitly advises using this tool 'without deleting and recreating (which would lose the handle)', providing clear guidance on when to use it vs alternatives. It also specifies it works on both TEXT and MTEXT.

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

entity_extendExtend EntityA

Extend target to meet boundary. If end_x/end_y is None, the target endpoint nearest the boundary is auto-selected.

V1 supports LINE+LINE only. Raises if the lines are parallel.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_xNoX of a point near the endpoint to extend (None = auto)
end_yNoY of a point near the endpoint to extend (None = auto)
target_handleYesHandle of the line being extended
boundary_handleYesHandle of the boundary line

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?

Describes auto-selection of endpoint when end_x/end_y is None, raises on parallel lines, and version limitation. Annotations (readOnlyHint false, destructiveHint false) are consistent, and description adds behavioral detail beyond them.

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 concise sentences that front-load the main purpose and add critical constraints. No superfluous 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?

Explains core functionality, constraints, and behavior for optional parameters. Does not mention the output schema or side effects, but these are less critical for a simple extend operation.

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 already fully describes parameters (100% coverage). Description adds minimal extra meaning beyond restating the auto-select behavior, which is already implied by default null 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?

Clearly states the action 'Extend target to meet boundary' with a specific verb and resource. Specifies LINE+LINE only, which distinguishes it from other tools like entity_trim or entity_fillet.

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?

Provides context by noting 'V1 supports LINE+LINE only' and 'Raises if parallel,' which guides when to use. Does not explicitly mention alternatives, but the constraints are clear.

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

entity_filletFillet Two EntitiesA

Round a corner with a tangent arc. Returns info on the new ARC entity (or the first source line for radius=0). V1 supports LINE+LINE only.

ParametersJSON Schema
NameRequiredDescriptionDefault
trimNoIf true, trim source entities to the tangent points (AutoCAD default)
radiusYesFillet radius (>= 0; 0 = sharp corner / corner-merge)
handle1YesFirst entity handle
handle2YesSecond entity handle

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?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the agent knows it modifies without destroying. The description adds detail: returns a new arc or source line for radius=0, and the LINE+LINE limitation goes beyond annotations.

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 no wasted words. First sentence defines purpose and output, second sentence specifies limitation and special case. Ideal front-loading.

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 modification tool with 4 parameters and an output schema, the description covers the core operation, return value, and the LINE+LINE constraint. The trim parameter is described in the schema but not in the description; still adequate.

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 input schema covers all 4 parameters with descriptions (100% coverage). The description adds value by explaining radius=0 behavior, though it doesn't elaborate on other parameters beyond 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 clearly states it rounds a corner with a tangent arc, using a specific verb and resource. It distinguishes from the sibling chamfer tool by indicating a rounding operation, and specifies that it returns info on the new ARC entity.

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 a key usage constraint with 'V1 supports LINE+LINE only', telling the agent when this tool applies. However, it does not explicitly state when not to use it or mention alternatives like chamfer.

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

entity_getGet EntityA
Read-only

Get all properties of a specific entity by its handle.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesEntity handle

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint annotation, indicating a read operation. However, it adds minimal behavioral context beyond what the annotation already provides. No details on limitations, performance, or what 'properties' entail, though the output schema likely covers the return structure.

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 of 10 words, front-loaded with the verb and resource. Every word earns its place, and there is no redundancy or unnecessary detail.

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

Completeness4/5

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

Given the tool's simplicity (single required parameter, read-only, output schema exists), the description is complete enough. It covers the main purpose and identifier. Minor gaps like error handling or edge cases are not critical for this straightforward get operation.

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 input schema has 100% coverage with a description for the required 'handle' parameter. The tool description does not add additional meaning beyond reiterating 'by its handle'. Baseline score of 3 is appropriate as the schema already documents the parameter adequately.

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 gets all properties of a specific entity by its handle, distinguishing it from sibling tools like entity_list (likely lists multiple entities) and entity_select_smart (selection-based). The verb 'Get' and resource 'all properties of a specific entity' are specific and 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or compare to sibling tools such as entity_list or entity_select_smart for retrieving entity properties. The usage context is only implied.

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

entity_listList EntitiesA
Read-only

List entities in the drawing with optional type and layer filters.

Returns handle, type, layer, color, and type-specific properties. Use handles with entity_get, entity_move, entity_delete, etc.

This is the most expensive result on the server — the full record runs ~250 characters per entity, and properties.bounding_box alone is about a third of it. When all you need is handles, say so::

entity_list(layer_filter="GEOMETRY", fields=["handle", "type"], compact=True)

Paging honesty: a plain list has nowhere to say that more entities followed the page, so compact=True is the only mode that reports total, truncated and next_offset — all measured against the same filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum entities to return
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
offsetNoNumber of entities to skip
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
type_filterNoFilter by entity type: LINE, CIRCLE, ARC, LWPOLYLINE, TEXT, MTEXT, INSERT, HATCH, etc.
layer_filterNoFilter by layer name

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations' readOnlyHint, the description discloses significant behavioral traits: it warns that this is the most expensive server result, quantifies payload size, and honestly explains that pagination truncation is only reported in compact mode. This is rich context that helps the agent anticipate performance and response shape.

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 well-structured and front-loaded: purpose first, then return details, then a concise cost/performance warning with an example, followed by paging honesty. Every sentence adds relevant information, and the code block improves readability without bloating the text.

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 tool with 6 parameters and an output schema, the description covers the core behavior, return values, performance trade-offs, and edge cases (truncation) thoroughly. It also implies the output shape via the return mention and the compact envelope. Given the output schema exists, this is complete enough for an AI agent to select and invoke confidently.

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?

With 100% schema description coverage, the baseline is 3. The description adds value by demonstrating parameter use in an example (fields and compact) and clarifying that compact is the only mode reporting total/truncated/next_offset. It does not fully explain all type-specific properties, but the schema already covers each parameter's purpose.

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 begins with 'List entities in the drawing with optional type and layer filters,' clearly stating the verb, resource, and scope. It also enumerates the return fields (handle, type, layer, color, and type-specific properties), distinguishing it from other entity tools like entity_get or entity_delete.

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 practical usage context: it advises using handles for subsequent operations and gives a concrete example with filters and compact mode to optimize performance. However, it does not explicitly mention when not to use this tool or contrast it with alternative listing tools (e.g., layer_list, selection_get).

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

entity_mirrorMirror EntityB

Mirror an entity across a line defined by two points. Returns the mirrored copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesMirror line first point X
x2YesMirror line second point X
y1YesMirror line first point Y
y2YesMirror line second point Y
handleYesEntity handle
delete_originalNoDelete original after mirroring

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?

Annotations set readOnlyHint=false and destructiveHint=false, so the tool is not read-only and not destructive. The description says 'returns the mirrored copy' implying the original is preserved by default, but does not explicitly state that or mention the delete_original parameter's effect.

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?

Single sentence with no wasted words. Could add more useful context without becoming verbose.

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 transformation tool, the description is minimal. Output schema exists but is not detailed here; nevertheless, the description covers the basic operation. Could mention property preservation or default behavior regarding the original.

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 100%, with each parameter described in the schema. The description adds no extra meaning beyond what the schema already provides.

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 mirrors an entity across a line defined by two points, using specific verb+resource. It distinguishes from sibling tools like entity_copy and entity_rotate.

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 alternatives like entity_copy or entity_rotate. No exclusions or prerequisites are mentioned.

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

entity_moveMove EntityA

Move an entity by the specified displacement vector (dx, dy, dz).

ParametersJSON Schema
NameRequiredDescriptionDefault
dxYesX displacement
dyYesY displacement
dzNoZ displacement
handleYesEntity handle (hex string from entity_list or entity_create_*)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false (not destructive). The description adds that it moves by displacement, but does not elaborate on permanence, undoability, or potential side effects. It provides minimal additional behavioral context beyond what annotations already offer.

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 efficiently states the core purpose without extraneous words. It is front-loaded with the verb and resource.

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, combined with the input schema (100% coverage) and output schema (present), provides sufficient information for an agent to use the tool. It could mention that the move is relative and that the entity handle must be valid, but overall it is fairly complete for a straightforward transformation 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?

Schema description coverage is 100%, so the description does not need to repeat parameter info. It only briefly mentions displacement vector, which is already in the schema. No new semantic value added beyond what the schema provides, warranting a baseline score of 3.

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 action 'move', the resource 'entity', and the method by displacement vector (dx, dy, dz). It effectively differentiates from sibling tools like entity_copy, entity_rotate, etc., which perform different transformations.

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 vs alternatives (e.g., for absolute positioning, using a different tool or calculating displacement). No prerequisites or context for usage are mentioned.

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

entity_offsetOffset EntityA

Create a parallel copy of a line, circle, or polyline at the given distance.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesEntity handle (line, circle, or polyline)
side_xNoX coordinate of a point on the offset side (optional)
side_yNoY coordinate of a point on the offset side (optional)
distanceYesOffset distance (positive = outward/right)

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?

Annotations indicate not read-only and not destructive, which is consistent with creating a copy. The description adds that it creates a parallel copy, but does not clarify if the original entity remains or is deleted, nor the default offset direction when side_x/y are omitted. Behavioral context is adequate 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, information-dense sentence that immediately states the core action and resource. Every word serves a purpose, with no redundant or filler 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?

Despite having an output schema, the description lacks crucial context: it does not explain default behavior when side point is omitted, nor does it confirm that the original entity remains (copy vs. move). The entity types listed may not be exhaustive given the schema accepts any string handle.

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 100%, so baseline is 3. The description adds no new parameter semantics beyond the schema's already clear descriptions for handle, distance, side_x, and side_y. The description does not elaborate on parameter usage or constraints.

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 verb 'Create' and the resource 'parallel copy' along with the specific entity types (line, circle, polyline) and the distance parameter. This distinguishes the tool from siblings like entity_copy or entity_move, which do not offset.

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 does not provide any guidance on when to use this tool versus alternatives such as entity_copy or entity_scale. It lacks explicit when-to-use or when-not-to-use instructions, making it insufficient for an AI to decide between offset and other copy/modify operations.

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

entity_rotateRotate EntityA

Rotate an entity around a base point by the specified angle.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_xYesRotation base point X
base_yYesRotation base point Y
handleYesEntity handle
angle_degYesRotation angle in degrees (positive = counter-clockwise)

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?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds minimal behavioral context beyond stating the rotation operation. It does not contradict annotations, but also doesn't disclose additional traits like angle limits or modification 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, efficient sentence that immediately conveys the tool's purpose. No unnecessary words 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?

Given the presence of an output schema, the description is minimally complete for a simple modification tool. However, it lacks differentiation from sibling tools and does not address potential side effects or prerequisites.

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 input schema has 100% coverage, with each parameter described. The description adds no new meaning beyond the schema, such as units or constraints, so baseline 3 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 states the tool rotates an entity around a base point by an angle. It uses a specific verb 'rotate' and resource 'entity', and distinguishes from siblings like entity_move, entity_scale, etc., by specifying the operation.

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 provides no guidance on when to use this tool versus alternatives such as entity_move or entity_scale. No exclusions or context for usage are given, leaving the agent to infer 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.

entity_scaleScale EntityA

Scale an entity uniformly from a base point.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_xYesScale base point X
base_yYesScale base point Y
factorYesScale factor (>1 enlarges, <1 shrinks)
handleYesEntity handle

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate non-read-only and non-destructive; the description adds no additional behavioral traits such as whether the entity is modified in place or if a new entity is created.

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?

Single sentence effectively communicates the tool's purpose with no extraneous 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?

Adequate for a simple transformation tool with an output schema; however, could mention that the entity is modified in place or the return value 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 covers 100% of parameters with descriptions; the tool description adds minimal extra meaning beyond what the schema already provides.

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?

Clearly states it scales an entity uniformly from a base point, distinguishing it from move, rotate, mirror, etc.

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?

Implied usage for scaling entities, but no explicit guidance on when to use this tool versus alternatives like entity_move or entity_rotate.

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

entity_select_smartEntity: Smart Select (semantic predicate)A
Read-only

Select entities by semantic predicate instead of memorising handles.

Uncapped. The usual next step is dimension_auto(handles), so fields=["handle"] is normally all this needs to return.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.
predicateYesPredicate dict (all keys optional, AND-ed): type (e.g. 'LINE'), layer (name), near ([x,y,radius]), length_range ([min,max], LINE/ARC only), color (ACI int).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The readOnlyHint annotation already indicates safety; the description adds "Uncapped" (no result limit) and a practical tip about the typical return field, which gives useful behavioral context beyond annotations.

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?

Exactly two sentences, each earning its place: one states the operation, the other a usage tip. No fluff or redundancy.

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?

With a rich schema, output schema, and readOnlyHint, the description provides the essential context: semantic selection, uncapped results, and typical next step. The tool is fully usable from these instructions.

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 fully documents all parameters, so baseline is 3. The description adds the recommendation fields=['handle'] for the common dimension workflow, which provides semantic guidance 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?

Clear: "Select entities by semantic predicate" specifies a query operation, and "instead of memorising handles" distinguishes it from handle-based retrieval. However, it doesn't explicitly name sibling tools like entity_get or selection_filter, so it doesn't fully differentiate from them.

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

Usage Guidelines4/5

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

Gives actionable context: use when selecting by semantic criteria rather than handles, and the "usual next step is dimension_auto(handles)" pipeline tip implies a common workflow. No explicit exclusions or alternative tool names, but the guidance is concrete.

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

entity_set_propertiesSet Entity PropertiesA

Change one or more properties of an entity (layer, color, linetype, lineweight, visibility).

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoNew ACI color (256=ByLayer, 0=ByBlock, 1-255=specific)
layerNoNew layer name
handleYesEntity handle
visibleNoSet entity visibility
linetypeNoNew linetype name (e.g. 'DASHED', 'CENTER', 'ByLayer')
lineweightNoLineweight in 0.01mm units (-3=ByLayer, -2=ByBlock)

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?

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description aligns with those. The description adds the list of modifiable properties but does not disclose additional behavioral traits like revertability, validation behavior, or error conditions. With annotations covering safety, a score of 3 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?

The description is a single, clear sentence that immediately states the action and scope. No unnecessary words or filler, perfectly concise and 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 has 6 parameters (including required handle) and an output schema, the description is minimal. It does not mention that only provided properties are updated, or any side effects. However, with full schema descriptions and output schema existing, the description is adequate but not richly informative.

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 100%, meaning each parameter has a detailed description. The tool description merely lists the property names without adding any new meaning or context beyond what the schema already provides. Therefore, it meets the baseline for sufficient schema coverage but does not enhance understanding.

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 ('Change') and resource ('properties of an entity'), and lists the exact properties (layer, color, linetype, lineweight, visibility). This clearly distinguishes it from sibling tools that modify geometry, create entities, or perform other operations.

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 provides no guidance on when to use this tool versus alternatives (e.g., entity_batch_modify, or other property-changing tools). It does not mention prerequisites, such as requiring the entity handle, or when not to use it.

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

entity_trimTrim EntityA

Trim target against cutter, keeping the segment containing (keep_x, keep_y).

V1 supports LINE+LINE only. Cutter is treated as an infinite ray (AutoCAD's default 'implied extend' trim mode). Raises if the lines are parallel.

ParametersJSON Schema
NameRequiredDescriptionDefault
keep_xYesX of a point on the side of the target to KEEP
keep_yYesY of a point on the side of the target to KEEP
cutter_handleYesHandle of the cutting line
target_handleYesHandle of the line being trimmed

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?

The description discloses that the cutter is treated as an infinite ray (implied extend mode) and that an error is raised if lines are parallel. This adds behavioral context beyond the annotations, which only indicate readOnlyHint and destructiveHint. The mutation aspect (trimming) is implied but clear.

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 brief and to the point. The primary action is stated first, followed by constraints (V1 limitation) and a note about the cutter behavior and error condition. No unnecessary sentences.

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?

Given that an output schema exists, the description does not need to explain return values. It covers the essential behavior: what is trimmed, the parameters, supported types, and error conditions. No gaps are apparent.

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 input schema provides descriptions for all 4 parameters, so schema coverage is 100%. The description adds context for keep_x and keep_y (a point on the side to keep) but does not add significant meaning beyond what the schema already states. Baseline of 3 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 states the action (trim), the resources (target and cutter lines), and the keep point. It specifies the supported entity type (LINE+LINE) and distinguishes from sibling tools like entity_extend and entity_fillet by describing the trim operation and its constraints.

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 notes that only LINE+LINE is supported in V1, which guides the agent on when this tool is applicable. However, it does not explicitly state when to use this tool versus alternatives (e.g., entity_extend) or provide a when-not-to-use scenario.

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

gd_frameGD&T: Feature Control Frame (ISO 1101)A

Draw an ISO 1101 feature control frame from LINE + TEXT primitives.

Renders identically on COM and ezdxf. Referenced datums are recorded so the gdt critique focus flags any datum with no matching datum feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesFrame bottom-left corner X.
yYesFrame bottom-left corner Y.
layerNoLayer (defaults to the active DIM layer).
datumsNoOrdered datum references, e.g. ['A','B']. Required for orientation/location/runout characteristics.
heightNoFrame height (mm); text scales with it.
symbolYesGeometric characteristic: straightness, flatness, circularity, cylindricity, profile_line, profile_surface, angularity, perpendicularity, parallelism, position, concentricity, symmetry, circular_runout, total_runout.
diameterNoPrefix ⌀ for a cylindrical (diametral) tolerance zone.
modifierNoMaterial-condition modifier: M (MMC), L (LMC), S (RFS).
toleranceYesTolerance zone value (mm).

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?

Annotations indicate destructiveHint=false, and the description goes beyond that by stating rendering consistency across COM and ezdxf, and that datums are recorded for critique integration. This provides useful behavioral context not covered by annotations.

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 extremely concise: two short sentences in the first paragraph for purpose, and one sentence with two key behavioral points in the second. Every sentence adds value 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?

Given the tool has 9 parameters, 4 required, and an output schema, the description covers the essential behavioral aspects (rendering, critique integration). However, it omits error conditions or behavior for invalid inputs, which are partially covered by the schema.

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 100%, so baseline is 3. The description adds minimal additional meaning (e.g., 'Ordered datum references' for datums), but does not significantly enrich understanding beyond what the schema already provides.

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 verb 'Draw' and the specific resource 'ISO 1101 feature control frame', and mentions it uses LINE + TEXT primitives. This differentiates it from sibling entity creation tools, 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 Guidelines3/5

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

The description provides context about rendering and integration with the critique tool, but it does not explicitly state when to use this tool versus alternatives (e.g., datum_feature or other annotation tools). Usage guidance is implied but not directly addressed.

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

gear_draw_helical_front_viewGear: Helical Front ViewA

Deterministic helical gear front view: full involute outline (40 pts/flank), pitch/base/outer/root circles, helix symbol, optional bore + keyway.

Returns a handle bundle plus 'metadata' for downstream gear_draw_section_aa.

ParametersJSON Schema
NameRequiredDescriptionDefault
handNoHelix hand: 'RH' (right) or 'LH' (left).RH
teethYesNumber of teeth.
moduleYesModule (mm). Pitch radius = module*teeth/2.
center_xNo
center_yNo
helix_angleYesHelix angle in degrees.
keyway_depthNoKeyway depth into hub (t2).
keyway_widthNoKeyway width (b). Auto from DIN 6885 if bore set and this is None.
bore_diameterNoOptional bore diameter (mm). Adds a centered hole.
pressure_angleNoPressure angle (deg). Standard: 20.

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?

Annotations only provide destructiveHint=false. The description adds that the tool is 'deterministic' and returns a handle bundle plus metadata, indicating output behavior. However, it does not disclose whether it creates new entities in the drawing, required permissions, or any side effects beyond the return.

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 redundant words. It front-loads the tool's purpose and key output, then efficiently mentions optional features and downstream use. Every sentence serves a clear function.

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 complexity (10 params) and presence of an output schema, the description covers the tool's purpose, output structure, and relation to a sibling. Missing elements include prerequisites (e.g., active drawing) and error handling, but overall it is adequate for selection and 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?

With 80% schema coverage, the description adds value by grouping optional features: 'optional bore + keyway' and explaining output details like '40 pts/flank' and circle types. This helps the agent understand how parameters like bore_diameter and keyway_depth relate to the overall output.

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 it produces a 'helical gear front view' with specific elements like involute outline, circles, helix symbol, and optional bore/keyway. It distinguishes from the sibling 'gear_draw_spur_front_view' by specifying 'helical', though the description itself does not explicitly contrast them.

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 explicit guidance on when to use this tool versus alternatives like 'gear_draw_spur_front_view' or 'gear_draw_section_aa'. The description only mentions that it returns data for downstream 'gear_draw_section_aa', but does not state prerequisites or conditions for selection.

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

gear_draw_section_aaGear: Section A-A ViewA

Deterministic side cross-section of a gear created by gear_draw_*_front_view. Includes top/bottom/left/right boundaries, bore lines, keyway notch, ANSI31 hatch.

ParametersJSON Schema
NameRequiredDescriptionDefault
x_offsetYesX position to place the section view.
face_widthYesGear face width (mm).
gear_metadataYesThe 'metadata' dict returned by gear_draw_helical_front_view or gear_draw_spur_front_view.

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?

Annotations only include destructiveHint=false, leaving behavior mostly to the description. The description adds value by stating 'Deterministic' and listing included elements, but does not disclose return format, side effects, or resource requirements beyond the annotation.

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, front-loaded with the core purpose, and every sentence adds value. No redundancy or fluff.

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 outputs a complex section view, the description adequately lists content but lacks details on parameters' effect on output, the section cut location (A-A), and return behavior despite having an output schema. Adequate 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 coverage is 100%, and all parameters have descriptions. The description does not add extra meaning beyond the schema beyond clarifying gear_metadata as the return from front view tools, which is already in the schema description. Baseline 3 is appropriate.

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 'side cross-section' of a gear, specifying it is deterministic and lists included elements (boundaries, bore lines, keyway notch, hatch). It distinguishes from siblings by referencing gear_draw_*_front_view, but could be more explicit with a verb like 'draws' or 'creates'.

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 stating it applies to gears created by gear_draw_*_front_view, setting a prerequisite. However, it does not provide when-not-to-use guidance or compare with similar sibling tools like keyway_draw_section.

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

gear_draw_spur_front_viewGear: Spur Front ViewB

Deterministic spur gear front view (no helix symbol).

ParametersJSON Schema
NameRequiredDescriptionDefault
teethYes
moduleYes
center_xNo
center_yNo
keyway_depthNo
keyway_widthNo
bore_diameterNo
pressure_angleNo

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?

Annotations only indicate destructiveHint=false. The description adds 'Deterministic', implying reproducible output, but fails to disclose that the tool likely creates entities in the drawing or its side effects. Given limited annotations, the description adds marginal value.

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 short sentence, concise and front-loaded. However, it is so minimal that it sacrifices informativeness, though this is a matter of trade-off rather than poor structure.

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's complexity (8 parameters, 2 required) and sibling tools, the description is insufficient. It does not explain that the tool generates a gear shape in the drawing, how parameters affect the result, or that an output schema exists. The agent lacks critical context for correct usage.

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%, placing full burden on the description to explain parameters. The description does not mention any of the 8 parameters (module, teeth, pressure_angle, etc.), leaving the agent without guidance on how to specify a valid gear.

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 'spur gear front view' which clearly identifies the tool's output. The phrase 'no helix symbol' differentiates from the helical gear sibling tool, but the lack of an explicit verb like 'draw' or 'create' slightly reduces clarity.

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 explicitly excludes helical gears with 'no helix symbol', which helps the agent choose between this and the helical sibling. However, it does not provide guidance on when to use this tool versus other drawing tools or any prerequisites.

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

hatch_add_boundaryAdd Hatch BoundaryA

Add one boundary path built from typed edges.

Typed edges exist because a boundary that only accepts vertex lists silently straightens every curve it is given. Every edge is validated before any is written, so a malformed list refuses instead of leaving a half-built path.

ParametersJSON Schema
NameRequiredDescriptionDefault
edgesYesTyped edges: {'type':'line','start':[x,y],'end':[x,y]} | {'type':'arc','center':[x,y],'radius':r,'start_angle':a,'end_angle':b,'ccw':true} | {'type':'ellipse','center':[x,y],'major_axis':[x,y],'ratio':r}
handleYesHandle of an existing HATCH.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses important behavioral traits beyond annotations: edge validation occurs before any write, and malformed input refuses entirely instead of leaving a half-built path. This is significant because it informs the agent that the operation is atomic in terms of validation, which is critical for error handling. The annotation only indicates non-destructive, but the description adds valuable detail about failure modes and pre-validation.

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 with the core action. The second sentence provides necessary rationale and validation behavior without excess. Every word earns its place, and the structure is logical: what it does, then why it's designed that way.

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

Completeness4/5

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

Given the tool's complexity (typed edges with multiple formats), the description covers the essential reasoning and safety behavior. An output schema exists, so return values are not needed. The description could have explicitly mentioned that the edges array is required and the handle refers to an existing HATCH, but the schema handles that. Overall, it's complete enough for correct 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 100%, so the schema already documents both parameters ('handle' and 'edges'). The description adds meaning by explaining why 'edges' must be typed (to preserve curves) and how validation works. This exceeds the baseline 3 by providing context beyond the raw types, though it doesn't detail every edge subfield (which the schema covers).

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 'Add one boundary path built from typed edges', specifying a specific verb (add) and resource (hatch boundary). It distinguishes itself from the sibling 'boundary_from_entities' by emphasizing 'typed edges', and provides rationale for why typed edges are used, which clarifies the tool's unique purpose.

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 that typed edges are necessary because a boundary that only accepts vertex lists would silently straighten curves, implying when this tool is appropriate (when curves need to be preserved). It doesn't explicitly state when to use alternative boundary tools, but the context is clear enough for distinguishing from similar tools.

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

hatch_editEdit HatchA

Edit an existing hatch in place.

Omitted parameters are left alone — a partial edit that resets the rest is data loss. changed reports which attributes actually moved, so re-setting a value to what it already was comes back as an empty list rather than a false positive.

ParametersJSON Schema
NameRequiredDescriptionDefault
angleNoNew pattern angle in degrees.
colorNoNew ACI colour.
scaleNoNew pattern scale (> 0).
styleNoIsland style: normal, outer or ignore. Empty leaves it alone.
handleYesHandle of an existing HATCH.
patternNoNew pattern name. Empty leaves it alone.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses critical behavior beyond the destructiveHint annotation: omitted parameters are left alone, preventing accidental data loss, and the `changed` output indicates exactly which attributes changed. This is valuable context not available in the schema or annotations.

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, front-loaded with the main purpose, and every clause conveys essential information without fluff. The behavioral warning is concise and impactful.

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?

The tool has an output schema, high parameter coverage, and a clear purpose. The description covers the key behavioral nuance (partially updating vs resetting), making it sufficiently complete for an agent to invoke it safely.

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?

The schema already provides 100% parameter coverage, but the description adds the crucial semantic that omitted parameters are preserved. This informs how defaults (null/empty) should be interpreted, which is not explicit in 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 states 'Edit an existing hatch in place' with a specific verb and resource, clearly distinguishing this from sibling tools like entity_create_hatch or hatch_set_gradient. It also clarifies the scope ('in place').

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 to use: editing an existing hatch. However, it does not mention alternatives or exclusions, so a user might not know when to choose this over related tools like hatch_set_gradient or entity_set_properties. The 'omitted parameters left alone' note gives usage guidance for the tool's semantics.

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

hatch_set_gradientSet Hatch GradientA

Fill a hatch with a gradient instead of a pattern.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoGradient name: LINEAR, CYLINDER, CURVED, SPHERICAL, HEMISPHERICAL.LINEAR
tintNoTint value used with one_color (0-1).
color1YesStart colour as [r, g, b].
color2YesEnd colour as [r, g, b].
handleYesHandle of an existing HATCH.
centeredNo0 = one-sided, 1 = centred.
rotationNoGradient angle in degrees.
one_colorNoBlend color1 towards the background instead of color2.

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?

The description discloses the key behavior that the hatch's pattern will be replaced by a gradient (via 'instead of'), which is useful. However, it does not discuss side effects like irreversibility, required permissions, or how parameters like one_color affect the outcome. Annotations only include destructiveHint=false, so the description carries some transparency burden but remains minimal.

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 of eight words with no filler or redundancy. It is front-loaded and directly states the tool's purpose, making it maximally efficient.

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

Completeness4/5

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

Given the tool's complexity (8 parameters), the description alone is minimal. However, the schema thoroughly documents every parameter and an output schema exists, so the overall tool definition is complete. The description combined with structured data is sufficient for an agent to understand how to select and invoke the 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?

Schema coverage is 100% with clear descriptions for all 8 parameters (e.g., handle, color1, color2, name). The description adds no additional parameter-specific meaning beyond what the schema already provides, so it earns the baseline score of 3.

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 ('Fill') with a specific resource ('hatch') and clearly differentiates from siblings by stating 'with a gradient instead of a pattern.' This immediately distinguishes it from other hatch-related tools like hatch_edit or entity_create_hatch.

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 tool is used when a hatch's fill should be a gradient rather than a pattern, providing clear context. However, it does not explicitly mention alternatives or exclusion scenarios, so it falls just 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.

keyway_draw_keyed_boreKeyway: Keyed Bore (front view)A

Bore + DIN 6885 keyway in front view. Auto-sizes keyway from bore if width/depth omitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
layerNoGEOMETRY
center_xYes
center_yYes
keyway_depthNo
keyway_widthNo
bore_diameterYes

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?

Annotations indicate non-destructive behavior (destructiveHint=false). The description adds the auto-sizing behavior but does not disclose other relevant traits like whether it creates a new entity or modifies existing ones.

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 only two sentences, front-loaded with purpose, and every word adds value. No extraneous 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?

Given the output schema exists, the description covers purpose and auto-sizing. However, it omits important context like the DIN 6885 standard and what exact entity is created (e.g., a composite keyed bore).

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?

With 0% schema description coverage, the description compensates partially by explaining that keyway_width and keyway_depth can be omitted for auto-sizing. However, it does not explain center_x, center_y, bore_diameter, or layer.

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 'Bore + DIN 6885 keyway in front view', specifying the exact resource and view. This distinguishes it from sibling tools like 'keyway_draw_section' which handles a different view.

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 a clear usage hint: 'Auto-sizes keyway from bore if width/depth omitted', guiding when to omit parameters. However, it does not explicitly contrast with alternatives like 'keyway_draw_section'.

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

keyway_draw_sectionKeyway: Side SectionC

Side cross-section view of a keyed bore.

ParametersJSON Schema
NameRequiredDescriptionDefault
center_xYes
center_yYes
face_widthYes
keyway_depthNo
keyway_widthNo
bore_diameterYes

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?

The description adds no behavioral context beyond the annotation 'destructiveHint: false'. It does not disclose side effects, whether the tool creates an entity or just displays, what the output schema contains, or any constraints. The description is insufficient to understand the tool's behavior during invocation.

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 very concise at one sentence, but this conciseness comes at the cost of completeness. It front-loads the core purpose but omits critical details. Every sentence is earned, but more content is needed to be minimally viable.

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 moderate complexity (6 parameters, 4 required, sibling tools) and the existence of an output schema (which reduces return value burden), the description is still incomplete. It does not explain parameter meaning, usage context, or how this tool fits with siblings. The agent has insufficient information 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?

With 0% schema description coverage, the description must explain parameters but fails to do so. Parameter names like 'center_x' and 'bore_diameter' are self-explanatory, but 'keyway_depth' and 'keyway_width' need clarification, especially since they are optional and nullable. The description provides no extra meaning 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?

The description 'Side cross-section view of a keyed bore' clearly states the tool's output (a view) and the specific resource (keyed bore). It distinguishes from sibling 'keyway_draw_keyed_bore' which likely produces a different view. However, the verb is implied rather than explicit (e.g., 'Draws'), which slightly reduces clarity.

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 on when to use this tool over alternatives like 'keyway_draw_keyed_bore' or other section views. The description does not mention prerequisites, context, or when not to use it. This leaves the agent without decision support.

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

layer_createCreate LayerC

Create a new layer with specified properties.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew layer name
colorNoACI color code (1=Red, 2=Yellow, 3=Green, 4=Cyan, 5=Blue, 7=White)
linetypeNoLinetype nameContinuous
lineweightNoLineweight (-3=ByLayer, 0=0.00mm, 13=0.13mm, 25=0.25mm, 50=0.50mm)

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?

The description does not disclose any behavioral traits beyond the annotation (readOnlyHint=false). It omits details such as whether duplicate layer names are allowed, whether the new layer becomes current, or any side effects. With the annotation already indicating a write operation, the description adds no additional transparency.

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 very short but lacks informative content. It does not front-load key behavioral details or use its space effectively. A more concise description would still include necessary context.

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's complexity (CAD-specific parameters) and the presence of many sibling tools, the description is insufficient. It does not mention return values despite an output schema, nor does it explain CAD-specific concepts like ACI color codes or the effect on drawing state.

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 100%, so the baseline is 3. The description adds no extra meaning beyond stating that properties can be specified, which is already implied by the parameters in 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 uses the verb 'Create' with the resource 'layer', specifying that it can set properties. This clearly distinguishes it from sibling layer tools like layer_delete, layer_modify, or layer_set_current.

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 on when to use this tool versus alternatives. For example, there is no mention that layer_create is for new layers while layer_modify updates existing ones, nor 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.

layer_deleteDelete LayerA
Destructive

Delete a layer. The layer must have no entities. Layer '0' cannot be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to delete (layer must be empty)

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?

The description confirms the destructive nature ('Delete'), matching the destructiveHint annotation, and adds critical constraints not in annotations: layer must be empty and layer '0' cannot be deleted. No contradiction with annotations.

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 concise sentences: the first states the action, the second adds essential conditions. No filler words; informative and 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?

Given the existence of an output schema, return values need not be explained. The description fully covers the tool's purpose, constraints, and single parameter, making it complete for an agent to use.

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 100%, and the tool description repeats the constraint from the schema (layer must be empty). No additional parameter semantics are provided beyond what the schema already conveys.

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 'Delete a layer', a specific action on a resource, and adds constraints that distinguish it from other layer tools (e.g., layer_create, layer_modify). The constraints 'must have no entities' and 'Layer 0 cannot be deleted' are specific and helpful.

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 specifies when to use the tool (delete a layer) with clear prerequisites (layer must be empty). It implicitly advises against using it on non-empty layers or layer '0', but does not explicitly mention alternative tools or when not to use it.

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

layer_freezeFreeze LayerA

Freeze a layer (makes it invisible and unselectable, faster regeneration).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to freeze

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?

The description discloses key behavioral traits: makes layer invisible and unselectable, and notes faster regeneration. Since annotations lack readOnlyHint or destructiveHint, the description compensates 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 a single, tightly written sentence that front-loads the action and effect. Every word is necessary and adds 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?

Given the simple parameter and presence of an output schema, the description adequately covers purpose and effect. It could mention that the layer must exist, but this is implied. Overall sufficient for a straightforward 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?

Schema coverage is 100% and the parameter description ('Layer name to freeze') is already present in the schema. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline.

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 action (freeze) and resource (layer), and explains the effect (invisible, unselectable, faster regeneration), distinguishing it from sibling tools like layer_lock or layer_hide.

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 provides no guidance on when to use this tool versus alternatives like layer_hide or layer_lock. It does not mention prerequisites or limitations (e.g., cannot freeze current layer).

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

layer_hideHide LayerA

Turn off a layer (entities invisible but still processed in regeneration).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to turn off

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?

The description discloses that entities become invisible but remain in regeneration, which is important behavioral context. With no annotations beyond the title, this provides good transparency, though it could mention if the change is permanent.

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?

Single sentence with no wasted words. The key purpose and side effect (invisible but still processed) are 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?

Given the tool's simplicity (one required parameter, no nested objects, output schema exists), the description is fully adequate for an agent to use it correctly.

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?

Only one parameter 'name' with schema description 'Layer name to turn off'. The description adds no further meaning beyond the schema, and schema coverage is 100%, so baseline score of 3 applies.

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?

Description clearly states the verb 'turn off' and resource 'layer', with a key distinction that entities are invisible but still processed in regeneration. This differentiates it from sibling tools like layer_freeze which freezes layers.

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?

No explicit when or when-not guidance. The description is clear enough for a simple tool, but doesn't address alternatives like layer_show or layer_freeze, leaving the agent to infer from sibling names.

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

layer_isolateIsolate LayerB

Hide all layers except the specified one (layer isolation).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to keep visible (all others will be hidden)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

The description states that the tool hides layers, but does not mention any side effects (e.g., reversibility, viewport-specific behavior, or what happens to previously hidden layers). Annotations indicate readOnlyHint=false, confirming modification, but the description adds minimal behavioral context beyond that.

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, efficient sentence that conveys the core functionality without any wasted words. It is appropriately sized and 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 simple tool with one parameter and an output schema (as per context), the description is mostly complete. However, it lacks handling for edge cases like missing layer names or error conditions. Given the low complexity, this is adequate.

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 input schema covers the parameter fully with a description that aligns with the tool's purpose. Schema coverage is 100%, so baseline is 3. The description does not add significant extra meaning beyond 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 clearly states the tool's purpose: hiding all layers except the specified one. The term 'layer isolation' is a standard CAD concept, distinguishing it from sibling tools like layer_hide and layer_show that affect single layers.

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 provides no guidance on when to use this tool versus alternatives (e.g., layer_hide, layer_freeze). There are no explicit conditions or exclusions, which is a significant gap given the many layer-related sibling tools.

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

layer_listList LayersA
Read-only

List all layers with their properties (color, linetype, frozen, locked, visibility).

Never truncated — a drawing's whole layer table is returned — so a compact envelope here always reports truncated=false.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, and the description adds meaningful behavioral details: the entire layer table is always returned, never truncated, and compact envelopes always report truncated=false. This goes beyond the annotation and helps the agent predict response 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?

Two sentences, front-loaded with the core purpose, followed by a concise behavioral guarantee. Every sentence earns its place with no redundancy or filler.

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 read-only listing tool with rich input schema and an output schema, the description is sufficient. It explains the full scope ('all layers'), the key behavioral guarantee (never truncated), and the relationship to the compact parameter, leaving no material gaps.

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 descriptions already cover 100% of parameters, and the description adds a useful nuance: for this particular tool, the compact envelope's truncated field will always be false. This clarifies expected behavior for the 'compact' parameter beyond the generic schema 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?

Description uses specific verb 'List' and resource 'all layers with their properties (color, linetype, frozen, locked, visibility)' — clearly distinguishes from sibling layer mutation tools and other list tools like block_list or linetype_list.

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 the complete layer table with properties. It emphasizes never truncating, which is useful context, but does not explicitly name alternatives or state when not to use this tool versus sibling tools like entity_list or layer_set_current.

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

layer_lockLock LayerA

Lock a layer (entities visible but cannot be selected or modified).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to lock

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?

The description discloses the main behavioral trait (entities visible but non-interactive). Since annotations lack readOnlyHint/destructiveHint, the description carries the burden and handles it well. It does not mention reversibility or permissions, but for a lock operation this is acceptable.

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, concise sentence that contains all necessary information. No fluff 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 state-changing tool with one parameter, the description covers the core effect. However, given the many layer siblings, a brief note about when to use lock versus freeze or hide would improve completeness.

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 100% with a clear description for the 'name' parameter. The tool description adds no extra meaning beyond repeating the parameter's purpose, so a baseline score of 3 applies.

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 action (lock) and the resource (layer), and explains the effect: entities remain visible but cannot be selected or modified. This distinguishes it from layer_freeze (which hides) or layer_hide (which also affects visibility).

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 guidelines are provided on when to use this tool versus alternatives like layer_freeze, layer_hide, or layer_unlock. The description does not mention use cases, preconditions, or related tools.

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

layer_modifyModify LayerA

Modify an existing layer's color, linetype, and/or lineweight.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to modify
colorNoNew ACI color code
linetypeNoNew linetype name
lineweightNoNew lineweight value

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?

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds the specific properties being modified. However, it does not disclose error conditions (e.g., layer not found) or permissions needed. With annotations covering the basic safety profile, a 3 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?

The description is a single, efficient sentence that conveys the core functionality with no filler words. Every word is necessary.

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 output schema exists and the tool is simple, the description covers the essential purpose. It could mention that the layer must exist, but that is implied. Overall, it is sufficiently complete for an agent to use.

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?

All 4 parameters have descriptions in the schema (100% coverage), so the description’s list of properties adds little extra meaning. The baseline is 3, as the schema already explains the parameters adequately.

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 verb 'modify' and the resource 'existing layer', specifying the properties that can be changed (color, linetype, lineweight). This distinguishes it from sibling tools like layer_create or layer_delete.

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 does not provide explicit when-to-use or when-not-to-use guidance. While the context implies it is for modifying existing layers (as opposed to creating or deleting), no alternatives or exclusions are mentioned.

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

layer_set_currentSet Current LayerA

Set the active/current layer for new entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to set as current

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 description explains that it sets the current layer, which is a mutation operation. Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds no further behavioral nuance beyond what annotations provide.

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

Conciseness5/5

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

The description is extremely concise—one sentence of 8 words—with the verb 'Set' front-loaded. Every word is necessary and contributes to understanding the tool's function without redundancy.

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?

Given the tool's simplicity (one required parameter, no nested objects, output schema exists), the description is complete. It clearly states the tool's purpose and effect, and no additional information is needed for an AI agent to use it correctly.

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 single parameter 'name' is fully described in the input schema with 'Layer name to set as current'. The tool description does not add any additional meaning or context beyond the schema, so it meets the baseline expectation.

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 verb 'Set' and the resource 'active/current layer' with context 'for new entities'. Among sibling layer tools, this distinguishes itself by specifying which layer becomes the current layer for new entity creation.

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 does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. However, the purpose is straightforward, and the context of setting a current layer is implicitly understood as a prerequisite for creating new entities.

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

layer_showShow LayerA

Turn on a layer that was previously turned off.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to turn on

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The description correctly indicates a state change (turning on a layer), which is appropriate for a mutation tool. No annotations provide additional attributes, so the description is adequate but does not elaborate on side effects or response.

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 unnecessary words, efficiently conveying the tool's purpose.

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 toggle tool, the description is mostly complete. However, it lacks usage context regarding the layer's current state (e.g., if already on) or prerequisites, but this is minor given the simplicity.

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 only parameter 'name' is already described in the schema as 'Layer name to turn on'. The description adds no extra meaning beyond that, so baseline 3 is appropriate given 100% schema 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 description clearly states the action (turn on) and the resource (layer), and it distinguishes this from sibling tools like layer_hide (which turns off) by specifying 'previously turned off'.

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 on when to use this tool versus alternatives like layer_thaw (for frozen layers) or layer_unlock. The description simply states what it does without context.

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

layer_thawThaw LayerB

Thaw a frozen layer, making it visible and selectable again.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to thaw

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 lack readOnlyHint or destructiveHint, so the description must disclose behavior. It states the effect (visible and selectable) but does not mention prerequisites (layer must be frozen), error handling, or side effects if the layer is already thawed.

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 efficiently communicates the action and outcome 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 simple mutation with one parameter and full schema coverage, the description is complete enough. No need for output schema details, as the effect is implied.

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 100%, and the description adds no additional meaning beyond the schema's parameter description. Baseline score of 3 is appropriate.

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 thaws a frozen layer and makes it visible and selectable. It is specific and distinguishable from siblings like layer_freeze, but does not explicitly mention that it reverses the freeze operation.

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 on when to use this tool versus alternatives such as layer_unlock or layer_show. The description assumes the agent knows the context of frozen layers.

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

layer_unlockUnlock LayerA

Unlock a layer to allow entity selection and modification.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayer name to unlock

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The description states that unlocking allows entity selection and modification, which is the key behavioral effect. However, with no annotations (readOnlyHint, destructiveHint), it does not explicitly address safety (e.g., whether it is destructive, requires permissions, or is reversible). This is adequate but not thorough.

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 conveys the essential action and result concisely, perfectly sized for quick comprehension.

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 unlock operation with full schema coverage and an output schema available, the description is mostly complete. It could mention edge cases (e.g., layer already unlocked, layer not found), but these are minor omissions given the tool's simplicity.

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 100% for the one parameter 'name', and its description in the schema ('Layer name to unlock') already conveys the meaning. The tool description does not add any new information about the parameter beyond what the schema provides, so it meets the baseline.

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 'Unlock' and resource 'layer', and explains the consequence: 'to allow entity selection and modification.' This clearly distinguishes it from sibling tools like layer_lock (which does the opposite) and layer_modify (which changes properties).

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 explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or contrast with other layer tools like layer_isolate. The agent must infer usage 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.

layout_copyCopy LayoutA

Copy a paper-space layout: page setup, plot settings and all geometry.

skipped names any DXF types that could not be cloned — check it rather than trusting ok alone. Associative hatch boundaries are re-pointed at the cloned entities; associativity_dropped counts those that referenced something outside the source layout and had to be cleared.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesLayout tab to copy from (never 'Model').
new_nameYesName for the new layout tab.

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?

The description goes beyond the minimal annotations (destructiveHint=false) by disclosing important behavior: it re-points associative hatch boundaries and warns about `skipped` DXF types and `associativity_dropped`. It even advises checking `skipped` rather than trusting `ok`, which is valuable operational guidance.

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: a one-sentence summary of function followed by a focused paragraph on critical caveats. No empty filler; every sentence adds value.

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?

Given the complexity of copying a layout with geometry and hatch associativity, the description covers the key edge cases and output fields. An output schema exists, so full return-value documentation is not required, but the description already highlights the non-obvious fields to watch for.

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 100%, with each parameter already having a clear description. The tool description adds no additional parameter-level detail beyond what the schema provides, so the baseline of 3 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 states a specific verb and resource: 'Copy a paper-space layout' and enumerates the copied contents (page setup, plot settings, geometry). This distinguishes it from siblings like entity_copy or layout_create, which operate on different resources or create new layouts.

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 tool is for duplicating an existing paper-space layout, including all geometry. It does not explicitly state when not to use it or name alternatives, but the context is clear enough that an agent can infer this is the go-to tool for layout duplication.

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

layout_createCreate LayoutB

Create a new paper-space layout tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew paper-space layout name (e.g. 'A3-Sheet').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations only provide destructiveHint: false, so description should elaborate on behavior. It lacks information on side effects (e.g., whether the layout becomes active), required state (e.g., drawing must be open), or return value.

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 wasted words. It is appropriately concise for a simple creation 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?

Despite having an output schema and minimal parameters, the description omits crucial context like the requirement for an active drawing and does not explain the output or post-conditions.

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 100% with clear description for 'name', so baseline is 3. The tool description does not add any additional semantic meaning to the 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 clearly states the action ('Create') and specific resource ('new paper-space layout tab'), accurately distinguishing it from sibling tools like 'layout_list' and 'layout_set_current'.

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?

No explicit guidance on when to use this tool versus alternatives or any prerequisites. Usage is implied but not supported with context like 'when you need to add a layout tab'.

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

layout_deleteDelete LayoutA
Destructive

Delete a paper-space layout and every entity on it.

Refuses model space, a blank name, and the last remaining sheet. If the deleted tab was the current one, the returned current is where geometry goes next — and handles from the deleted sheet stop resolving.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPaper-space layout tab to delete (never 'Model').

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?

Beyond the destructiveHint annotation, the description reveals significant behavioral details: deletion cascades to all entities on the layout, certain inputs are refused, and if the current tab is deleted, the returned 'current' field indicates where geometry goes next and handles stop resolving. This is rich, non-obvious context that the annotation alone does not provide.

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 extremely concise: two sentences. The first sentence states the core purpose, and the second covers edge cases and side effects. Every word earns its place, and the structure is front-loaded and easy to parse.

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?

With only one parameter, a clear output schema, and a destructive action, the description is fully complete. It covers what gets deleted, safety guards (refusals), and behavior on the current tab. No important context is missing for an agent to invoke the tool correctly.

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 input schema already fully describes the only parameter 'name' with 'Paper-space layout tab to delete (never 'Model')', achieving 100% schema coverage. The description does not add any new parameter-level meaning beyond what the schema provides, so the baseline score of 3 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 states the tool deletes a paper-space layout and every entity on it, using the specific verb 'Delete' and a well-defined resource. It also distinguishes itself from sibling layout tools (create, rename, copy, set_current) by focusing on deletion and scope.

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

Usage Guidelines4/5

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

The description provides implicit usage guidance by listing refusal conditions: model space, blank name, and the last remaining sheet. This helps the agent know when the tool cannot be used, but it does not explicitly name alternative tools for cases like renaming or copying layouts, so it is slightly below full guidance.

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

layout_listList LayoutsA
Read-only

List all layout tabs (Model + paper-space layouts) and the current one.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

The description adds value beyond the readOnlyHint annotation by specifying that it lists both Model and paper-space layouts and indicates the current one. This provides useful context about the tool's behavior without contradicting annotations.

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 is concise, front-loaded, and contains no unnecessary information. Every word earns its place, making it highly efficient for an AI agent.

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?

Given the tool's simplicity (no parameters, output schema exists), the description is fully complete. It provides all necessary information for an agent to understand and 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, and the schema is fully described (100% coverage). According to guidelines, zero parameters warrant a baseline of 4. The description does not need to add further parameter semantics since there are none.

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 that the tool lists all layout tabs (Model + paper-space layouts) and identifies the current one. The verb 'list' matches the title 'List Layouts', and it distinguishes from sibling tools like layout_create or layout_set_current, which perform different actions.

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 lacks explicit guidance on when to use this tool versus alternatives. While the tool's purpose is straightforward, there is no mention of context (e.g., 'use before switching layouts') or exclusions, which would enhance usability for an AI agent.

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

layout_renameRename LayoutA

Rename a paper-space layout. Entity handles are unaffected.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_nameYesNew name; must not be blank or contain / \ * ? : ; , = `
old_nameYesExisting layout tab name.

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?

The description goes beyond the annotation (destructiveHint=false) by specifying that entity handles are unaffected. This clarifies a potential side-effect concern. It does not elaborate on other behaviors, but for a simple rename operation, this is sufficient 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?

The description is two short sentences with no redundancy. It front-loads the main purpose and then adds a key behavioral note. Every word earns its place.

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 tool with only two string parameters and an output schema, the description covers the essential information: what it does and an important non-destructive side-effect. It is complete enough for an agent to select and invoke it correctly.

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 input schema already provides full descriptions for both parameters (old_name and new_name), including validation rules for new_name. The description does not add parameter-specific details, but the schema coverage is 100%, so the baseline is 3.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Rename') and resource ('paper-space layout'). It distinguishes from sibling tools like layout_create or layout_copy by focusing solely on renaming. The additional note about entity handles being unaffected adds important scope.

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

Usage Guidelines4/5

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

The purpose is obvious from the name and description, making it clear when to use this tool. However, it does not explicitly mention alternatives or exclusions (e.g., 'to create a layout, use layout_create'). There is no misleading guidance, so it earns a 4 rather than a 5.

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

layout_set_currentSet Current LayoutC

Activate a layout tab.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLayout tab to activate ('Model' or a paper-space layout).

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?

The description implies a state change (activating a tab) but does not disclose side effects, such as whether the previous layout is deselected, or if the layout must exist. No annotations (readOnlyHint/destructiveHint) are provided, so the description carries full 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 a single sentence with no wasted words. It is appropriately concise for a simple tool, though it could benefit from slightly more context.

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 simplicity, the description covers the basic action. However, it omits potential error conditions (e.g., invalid layout name) and does not mention that the layout must exist. The presence of an output schema partially compensates, but the description is incomplete for safe invocation.

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 100% (the 'name' parameter includes details about acceptable values: 'Model' or a paper-space layout). The description adds no additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.

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 'Activate a layout tab' clearly states the verb (activate) and resource (layout tab). It distinguishes from siblings like layout_list and layout_create, though it doesn't explicitly differentiate. The purpose is 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 on when to use this tool versus alternatives like layout_list or layout_create. The description does not mention prerequisites (e.g., layout must exist) or when not to use it. Minimal usage context.

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

leader_create_mleaderCreate MultileaderB

Create a native COM MLeader or an explicitly-labelled ezdxf composite.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesLeader annotation text
layerNoTarget layerDIM
pointsYesLeader vertices as [x, y] pairs
arrow_sizeNo
landing_gapNo
text_heightNo

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?

Annotations indicate readOnlyHint=false, consistent with creation. The description adds that it creates either a native COM object or an ezdxf composite, which is useful but does not detail side effects, permissions, or error conditions. Transparency is adequate but not thorough.

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 short sentence, very concise. It is front-loaded but does not waste words. Could be slightly more informative without losing conciseness.

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 6 parameters, 2 required, and the existence of an output schema, the description is too brief. It lacks details about the two creation modes, return format, or prerequisites. The tool's behavior is not fully specified.

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 50% (3 of 6 parameters have descriptions). The tool description does not describe any parameters or add meaning beyond the schema. For a schema with moderate coverage, the description should compensate but does not.

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 it creates a multileader ('native COM MLeader or an explicitly-labelled ezdxf composite'). The title and name also reinforce this. It is well-distinguished from siblings like entity_create_text, entity_create_mtext, or dimension 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 for creating multileaders but provides no explicit guidance on when to use it versus alternatives, nor when not to use it. No exclusions or context for selection are given.

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

linetype_listList Loaded LinetypesA
Read-only

Return the names of all linetypes currently loaded in the active drawing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, and the description adds context about the active drawing. No additional behavioral details are needed beyond stating it's a read-only list.

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 with no wasted words, effectively communicating the tool's purpose.

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?

The description is complete given there are no parameters and an output schema exists. It fully explains the tool's function.

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?

No parameters exist, and schema coverage is 100%. Description has no need to explain 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 clearly states the tool returns names of all linetypes loaded in the active drawing, using a specific verb and resource. It distinguishes itself from sibling tools like linetype_load.

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?

No explicit guidance on when to use vs alternatives, but the purpose is straightforward and implied by the lack of parameters.

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

linetype_loadLoad LinetypeA

Load a single linetype safely.

Use this instead of system_run_command('_-LINETYPE _LOAD ...') — that raw form can deadlock on the FILEDIA file-picker dialog and on the -LINETYPE option-menu prompt. This tool sets FILEDIA=0 around the call, picks the right .lin file from MEASUREMENT, and verifies the linetype actually loaded.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoOptional .lin file. Defaults to acadiso.lin (metric) or acad.lin (imperial), chosen from MEASUREMENT. Ignored by ezdxf backend.
nameYesLinetype name to load (e.g. 'CENTER', 'DASHED', 'HIDDEN')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations show readOnlyHint=false, indicating a write operation. The description adds details about setting FILEDIA=0, auto-selecting the .lin file based on MEASUREMENT, and verifying loading. This goes beyond the annotation without contradiction.

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: two sentences front-loading the main purpose, then a brief explanation of why it's safer. Every sentence adds value with no redundancy.

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?

Given the tool's simplicity and the presence of an output schema, the description covers all necessary aspects: purpose, usage context, behavioral details, and parameter semantics. It is fully adequate for an agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds context: the file parameter's default and behavior (ignored by ezdxf backend), and that the tool picks the right file based on measurement. This enriches understanding beyond 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 explicitly states 'Load a single linetype safely,' using a specific verb and resource. It distinguishes itself from the raw system_run_command alternative, making it clear what the tool does.

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

Usage Guidelines5/5

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

Explicitly recommends using this tool instead of system_run_command, explaining the deadlock risks. This provides clear when-to-use guidance and a contrasting alternative.

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

point_from_snapPoint: Snap (deterministic OSNAP)A
Read-only

Compute a deterministic snap point on an entity. Use this INSTEAD OF guessing coordinates — eliminates the most common LLM drawing error.

ParametersJSON Schema
NameRequiredDescriptionDefault
snapYesSnap type: end | mid | center | quad | perp | near
ref_xNoReference X (required for perp/near; disambiguates end/quad)
ref_yNoReference Y
handleYesEntity handle to snap onto

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?

Description adds 'deterministic' property and emphasizes error elimination, beyond the readOnlyHint annotation. Consistent with annotations, no contradiction.

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, no filler. Front-loaded with purpose, then usage guidance. Each 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?

Covers core behavior, usage intent, and leverages annotations for read-only. Output schema exists so return values are documented. Slight gap: no mention that entity must exist, but schema makes handle required.

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 100%, so baseline is 3. The description does not add new parameter context beyond what the schema already provides (snap types, ref_x/ref_y usage).

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 computes a deterministic snap point on an entity, distinguishing it from coordinate guessing and from other point tools like point_intersection or point_tangent.

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?

Explicitly says to use 'INSTEAD OF guessing coordinates', providing clear when-to-use guidance. Does not mention when not to use or contrast with sibling point tools, but the context is clear.

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

point_intersectionPoint: Intersection (deterministic)A
Read-only

Compute the intersection of two geometry entities (LINE-LINE, LINE-CIRCLE, CIRCLE-CIRCLE). When two candidates exist, ref_x/ref_y selects the nearest. Returns {x, y}.

ParametersJSON Schema
NameRequiredDescriptionDefault
ref_xNoReference X to pick nearest candidate when multiple exist
ref_yNoReference Y
handle1YesFirst entity handle (LINE or CIRCLE)
handle2YesSecond entity handle (LINE or CIRCLE)

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?

Adds value beyond readOnlyHint by describing the handling of multiple candidates via ref_x/ref_y and the return format {x, y}. However, missing mention of behavior when no intersection 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?

Two concise sentences plus a note on return, front-loaded with key functionality, 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?

Covers main functionality and return, but lacks details on edge cases like parallel or non-intersecting entities. Output schema likely fills some gaps.

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

Parameters4/5

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

Schema description coverage is 100%, and the description reinforces the purpose of ref_x/ref_y as selecting nearest candidate. Adds context by linking parameters to entity types.

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?

Description clearly states verb 'compute' and resource 'intersection', specifies supported entity types (LINE-LINE, LINE-CIRCLE, CIRCLE-CIRCLE), and distinguishes from sibling tools like point_from_snap and point_tangent.

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?

Implicitly indicates use for geometric intersections, but lacks explicit guidance on when to use versus alternatives such as point_from_snap for snapping to intersections.

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

point_tangentPoint: Tangent from external pointA
Read-only

Compute the tangent point on a circle from an external point. Returns {x, y}. Raises if the from-point is inside the circle.

ParametersJSON Schema
NameRequiredDescriptionDefault
ref_xNoReference X to pick nearest tangent point when two exist
ref_yNoReference Y
from_xYesX of the external point
from_yYesY of the external point
circle_handleYesHandle of the CIRCLE entity

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?

The description adds value beyond readOnlyHint annotation by specifying the return format ({x, y}) and the error condition (raises if from-point inside circle). No contradictions with annotations.

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 no wasted words. The main action is stated first, then extra details. Perfectly concise for the tool's simplicity.

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 presence of an output schema, the description covers the essential behavior (tangent computation, error condition). It is sufficient for the tool's geometric nature, though it omits any mention of the reference parameters (ref_x, ref_y) 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 coverage is 100%, so the description is not required to explain parameters. However, it adds no additional meaning beyond the schema, which is adequate for a baseline of 3.

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 computes a tangent point on a circle from an external point, with a specific verb ('Compute') and resource. It is distinct from sibling tools like 'point_intersection' and 'point_from_snap'.

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 when a tangent point is needed, but lacks explicit guidance on when to use this tool versus alternatives (e.g., point_intersection). No exclusion criteria or prerequisites mentioned.

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

selection_filterSelect by PropertiesA
Read-only

AutoCAD's QSELECT: filter the drawing by properties.

Named parameters rather than a query string, deliberately — a mistyped attribute name in a query language comes back as an empty result, which is indistinguishable from "no matches". filtered_by reports which filters actually ran.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoACI colour to match.
layerNoLayer name. Empty means any.
linetypeNoLinetype name. Empty means any.
min_areaNoKeep only closed shapes with at least this area.
entity_typeNoDXF type, e.g. LWPOLYLINE. Empty means any.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered, and the description adds valuable behavioral context beyond that: it explains that using named parameters avoids ambiguous empty results from mistyped query strings and that `filtered_by` reports which filters actually ran. This gives the agent insight into error semantics and output behavior without contradicting annotations.

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 names the operation and resource, and the second paragraph adds a focused rationale about design choices and result reporting. Every sentence earns its place with no filler or redundant restating of the schema.

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?

Given the full parameter schema, the output schema, and readOnly annotations, the description is complete enough to invoke correctly. It covers the core behavior, the rationale for named parameters, potential empty-result ambiguity, and how to know which filters ran, leaving no significant gaps for a property-selection tool.

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

Parameters4/5

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

Schema coverage is 100% and every parameter has a concise description, so the baseline is 3. The description adds meaningful semantic guidance by explaining why named parameters are deliberately used and what `filtered_by` signals, which helps the agent interpret results correctly without re-documenting each 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 defines the tool as 'filter the drawing by properties' and explicitly references AutoCAD's QSELECT, making the purpose concrete and specific. This clearly differentiates it from geometric selection tools like selection_window and selection_polygon, and from single-property selectors like analysis_select_by_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?

The description sets clear context for property-based filtering and explains why named parameters are used, which helps an agent decide when this tool is appropriate. It does not explicitly name alternatives or state when not to use it, but the QSELECT reference and property-focused framing make the intended use clear enough.

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

selection_getGet Viewport SelectionA
Read-only

Read the entities the user pre-selected in the AutoCAD viewport (COM backend only).

Returns the implied "pickfirst" selection — the entities highlighted with grips before invoking the AI — so work can be scoped to exactly those entities instead of the whole drawing. Typical use::

sel = selection_get()
dimension_auto(sel["handles"], style="chain")

Result keys: ok — True on the COM backend (even for an empty selection) count — number of selected entities handles — list of entity handles (hex strings) to act on entities — full per-entity info (type, layer, color, ...) pickfirst — state of the PICKFIRST sysvar (None if unknown) message — guidance when nothing is selected

On the ezdxf headless backend there is no viewport, so this returns ok=False with an empty handles list.

fields / compact shape the "entities" collection — this tool already returns an object, so the columnar envelope lands under that key rather than replacing the result. handles is unaffected, so a caller that only wants handles can pass fields=["handle"] and still read handles directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoProject to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones.
compactNoReturn a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description adds substantial behavioral detail: COM-only behavior, ezdxf fallback with ok=False, the pickfirst sysvar state, return keys even for empty selections, and how fields/compact reshape the response. It also warns that unknown field names error.

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 well-structured: it front-loads the core purpose, then gives a usage example, a result-key list, backend caveats, and parameter behavior. Every sentence carries useful information without fluff, and the list format aids scanning.

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?

With an output schema present, the description does not need to fully restate return values, but it still goes beyond by covering backend differences, sysvar state, error behavior, and parameter interactions. The tool is simple enough that this is 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?

The input schema already describes both parameters thoroughly (100% coverage), giving a baseline of 3. The description adds extra semantic value by explaining how fields/compact affect the 'entities' collection specifically (envelope lands under that key) and that 'handles' remains unaffected.

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 ('Read') and resource ('entities the user pre-selected in the AutoCAD viewport'), clearly distinguishing this from sibling tools like selection_window that create selections. It also states the outcome: 'so work can be scoped to exactly those entities.'

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 when to use the tool (when entities are pre-selected with grips) and provides a typical usage example. It also explicitly notes a when-not case: the ezdxf headless backend returns ok=False. However, it does not explicitly name an alternative sibling tool, 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.

selection_polygonSelect by PolygonA
Read-only

Window or crossing selection against a polygon rather than a rectangle.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNowindow = wholly inside only; crossing = touching.window
layerNoRestrict to a layer. Empty means any.
pointsYesPolygon vertices as [[x, y], ...]; at least 3.
entity_typeNoRestrict to a DXF type. Empty means any.

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?

The annotation readOnlyHint=true already covers the safety profile, so the description needs only to add behavioral context. It mentions window/crossing modes, but does not disclose whether the selection replaces or adds to the current selection, which would be useful. No contradiction with annotations.

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 and comparison, with no unnecessary words or repetition of schema content.

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?

With full schema parameter descriptions, a readOnly annotation, and an output schema, the description is complete for this selection tool. It communicates the key distinction from rectangle selection and the two modes, which is sufficient for an agent to use it correctly.

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?

All parameters are fully described in the schema (100% coverage), so the description does not need to explain them. The description does not add any extra meaning beyond the schema's parameter descriptions, which is adequate given high 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 description clearly states a specific verb (selection) and resource (polygon), and distinguishes from rectangle-based selection with 'rather than a rectangle.' This makes the tool's purpose immediately clear and differentiates it from sibling tools like selection_window.

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 'rather than a rectangle' provides clear context that this is for polygon-based selection, implying an alternative for rectangle selection. However, it does not explicitly name sibling tools or state when not to use it, so it falls short of full guidance.

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

selection_windowSelect by WindowA
Read-only

AutoCAD's ssget window/crossing selection.

Corners may be given in any order. Selection is by drawn position, so an entity in a mirrored frame is found where entity_get reports it. A zero-area box is refused rather than answered with an empty list.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesFirst corner X.
x2YesOpposite corner X.
y1YesFirst corner Y.
y2YesOpposite corner Y.
modeNowindow = wholly inside only; crossing = also entities straddling the edge.window
layerNoRestrict to a layer. Empty means any.
entity_typeNoRestrict to a DXF type, e.g. CIRCLE. Empty means any.

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?

Beyond the readOnlyHint annotation, the description discloses non-obvious behaviors: corners accept any order, selection uses drawn position (with a mirror example), and zero-area boxes are refused rather than returning an empty list. These details add meaningful context about edge cases and coordinate interpretation, exceeding what annotations alone convey.

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 – three sentences – and front-loaded with the purpose. Each sentence contributes unique information: the first defines the tool, the second explains coordinate interpretation with a concrete example, and the third defines an edge case. There is no redundancy or filler, making it highly efficient.

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 parameters, full schema coverage, and presence of an output schema, the description covers key behavioral aspects effectively. It explains the main selection mode, corner order, and zero-area handling. It does not mention return format or integration with the selection set, but the output schema likely handles that. Slight gap remains in not discussing how filters (layer/entity_type) interact with the selection, though these are documented in the schema. Overall, the description is well-rounded for the tool's 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?

Although the schema already describes all parameters (100% coverage), the description adds semantic value beyond the schema. It clarifies that corners may be given in any order (so x1,y1 is not necessarily top-left), and it explains the zero-area rejection behavior. The mode parameter is not detailed in the description, but the schema covers it adequately. The description supplements, not merely restates, 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 clearly identifies the tool as AutoCAD's ssget window/crossing selection, specifying the core action (select entities by a rectangular window) and distinguishing it from sibling tools like selection_polygon or selection_filter. The phrase 'window/crossing selection' uses a specific verb and resource, leaving no ambiguity about the tool's purpose.

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 provides no explicit guidance on when to use this tool versus alternatives like selection_polygon or selection_filter. It does not state use cases, exclusions, or preferences. Usage is only implied by the name and purpose, but the description does not compare it to siblings or mention when not to use it.

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

system_aboutBackend InfoA
Read-only

Get detailed information about AutoCAD MCP Pro capabilities and available tools.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, so the description's claim of returning information is consistent. It adds context about 'AutoCAD MCP Pro' but does not disclose any other behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

The description is a single sentence that efficiently conveys the tool's purpose without any unnecessary 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 no parameters, an output schema, and low complexity, the description is adequate. However, it could mention that the tool provides a summary of capabilities or available tools for better completeness.

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 input schema has zero parameters, so schema description coverage is 100%. The description adds no parameter information, but the baseline of 3 is appropriate since no additional meaning is needed.

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 function: 'Get detailed information about AutoCAD MCP Pro capabilities and available tools.' It uses a specific verb ('Get') and resource, distinguishing it from sibling tools like drawing tools or system_capabilities.

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 on when to use this tool versus siblings like system_status or system_capabilities. The agent is left to infer the context.

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

system_capabilitiesBackend CapabilitiesA
Read-only

Return machine-readable support modes for the active backend.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already declare readOnlyHint: true, so the description need not repeat safety. It adds value by specifying the output is 'machine-readable support modes,' which informs the agent about the return format.

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 conveys the tool's core function succinctly with no wasted words. Information 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 read-only tool with no parameters and an output schema, the description fully explains what the tool does. No additional context is needed.

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?

With zero parameters, the baseline is 4. The description adds meaning by stating what the tool returns ('machine-readable support modes'), which is not apparent from the empty 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 uses a specific verb ('return') and resource ('support modes') with clear scope ('for the active backend'), making the tool's purpose unmistakable. No sibling tool offers similar functionality, so differentiation is inherent.

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 this is a query tool for backend capabilities, distinct from all drawing/entity tools. It lacks explicit when-to-use or alternatives, but the unique purpose makes it clear.

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

system_get_variableGet System VariableA
Read-only

Get an AutoCAD system variable value.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSystem variable name (e.g. DIMSCALE, LTSCALE, INSUNITS, CLAYER, MEASUREMENT)

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?

Annotations already declare readOnlyHint=true, so description carries reduced burden. Description adds no additional behavioral context beyond the annotation, but does not contradict it.

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?

Single sentence, no redundancy or fluff. Perfectly concise for the tool's simplicity.

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 presence of an output schema and only one parameter, the description covers the essential purpose. Could mention that it returns the current value, but not strictly necessary.

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 has 100% coverage with a parameter description listing examples. Description does not add extra meaning beyond the schema, meeting the baseline.

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?

Description clearly states 'Get an AutoCAD system variable value', a specific verb+resource. Distinguishes from its sibling 'system_set_variable' which is the write counterpart.

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?

No explicit guidance on when to use this tool vs alternatives. However, the sibling tools include a setter, implying this is for reading. Lacks explicit context or scenarios.

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

system_run_commandRun AutoCAD CommandA

Execute an AutoCAD command string directly (COM backend only).

Append \n for Enter. Example: '_LINE 0,0 100,0 \n'.

IMPORTANT: commands that finish at an option menu (e.g. -LINETYPE, -LAYER, -STYLE return to '[?/Create/Load/Set]:' after their action) need an EXTRA blank line or 'X\n' to exit, otherwise AutoCAD stays at a prompt and the next COM call will deadlock. Example: '-LINETYPE _LOAD CENTER acad.lin\n\n'.

A verb denylist refuses obviously destructive commands, but it is a guardrail against issuing ERASE ALL by accident, NOT a security boundary — AutoCAD accepts hundreds of commands and any loaded ARX/LISP adds more. Prefer the typed tools (entity_delete, drawing_save_as, block_insert, drawing_purge): they validate their arguments, which a free-text command string cannot.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesAutoCAD command string (e.g. '_ZOOM E', '_REGEN', '_EXPLODE')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

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

Annotations only provide readOnlyHint: false, but the description adds critical behavioral context: COM backend only, the deadlock risk at option-menu prompts, the denylist being a guardrail not a security boundary, and the fact that ARX/LISP can extend available commands. This goes well beyond the minimal annotation.

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?

Even though the description is longer than average, every sentence earns its place. It flows from core purpose to usage examples to critical warnings to safety and alternative recommendations. It is front-loaded with the main purpose and structured in digestible paragraphs without waste.

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?

Given the complexity of a raw command runner and the existing output schema (which covers return values), the description fully covers usage mechanics, edge cases, safety posture, and alternative tools. It is complete and self-sufficient for an agent to decide when and how to invoke it.

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 coverage is 100% but only lists example commands. The description adds meaning to the 'command' parameter by explaining the newline convention, the extra-line requirement for prompt-terminated commands, and the denylist guardrail. This significantly enriches param understanding.

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+resource statement: 'Execute an AutoCAD command string directly (COM backend only).' It clearly distinguishes this from the many typed sibling tools by framing it as the raw, low-level command interface. Sibling differentiation is explicit with 'Prefer the typed tools...'.

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

Usage Guidelines5/5

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

The description provides concrete usage instructions: append \n for Enter, use an extra blank line or '_X\n' to exit option menus and avoid deadlock. It also explicitly says when NOT to use it ('refuses obviously destructive commands') and names alternative typed tools that validate arguments. This is exemplary when-to-use versus alternatives guidance.

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

system_run_lispExecute AutoLISPA

Execute an AutoLISP expression (COM backend only).

Example: '(setvar "DIMSCALE" 1.0)'

A symbol denylist refuses the known code-execution and file-I/O channels; text inside double quotes is treated as data, so drawing notes are not mistaken for code. It is a guardrail, NOT a security boundary — AutoLISP has more write channels than any denylist enumerates. Prefer the typed tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesAutoLISP expression to evaluate (e.g. '(command "ZOOM" "E")')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses the symbol denylist, the non-security-boundary status, the quote-handling behavior, and the fact that AutoLISP has more write channels than the denylist enumerates. This significantly exceeds the annotation (readOnlyHint=false) and provides crucial context for safe usage.

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 efficient, with each sentence adding value. The example is concrete and the warning about security is essential. No wasted words.

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 high-risk execution tool with a single parameter and an output schema, the description is complete. It covers purpose, usage constraints, risk, and prioritization over alternatives. The security warnings are particularly relevant for a code-execution tool.

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 already fully covers the expression parameter with an example (100% coverage), but the description adds important semantic details: how double quotes are treated and what the denylist attempts to block. This goes beyond the schema's basic type/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 clearly states the tool executes an AutoLISP expression, with a specific verb and resource. It distinguishes itself from siblings by noting the COM backend and explicitly directing users to prefer typed tools, making its unique role clear.

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 explicit guidance to prefer typed tools, implying this is a fallback or advanced option. It also notes the COM backend constraint. However, it does not name specific alternative tools, only a general category.

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

system_set_variableSet System VariableA

Set an AutoCAD system variable (e.g. DIMSCALE, LTSCALE, MEASUREMENT).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSystem variable name
valueYesNew variable value

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, but description adds no behavioral context such as persistence, scope, or side effects. No additional transparency beyond the annotation.

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?

Single sentence, front-loaded with action and resource. No extraneous words; concise and efficient.

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 setter, description is adequate. Output schema exists, so return values are not required. Could mention that it modifies drawing state, but not necessary.

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

Parameters4/5

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

Schema coverage is 100%. Description adds examples of valid system variable names, which clarifies the 'name' parameter beyond the schema's generic 'System variable name'.

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?

Clearly states verb 'Set' and resource 'AutoCAD system variable'. Provides examples (DIMSCALE, LTSCALE, MEASUREMENT) and distinguishes from sibling tools like system_get_variable and system_run_command.

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 alternatives. Does not mention when not to use or provide usage context beyond stating the function.

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

system_statusServer StatusA
Read-only

Get full status of the AutoCAD MCP Pro server and backend connection.

Returns backend name, connection status, capabilities, document info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already indicate readOnlyHint=true, but the description adds value by detailing the contents of the response (backend name, connection status, capabilities, document info). This goes beyond the annotation, providing useful 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?

Two sentences, no filler. The first sentence states the purpose, the second lists what is returned. Information is front-loaded and every word contributes value.

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?

The tool has no parameters, is read-only, and has an output schema. The description covers the essential return fields. For a simple status tool, this is 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?

No parameters exist (schema coverage 100%), so the description does not need to add parameter info. Baseline is 4 for zero-parameter tools, and the description adequately provides purpose.

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 retrieves the full server status and backend connection, listing specific return items (backend name, connection status, capabilities, document info). It uses a specific verb ('Get') and resource ('status'), 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 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 alternatives like 'system_capabilities' or 'system_about'. There are no explicit use cases, prerequisites, or exclusions provided.

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

template_apply_layersApply Layer TemplateA

Apply a standard layer set from a predefined template.

Available templates: architectural, mechanical, electrical, piping. Creates all layers defined in the template with standard colors and lineweights.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateYesTemplate name: architectural, mechanical, electrical, piping

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?

The annotation indicates it's not read-only, and the description confirms it creates layers with standard colors and lineweights. This discloses the mutating behavior. However, it doesn't specify what happens if layers already exist (overwrite or merge), which could be useful.

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 no wasted words: first states the action, second lists templates and what the tool creates. Front-loaded and efficient.

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 one-parameter tool with an output schema, the description covers the essential aspects. It could briefly mention whether existing layers are overridden, but given the simplicity, it's mostly complete.

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?

The single parameter 'template' is described in the schema and reinforced in the description with a list of valid options. Since schema coverage is 100% and the description adds no new ambiguity, this is fully clear.

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 it applies a standard layer set from a predefined template, listing available templates (architectural, mechanical, electrical, piping). This distinguishes it from sibling tools like layer_create (individual layers) and template_list (listing templates).

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 describes when to use (to apply a template layer set) and lists templates upfront. It doesn't explicitly exclude alternatives, but the context makes it obvious that this is for bulk layer creation rather than manual layer management.

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

template_listList Available TemplatesA
Read-only

List all available layer templates and their contents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Description adds value beyond readOnlyHint by stating it lists 'contents' of templates, implying more than just names. No contradictions. Lacks details like pagination, but adequate for simple listing.

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?

Single, front-loaded sentence of 10 words with no redundancy. Every word is functional.

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?

Given zero parameters, presence of output schema, and readOnlyHint, the description fully covers the tool's purpose and behavioral expectations for a simple listing operation.

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?

Tool has zero parameters, so baseline is 4. Schema coverage is 100%, description need not add parameter info.

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?

Description clearly states verb 'List', resource 'layer templates', and scope 'all available' and 'their contents'. This uniquely identifies the tool among siblings (e.g., template_apply_layers does not list).

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 vs alternatives, no prerequisites, no exclusions. Agent must infer usage from name alone.

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

text_find_replaceFind and Replace TextA

Replace text in TEXT, MTEXT and block attributes (ATTRIB and ATTDEF).

searched_types is on the response because "no matches" and "that type was never searched" are different answers. Block definitions are included, so the next insert does not reintroduce the old text. DIMENSION text is out of scope: its text field holds the <> override placeholder rather than the measurement, so editing it would break the association.

ParametersJSON Schema
NameRequiredDescriptionDefault
findYesLiteral text to search for (not a regex).
layerNoRestrict to one layer. Empty searches every layer.
dry_runNoReport what would change without changing it.
replaceYesReplacement text.
match_caseNoCase-sensitive search.

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?

The description goes well beyond the annotations by explaining the semantics of the 'searched_types' response (distinguishing 'no matches' from 'never searched'), clarifying that block definitions are processed to prevent reintroduction, and detailing why dimension text is excluded (to avoid breaking the association with the measurement). This is rich behavioral context that the annotations and schema do not provide.

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

Conciseness4/5

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

The description is concise in overall length, but the second paragraph is technically dense and may require careful reading to parse the three distinct points. Each sentence does contribute value, so it earns a 4 rather than lower.

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?

The description fully covers the tool's behavior, including scope, exclusions, and key edge cases like block definitions and response interpretation. Since an output schema exists, return values do not need to be explained in detail. The comprehensive schema and rich description make the tool well-specified.

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 input schema covers 100% of the parameters with descriptive text, so the baseline is 3. The description does not add additional parameter-level detail beyond what the schema already provides; it instead adds context about the response field, which is not a 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 first sentence 'Replace text in TEXT, MTEXT and block attributes (ATTRIB and ATTDEF)' clearly states a specific verb and resource, and distinguishes this from sibling tools like entity_edit_text that edit individual text entities. The scope is explicit and comprehensive.

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 states what is included (TEXT, MTEXT, block attributes, block definitions) and what is excluded (DIMENSION text), providing a clear when-not scenario. However, it does not name an alternative tool for dimension text editing, so it stops short of fully explicit alternative guidance.

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

text_set_backgroundSet Text BackgroundA

Mask what is behind an MTEXT so it stays readable over hatch or geometry.

MTEXT only: TEXT has no background-fill attribute, so setting one on it would report success and change nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoACI background colour (1-255). 0 uses the drawing background.
scaleNoBox size as a multiple of the text box; must be >= 1.
handleYesHandle of an MTEXT entity.
enabledNoFalse removes the background box.

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?

Annotations only declare destructiveHint: false, so the description adds valuable behavioral context: it reveals that the operation creates a masking background (non-destructive) and warns about the silent success on TEXT entities (no effect despite reporting success). This is important hidden behavior not inferable from the schema or annotations alone.

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 no wasted words. The first sentence states the purpose, the second delivers a critical caveat/limitation. Excellent front-loading and appropriate length.

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 purpose, the MTEXT-only constraint, and the visual effect. With an output schema present and full parameter coverage, the absence of return-value details is acceptable. It is complete enough for an agent to select and invoke this tool correctly.

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 100%, so the baseline applies; the description does not explain parameters in detail, but it does provide useful context (e.g., 'mask what is behind') that complements the schema's parameter descriptions. It adds no syntax or format details beyond the schema, but neither is needed since the schema is self-sufficient.

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 starts with a specific verb ('Mask') and a specific resource ('MTEXT'), clearly stating the visual purpose: to keep text readable over hatch or geometry. It also distinguishes itself from related tools by explicitly limiting to MTEXT and noting that TEXT entities lack the background-fill attribute, so this tool would silently no-op on them.

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 for when to use the tool (when an MTEXT needs a background to stay readable) and an explicit exclusion ('MTEXT only... TEXT has no background-fill attribute'). It does not name alternative tools for similar formatting tasks, but the guidance is sufficient to avoid misuse.

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

titleblock_apply_iso_a3TitleBlock: ISO A3A

ISO 7200 / A3 (420x297 mm) title block. Title text is used verbatim.

Pass layout to put the sheet on a paper-space layout, which is where a title block belongs — the border frames the printed sheet, not the model. Your current space is restored afterwards, so asking for a border does not move you onto the sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
scaleNo1:1
sheetNo1/1
titleYesDrawing title (verbatim, no LLM transformation).
unitsNomm
layoutNoPaper-space layout to draw the sheet on (create it with layout_create). Empty draws in the current space, as before.
companyNoAnka-Makine
part_noNo
drawn_byNo
materialNo
origin_xNo
origin_yNo
revisionNoA
checked_byNo
drawing_noYesDrawing number (e.g. 'AM-2026-001').

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?

Description discloses useful behavioral details beyond the annotations: title text is used verbatim, the layout is where a title block belongs, and the current space is restored after use so the user isn't left on the sheet. The annotations only state destructiveHint:false, so this extra context meaningfully clarifies side effects. It stops short of describing what happens if the layout doesn't exist or whether an existing titleblock is replaced.

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: three sentences, front-loaded with the core identity, followed by the most important usage nuance and a behavior guarantee. Every sentence earns its place with no repetition or 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 description covers the essential invocation scenario and the critical layout nuance, and an output schema exists so return values need not be explained. However, given 15 parameters and very low schema coverage, the description is not fully complete; it doesn't clarify coordinate origin behavior, the meaning of sheet/scale defaults, or how the titleblock interacts with an existing drawing.

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 only 20%, and the description adds meaning mainly for the layout and title parameters. It restates that title is verbatim and elaborates on layout placement, but leaves many parameters (origin_x, origin_y, material, checked_by, revision, etc.) undefined in both schema and description. Since the schema does not carry the weight, the description should compensate but does not.

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 'ISO 7200 / A3 (420x297 mm) title block', giving a specific verb-like resource with exact standard and dimensions. The tool name 'titleblock_apply_iso_a3' also clearly indicates the action and target, distinguishing it from all sibling tools, none of which overlap with this function.

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 states when to use the layout parameter: 'Pass layout to put the sheet on a paper-space layout, which is where a title block belongs'. It also explains that a border should frame the printed sheet, not the model, and that the current space is restored afterward. It doesn't explicitly name alternatives or exclusions, but there are no direct competing titleblock tools among siblings.

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

transaction_beginBegin TransactionA

Begin a transaction (undo mark).

COM backend: Sets AutoCAD undo mark. All subsequent operations can be rolled back to this point with transaction_rollback.

ezdxf backend: Saves a DXF snapshot. Rollback restores the full document state to this point.

Always pair with transaction_commit or transaction_rollback.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already show readOnlyHint=false and destructiveHint=false. The description adds backend-specific behavior (undo mark for COM, DXF snapshot for ezdxf) and clarifies that rollback restores state. This provides useful context beyond the annotations.

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 very concise with three focused sentences. It is front-loaded with the purpose, then backend details, then usage advice. No wasted words.

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?

Given no parameters and an output schema, the description fully covers the tool's purpose and behavior. The pairing instruction completes the context for correct usage.

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 schema coverage is 100%. The description does not need to add parameter meaning. Baseline score of 4 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 states the tool begins a transaction (undo mark) and explains the behavior for two backends. It distinguishes from other transaction-related sibling tools like transaction_commit and transaction_rollback.

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 explicitly states 'Always pair with transaction_commit or transaction_rollback,' providing clear guidance on how to use the tool. It does not specify when not to use it, but the pairing instruction is sufficient.

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

transaction_commitCommit TransactionA

Commit the current transaction.

COM: Ends the undo mark (changes are permanent but still undoable via drawing_undo). ezdxf: Discards the rollback snapshot (changes are kept).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

The description adds behavioral details beyond the annotations, such as changes being permanent but still undoable via drawing_undo, and discarding the rollback snapshot in ezdxf. This provides useful insight into side effects and undo capabilities. Annotations only indicate readOnlyHint=false and destructiveHint=false, which are consistent.

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 brief and to the point, with the main purpose stated upfront. The implementation-specific notes (COM, ezdxf) add some detail without excessive length. It is well-structured for quick scanning.

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 role in transaction management, the description could mention prerequisites (e.g., a transaction must be started) or return value/success indicator. It is not fully complete, especially considering the complexity of transactions, though the presence of an output schema (not shown) might compensate.

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 no parameters, so the description does not need to elaborate on them. Schema coverage is 100% (empty), meeting the baseline for zero parameters. No additional param info is 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 states that the tool commits the current transaction, using the specific verb 'commit' and resource 'transaction'. It explains the effect on undo marks and rollback snapshots, which aids in understanding its role. However, it does not explicitly distinguish it from sibling tools like transaction_begin or transaction_rollback, reducing clarity slightly.

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 provides no guidance on when to use or not use this tool, nor does it mention alternatives or prerequisites. It simply states what it does without contextual advice, leaving the agent to infer usage from the tool name and siblings.

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

transaction_rollbackRollback TransactionA
Destructive

Rollback the current transaction to the point of transaction_begin.

COM: Undoes all operations back to the last undo mark. ezdxf: Restores the document from the saved DXF snapshot.

WARNING: This is destructive – all changes since transaction_begin are lost.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already set destructiveHint=true, and the description reinforces this with a warning and details about COM and ezdxf behavior. There is no contradiction. The description adds some context but doesn't go beyond the annotations significantly.

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 extremely concise, with only two short paragraphs. Every sentence adds value: the first states the purpose, the second provides implementation-specific notes, and the third is a clear warning. 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 simple nature of the tool (no parameters, a single action), the description is fairly complete. It explains what it does and warns about destructiveness. There is an output schema but its contents are not shown; however, the description doesn't need to cover return values for such a straightforward operation.

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 input schema is empty with 100% schema coverage. The description does not need to explain parameters, and it appropriately omits parameter details. Baseline for 0 params 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 clearly states it rolls back to transaction_begin, using a specific verb and resource. It mentions COM and ezdxf variations, giving some context. However, it doesn't explicitly distinguish from sibling tools like transaction_commit or drawing_undo, which could cause confusion.

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 includes a warning that it is destructive and loses all changes since transaction_begin, giving a clear context for use. However, it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives like transaction_commit.

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

validation_checkValidate DrawingA
Read-only

Run quality checks on the current drawing.

Available checks:

  • empty_layers: Find layers with no entities

  • zero_length: Find zero-length lines

  • duplicate_entities: Find entities at the same position

ParametersJSON Schema
NameRequiredDescriptionDefault
checksNoList of checks: empty_layers, zero_length, duplicate_entities

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?

Annotations already declare readOnlyHint=true, so the description correctly implies no modifications. However, it does not disclose further behaviors like whether checks are run sequentially, output format, or performance implications. Given annotations carry the safety profile, the description adds minimal additional transparency.

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 (two sentences plus a bullet list) with no redundant language. The purpose is front-loaded, and every sentence serves a clear purpose: stating the action and listing the checks.

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 read-only validation tool with an output schema (present but not shown), the description provides enough context for an agent to use it. It explains the available checks and the input parameter. Missing details about return structure are likely covered by the output schema, so completeness is high but not perfect.

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 100% (the 'checks' parameter description lists the three check types). The description repeats this list in a structured format but adds no extra meaning beyond what the schema already provides. Baseline 3 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 states the tool runs quality checks on the current drawing and lists three specific checks (empty_layers, zero_length, duplicate_entities), using a specific verb and resource. This distinguishes it from sibling analysis tools like analysis_layer_stats or drawing_audit, as it focuses on a predefined set of validation checks.

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 implicitly suggests using this tool for validation checks but does not explicitly state when to use it versus alternatives such as drawing_audit or analysis_layer_stats. No when-not or alternative guidance is provided, leaving the agent to infer usage context.

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

viewport_createCreate ViewportA

Place a scaled model-space viewport on a paper-space layout.

The viewport window shows the model region centered at (view_center_x, view_center_y); view height = height / scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNoPaper:model scale (1.0 = 1:1, 0.5 = 1:2, 2.0 = 2:1).
widthYesViewport width in paper units.
heightYesViewport height in paper units.
layoutYesPaper-space layout that receives the viewport.
center_xYesViewport center X in paper units.
center_yYesViewport center Y in paper units.
view_center_xYesModel-space X the viewport looks at.
view_center_yYesModel-space Y the viewport looks at.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

The description explains the viewport window calculation (center and height/scale), making behavior clear beyond the destructiveHint annotation. No contradictory behaviors noted.

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 concise sentences that front-load the core purpose and then add a critical detail, with no extraneous words.

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?

Given the tool's simplicity and the presence of an output schema, the description fully explains what the tool does and how the scaling works.

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?

The description adds a formula view height = height/scale and clarifies that the viewport looks at model-space coordinates, providing meaning beyond the input 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 description uses a specific verb 'Place' and resource 'scaled model-space viewport on a paper-space layout', clearly distinguishing it from sibling tools like layout_create or entity creation tools.

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 usage context (paper-space layout) and no other viewport tools exist among siblings, but lacks explicit when-to-use or prerequisite statements.

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

viewport_deleteDelete ViewportA
Destructive

Delete a viewport.

The layout's main viewport needs force=true; deleting it removes the tab's own view state, and the layout's current-viewport pointer is repaired so the file does not carry a dangling reference that only CAD would notice.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoAllow deleting the layout's main viewport.
handleYesViewport entity handle (from viewport_list).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already indicate destructiveHint=true, and the description adds substantial behavioral context: it explains that deleting the main viewport requires force, that it removes the tab's own view state, and that the current-viewport pointer is repaired to avoid dangling references. This exceeds what annotations alone provide.

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: one short sentence plus one informative sentence. Every clause adds value, with no redundant phrasing or repetition of what is already in the schema.

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?

Given the destructive annotation, full schema coverage, and presence of an output schema, the description covers all necessary context: the main viewport edge case, the pointer repair, and the force requirement. No critical information is missing.

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

Parameters4/5

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

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds meaning to the `force` parameter by explaining when it is necessary and what happens if it is not set, which goes beyond the schema's default value 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 clearly states 'Delete a viewport' using a specific verb and resource. It distinguishes from sibling viewport tools (viewport_create, viewport_list, viewport_set_scale) by focusing on deletion.

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 important context on when the `force` parameter is required (deleting the layout's main viewport) and explains consequences, but does not explicitly mention alternative tools or when not to use it. Still, it gives clear usage guidance beyond the basic operation.

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

viewport_listList ViewportsA
Read-only

List paper-space viewports: handle, geometry, scale and lock state.

The layout's own main viewport is included with is_main: true — it is the tab's pan/zoom state rather than a drafting viewport, and it is what remains after every drafting viewport is deleted. scale and locked are null on documents that cannot store them (R12) rather than fabricated.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutNoRestrict to one paper-space layout. Empty covers every sheet.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral nuances: the inclusion of the layout's main viewport with is_main:true, its nature as the tab's pan/zoom state, and the null values for scale/locked on R12 documents. This adds significant context about edge cases and interpretation.

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 yet dense, using two sentences to convey the core purpose and critical edge cases. It is well-structured with the main action first, followed by relevant clarifications. No redundant words.

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?

The tool is a read-only list operation with a rich output schema available. The description adequately covers all necessary context: what is listed, special cases for the main viewport, and behavior on older document formats. There is no missing information for correct invocation.

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 input schema already provides 100% coverage for the single 'layout' parameter with a clear description. The tool description does not add additional meaning beyond the schema, so baseline 3 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 opens with a specific verb and resource: 'List paper-space viewports' and enumerates the returned attributes (handle, geometry, scale, lock state). It clearly distinguishes itself from sibling tools like viewport_create or viewport_delete by focusing on listing/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 usage as a read-only inspection tool but does not explicitly state when to prefer it over alternatives or when not to use it. It lacks direct comparisons to sibling tools such as viewport_set_scale or viewport_lock, so guidance is implicit rather than explicit.

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

viewport_lockLock ViewportB

Lock or unlock a viewport's display scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
handleYesViewport entity handle (from viewport_list).
lockedNoTrue to lock the display scale, False to unlock.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations provide only a title, so the description bears full responsibility for behavioral transparency. It discloses that the tool toggles a viewport's display scale lock but does not mention side effects (e.g., preserving current scale, preventing scale edits), reversibility, or required permissions. For a state-changing operation, this is minimal.

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 directly states the purpose. 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?

The tool is simple with only two well-documented parameters and an output schema, so minimal description is needed. The description covers the core action, though it could mention the effect of locking (e.g., prevents display scale changes) and that a handle comes from viewport_list (already in schema). Overall, it's sufficient for a simple toggle.

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 100%, with both 'handle' and 'locked' having clear descriptions. The tool description adds little beyond the schema, but it aligns with the schema's semantics. Since the schema fully documents parameters, baseline 3 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 states 'Lock or unlock a viewport's display scale,' naming the exact resource (viewport's display scale) and the action (lock/unlock). This distinguishes it from sibling tools like viewport_set_scale, which changes the scale rather than locking it.

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. Notably, sibling viewport_set_scale exists for changing scale, but the description does not mention it or state that this tool is for preventing scale changes. Users must infer usage from the name/description alone.

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

viewport_set_scaleSet Viewport ScaleA

Rescale a viewport by adjusting its view height.

Geometric scale only: annotative text and dimensions do not resize with it. Refuses the layout's main viewport, whose view height is the tab's own pan/zoom state rather than a drafting scale.

ParametersJSON Schema
NameRequiredDescriptionDefault
scaleYesPaper:model scale (1.0 = 1:1, 0.5 = 1:2, 0.02 = 1:50).
handleYesViewport entity handle (from viewport_list).

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?

Beyond the sparse annotations (only destructiveHint=false), the description discloses important behavioral traits: annotative text/dimensions do not resize, and the main viewport is refused. This adds meaningful context about side effects and edge cases, though it does not cover all possible failure modes or state changes.

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 concise sentences, front-loaded with the primary action and immediately followed by essential limitations. Every sentence adds value with 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?

Given the presence of an output schema and moderately complex behavior, the description sufficiently covers purpose, limitations, and an edge case (main viewport refusal). It does not explain error behavior in detail, but it is complete enough for an agent to select and invoke the tool correctly.

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 already provides 100% coverage for both parameters (handle and scale) with clear descriptions. The description adds the context that rescaling adjusts 'view height' and clarifies the geometric nature, but it does not need to add much parameter detail, so a baseline 3 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 opens with a specific verb and resource: "Rescale a viewport by adjusting its view height." This clearly identifies the tool's function and mechanism, distinguishing it from sibling viewport tools like viewport_lock or viewport_delete.

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 on what the tool does and explicitly notes limitations: it only applies geometric scale and refuses the main viewport. However, it does not explicitly name alternative tools for other viewport operations, making the usage guidance strong but not fully explicit about alternatives.

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

view_screenshotScreenshotA
Read-only

Capture a screenshot of the current drawing view.

COM backend: captures live AutoCAD window at current view. ezdxf backend: renders via matplotlib to PNG.

With overlay_handles, each entity is labelled with its handle at its own centre — every modify tool takes a handle, and without the labels there is nothing connecting "the circle at the top-left" to a hex string you can act on. Crowded drawings are capped and the image says how many of how many were labelled. Live AutoCAD captures its own window, so there is no render to label there; it refuses with capability: "handle_overlay".

Returns an Image content block with the PNG data.

ParametersJSON Schema
NameRequiredDescriptionDefault
overlay_handlesNoLabel each entity with its handle, so what you see maps to what you can modify. Headless backend only.

TDQS

A4.3/5.0
Behavior5/5

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

The description goes far beyond the simple readOnlyHint annotation, detailing backend-specific behavior (COM vs ezdxf), the overlay_handles capping behavior, the refusal in live AutoCAD, and the return format (Image content block with PNG data). This is excellent behavioral disclosure for an agent.

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 well-structured with a clear opening sentence, followed by backend details and overlay behavior. While somewhat lengthy, every sentence adds necessary behavioral context, and the formatting makes it easy to scan. Slightly verbose but not wasteful.

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?

The description covers all essential aspects for a screenshot tool: what it captures, backend differences, the overlay feature's purpose and limitations, and the return type. Without an output schema, this description sufficiently explains what the agent can expect, making it complete for its 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?

The schema already documents overlay_handles with 100% coverage, but the description adds substantial meaning: it explains the motivation (connecting circles to hex handles), the capping behavior, and the backend-specific limitation. This goes beyond the schema's basic label definition.

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 'Capture a screenshot of the current drawing view' with a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like view_zoom_and_screenshot, relying on the phrase 'current drawing view' to imply no zooming.

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 strong context for when to use the overlay_handles parameter, explaining the need to map visual entities to handles. It also gives a clear exclusion: live AutoCAD refuses overlay_handles, so users know to expect that limitation. However, it doesn't explicitly compare with alternative screenshot/zoom tools.

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

view_zoom_and_screenshotZoom and ScreenshotA
Read-only

Zoom to extents (or window if coordinates given), then capture a screenshot.

The most useful tool for visually inspecting drawing state.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1NoOptional: zoom to this window corner X1
x2NoOptional: zoom to window corner X2
y1NoOptional: zoom to window corner Y1
y2NoOptional: zoom to window corner Y2

TDQS

A4/5.0
Behavior3/5

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

Annotations provide readOnlyHint: true, so agent knows it's safe. Description adds the two-step behavior but no additional side effects or constraints. Consistent with annotations, no contradiction.

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 concise sentences, front-loaded with the action. No unnecessary words, each sentence adds 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?

Given no output schema and a simple two-step utility, the description adequately explains the tool's function. However, the absence of output description (e.g., screenshot format) is a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, and description clarifies that providing coordinates zooms to a window versus extents otherwise, adding meaning beyond individual parameter 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 description clearly states the tool's action: zoom to extents or window, then screenshot. It also highlights its utility for visual inspection, distinguishing it from siblings like view_zoom_extents, view_zoom_window, and view_screenshot.

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 (for combined zoom and screenshot), but does not explicitly contrast with using separate zoom/screenshot tools. No when-not-to-use or alternative guidance is provided.

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

view_zoom_extentsZoom ExtentsA

Zoom to show all entities in the drawing (fit drawing in viewport).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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?

Annotations already indicate it is not read-only or destructive; the description adds the context of fitting entities in the viewport, which is helpful but not extensive.

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 with no wasted words, efficiently conveying the tool's purpose.

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 parameters and the existence of an output schema, the description covers the essential functionality. It is complete for a simple view adjustment tool.

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?

No parameters exist, and schema coverage is 100%. The description does not need to add parameter details, and a baseline of 4 is appropriate for zero-parameter tools.

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 verb 'zoom' and the resource/result 'show all entities in the drawing (fit drawing in viewport)', making it specific and easily distinguishable from sibling tools like view_zoom_window.

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?

No explicit guidance on when to use this tool versus alternatives, but the purpose is implied by the name and description for a simple command with no parameters.

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

view_zoom_windowZoom WindowB

Zoom to display the specified rectangular window region.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1YesWindow corner 1 X
x2YesWindow corner 2 X
y1YesWindow corner 1 Y
y2YesWindow corner 2 Y

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?

Description does not add behavioral context beyond annotations. Annotations indicate non-read-only and non-destructive, but description does not explain what changes occur (e.g., viewport modification) 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.

Conciseness5/5

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

Single sentence, highly concise, front-loaded with the key action. No wasted words.

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?

Adequate for a simple zoom action given output schema exists. Lacks context about coordinate system, units, or viewport applicability, but sufficient for basic use.

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 100%, so parameters are fully described. Description adds no additional meaning beyond schema definitions, earning baseline 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?

Description clearly states it zooms to a rectangular window region. 'Zoom' specifies the action, 'display' the resource, and 'specified rectangular window region' distinguishes it from sibling tools like view_zoom_extents.

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 alternatives like view_zoom_extents or view_screenshot. Lacks context on prerequisites or exclusions.

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. Dates show when Glama detected each change.

  1. 39 tool updatesv1.5.1
    • Changedanalysis_find_in_region5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Addedanalysis_list_properties
    • Changedanalysis_measure_area1 field changed
      • changedInput schema / properties / points / description
        Previous value: -"Polygon vertices as list of [x, y] points (min 3)"New value: +"Polygon vertices, min 3. Each is [x, y] or [x, y, bulge] — the bulge (DXF convention) makes the edge leaving that vertex a circular arc."
    • Addedanalysis_measure_entity
    • Changedanalysis_select_by_layer5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Changedanalysis_select_by_type5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Changedblock_find_references5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Changedblock_list5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Addedboundary_from_entities
    • Addedboundary_trace
    • Addedcad_batch
    • Changeddrawing_open1 field changed
      • changedInput schema / properties / path / description
        Previous value: -"Full path to the .dwg or .dxf file"New value: +"Full path to the .dxf file. .dwg needs a backend that can read it (the live COM backend); the headless ezdxf backend refuses it."
    • Changeddrawing_settings1 field changed
      • changedInput schema / properties / settings / description
        Previous value: -"Omit to READ every setting; pass a dict to CHANGE them. Friendly keys: units (mm/cm/m/inch/feet), linear_precision, angular_precision, ltscale, dimscale, text_size, point_mode, point_size, osmode, fillet_radius. Example: {\"units\": \"mm\", \"dimscale\": 1.0, \"linear_precision\": 2}."New value: +"Omit to READ every setting; pass a dict to CHANGE them. Friendly keys: units (mm/cm/m/inch/feet), linear_precision, angular_precision, ltscale, dimscale, dim_text_height, dim_arrow_size, dim_decimals, decimal_separator (\".\" or \",\"), zero_suppression, text_size, point_mode, point_size, osmode, fillet_radius. Example: {\"units\": \"mm\", \"dimscale\": 1.0, \"dim_text_height\": 3.5}."
    • Changedentity_array_polar5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Changedentity_array_rectangular5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Addedentity_change_space
    • Addedentity_create_revcloud
    • Addedentity_create_wipeout
    • Changedentity_list5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Changedentity_select_smart5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Addedhatch_add_boundary
    • Addedhatch_edit
    • Addedhatch_set_gradient
    • Changedlayer_list5 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
      • addedOutput schema / properties / result / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedOutput schema / properties / result / items
        Removed value: -{
        -  "additionalProperties": true,
        -  "type": "object"
        -}
      • removedOutput schema / properties / result / type
        Removed value: -"array"
    • Addedlayout_copy
    • Addedlayout_delete
    • Addedlayout_rename
    • Addedselection_filter
    • Changedselection_get2 fields changed
      • addedInput schema / properties / compact
        Added value: +{
        +  "default": false,
        +  "description": "Return a columnar {fields, rows, count, offset, total, truncated, next_offset} envelope instead of dicts: much cheaper per row, and the only shape that reports truncation.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Project to these fields, in this order (e.g. ['handle','type','layer']); 'properties.<key>' reaches one nested value. Omit for the full record; an unknown name errors and lists the valid ones."
        +}
    • Addedselection_polygon
    • Addedselection_window
    • Addedtext_find_replace
    • Addedtext_set_background
    • Changedtitleblock_apply_iso_a31 field changed
      • addedInput schema / properties / layout
        Added value: +{
        +  "default": "",
        +  "description": "Paper-space layout to draw the sheet on (create it with layout_create). Empty draws in the current space, as before.",
        +  "type": "string"
        +}
    • Changedview_screenshot1 field changed
      • addedInput schema / properties / overlay_handles
        Added value: +{
        +  "default": false,
        +  "description": "Label each entity with its handle, so what you see maps to what you can modify. Headless backend only.",
        +  "type": "boolean"
        +}
    • Addedviewport_delete
    • Addedviewport_list
    • Addedviewport_lock
    • Addedviewport_set_scale
  2. 126 tool updatesv1.4.0
    • First observedanalysis_bounding_box
    • First observedanalysis_entity_stats
    • First observedanalysis_find_in_region
    • First observedanalysis_layer_stats
    • First observedanalysis_measure_area
    • First observedanalysis_measure_distance
    • First observedanalysis_select_by_layer
    • First observedanalysis_select_by_type
    • First observedblock_create_from_entities
    • First observedblock_explode
    • First observedblock_find_references
    • First observedblock_get_attributes
    • First observedblock_insert
    • First observedblock_list
    • First observedblock_set_attributes
    • First observedconstruction_clear
    • First observedconstruction_xline
    • First observeddatum_feature
    • First observeddimension_aligned
    • First observeddimension_angular
    • First observeddimension_auto
    • First observeddimension_diameter
    • First observeddimension_linear
    • First observeddimension_radius
    • First observeddrawing_apply_iso_layers
    • First observeddrawing_audit
    • First observeddrawing_close
    • First observeddrawing_critique
    • First observeddrawing_deliver
    • First observeddrawing_export_dxf
    • First observeddrawing_export_pdf
    • First observeddrawing_finalize
    • First observeddrawing_info
    • First observeddrawing_new
    • First observeddrawing_open
    • First observeddrawing_plan
    • First observeddrawing_preflight
    • First observeddrawing_purge
    • First observeddrawing_redo
    • First observeddrawing_refine
    • First observeddrawing_save
    • First observeddrawing_save_as
    • First observeddrawing_settings
    • First observeddrawing_undo
    • First observedentity_array_polar
    • First observedentity_array_rectangular
    • First observedentity_batch_create
    • First observedentity_batch_modify
    • First observedentity_chamfer
    • First observedentity_copy
    • First observedentity_create_arc
    • First observedentity_create_block_ref
    • First observedentity_create_circle
    • First observedentity_create_ellipse
    • First observedentity_create_hatch
    • First observedentity_create_line
    • First observedentity_create_mtext
    • First observedentity_create_point
    • First observedentity_create_polyline
    • First observedentity_create_rectangle
    • First observedentity_create_spline
    • First observedentity_create_table
    • First observedentity_create_text
    • First observedentity_delete
    • First observedentity_delete_many
    • First observedentity_edit_geometry
    • First observedentity_edit_text
    • First observedentity_extend
    • First observedentity_fillet
    • First observedentity_get
    • First observedentity_list
    • First observedentity_mirror
    • First observedentity_move
    • First observedentity_offset
    • First observedentity_rotate
    • First observedentity_scale
    • First observedentity_select_smart
    • First observedentity_set_properties
    • First observedentity_trim
    • First observedgd_frame
    • First observedgear_draw_helical_front_view
    • First observedgear_draw_section_aa
    • First observedgear_draw_spur_front_view
    • First observedkeyway_draw_keyed_bore
    • First observedkeyway_draw_section
    • First observedlayer_create
    • First observedlayer_delete
    • First observedlayer_freeze
    • First observedlayer_hide
    • First observedlayer_isolate
    • First observedlayer_list
    • First observedlayer_lock
    • First observedlayer_modify
    • First observedlayer_set_current
    • First observedlayer_show
    • First observedlayer_thaw
    • First observedlayer_unlock
    • First observedlayout_create
    • First observedlayout_list
    • First observedlayout_set_current
    • First observedleader_create_mleader
    • First observedlinetype_list
    • First observedlinetype_load
    • First observedpoint_from_snap
    • First observedpoint_intersection
    • First observedpoint_tangent
    • First observedselection_get
    • First observedsystem_about
    • First observedsystem_capabilities
    • First observedsystem_get_variable
    • First observedsystem_run_command
    • First observedsystem_run_lisp
    • First observedsystem_set_variable
    • First observedsystem_status
    • First observedtemplate_apply_layers
    • First observedtemplate_list
    • First observedtitleblock_apply_iso_a3
    • First observedtransaction_begin
    • First observedtransaction_commit
    • First observedtransaction_rollback
    • First observedvalidation_check
    • First observedview_screenshot
    • First observedview_zoom_and_screenshot
    • First observedview_zoom_extents
    • First observedview_zoom_window
    • First observedviewport_create

TDQS

B3.4/5.0
Disambiguation4/5

Tools are largely organized by domain prefixes (drawing_, entity_, layer_, block_, analysis_, etc.) with detailed descriptions clarifying intent. A few overlapping query/selection tools exist (selection_filter vs analysis_select_by_type vs analysis_find_in_region), but their boundaries are clearly explained.

Naming Consistency4/5

Names consistently use snake_case with a noun_verb pattern (e.g., drawing_save, entity_delete, layer_create). Minor deviations like selection_window, cad_batch, and boundary_trace do not break the overall readability, but the pattern is not perfectly uniform.

Tool Count1/5

With 149 tools, this server vastly exceeds the typical MCP scope. Even for the complex AutoCAD domain, the tool count is extreme and will overwhelm agents, forcing them to parse an enormous surface before selecting anything. The sheer number makes coherence very low.

Completeness4/5

The surface is remarkably comprehensive, covering CRUD for entities, layers, blocks, dimensions, layouts, viewports, transactions, batch operations, analysis, and even specialized mechanical drafting helpers (gears, keyways, title blocks). Minor gaps exist (trim/extend limited to LINE+LINE, some backend-specific capabilities), but no critical dead ends.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with AutoCAD through Python automation to draw geometric shapes like lines, circles, and polylines in real-time. It facilitates direct control of a running AutoCAD instance on Windows for basic geometric element creation.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Controls CAD applications (AutoCAD, ZWCAD, etc.) via AI assistants through the Model Context Protocol, enabling drawing, layer management, and automation through natural language or direct tool calls.
    92
    Apache 2.0

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/U-C4N/Autocad-MCP'

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