AutoCAD MCP Server
Provides tools for reading and modifying drawings open in AutoCAD / AutoCAD Plant 3D via COM, including session and layer management, entity queries, drawing primitives, block attribute read/update, Excel round-trips, and optional AutoLISP execution.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AutoCAD MCP ServerRead all SUP-TEST block attributes and show TAG, TIPO, LINHA, X/Y."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AutoCAD MCP for Piping & Pipe Supports
Connect an AI assistant to AutoCAD / Plant 3D, live through COM or headless through ezdxf. One typed contract, two engines, 50 tools.
Install · Showcase · Tools · Engines · Limits · Config · Changelog

Not a mockup. Every line on this A1 sheet was drawn by the tools this server exposes (layers, ISA 5.1 instrument balloons, valves, tag lines, stream table, title block), then rendered headlessly. Rebuild it with python examples/showcase/pid.py docs/images. All data is fictional.
v0.3.1. 188 automated tests (simulated AutoCAD, offline DXF engine, real stdio subprocess) plus 7 opt-in live tests that passed on AutoCAD Plant 3D 2021 only. Other versions and native Plant 3D objects are not certified. See validation notes.
Showcase
Three complete A1 sheets, each one generated by a script in examples/showcase/ that calls the same engine the MCP tools use. Every sheet is saved as .dxf (opens in AutoCAD) and .png.
Sheet | What it shows | Rebuild |
P&ID | Tank TK-101 with nozzles N1-N8, parallel pumps P-101A/B, flow loop FT/FIC/FCV with bypass, heat exchanger E-101 with temperature control and steam trap, thermal relief PSV, battery limit, stream table, legend, notes, equipment list, title block |
|
Tank with nozzles and foundation | 50 m3 vertical tank, elevation and plan 1:30, Detail A (anchorage) and Detail B (nozzle N2 8" 150# RFWN) 1:5, chain dimensions, nozzle schedule, design data, bill of materials |
|
General arrangement (plot plan) | Plot plan 1:250 with roads, dike, tanks, pump pad, pipe rack, exchanger skid, buildings, fire water, coordinate grid, computed distance table, sections A-A and B-B 1:50 |
|

Tank sheet: dimensioned elevation and plan, anchorage and nozzle details, nozzle schedule.

Plot plan 1:250: the distance table is computed from the equipment coordinates, not typed.
Smaller examples from examples/gallery.py:
|
|
|
|
The images are an approximate ezdxf/matplotlib render, not an AutoCAD capture. The showcase is also a test: tests/test_showcase.py runs all three scripts and checks doc.audit() for errors.
Related MCP server: multiCAD-mcp
What's new in 0.3
Track | What it adds |
Headless DXF engine |
|
Live AutoCAD additions |
|
Scaled drawings |
|
Safer by default | File I/O limited to |
Fixed | Layer color/linetype now applied by the DXF engine; queries no longer leave an empty undo step |
Workflow: ask for a DXF copy of the drawing, let the assistant edit, dimension and export it offline, or work live in the open drawing. A DWG cannot be read without AutoCAD.
Why this exists
Built by a piping and pipe-supports engineer, so the focus is on what that work needs: block attributes (TAG / TIPO / LINHA), layers, coordinates, support registers that can be audited and compared by TAG across revisions, and Excel round-trips. It is not a general CAD toolbox; it is a narrow tool with its limits written down.
flowchart LR
A["AI assistant / MCP client"] <-->|stdio| B["MCP server<br/>50 tools, profiles lean/core/full"]
B --> G["Guards: allowed folders, read-only,<br/>confirm/dry_run, audit log"]
G --> L["Live engine: single COM worker"]
G --> H["Headless engine: ezdxf"]
G --> Q["Support QA: snapshot, audit, compare"]
L <--> D["AutoCAD / Plant 3D<br/>open drawing"]
L --> P1["PDF from the real plotter"]
L <--> X["Excel .xlsx keyed by TAG"]
H <--> F["DXF files"]
H --> P2["PDF / PNG / SVG<br/>matplotlib render"]
Q -.-> L
Q -.-> HInstall
git clone https://github.com/C48H74/autocad-mcp.git
cd autocad-mcp
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]" # installs ezdxf and matplotlib too
Copy-Item config.example.toml config.toml
.\.venv\Scripts\python.exe -m pytest -m "not autocad"Or uv sync and uv run python -m pytest -m "not autocad". The project uses MCP SDK 1.x (mcp<2).
Requirements: Python 3.11+ (64-bit, same architecture as AutoCAD). Live COM needs Windows with a licensed AutoCAD desktop (or the Plant 3D environment) running with a test drawing open, under the same user and privilege level as the MCP client. The headless DXF engine runs on any OS.
Wire it to Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json (Settings, Developer, Edit Config) with absolute paths:
{
"mcpServers": {
"autocad": {
"command": "C:\\path\\to\\autocad-mcp\\.venv\\Scripts\\python.exe",
"args": ["-m", "autocad_mcp"],
"env": { "AUTOCAD_MCP_CONFIG": "C:\\path\\to\\autocad-mcp\\config.toml" }
}
}
}Fully quit and reopen Claude Desktop; the autocad server should list 50 tools. Start with status and verify the active drawing and units. Any local stdio client can use the same command, args and environment variable. Internal tool descriptions and diagnostics are currently in Portuguese.
Tools
50 tools in 11 groups. Signatures and defaults: docs/tools.md.
Group | Tools |
Session |
|
Layers |
|
Query |
|
Drawing |
|
Blocks |
|
Excel |
|
Dimensions / plot / project data (live) |
|
DXF read (offline) |
|
DXF write (offline) |
|
Support QA |
|
Advanced |
|
Support register quality. Capture a complete support register, find duplicate TAGs and missing attributes, reconcile project-provided expected tags, and compare revisions by TAG even when CAD handles change. Audit and comparison run offline on captured snapshots. They do not validate structural loads or native Plant 3D data. Workflow and limits.
Example prompts
"Read the attributes of every SUP-TEST block and give me a table with TAG, TIPO, LINHA and X/Y."
"Import suportes.xlsx (block SUP-TEST, key TAG). Do a dry run first and tell me how many insert and how many update."
"Change TIPO to ANCORA on all blocks of line 10-P-1001. Show a preview and apply only after I confirm."
"Create an A1 sheet at 1:30 with a tank elevation, dimension the nozzles and export a PDF."
The two engines
Capability | COM (live AutoCAD) | ezdxf (headless) |
Live document control | yes | no |
Runs without AutoCAD, any OS | no | yes |
Native DIMENSION | yes | yes ( |
Paper layouts and viewports | via drawing | yes |
PDF plot | real plotter ( | matplotlib render (approximate) |
Block attributes read/write | yes | yes |
Excel round-trip keyed by TAG | yes | via DXF read |
Read-only SQL over entities | no | yes ( |
DWG read/write | yes | no (DXF only) |
3D solids | not exposed | not copied (ezdxf cannot import 3DSOLID) |
Grouped drawing edits use StartUndoMark/EndUndoMark; one-step undo was verified live on Plant 3D 2021 (100-block import undone with one Ctrl+Z). This is not automatic rollback and does not cover file writes or run_lisp. Selected destructive actions need confirm=true; batch tools support dry_run. The flag is not independent human authorization.
Limits
Plant 3D. Generic AutoCAD objects only, through COM. No Plant 3D .NET SDK, DataLinksManager, project database, spec-driven routing or native isometrics. Proxy objects may expose only generic properties and bounding boxes.
Certification. Live tests passed on AutoCAD Plant 3D 2021 only. Rotated UCS has not been validated.
Model space only; block definitions must already exist. Constant attributes need care.
Renders are approximate. PNG/PDF from the headless engine come from ezdxf + matplotlib. Hatch patterns at small scale (for example AR-CONC) can look speckled.
DWG needs AutoCAD. The headless engine reads and writes DXF.
run_lispis off by default; its filtering is partial protection, not a sandbox.Showcase sheets are fictional and use a made-up drawing standard; they are not for construction.
Configuration
Copy config.example.toml to config.toml or set AUTOCAD_MCP_CONFIG to its absolute path.
Setting | Default | Meaning |
| false | Optional AutoLISP execution |
| false | Allow starting AutoCAD |
| AutoCAD.Application | Registered COM application |
| 120 | Wait limit; does not cancel blocked COM calls |
| full |
|
| false | JSONL trail in |
| 500 | Maximum results per page |
| 2000 | Maximum Excel rows per call |
| 3000 | Up to this many entities, queries scan directly (no empty undo step) |
| [] | Folders for all file I/O (DXF, PDF, PNG, Excel). Empty = only |
| false | Opt in to unrestricted file paths |
Environment overrides: AUTOCAD_MCP_CONFIG, AUTOCAD_MCP_READ_ONLY=1, AUTOCAD_MCP_ALLOWED_DIRS, AUTOCAD_MCP_WORKSPACE. Logs go to stderr and rotating logs/server.log; stdout is reserved for MCP. Review logs before sharing.
Troubleshooting
Symptom | Check |
| Open AutoCAD; check COM registration and matching user/privileges |
| Finish commands and close dialogs (a command waiting for ENTER blocks COM) |
COM timeout | A modal dialog may be blocking COM; the call may still be running |
Tools missing | Absolute paths, valid JSON, correct Python environment, client restart |
Excel write failure | Close the workbook; check permissions and allowed directories |
Development
.\.venv\Scripts\python.exe -m pytest -m "not autocad" # 188 tests
.\.venv\Scripts\python.exe examples\gallery.py # small gallery -> docs/images
.\.venv\Scripts\python.exe examples\showcase\pid.py docs\imagesCI runs the same suite on Linux and Windows (simulated COM). More: CONTRIBUTING.md, SUPPORT.md, SECURITY.md, CODE_OF_CONDUCT.md, source comparison.
Safety
This server can modify and save drawings. Work on copies, keep backups, review previews before confirming, and do not open confidential client drawings with an assistant unless your company policy allows it.
Author
Daniel de Souza Paixão, piping stress and pipe-supports engineer. Built from day-to-day drawing work, then exposed through MCP.
License
MIT © 2026 Daniel de Souza Paixão. Third-party inspirations: see NOTICE.
AutoCAD is a trademark of Autodesk, Inc. This project is independent and not affiliated with or endorsed by Autodesk.
Available Tools
50 toolsadd_dimensionADestructive
Cria uma cota nativa (entidade DIMENSION) no espaço modelo. Desfazível com um Ctrl+Z.
QUANDO USAR: cotar distâncias entre suportes, diâmetros, raios e ângulos direto no desenho aberto.
Parâmetros por tipo: linear (rotação por angle_deg: 0 = horizontal [padrão], 90 = vertical): p1, p2, location
(ponto por onde passa a linha de cota); aligned: p1, p2, location (ponto do texto); radius e diameter: center, radius,
angle_deg (direção do ponto na circunferência; padrão 45); angular: vertex, p1, p2, location (ponto do texto). layer opcional.
Exemplo: add_dimension(kind="linear", p1=[0,0], p2=[1500,0], location=[750,-200], layer="COTAS")
O estilo/tamanho vem do estilo de cota ativo do desenho (DIMSTYLE); a ferramenta não o altera.
| Name | Required | Description | Default |
|---|---|---|---|
| p1 | No | ||
| p2 | No | ||
| kind | Yes | ||
| layer | No | ||
| center | No | ||
| radius | No | ||
| vertex | No | ||
| location | No | ||
| angle_deg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is partly covered. The description adds useful behavioral context beyond the annotations, notably that the operation is undoable with Ctrl+Z and that the active DIMSTYLE controls style/size and is not modified by the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then structured into usage and per-type parameter guidance. Despite covering nine parameters and five dimension kinds, it avoids wasted sentences and the example makes the invocation pattern concrete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex kind-dependent parameter model, the description is complete enough for an agent to call the tool correctly. Return values are covered by the output schema, and the description covers creation, undoability, usage context, parameter mapping, and DIMSTYLE behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It compensates excellently by mapping parameters per dimension type: linear, aligned, radius, diameter, and angular each get their required parameters, along with an optional layer and an example call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Cria uma cota nativa (entidade DIMENSION) no espaço modelo.' This clearly identifies what the tool does and distinguishes it from generic drawing primitives, but it does not explicitly differentiate itself from the sibling tool dxf_add_dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' section gives clear usage context: dimensioning distances between supports, diameters, radii, and angles directly in the open drawing. It does not state when not to use the tool or name an alternative such as dxf_add_dimensions, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_mtextADestructive
Adiciona texto de várias linhas (MText). QUANDO USAR: notas e legendas; use \P para quebra de linha.
Parâmetros: text, point (canto de inserção), width (> 0, largura da caixa), height (altura do texto; opcional), layer. Exemplo: add_mtext("NOTA 1:\PVer suporte tipo GUIA", [0, -200], 800, height=3.5, layer="TEXTO").
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| layer | No | ||
| point | Yes | ||
| width | Yes | ||
| height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutating nature is covered. The description adds useful format behavior (\P as the newline escape, width must be > 0) but says nothing about needing an active document, units, or how the insertion point relates to the box alignment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose then an explicit QUANDO USAR marker, a compact parameter list, and a concrete example. Each element earns its place, though the parameter line is a terse enumeration rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and the description covers all five parameters plus the multiline use case. It omits document-state prerequisites and unit conventions, which is a minor remaining gap for a 5-param mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it delivers: point is described as the insertion corner, width as a box width constrained to > 0, height as optional text height, and layer is named. It does not clarify the coordinate format or units for point/width, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource in "Adiciona texto de várias linhas (MText)", and the qualifier "de várias linhas" implicitly separates it from the single-line sibling add_text. An agent can tell what entity is created without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR: notas e legendas" states a clear use context for this tool. It stops short of naming add_text as the alternative for single-line text or stating when not to use MText, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_textADestructive
Adiciona texto de linha única. QUANDO USAR: rótulos curtos (TAG, cota, nota).
Parâmetros: text, point (inserção), height (> 0, unidade do desenho), rotation (GRAUS), layer. Exemplo: add_text("PS-101", [1250, 830], 3.5, layer="TEXTO").
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| layer | No | ||
| point | Yes | ||
| height | Yes | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the write/destructive profile is covered. The description adds no behavioral context beyond that — no mention of undo impact, layer-creation side effects, or overwrite behavior — but it is consistent with the annotations, so the lower bar applies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose first, then when-to-use, then parameters, then example. Dense but each element earns its place; the parameter list is slightly terse but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a mutating text-creation tool the description covers purpose, usage condition, all five parameters, and an example, leaving only minor gaps around coordinate conventions and layer auto-creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it does: it labels point as insertion, height as >0 in drawing units, rotation in DEGREES, and layer, plus a concrete call example. It does not clarify the point's coordinate dimensionality/order beyond the example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Adiciona texto de linha única' (adds single-line text). The 'linha única' qualifier implicitly distinguishes it from the multiline sibling add_mtext, though that sibling is never named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: rótulos curtos (TAG, cota, nota)' gives an explicit when-to-use condition with concrete examples. It lacks a when-not clause or a named alternative (e.g., use add_mtext for multiline), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_support_registerARead-only
Audita TAGs duplicadas, campos vazios e cadastro esperado; totais por linha/tipo sem inferências.
QUANDO USAR: QA de cadastro antes da entrega ou importação Excel; não dimensiona suportes. Parâmetros: snapshot completo, allowed_types/expected_tags fornecidos pelo projeto, limit=1..500. Exemplo: audit_support_register(snapshot, allowed_types=["GUIA", "ANCORA"]). Funciona sem AutoCAD.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| snapshot | Yes | ||
| allowed_types | No | ||
| expected_tags | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behavioral context beyond that: it runs without AutoCAD and reports without inferences, which tells the agent results are deterministic and server-side. It says nothing about output shape, but an output schema exists, so the gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then sections WHEN TO USE, parameters, and a concrete example, with no filler sentences. Well organized and appropriately sized, though the last line about AutoCAD could be folded in more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile and an output schema presumably covering the return format, the description only needs to add scoping and usage, which it does via the when-to-use clause, parameter notes, and a worked example. Adequate for a read-only audit tool; only cross-tool disambiguation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it largely does: it explains that snapshot must be complete, that allowed_types/expected_tags come from the project, and it supplies a limit range (1..500) that the schema does not constrain. Only the snapshot's internal field/filter structure is left undocumented, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (audits support-register TAGs) and enumerates the exact checks performed: duplicate TAGs, empty fields, expected register, and totals per line/type. It distinguishes itself from dimensioning tools via 'não dimensiona suportes', but never names the audit-family siblings (snapshot_support_register, compare_support_register, dxf_audit), so an agent must still guess which audit tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' block gives an explicit condition (register QA before delivery or Excel import) plus a negative boundary ('não dimensiona suportes'). It is clear context, but it stops short of naming an alternative tool, so it falls just below the routing-explicit 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_layer_standardARead-only
Relata entidades do espaço modelo em camadas FORA do padrão informado (não altera nada).
QUANDO USAR: auditoria de desenho antes da entrega ("tem algo fora das camadas do padrão?"). Parâmetros: allowed_layers (nomes ou padrões com * e ?, ex. ["PIPE-", "SUPORTES"]), ignore_layers (padrão ["0", "Defpoints"]), limit (máx. de entidades de amostra por camada). Retorna, por camada fora do padrão: contagem, tipos e handles de amostra; e as camadas do padrão que não existem no desenho. Não verifica o conteúdo interno de blocos. Exemplo: check_layer_standard(["PIPE-", "SUPORTES", "EIXOS"]).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| ignore_layers | No | ||
| allowed_layers | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this with 'não altera nada'. It adds useful behavior beyond annotations: the return contents (count, types, sample handles, missing standard layers) and the limitation that it does not check internal block content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is well-structured and front-loaded: core purpose first, then usage, parameters, return details, limitation, and a concrete example. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, 0% schema coverage, and the presence of an output schema, the description provides all necessary context: parameter semantics, return format, and behavioral boundaries. An agent has enough information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining all three parameters: allowed_layers accepts names or wildcard patterns with an example, ignore_layers has a clear default, and limit defines the maximum sample entities per layer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Relata') and resource ('entidades do espaço modelo em camadas FORA do padrão informado'), with clear scope and no ambiguity. It distinguishes itself from general audit siblings by focusing exclusively on layers outside a given standard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear 'QUANDO USAR' section with the exact scenario: design audit before delivery. However, it does not name alternative tools (e.g., dxf_audit) or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_support_registerARead-only
Compara revisões por TAG; mostra inseridos/removidos, deslocamentos e atributos alterados.
QUANDO USAR: revisão de cadastros de suportes com unidades/filtros idênticos; funciona sem AutoCAD. Parâmetros: before/after completos; position_tolerance na unidade do desenho (não tolerância normativa). Exemplo: compare_support_register(before, after, position_tolerance=1.0). TAGs ambíguas não são casadas.
| Name | Required | Description | Default |
|---|---|---|---|
| after | Yes | ||
| limit | No | ||
| before | Yes | ||
| position_tolerance | No | ||
| allow_document_change | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, non-destructive profile, so the bar is lower. The description adds genuinely non-obvious behavior: it works without AutoCAD, position_tolerance is in drawing units rather than a normative tolerance, and ambiguous TAGs are deliberately not matched. The matching semantics are valuable context not derivable from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by clearly labeled WHEN TO USE, parameters, and a concrete example. Dense but every block earns its place; only minor redundancy between the first line and the parameters note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. For a snapshot-comparison tool it covers purpose, precondition, key parameter semantics, and matching behavior well; the only gap is the undocumented limit and allow_document_change parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full parameter burden. It clarifies position_tolerance (drawing units, non-normative) and requires before/after to be 'completos', but leaves limit and allow_document_change entirely unexplained, covering only three of five parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Compara revisões por TAG') and enumerates the result categories (inserted/removed, displacements, changed attributes). This clearly distinguishes it from sibling snapshot_support_register and audit_support_register, which do not compare revisions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' section gives a concrete precondition (revisions of support registers with identical units/filters) and notes it runs without AutoCAD. It stops short of stating when-not-to-use or naming an alternative sibling, so it is clear context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_entityADestructive
Copia uma entidade count vez(es), cada cópia deslocada mais um displacement (arranjo linear).
QUANDO USAR: repetir um item em passo constante (ex. suportes a cada 3000). Máx. 500 cópias. Parâmetros: handle, displacement ([dx, dy(, dz)]), count (≥ 1). Exemplo: copy_entity("2F1A", [3000, 0, 0], count=5).
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| handle | Yes | ||
| displacement | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, which is consistent with a copy that mutates the document. The description adds value beyond that: the maximum of 500 copies, the linear-step placement rule, and a worked example. It stops short of saying which document/layer the copies land on, so it is not fully complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then a scoped usage note, then parameters and an example. Every sentence carries information (step semantics, limit, formats) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and annotations cover the safety profile. For a simple 3-param mutation tool the description supplies purpose, limits, formats, and an example. It is only slightly short of complete: handle semantics and any document/layer side effects are unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it largely does: it documents all three parameters, gives the displacement vector format with the optional third component ([dx, dy(, dz)]), the count constraint (≥ 1), and a concrete call example. Only 'handle' lacks any format/meaning beyond its name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('copy an entity') and immediately adds the distinguishing semantics: each copy is offset by one displacement vector, forming a linear array. This differentiates it cleanly from siblings like move_entity (which relocates one entity) or insert_block. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explicit 'QUANDO USAR' section gives a concrete use case ('repeat an item at a constant step, e.g. supports every 3000') and a hard limit of 500 copies. It does not name an alternative tool or state when not to use it, but the context is clear enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_layerADestructive
Cria uma camada (se já existir, não altera nada e avisa).
QUANDO USAR: antes de desenhar/inserir em uma camada nova. Não é destrutivo. Parâmetros: name (sem < > / \ " : ; ? * | , = `), color (índice ACI 1-255 ou nome: red/vermelho, yellow, green, cyan, blue, magenta, white), linetype (deve estar carregado; HIDDEN/CENTER/DASHED/PHANTOM são carregados de acad.lin automaticamente). Exemplo: create_layer("SUPORTES", color="green", linetype="Continuous").
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No | ||
| linetype | No | Continuous |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare destructiveHint=true, but the description explicitly asserts 'Não é destrutivo' and describes idempotent, additive behavior. This is a direct conflict between the description and the structured annotation, which forces a 1 regardless of which side is factually correct.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and its idempotency, then clearly sectioned into QUANDO USAR / Parâmetros / Exemplo. The dense constraint lists all earn their place, though the whole block is on the long side for a 3-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers creation semantics, idempotency, permitted parameters and an example. The one missing piece is which document context the layer is created in, which matters given siblings like set_active_document and list_documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden — and it does: it documents the forbidden characters for 'name', the valid color forms (ACI index 1-255 or named colors) and the linetype loading requirement including auto-loading of HIDDEN/CENTER/DASHED/PHANTOM. This meaning is available nowhere in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Cria uma camada') and adds the key behavioral fact that it is idempotent ('se já existir, não altera nada e avisa'). It does not, however, differentiate itself from the sibling 'dxf_create_layer', which an agent will need to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit 'QUANDO USAR' clause placing the tool before drawing/inserting into a new layer, which is exactly the routing information an agent needs. It does not name an alternative or a when-not condition (e.g. how it relates to dxf_create_layer or list_layers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_entitiesADestructive
Apaga entidades pelos handles. DESTRUTIVO: exige confirm=true. Tudo-ou-nada; um Ctrl+Z desfaz.
QUANDO USAR: só quando o usuário pediu para apagar. FLUXO: dry_run=true lista o que seria apagado; depois confirm=true. Se algum handle não existir, nada é apagado e o erro lista os ausentes. Parâmetros: handles (lista de strings hex), confirm, dry_run. Exemplo: delete_entities(["2F1A", "2F1B"], dry_run=true).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| dry_run | No | ||
| handles | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, it discloses that confirm=true is mandatory, that the operation is all-or-nothing, that a Ctrl+Z undoes it, and that a nonexistent handle aborts the whole batch with the missing handles listed in the error. That is unusually rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the destructive warning, then when-to-use, flow, parameters and an example in a tight, well-ordered block. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers preconditions, error behavior, and the confirmation flow. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the load, and it does reasonably well: handles is a list of hex strings, dry_run previews what would be deleted, confirm gates the actual deletion, plus a concrete usage example. It stops short of documenting defaults or full type detail, but the critical semantics are present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (delete entities by handle) with scope clearly bounded. It does not differentiate itself from the near-identical sibling dxf_delete_entities, leaving an agent to infer which tool to pick between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states WHEN TO USE ('only when the user asked to delete') and lays out the required flow (dry_run first, then confirm=true). The alternative path is named and conditioned, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_circleADestructive
Desenha um círculo. QUANDO USAR: furos, bocais em planta, marcações.
Parâmetros: center ([x, y] ou [x, y, z]), radius (> 0, unidade do desenho), layer. Exemplo: draw_circle([500, 500], 25.4, layer="EIXOS").
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| center | Yes | ||
| radius | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the safety profile, and the description is consistent with them ('Desenha' implies document mutation). However it adds no behavioral detail beyond that — no mention of persistence, undo, units being inherited from the drawing, or interaction with the active document — so it earns only the baseline credit given annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed lines: purpose first, then a labeled 'QUANDO USAR' clause, then labeled parameters with an inline example. No filler, and the highest-value information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be described, and the description plus annotations together cover purpose, usage, parameters and safety. The only gaps are behavioral (mutation/undo/active-document effects) and the untranslated layer semantics — minor for a simple geometry primitive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and largely does: it defines center as [x, y] or [x, y, z], constrains radius to > 0 in drawing units, identifies layer, and provides a worked call example. Only the meaning of the null/default layer and how coordinates map to the active document are left unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Desenha um círculo') and the geometry siblings it complements (draw_line, draw_polyline) make the distinction obvious without opening a schema. An agent immediately knows this creates a circular entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: furos, bocais em planta, marcações' gives concrete use cases (holes, plan-view nozzles, markings) that tell the agent when this tool fits. It stops short of naming an alternative or an exclusion (e.g. use draw_polyline for arcs/approximations), so it is clear context but not full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_lineADestructive
Desenha uma linha no espaço modelo. Desfazível com um Ctrl+Z.
QUANDO USAR: eixos, referências e traçados simples. Parâmetros: start/end ([x, y] ou [x, y, z] na unidade do desenho), layer (existente; opcional — sem layer usa a camada ativa). Exemplo: draw_line([0, 0], [1500, 0], layer="EIXOS").
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| layer | No | ||
| start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is covered. The description adds genuinely new behavioral context: the operation is undoable with Ctrl+Z, and omitting layer falls back to the active layer. Those are real traits beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then a when-to-use block, then parameters, then a concrete example — a clean, scannable structure. It is slightly label-dense and the example could be tighter, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation, and the description covers purpose, usage, parameter formats, layer preconditions and undo behavior. It does not state what happens if the named layer is missing, which is the only material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so: start/end accept [x, y] or [x, y, z] in drawing units, and layer must be an existing layer and is optional with a documented active-layer default. All three parameters gain meaning absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Desenha uma linha no espaço modelo") and scopes it to axes, references and simple traces, which implicitly separates it from draw_polyline. The scope note does the work of differentiation without naming the sibling explicitly, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated "QUANDO USAR" line tells the agent when this tool fits (axes, references, simple geometry) and, by contrast, when a more complex primitive is warranted. It stops short of naming the alternative tools or stating exclusions outright, so 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.
draw_polylineADestructive
Desenha uma polilinha por vértices. Todos os Z iguais → polilinha leve 2D (com elevação); Z variados → polilinha 3D.
QUANDO USAR: contornos, traçados de linha de tubulação em planta, perímetros. Parâmetros: points (≥ 2 pontos [x, y] ou [x, y, z]), closed (fecha a figura), layer. Exemplo: draw_polyline([[0,0],[1000,0],[1000,500]], closed=true, layer="EIXOS").
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| closed | No | ||
| points | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=true; the description adds real behavioral detail by explaining that uniform Z produces a lightweight 2D polyline (with elevation) while varying Z produces a 3D polyline. It omits other operational traits such as whether a missing layer is auto-created and whether the drawing must be saved to persist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and the Z-based rule, then a labeled usage block and a parameter list with an example. Every sentence is informative, though the parameter listing slightly overlaps with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description covers behavior, usage, and all three parameters. Minor gaps remain around layer-existence handling and persistence requirements, but nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the burden and largely does: it documents points (≥2 points in [x,y] or [x,y,z] form), closed (fecha a figura), and layer, plus a concrete example. Only 'layer' lacks semantics about creation behavior or naming constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Desenha uma polilinha por vértices') and adds the meaningful 2D-vs-3D branching rule based on Z uniformity, which distinguishes it from the sibling draw_line. It does not explicitly name the sibling it differs from, but the geometric distinction is clear enough for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'QUANDO USAR' block gives concrete use cases (contornos, traçados de tubulação, perímetros), so the agent knows the intended context. It stops short of naming alternatives or exclusion conditions (e.g., when to prefer draw_line instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_add_dimensionsADestructive
Cota um DXF (cotagem): linear, alinhada, raio, diâmetro e angular, com bloco de cota nativo.
QUANDO USAR: cotar vãos, distâncias entre suportes, diâmetros de furo; gera cotas reais (entidade DIMENSION). Parâmetros: path; dimensions (lista); layout; output_path. Campos comuns: layer, color, dimstyle (padrão "EZDXF"), text_height, arrow_size, decimals, lfac (fator linear: texto = distância x lfac, p/ desenho em escala), text (substitui o valor; "<>" = medida). linear{base,p1,p2,angle} aligned{p1,p2,offset} radius{center,radius,angle} diameter{center,radius,angle} angular{line1:[[x,y],[x,y]],line2:[[x,y],[x,y]],base}. Exemplo: dxf_add_dimensions(path="a.dxf", dimensions=[{"kind":"linear","p1":[0,0],"p2":[1500,0],"base":[0,-200],"layer":"COTAS"}])
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layout | No | ||
| dimensions | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is covered; the description usefully adds that it produces real DIMENSION entities and defaults (dimstyle 'EZDXF'). It does not clarify whether the source DXF is modified in place or written to output_path, nor what happens to pre-existing dimensions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then usage, parameters, kind schemas and an example in a scannable labeled layout with no filler sentences. The parameter block is dense but every line carries specific information, so it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described; for a mutating, four-parameter tool with untyped nested objects the description covers invocation well. Missing pieces are sibling differentiation from 'add_dimension' and the write-target semantics of path/output_path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description carries the full burden and largely succeeds: it lists all four parameters, documents common nested fields (layer, color, dimstyle, text_height, arrow_size, decimals, lfac, text) and gives per-kind field shapes plus a worked example. It still leaves 'layout' and the in-place-vs-output_path behavior of 'output_path' unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource (add dimensions to a DXF) and enumerates the supported kinds (linear, aligned, radius, diameter, angular) plus the fact it emits native DIMENSION entities. The only gap is differentiation from the near-identical sibling 'add_dimension', which the description never mentions or contrasts with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'QUANDO USAR' block gives concrete triggers (dimensioning spans, distances between supports, hole diameters), which is well above implied usage. However it offers no exclusions or guidance on when to prefer a sibling such as 'add_dimension' or 'draw_line'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_add_entitiesADestructive
Adiciona em lote entidades a um DXF: line, circle, arc, polyline, text, mtext, point, ellipse, hatch, insert.
QUANDO USAR: desenhar offline. Valida tudo antes de salvar: se uma entidade falhar, nada é gravado. Parâmetros: path; entities (lista de objetos com "type"); layout (omita para o modelo); output_path. Campos: line{start,end} circle{center,radius} arc{center,radius,start_angle,end_angle} polyline{points,closed} text{insert,text,height,rotation} mtext{insert,text,height} hatch{points,pattern,scale} insert{block,insert,attributes} ellipse{center,major_axis,ratio}; todos aceitam layer e color (ACI). Exemplo: dxf_add_entities(path="a.dxf", entities=[{"type":"line","start":[0,0],"end":[100,0],"layer":"EIXOS"}])
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layout | No | ||
| entities | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: atomic all-or-nothing semantics ('Valida tudo antes de salvar: se uma entidade falhar, nada é gravado') and the layout default ('omita para o modelo'), which materially affect how the agent should call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then clearly partitioned into usage, parameters, field reference, and example. Dense but every section earns its place; no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with an output schema (so return values need no explanation), the description covers purpose, atomicity, parameter roles, and per-entity structure. Minor gaps remain around path preconditions and what output_path does when set vs. omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it largely does: it documents path, entities (list of objects with a 'type' key), layout (omit for model space), output_path, plus per-entity field shapes and a concrete example. It falls short of explaining output_path behavior (in-place vs. new file) or path format requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Adiciona em lote entidades a um DXF') and enumerates all ten supported entity types, so the agent knows exactly what the tool produces. It only implicitly differentiates itself from single-entity siblings like draw_line/draw_circle via the 'em lote' (batch) framing rather than naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: desenhar offline' is a terse, somewhat vague usage cue that doesn't name an alternative or state when NOT to use the tool. The batch framing implies the right context (multiple entities vs. the single-entity draw_* siblings), but the agent must infer that routing decision itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_auditARead-only
Audita a estrutura do DXF (erros que o AutoCAD acusaria ao abrir) sem alterar o arquivo.
QUANDO USAR: antes de publicar/entregar um DXF gerado ou recebido; relata erros e itens corrigíveis. Parâmetros: path. Exemplo: dxf_audit(path="entrega.dxf")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent ('sem alterar o arquivo'). Beyond the annotations it discloses the reporting behavior (flags errors and fixable items) and the fact that the check mirrors AutoCAD's own open-time validation, which is genuinely useful context about what the audit produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then a clearly labeled usage block, then parameter+example. Four short lines, no filler; every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and it covers purpose, trigger, and invocation. It is nearly complete; the only shortfall is that the single parameter is documented more thinly than the schema's 0% coverage warrants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single 'path' parameter, and the description only labels it ('Parâmetros: path') and supplies an example (path="entrega.dxf"). The example implies a file path string, which is mildly helpful, but no constraints, format, or relative-vs-absolute guidance are given, so it only partially compensates for the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Audita a estrutura do DXF') and names the exact failure class it detects (erros que o AutoCAD acusaria ao abrir), which distinguishes it from diagnostic siblings like dxf_info or dxf_query. The non-modifying scope ('sem alterar o arquivo') further sharpens what the tool is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'QUANDO USAR' block tells the agent the trigger situation (before publishing/delivering a DXF, whether generated or received). This is the clearest form of when-to-use guidance: a concrete workflow moment, not an implied context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_createADestructive
Cria um DXF novo e vazio (com estilos de cota e tipos de linha padrão) sem abrir o AutoCAD.
QUANDO USAR: iniciar um desenho offline (esquema de suporte, folha de detalhe) para preencher com dxf_add_entities. Parâmetros: path (.dxf); units (mm, cm, m, in, ft); version (R2000..R2018); overwrite (padrão false). Exemplo: dxf_create(path="suporte-S12.dxf", units="mm")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| units | No | mm | |
| version | No | R2018 | |
| overwrite | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile (readOnlyHint=false, destructiveHint=true), so the bar is lower. The description still adds real context beyond annotations: it creates an empty file with default dimension/linetype styles, works offline, and notes overwrite defaults to false, which clarifies the write/destructive nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by labeled WHEN-TO-USE, Parameters, and Example sections. Every line earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation. Purpose, trigger, full parameter semantics, and a usage example together give an agent everything needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and it does: it lists all four params and supplies the enum-like values (mm, cm, m, in, ft), the version range (R2000..R2018), the .dxf extension for path, and the overwrite default. This adds substantial meaning the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Cria um DXF novo e vazio') with a distinguishing scope qualifier ('sem abrir o AutoCAD') and notes the default styles included. It slots itself into the flow by naming dxf_add_entities as the fill step, so an agent can separate it from other creation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' block gives an explicit trigger (start an offline drawing such as a support schematic or detail sheet) and names the follow-up tool dxf_add_entities. Clear context, though it offers no when-not-to-use or contrasting alternative for online/AutoCAD scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_create_layerADestructive
Cria (ou confirma) uma camada em um DXF.
QUANDO USAR: preparar camadas (SUPORTES, COTAS, EIXOS) antes de desenhar. Parâmetros: path; name; color (ACI 1-255); linetype (ex. "DASHED"); output_path (salva cópia, preserva o original). Exemplo: dxf_create_layer(path="a.dxf", name="COTAS", color=3)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes | ||
| color | No | ||
| linetype | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the safety profile (readOnlyHint=false, destructiveHint=true), and the description adds real context beyond them: '(ou confirma)' signals idempotent ensure-semantics, and output_path 'salva cópia, preserva o original' discloses that a copy can be written preserving the source (implying in-place mutation otherwise). The destructive nature itself is left to annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with labelled sections (purpose, QUANDO USAR, Parâmetros, Exemplo) and front-loaded purpose. Every line earns its place; the example is genuinely useful. Minor redundancy in restating the tool name in the example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not be explained, and annotations cover the safety profile. The description supplies purpose, usage timing, param meanings, and a call example, making it usable as-is. It could yet clarify required-vs-optional params and destructive in-place behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it names all five parameters and enriches them (color = ACI 1-255, linetype example 'DASHED', output_path semantics). It does not distinguish required (path, name) from optional/defaulted params, keeping it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Cria (ou confirma) uma camada em um DXF.' An agent can immediately tell this creates/ensures a layer. However, it does not differentiate from the sibling create_layer, so sibling ambiguity remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' line gives clear context: prepare layers (SUPORTES, COTAS, EIXOS) before drawing. This tells the agent the correct phase to invoke it. No explicit when-not-to-use or named alternative (e.g., create_layer) is given, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_create_layoutADestructive
Cria um layout (folha) de papel num DXF, com viewports que enquadram o modelo em escala.
QUANDO USAR: montar a folha de impressão antes de dxf_export (PDF). Parâmetros: path; name; paper (A4, A3, A2, A1, A0); landscape; margins_mm; output_path; viewports [{center:[x,y] no papel, width, height em mm, view_center:[x,y] no modelo, scale: papel/modelo (0.01 = 1:100)}]. Exemplo: dxf_create_layout(path="a.dxf", name="Folha1", paper="A3", viewports=[{"center":[210,148],"width":380,"height":260,"view_center":[750,0],"scale":0.1}])
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes | ||
| paper | No | A3 | |
| landscape | No | ||
| viewports | No | ||
| margins_mm | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the agent knows this mutates data. The description adds useful scope detail (viewports, paper, scale) but never explains why the operation is destructive, nor whether it modifies `path` in place versus writing to `output_path`, which matters for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a clearly labeled QUANDO USAR line, a parameter line, and a concrete example. It is dense but every section earns its place; the long parameter line is slightly dense but justified at 0% schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an output-schema-bearing tool, return values need no explanation, and the description covers purpose, usage ordering, all parameters, and an example. The only real gap is the in-place vs output_path write behavior, which is not disambiguated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden and does so: it enumerates all seven parameters, gives the allowed paper values (A4–A0), and defines the nested viewport object fields (center, width, height, view_center, scale) including the non-obvious scale convention (0.01 = 1:100). The worked example reinforces the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Cria um layout (folha) de papel num DXF") plus the scope of what the layout contains (viewports framing the model at scale). It is clearly distinguishable from siblings like dxf_create or dxf_export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR: montar a folha de impressão antes de dxf_export (PDF)" gives explicit ordering guidance and names the downstream sibling, which is exactly what an agent needs for sequencing. No when-not condition or exclusion is offered, 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.
dxf_define_blockADestructive
Define um bloco (com atributos opcionais) em um DXF para depois inserir com dxf_add_entities type=insert.
QUANDO USAR: criar o símbolo de suporte (ex. SUP-GUIA) com TAG/TIPO/LINHA offline. Parâmetros: path; name; entities (mesmo formato de dxf_add_entities, sem hatch/insert aninhado recomendado); attributes (lista de tags, ex. ["TAG","TIPO","LINHA"]); output_path. Exemplo: dxf_define_block(path="a.dxf", name="SUP-GUIA", entities=[{"type":"circle","center":[0,0],"radius":50}], attributes=["TAG","TIPO"])
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| path | Yes | ||
| entities | Yes | ||
| attributes | No | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, so mutation is already known, but the description never says what gets destroyed or overwritten (e.g., an existing block of the same name) or how path vs output_path interact. It does add one useful behavioral constraint ('sem hatch/insert aninhado recomendado'), which slightly exceeds the annotation-only baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then usage, params, and an example in clear labeled blocks. Slightly repetitive in re-listing parameters, but every section adds value and the example concretizes the entities/attributes format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description covers usage, params, and a worked example for a fairly complex nested-entities tool. Remaining gaps are name-collision/overwrite behavior and the path vs output_path contract, which are not addressed despite the destructive hint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, and it does list all five params with meaning: entities 'mesmo formato de dxf_add_entities', attributes as a list of tags with an example, plus path/name/output_path. output_path is named but its difference from path is never explained, leaving one param under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Define um bloco... em um DXF') and clarifies the two-step flow by naming the follow-up insert operation. It does not, however, explicitly distinguish itself from the insert_block/list_block_definitions siblings beyond pointing at dxf_add_entities type=insert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' section gives explicit context with a concrete example (creating the SUP-GUIA support symbol with TAG/TIPO/LINHA offline). It provides clear when-to-use context but no exclusions or named alternatives for edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_delete_entitiesADestructive
Apaga entidades de um DXF (exige confirm=true; dry_run mostra a prévia sem gravar).
QUANDO USAR: remover entidades erradas. Prefira output_path para manter o original. Parâmetros: path; handles; confirm; dry_run; output_path. Exemplo: dxf_delete_entities(path="a.dxf", handles=["2A3"], confirm=True, output_path="a_limpo.dxf")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| confirm | No | ||
| dry_run | No | ||
| handles | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a write/destructive operation. The description adds real value beyond them: the hard 'confirm=true' requirement, that 'dry_run mostra a prévia sem gravar', and the ability to preserve the original via output_path. It doesn't state what happens if confirm is omitted (error vs no-op), so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and constraint, followed by when-to-use, a parameter list, and a concrete example. It is appropriately sized, though the bare parameter enumeration is somewhat redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with a confirm gate, the description covers the safety mechanics and offers a working example, and the output schema can carry return-value detail. It is nearly complete, missing only handles-format detail and the failure mode when confirm is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, and it partially compensates by explaining confirm (mandatory), dry_run (preview only), and output_path (preserve original). But 'path' and especially 'handles' receive no explanation of format or meaning, and the 'Parâmetros:' line merely restates the names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Apaga entidades de um DXF'), so an agent immediately knows this deletes entities. However, it never differentiates from the sibling 'delete_entities', which handles a very similar operation, leaving the agent to guess which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: remover entidades erradas' gives a clear usage context, and the note 'Prefira output_path para manter o original' prescribes a safer path. It stops short of naming exclusions or contrasting with the near-identical 'delete_entities' sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_exportADestructive
Renderiza o modelo ou um layout do DXF para PDF, PNG ou SVG, sem AutoCAD (motor ezdxf + matplotlib).
QUANDO USAR: gerar PDF de entrega ou imagem de pré-visualização; o formato vem da extensão de output.
Parâmetros: path; output (.pdf, .png ou .svg); layout (omita para o modelo); dpi (30-600); background ("white" = traço preto sobre branco, "default").
Exemplo: dxf_export(path="a.dxf", output="a.pdf", layout="Folha1")
Observação: é uma renderização aproximada (não idêntica ao plotter do AutoCAD).
| Name | Required | Description | Default |
|---|---|---|---|
| dpi | No | ||
| path | Yes | ||
| layout | No | ||
| output | Yes | ||
| background | No | white |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, so the safety profile is partly covered, and the description adds genuinely useful behavior beyond that: the rendering is approximate and not identical to the AutoCAD plotter, and no AutoCAD installation is needed. It does not disclose that the target output file may be overwritten, which is the one mutation detail the destructiveHint warrants.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose followed by clearly labeled QUANDO USAR, Parâmetros, Exemplo and Observação blocks; every section is short and earns its place. The only minor redundancy is that output's allowed extensions appear both in the usage sentence and in the parameter list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool the description covers the non-obvious arguments, gives a worked example, and flags the fidelity limitation; an output schema exists so return values need no explanation. The gaps are the ambiguity of `path` (disk file vs. active document) and the absence of any statement about overwriting an existing output file.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it largely does: it explains output extensions (.pdf/.png/.svg), layout semantics (omit for model), dpi bounds (30-600), and the meaning of background='white' vs 'default'. Only `path` is left undefined (filesystem path vs. a document already open in the session), which is why this is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (render DXF model or layout to PDF/PNG/SVG) and even names the engine (ezdxf + matplotlib) and the fact that AutoCAD is not required. It is clear what the tool does, but it never differentiates itself from the sibling plot_to_pdf, which appears to overlap on the PDF output case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: gerar PDF de entrega ou imagem de pré-visualização' gives an explicit usage scenario and ties format selection to the `output` extension. There are no exclusions or named alternatives, and the obvious sibling plot_to_pdf is not addressed, so the agent must still infer which of the two export-style tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_get_entityARead-only
Devolve os detalhes completos de uma entidade do DXF pelo handle.
QUANDO USAR: depois de dxf_query, para ver geometria/atributos de uma entidade específica. Parâmetros: path; handle (hexadecimal, ex. "2A3"). Exemplo: dxf_get_entity(path="a.dxf", handle="2A3")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| handle | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds the handle format convention but says nothing about behavior when the handle is missing/unknown, permissions, or performance on large drawings. With annotations carrying the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by a labeled usage block, parameter note and runnable example. No filler sentences; every line either routes the agent or pins a parameter format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and both required parameters plus their usage ordering are covered. The only gap is failure modes for invalid handles, which is minor for a read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: 'path' is named and 'handle' is qualified as hexadecimal with a concrete example ('2A3') plus a full call example. It stops short of 5 only because path's format/expected file location is not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Devolve os detalhes completos de uma entidade do DXF') and the lookup key ('pelo handle'). This distinguishes it from broader siblings like dxf_query, though it doesn't explicitly contrast with get_entity or dxf_read_attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' block gives explicit ordering guidance ('depois de dxf_query') and the intent ('ver geometria/atributos de uma entidade específica'), naming the sibling that precedes it. It lacks when-not conditions or alternatives among the create/query/modify siblings, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_infoARead-only
Resume um DXF sem abrir o AutoCAD: versão, unidades, camadas, layouts, blocos, estilos de cota, extensão.
QUANDO USAR: primeiro passo antes de qualquer outra ferramenta dxf_*; confirma unidades e nomes de camada/layout. Parâmetros: path = caminho do .dxf dentro das pastas permitidas. Exemplo: dxf_info(path="C:/Users/eu/autocad-mcp-workspace/linha-L12.dxf")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context beyond that: it operates without opening AutoCAD and reports a specific set of structural facts, though it doesn't discuss limits (e.g., very large files).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers WHEN-TO-USE, parameters, and a concrete example in labeled blocks. Every line earns its place and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be detailed, and annotations cover the safety profile. Combined with the stated purpose, usage rule, parameter constraint, and runnable example, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter meaning, and it does: path is the .dxf path constrained to 'pastas permitidas'. The worked example reinforces the expected format. It stops short of specifying path syntax or behavior on invalid/out-of-scope paths.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Resume um DXF') and enumerates exactly what it reports (version, units, layers, layouts, blocks, dimension styles, extension), so an agent knows precisely what it returns. It also positions itself against siblings by being the entry point before any other dxf_* tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' block gives a clear routing rule: use it first, before any other dxf_* tool, to confirm units and layer/layout names. It names the relevant alternative set implicitly but offers no explicit when-not-to-use case, keeping it short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_insert_support_symbolADestructive
Insere um pictograma de suporte de tubulação (GUIA, ANCORA, APOIO, MOLA) com atributos TAG/TIPO/LINHA.
QUANDO USAR: montar offline o desenho/cadastro de suportes; o bloco SUP- é criado se ainda não existir e depois pode ser lido com dxf_read_attributes. Os pictogramas são simplificados, não seguem uma norma. Parâmetros: path; kind (GUIA, ANCORA, APOIO, MOLA); insert [x, y]; tag; line (nº da linha); size (largura do símbolo, unidades do desenho; padrão 100); layer; output_path. Exemplo: dxf_insert_support_symbol(path="a.dxf", kind="GUIA", insert=[1200, 0], tag="S-014", line="L-12", layer="SUPORTES")
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| kind | Yes | ||
| line | No | ||
| path | Yes | ||
| size | No | ||
| layer | No | ||
| insert | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the write nature is covered. The description adds useful behavior (block auto-creation if absent) and a caveat that pictograms are simplified and non-normative, but says nothing about what a destructive write overwrites or how output_path differs from in-place editing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then a usage block, parameter list, and a concrete example. The parameter list would be redundant against a described schema, but with 0% coverage it earns its place. Slightly long but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. For an eight-parameter destructive mutation tool, the description covers purpose, usage, all parameter names, and an example. The main gap is the semantics of output_path versus in-place modification, which matters for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the load and does it well: it enumerates all eight parameters, supplies the kind values (GUIA, ANCORA, APOIO, MOLA) that the schema leaves as a free string, and explains size units/default and line meaning. Path, tag, layer and output_path are named but not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Insere') and resource ('pictograma de suporte de tubulação'), enumerates the four kinds, and names the follow-up tool (dxf_read_attributes), so an agent can place it relative to siblings. No ambiguity about what is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explicit 'QUANDO USAR' clause states the scenario (offline assembly of the support drawing/register) and notes the block SUP-<TIPO> is auto-created and later readable with dxf_read_attributes. Clear context, but no when-not or alternative-tool exclusions beyond the read counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_modify_entitiesADestructive
Altera entidades de um DXF: camada, cor, mover, girar, escalar e atributos de bloco.
QUANDO USAR: ajustes em lote de um DXF (mudar camada de suportes, deslocar um trecho, corrigir TAG). Parâmetros: path; handles; layer; color; translate [dx,dy,dz]; rotate_deg (+ rotate_center); scale (>0); attributes {"TAG":"S-01"} (só blocos); output_path (recomendado: salva cópia). Exemplo: dxf_modify_entities(path="a.dxf", handles=["2A3"], attributes={"TIPO":"GUIA"}, output_path="a_rev1.dxf")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| color | No | ||
| layer | No | ||
| scale | No | ||
| handles | Yes | ||
| translate | No | ||
| attributes | No | ||
| rotate_deg | No | ||
| output_path | No | ||
| rotate_center | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds value beyond that by noting output_path is 'recommended: salva cópia', which implies edits otherwise happen in place on the source file, and by scoping attributes to blocks only. It still doesn't state reversibility or undo behavior, so a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded (purpose, then when-to-use, then a parameter digest, then a worked example) and each block earns its place. The example is genuinely useful for invocation. Minor redundancy between the parameter list and the example keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter destructive mutation tool with an output schema and annotations available, the description covers purpose, usage context, per-parameter semantics, and an example. What's missing is an explicit statement of in-place/destructive behavior and sibling differentiation, but the essentials an agent needs to call it are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 10 parameters, the description carries the burden and does so well: it gives formats/constraints for translate [dx,dy,dz], rotate_deg (+ rotate_center), scale (>0), attributes {"TAG":"S-01"} (blocks only), and flags output_path as recommended. Only color and layer semantics remain vague, so it is strong but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Altera entidades de um DXF') plus the resource and enumerates the modification kinds (layer, color, move, rotate, scale, block attributes), so an agent immediately grasps what it does. It stops short of explicitly distinguishing itself from similarly-scoped siblings like move_entity or update_block_attributes, so it does not reach a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' line supplies a concrete context (batch adjustments: changing support layers, shifting a segment, fixing a TAG), which is implied-to-clear usage guidance. However, it names no alternatives and does not tell the agent when to prefer this over single-purpose siblings such as move_entity or update_block_attributes, leaving the batch-vs-single distinction to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_queryARead-only
Lista entidades de um DXF com filtros e paginação (curingas * e ? em layer/block).
QUANDO USAR: inspecionar ou contar entidades de um DXF sem AutoCAD; pagine com offset/limit (máx. 500). Parâmetros: path; type (LINE, CIRCLE, ARC, LWPOLYLINE, TEXT, MTEXT, INSERT, DIMENSION...); layer; block; layout (omita para o modelo); limit; offset. Exemplo: dxf_query(path="a.dxf", type="INSERT", block="SUP-*", layer="SUPORTES", limit=100)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| type | No | ||
| block | No | ||
| layer | No | ||
| limit | No | ||
| layout | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower. The description adds real behavioral detail beyond that: pagination via offset/limit with a max of 500, wildcard support in layer/block, and that omitting layout targets the model space.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then clearly labeled QUANDO USAR, Parâmetros and Exemplo sections. The worked example collapses several parameter semantics into one line, so every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. With parameters, filters, pagination and safety all addressed, the definition is largely complete; only the sibling disambiguation from query_entities is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it largely succeeds: it enumerates all seven parameters with meaning, gives concrete type values (LINE, CIRCLE, INSERT...), notes wildcards on layer/block, and explains layout omission. The limit default (50) is not stated, only the max.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lista) and resource (entidades de um DXF) plus scope (filtros e paginação, curingas). Clear what it does, but it does not distinguish itself from the similar sibling query_entities, so an agent must infer the split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'QUANDO USAR' section tells the agent the intended context (inspect or count DXF entities without AutoCAD) and the pagination approach. It gives positive context but names no alternatives or exclusions, so the overlap with query_entities/dxf_sql_query is unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_read_attributesARead-only
Lê os atributos de blocos (ex.: suportes TAG/TIPO/LINHA) direto do DXF, sem AutoCAD.
QUANDO USAR: extrair o cadastro de suportes de um DXF exportado, ou preparar planilha/auditoria offline. Parâmetros: path; block_filter (ex. "SUP-"); layer_filter. Recusa mais de 2000 blocos (restrinja o filtro). Exemplo: dxf_read_attributes(path="linha.dxf", block_filter="SUP-")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| block_filter | No | ||
| layer_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnlyHint=true, destructiveHint=false), and the description adds genuinely new behavior: no AutoCAD dependency required and a hard refusal above 2000 blocks with the mitigation ('restrinja o filtro'). That limit disclosure is exactly the kind of extra context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then grouped WHEN-TO-USE, parameters, and a runnable example — scannable structure with little waste. The parameter line is slightly terse relative to the example, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be explained, and the description covers the guard-rail (2000-block cap) plus the usage scenario. The only shortfall is thin coverage of layer_filter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the burden. It names all three parameters and gives a wildcard example for block_filter ('SUP-*'), but layer_filter gets no explanation and accepted filter syntax/value forms are only implied by one example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Lê os atributos de blocos ... direto do DXF') and adds the useful differentiator 'sem AutoCAD'. It does not, however, distinguish itself from the sibling read_block_attributes (or dxf_get_entity), which a scanning agent would want resolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'QUANDO USAR' block gives concrete scenarios (extract the support registry from an exported DXF, prepare offline spreadsheet/audit). It provides clear context but names no alternative tool, so the choice against read_block_attributes is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dxf_sql_queryARead-only
Consulta o DXF com SQL SELECT sobre um índice em memória (tabelas entities e attributes).
QUANDO USAR: perguntas agregadas (contagens por camada, blocos sem TAG, comprimento total por camada). Parâmetros: path; sql (somente SELECT; colunas entities: handle,type,layer,color,block,x,y,z,text,length,radius; attributes: handle,block,tag,value); limit (máx. 1000). Exemplo: dxf_sql_query(path="a.dxf", sql="SELECT layer, COUNT(*) n, SUM(length) L FROM entities GROUP BY layer")
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | ||
| path | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful constraints: SQL is SELECT-only and limit is capped at 1000, plus it is an in-memory index over entities/attributes. It does not cover error behavior or auth, but adds meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then uses clear sections for usage, parameters, and an example. Every sentence earns its place, and the example directly illustrates a valid aggregated query. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. The description covers when to use it, all parameters, allowed SQL columns, and a concrete example. Minor gaps like default limit behavior or path validation are not critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It lists all three parameters and explains the sql parameter's allowed columns for entities and attributes, plus the limit maximum. Path is not elaborated, but it is self-evident; this compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Consulta o DXF com SQL SELECT sobre um índice em memória (tabelas entities e attributes)'. This distinguishes it from generic siblings like dxf_query or query_entities by specifying SQL SELECT and the exact tables. An agent can tell what the tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes an explicit 'QUANDO USAR' section for aggregated questions (counts by layer, blocks without TAG, total length by layer) with examples. It does not name alternatives or when not to use it, but the positive context is clear enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_blocks_to_excelADestructive
Exporta blocos para .xlsx: HANDLE, BLOCO, CAMADA, X, Y, Z, ROTACAO, ESCALA_X/Y/Z + uma coluna por TAG.
QUANDO USAR: gerar a lista/tabela de suportes do desenho, ou obter uma planilha-modelo para depois editar e reimportar (o arquivo gerado é aceito por import_blocks_from_excel e sync_attributes_from_excel). Só lê o desenho. Se o arquivo já existir, sobrescrever exige confirm=true (a planilha tem aba INFO com a unidade). Parâmetros: block_name (curinga * e ?), path (.xlsx, caminho na máquina do usuário), layer (opcional), sheet_name, confirm. Coordenadas na unidade do desenho. Exemplo: export_blocks_to_excel("SUP-*", "C:\proj\suportes.xlsx", layer="SUPORTES").
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layer | No | ||
| confirm | No | ||
| block_name | Yes | ||
| sheet_name | No | Blocos |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true; the description adds that it only reads the drawing, that overwriting an existing file requires confirm=true, and that the workbook contains an INFO sheet carrying the drawing unit. The one residual gap is that it does not say what happens to the confirm=false default beyond the overwrite case, but the destructive surface is otherwise well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the output contract, then a labelled WHEN-TO-USE block, a parameter list, and one concrete example call. Every section earns its place, though the capitalized section header and inline param enumeration make it slightly denser than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained; the description instead covers the column contract, the file-write/overwrite semantics, unit context, and a worked example. For a 5-parameter export tool, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and largely does so: block_name accepts wildcards * and ?, path must be .xlsx on the user's machine, layer is optional, confirm governs overwrite, and coordinates are in drawing units. sheet_name is only named without explaining its effect, which keeps this short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Exporta blocos para .xlsx') and enumerates the exact columns produced (HANDLE, BLOCO, CAMADA, X, Y, Z, ROTACAO, ESCALA_X/Y/Z + one column per TAG). It also distinguishes itself from the sibling round-trip tools by naming import_blocks_from_excel and sync_attributes_from_excel as consumers of the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'QUANDO USAR' block gives explicit triggers: produce the support list/table of the drawing, or obtain a template spreadsheet to edit and reimport. It names the alternative tools it pairs with, so the agent knows why it would pick this over a generic export such as dxf_export.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entityARead-only
Propriedades completas de UMA entidade pelo handle (geometria, cor, tipo de linha, atributos de bloco).
QUANDO USAR: depois de query_entities/read_block_attributes, para inspecionar um item específico. Parâmetros: handle (string hexadecimal, ex. "2F1A"). Exemplo: get_entity("2F1A").
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the set of returned properties, which is largely redundant given an output schema exists, and says nothing about failure behavior for an unknown handle. Adequate but thin against an already-covered safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the purpose, then a labeled when-to-use block, then parameter format and example. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only getter with an output schema and safety annotations, this is nearly complete: purpose, sequencing, and parameter format are all present. Only error/not-found behavior is unaddressed, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the burden, and it does: it specifies the handle is a hexadecimal string and gives a concrete example ("2F1A"). That is meaningful added semantics beyond the bare 'handle' property title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: full properties of ONE entity retrieved by handle, and enumerates the returned aspects (geometry, color, linetype, block attributes). The emphasis on 'UMA entidade' cleanly separates it from the plural query_entities sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' section explicitly names the alternative tools (query_entities/read_block_attributes) and the condition under which this tool is chosen: inspecting one specific item after a broader query. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_blocks_from_excelADestructive
Insere ou atualiza blocos, linha a linha, a partir de uma planilha .xlsx. Um único Ctrl+Z desfaz tudo.
QUANDO USAR: carregar a tabela de suportes (TAG, TIPO, X, Y, Z, LINHA...) no desenho. FLUXO SEGURO: dry_run=true primeiro (relata inserir/atualizar/erro por linha sem tocar no desenho), depois execute. Inserções não pedem confirmação; se alguma linha ATUALIZA um bloco existente, exige confirm=true. Parâmetros: path/sheet/header_row; mapping ({coluna_excel: alvo}, alvo ∈ x,y,z,rotation(graus),scale, scale_x/y/z,layer,block,handle,ignore ou "attr:TAG"; sem mapping, detecta X/Y/Z/BLOCO/CAMADA/ROTACAO/ ESCALA/HANDLE por nome e trata as demais colunas como atributos de mesmo nome); block_name (bloco padrão das linhas sem coluna de bloco); key_tag (atributo-chave, ex. "TAG": linha cujo valor já existe no desenho ATUALIZA o bloco em vez de inserir duplicado); layer (camada padrão); update_position (também move blocos existentes; padrão false); create_missing_layer. Célula em branco = ignorar (não apaga o atributo). Erros por linha não abortam o lote. Exemplo: import_blocks_from_excel("C:\proj\suportes.xlsx", block_name="SUP-GUIDE", key_tag="TAG", layer="SUPORTES", dry_run=true).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layer | No | ||
| sheet | No | ||
| confirm | No | ||
| dry_run | No | ||
| key_tag | No | ||
| mapping | No | ||
| block_name | No | ||
| header_row | No | ||
| update_position | No | ||
| create_missing_layer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnlyHint=false, and the description adds substantial behavior beyond that: full-batch undoability via one Ctrl+Z, dry-run reporting of insert/update/error per row without touching the drawing, the confirm requirement for updates, per-row errors not aborting the batch, and blank cells being ignored rather than clearing existing attributes. That is rich, non-redundant behavioral context for a destructive write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and then organized by the QUANDO USAR heading, the safe-flow sequence, and a parameter rundown; the inline example call is useful. It is a dense wall of text with no line breaks or sub-headings and some parameter prose could be trimmed, so it is efficient but not maximally scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format detail is unnecessary, and annotations already cover the safety profile. The description closes the remaining gaps that matter for a destructive 11-parameter importer — confirmation gate, dry-run semantics, per-row failure handling, blank-cell behavior — leaving nothing material an agent must infer before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 11 parameters, the description carries the full semantic load and does so: it documents path/sheet/header_row, enumerates the legal mapping targets (x,y,z,rotation(graus),scale,scale_x/y/z,layer,block,handle,ignore,"attr:TAG") plus auto-detection fallbacks, and explains block_name, key_tag (the update-vs-duplicate rule), layer, update_position, create_missing_layer, dry_run and confirm. This is meaning the schema alone does not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a precise verb+resource+scope: inserts or updates blocks row-by-row from an .xlsx spreadsheet, and adds the distinguishing trait that a single Ctrl+Z undoes the whole batch. This separates it cleanly from siblings like export_blocks_to_excel, sync_attributes_from_excel, and insert_block without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'QUANDO USAR' section names the concrete use case (loading a support/TAG table into the drawing) and prescribes a safe flow: dry_run=true first, then execute. It also states the conditional gate — inserts need no confirmation, but any row that UPDATES an existing block requires confirm=true — which is exactly the when/when-not guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_blockADestructive
Insere UMA referência de bloco (definição já existente) e preenche atributos por TAG.
QUANDO USAR: para colocar um suporte/símbolo em coordenadas conhecidas. Para muitos blocos a partir de planilha, use import_blocks_from_excel. Desfazível com um Ctrl+Z. Parâmetros: name (bloco existente; ver list_block_definitions), point ([x, y] ou [x, y, z] na unidade do desenho), scale (número ou [sx, sy, sz]), rotation (GRAUS, anti-horário), layer (existente, ou crie com create_missing_layer=true), attributes ({TAG: valor}; tags não existentes geram aviso). Exemplo: insert_block("SUP-GUIDE", [1250.5, 830, 4200], rotation=90, layer="SUPORTES", attributes={"TAG": "PS-101", "LINHA": "10-P-1001"}).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| layer | No | ||
| point | Yes | ||
| scale | No | ||
| rotation | No | ||
| attributes | No | ||
| create_missing_layer | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is covered. The description usefully adds that a missing attribute TAG produces a warning and that the action is reversible via Ctrl+Z, plus that the block must already be defined. It does not describe return content, but an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then sections for when-to-use and parameters; every line is useful. The example is somewhat lengthy but demonstrative, so it largely earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available, return values need not be explained, and the description fully covers purpose, placement, required vs optional parameters with formats, unit conventions, error/warning behavior, and the alternative tool. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it does: name (existing block, see list_block_definitions), point (2D or 3D in drawing units), scale (scalar or triple), rotation (degrees, counterclockwise), layer (must exist unless create_missing_layer=true), and attributes ({TAG: value}) with warning behavior. A concrete call example seals the mapping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource ('Insere UMA referência de bloco') and narrows scope with 'UMA' (single reference from an existing definition). This clearly distinguishes it from bulk siblings like import_blocks_from_excel and from definition-creation tools like dxf_define_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' section gives the exact condition ('colocar um suporte/símbolo em coordenadas conhecidas') and names the alternative plus its trigger ('Para muitos blocos a partir de planilha, use import_blocks_from_excel'). It also flags that the operation is undoable with Ctrl+Z.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_block_definitionsARead-only
Lista as definições de bloco do desenho e as TAGS de atributo de cada uma.
QUANDO USAR: antes de insert_block (para saber nomes e tags válidos) ou de montar planilhas. Parâmetros: name_filter (curinga * e ?, ex. "SUP-"), include_xrefs, count_instances (conta as referências no espaço modelo; mais lento), limit/offset (paginação; as tags só são lidas para a página pedida). Exemplo: list_block_definitions(name_filter="SUP-", count_instances=true).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| name_filter | No | ||
| include_xrefs | No | ||
| count_instances | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds non-obvious behavior: count_instances is slower because it scans model-space references, and attribute tags are only read for the requested page. That pagination/perf disclosure is real value beyond the annotations, though it doesn't address permission or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then a labeled QUANDO USAR block, then a compact parameter list, then a callable example. Every sentence earns its place and the scoping critical for correct invocation (pagination affecting tag reads) is surfaced early enough to matter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with an output schema already covering return shape, the description supplies the usage precondition, the parameter semantics, perf caveats, and an example. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description carries the burden and mostly succeeds: it defines name_filter syntax (* and ? wildcards with an example), explains count_instances and the limit/offset pagination interplay. include_xrefs is merely named with no meaning attached, so one of five parameters remains opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the exact payload returned: the drawing's block definitions and the attribute TAGS of each. This distinguishes it from read_block_attributes (which acts on instances) and from dxf_define_block (which creates definitions). An agent knows what it gets without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The QUANDO USAR section names a concrete precondition (before insert_block, to learn valid names/tags) and a companion workflow (building spreadsheets). It routes the agent relative to a sibling but offers no explicit when-not-to-use or exclusion, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsARead-only
Lista os desenhos abertos no AutoCAD (nome, caminho, salvo?, ativo?).
QUANDO USAR: antes de set_active_document, ou quando há mais de um desenho aberto e é preciso saber em qual as ferramentas vão atuar (sempre no desenho ATIVO). Exemplo: list_documents() → data.documents[0].name == "SUPORTES-01.dwg".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds behaviorally relevant context beyond that: the returned fields including the saved? and active? flags, and the crucial rule that all other tools operate on the ACTIVE drawing. It does not cover pagination or ordering, but for a read-only list this is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then a dedicated usage block, then a concrete example. Every sentence earns its place; the parenthetical field list and example are compact and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, yet the description still confirms the key fields and gives a worked example. For a zero-parameter, read-only list tool with annotations and an output schema, nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly presents it as a no-argument call (list_documents()) rather than implying hidden inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Lista os desenhos abertos no AutoCAD' and enumerates the returned fields (nome, caminho, salvo?, ativo?). It is clearly distinguishable from sibling list_* tools (list_layers, list_block_definitions) by naming AutoCAD open drawings as the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'QUANDO USAR' section names the alternative tool (set_active_document) and the exact condition that selects this one: multiple open drawings where the acting target is unknown. It also states the operating assumption that all tools act on the ACTIVE drawing, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layersARead-only
Lista as camadas do desenho: nome, cor (ACI), tipo de linha, ligada, congelada, bloqueada.
QUANDO USAR: para conhecer a estrutura de camadas antes de desenhar, inserir blocos ou checar padrão. Parâmetros: name_filter (curinga * e ?, ex. "PIPE-"; opcional), limit (0 = padrão do servidor), offset (paginação). Exemplo: list_layers(name_filter="SUP", limit=20).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| name_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true / destructiveHint=false, so safety is covered. The description adds real behavioral detail beyond that: wildcard matching semantics, that limit=0 means the server default, and that offset drives pagination. It does not say which document or layout the layers are read from, despite siblings like set_active_document and list_documents implying multiple documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tightly structured with a returned-fields line, a QUANDO USAR line, a parameters line, and an example — the most decision-relevant content (what it lists) comes first. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and its parameter documentation is complete. The one gap is scope: it never states whether layers come from the active document only or across all documents, which matters given list_documents and set_active_document in the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so well: it explains name_filter's wildcard syntax (* and ?) with a concrete example ("PIPE-*"), marks it optional, defines limit's 0 = server default, and identifies offset as pagination. It even supplies a full call example, list_layers(name_filter="SUP*", limit=20).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lista as camadas do desenho") and enumerates the attributes returned (nome, cor/ACI, tipo de linha, ligada, congelada, bloqueada), which clearly separates it from layer-mutating siblings like create_layer or dxf_create_layer. It never explicitly names a sibling or a boundary case, so it falls short of the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR" gives a concrete triggering context: inspecting layer structure before drawing, inserting blocks, or checking standards. It gives no when-not condition and does not name alternatives (e.g. check_layer_standard, query_entities), so routing among similar tools is still partly left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_entityADestructive
Move uma entidade por um vetor de deslocamento. Desfazível com Ctrl+Z.
QUANDO USAR: reposicionar um item já localizado (query_entities). Parâmetros: handle, displacement ([dx, dy] ou [dx, dy, dz], unidade do desenho). Exemplo: move_entity("2F1A", [100, 0, 0]).
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | ||
| displacement | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation risk is covered structurally. The description adds genuinely new behavioral context: the operation is reversible via Ctrl+Z, and displacement units follow the drawing unit. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operation, then use context, then parameters and a concrete example — all in four short lines with no padding. The "Parâmetros:" line partially echoes the schema and the example, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations plus the undo note cover the mutation profile. What is missing is side-effect scope — whether dependent geometry (dimensions, block references) is affected and which document/layer context applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It explains the displacement format ([dx, dy] or [dx, dy, dz]) and its unit, and the example pins handle as a string identifier ("2F1A"). "Handle" itself is only implicitly defined as coming from query_entities, leaving a small gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — moving an entity by a displacement vector — and even names the unit semantics. It is clearly distinguishable from copy_entity at the verb level, though it never explicitly contrasts itself with other mutation siblings like dxf_modify_entities or copy_entity, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR: reposicionar um item já localizado (query_entities)" gives a clear use context and points at the sibling used to obtain the handle prerequisite. It does not state when NOT to use it or name a direct alternative for repositioning, so no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plot_to_pdfADestructive
Plota o desenho aberto para PDF usando a impressora "DWG To PDF.pc3" do próprio AutoCAD (plotter real).
QUANDO USAR: gerar o PDF de entrega com a mesma fidelidade do comando PLOT; para PDF sem AutoCAD use dxf_export. Parâmetros: path (.pdf, dentro das pastas permitidas); layout (nome; omita para o layout ativo; "Model" = modelo); plot_extents (true = enquadra a extensão; false = usa a configuração salva do layout); overwrite (padrão false). Exemplo: plot_to_pdf(path="C:/Users/eu/autocad-mcp-workspace/S12.pdf", layout="Folha1", overwrite=true) Efeitos: desliga BACKGROUNDPLOT durante a plotagem (restaura depois) e pode mudar a configuração de plotagem do layout.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| layout | No | ||
| overwrite | No | ||
| plot_extents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true; the description adds real side-effect context beyond them (BACKGROUNDPLOT disabled during plot and restored afterward, layout plot configuration may change). It stops short of explaining how overwrite destroys an existing file, which is the main destructive risk the annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then structured WHEN-TO-USE, parameters, example and effects blocks. Every section earns its place; it is slightly long but the example and effects lines are genuinely useful for a plotting tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation tool with annotations and an output schema present, the description covers purpose, routing, all parameters and side effects. Only the destructive overwrite consequence is left implicit, which is a minor gap given the annotation and output schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so: path is a .pdf inside allowed folders, layout accepts a name or "Model" and is omitted for the active layout, plot_extents distinguishes fit-to-extents from saved config, overwrite defaults false. It adds the meaning the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: plots the open drawing to PDF using AutoCAD's real "DWG To PDF.pc3" plotter. It also explicitly separates itself from the sibling dxf_export ("para PDF sem AutoCAD use dxf_export"), so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "QUANDO USAR" block gives explicit when-to-use guidance (delivery PDF with PLOT fidelity) and names the alternative tool for the opposite case (PDF without AutoCAD → dxf_export). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_data_getARead-only
Lê dados de projeto gravados no DWG por project_data_set (uma chave ou todas).
QUANDO USAR: recuperar metadados do projeto guardados no desenho. Parâmetros: key (omita para listar todas as chaves). Exemplo: project_data_get(key="REV")
| Name | Required | Description | Default |
|---|---|---|---|
| key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral detail that omitting key lists all keys, but says nothing about where the data lives if absent or what happens on a missing key; an output schema exists so return values are not its burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose, then a labeled when-to-use, a parameter note, and a worked example. Nothing is bloated, though the example arguably restates information the parameter line already carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with annotations covering safety and an output schema covering returns, the description supplies purpose, usage context, and parameter behavior. Only edge-case semantics (missing key, empty results) are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does for the single parameter: key is described plus the default behavior (omit it to list all keys). The example reinforces this, though it does not state the key's casing/format conventions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lê) and resource (dados de projeto gravados no DWG) and ties itself to the sibling that writes that data, project_data_set, so the read/write pair is inferable. It stops short of explicitly contrasting the two as alternatives, so it lands just under a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'QUANDO USAR' line gives clear context: retrieving project metadata stored in the drawing. There are no exclusions or named alternatives for cases when this tool is the wrong choice (e.g., reading non-project DXF attributes), so it is clear context without routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_data_setADestructive
Guarda um texto de projeto DENTRO do DWG (dicionário XRecord "AUTOCAD_MCP"), preservado ao salvar/abrir.
QUANDO USAR: registrar metadados do projeto no próprio desenho (revisão, nº do documento, norma, responsável). Parâmetros: key (até 64 caracteres; sem espaços nas pontas), value (texto até 2000 caracteres). Exemplo: project_data_set(key="REV", value="B - 2026-10-05")
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/destructive profile; the description adds genuinely useful behavior beyond that — the data lives inside the DWG as an XRecord and survives save/reopen. It omits the consequence of setting a key that already exists (overwrite), which is the main thing the destructiveHint implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sections — the core behavior, the when-to-use trigger, and a worked example — with zero filler and the essential mechanics front-loaded. The example line is short and directly callable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover the safety profile. Purpose, trigger, parameter limits and a usage example are all present, leaving only the minor overwrite-semantics gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry parameter meaning, and it largely does: key length limit of 64 chars with no leading/trailing spaces, and value limited to 2000 characters of text. It stops short of stating key character restrictions or normalization rules, so the compensation is good but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Guarda um texto de projeto DENTRO do DWG') and even names the storage mechanism (XRecord dictionary 'AUTOCAD_MCP') plus its persistence across save/open. It does not, however, differentiate itself from the obvious sibling project_data_get, which is never mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR' gives a concrete trigger with examples of the metadata to store (revisão, nº do documento, norma, responsável), so the agent knows when this tool applies. There is no explicit when-not and no pointer to project_data_get as the read counterpart, leaving the read/write pairing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_entitiesARead-only
Busca entidades por filtros (via SelectionSet + códigos DXF) e devolve resumo paginado.
QUANDO USAR: para "achar" coisas no desenho: todas as linhas da camada X, blocos de um tipo, textos numa região. Para propriedades completas use get_entity(handle). Parâmetros: type (nome DXF: LINE, CIRCLE, LWPOLYLINE, TEXT, MTEXT, INSERT...; lista com vírgula; apelidos: block, polyline), layer (curinga * e ?), block_name (só INSERT; usa o nome efetivo, então pega blocos dinâmicos), bbox ([xmin, ymin, xmax, ymax] na unidade do desenho; bbox_mode "window" = inteiramente dentro, "crossing" = toca a janela), limit/offset (paginação; limit 0 = padrão). Exemplo: query_entities(type="INSERT", block_name="SUP-*", layer="SUPORTES", limit=25).
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| type | No | ||
| layer | No | ||
| limit | No | ||
| offset | No | ||
| bbox_mode | No | window | |
| block_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds real behavior beyond that: it returns a paginated summary rather than full properties, and documents that limit 0 means the default. It does not cover pagination edge cases or rate/scope limits, but for a read-only query it is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then clearly sectioned when-to-use, parameters, and a worked example. Dense but every sentence carries information; the trailing example is useful rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is not required. Combined with complete parameter coverage, explicit usage guidance, and a sibling alternative, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so for all 7 parameters: type (DXF names, comma list, aliases like "block"/"polyline"), layer (wildcards * and ?), block_name (INSERT only, uses effective name so dynamic blocks match), bbox (format and coordinate unit), bbox_mode (window vs crossing semantics), and limit/offset (pagination, limit 0 = default). This is meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Busca entidades"), the resource, the mechanism (SelectionSet + DXF codes), and the return shape ("resumo paginado"). It explicitly distinguishes itself from the sibling get_entity, which returns full properties, so an agent can pick the right tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "QUANDO USAR" section gives concrete when-to-use examples (all lines on layer X, blocks of a type, texts in a region) and names the alternative, get_entity(handle), with the condition that selects it. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_block_attributesARead-only
Lê referências de bloco: handle, posição, camada e dicionário TAG → valor de atributos.
QUANDO USAR: para "ler a tabela de suportes do desenho", conferir TAGs, ou antes de atualizar valores. Parâmetros: block_name (curinga * e ?; vazio = todos os blocos), layer (curinga), limit/offset (paginação; 0 = padrão do servidor). Exemplo: read_block_attributes(block_name="SUP-*", layer="SUPORTES", limit=100).
| Name | Required | Description | Default |
|---|---|---|---|
| layer | No | ||
| limit | No | ||
| offset | No | ||
| block_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. Beyond that the description discloses the returned attribute structure (TAG → value), wildcard matching behavior, and the pagination default — genuine context, though nothing about auth or result size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then layers QUANDO USAR, parameter notes, and a concrete example. Every block earns its place and the example is compact; the formatting is slightly list-like but readable and non-redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value mechanics need not be restated, and annotations cover the safety profile. Given 0% schema description coverage on 4 optional params, the description supplies the missing parameter semantics, usage triggers, and an example — nothing an agent needs to call this correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it largely does: wildcards for block_name and layer, empty block_name = all blocks, and limit/offset pagination with 0 = server default. A worked example further anchors usage; only the offset semantics could be spelled out more precisely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lê referências de bloco') and enumerates what is returned (handle, posição, camada, dicionário TAG → valor). An agent can distinguish this from sibling mutators like update_block_attributes, though it never explicitly names a sibling reader such as dxf_read_attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'QUANDO USAR' block gives concrete triggers: reading the drawing's support table, checking TAGs, or reading before updating values. No explicit when-not or named alternative, but the 'before updating' cue implicitly routes to update_block_attributes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_lispADestructive
Executa UMA expressão AutoLISP no AutoCAD via SendCommand. Desligado por padrão (enable_lisp no config.toml).
QUANDO USAR: só quando nenhuma outra ferramenta faz o serviço (ex.: comando específico do Plant 3D). LIMITAÇÕES REAIS: SendCommand é ASSÍNCRONO e NÃO devolve o resultado do LISP — para ler um valor, faça o LISP gravá-lo em uma variável de sistema (SETVAR "USERS1" ...) e leia com outra ferramenta/no AutoCAD; não entra no agrupamento de undo do servidor (o AutoCAD cria o próprio passo). Exige confirm=true; expressão em uma linha, ≤ 2000 caracteres, parênteses balanceados; funções de arquivo/registro/processo são bloqueadas (defesa parcial, não é sandbox). Toda execução é registrada no log. Parâmetros: expression, confirm, wait_seconds (espera até 30 s o AutoCAD ficar ocioso). Exemplo: run_lisp('(setvar "USERS1" (rtos (getvar "DIMSCALE")))', confirm=true).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| expression | Yes | ||
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far beyond the annotations: it discloses that SendCommand is asynchronous and returns nothing, prescribes the SETVAR USERS1 workaround for reading values, notes it is excluded from the server's undo grouping, lists expression constraints (single line, ≤2000 chars, balanced parens), warns that file/registry/process functions are blocked as only a partial defense rather than a sandbox, and states every execution is logged. For a destructive=true tool this is exactly the context an agent needs before calling it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line what, then headed blocks for when-to-use and limitations, which makes it skimmable despite high density. It is long, but for a destructive, non-sandboxed eval tool nearly every clause earns its place; only the parameter list is compressed into an unhelpful run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, and the description still preempts the key surprise by saying SendCommand does not return the LISP result. Combined with the safety caveats, the logging note, and the workaround for reading values, an agent has everything required to call this tool safely and interpret its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the load, and it does explain all three parameters (expression, confirm, wait_seconds with its ≤30s idle-wait meaning) plus the confirm=true requirement. The treatment of individual params is terse (a bare comma list) relative to the detailed expression constraints, so it falls just short of fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Executa UMA expressão AutoLISP no AutoCAD via SendCommand") and explicitly positions itself against the rest of the toolset ("só quando nenhuma outra ferramenta faz o serviço"). An agent can immediately tell this is the general-purpose escape hatch rather than one of the many dxf_*/draw_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The QUANDO USAR block gives an explicit selection rule (use only when no other tool covers the case) plus a concrete example (Plant 3D-specific command). It also states the hard precondition confirm=true, so the agent knows not just when but under what gate to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_documentADestructive
Salva o desenho ativo POR CIMA do arquivo atual (operação destrutiva: exige confirm=true).
QUANDO USAR: só quando o usuário pediu para gravar. Desenho sem nome (nunca salvo) é recusado — peça ao usuário para usar SALVARCOMO no AutoCAD. Sem confirm=true retorna ok=false com a prévia. Parâmetros: confirm (bool). Exemplo: save_document(confirm=true).
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds the concrete consequence (overwrites the current file), the gating requirement (confirm=true), the failure behavior without confirmation (ok=false with a preview), and a precondition refusal. That is meaningful detail beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the destructive warning, then when-to-use, precondition, parameter note, and a concrete call example. All sections are functional, though the labeled blocks and example make it longer than strictly necessary for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-parameter mutation with an output schema present, the definition covers the safety profile, trigger condition, precondition failure, and confirmation gating. An agent has everything needed to call it correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'confirm' parameter has 0% schema description coverage, so the description must carry it — and it does: it states the parameter is required in practice to proceed and what happens when it is absent (ok=false plus preview). It stops short of explaining the preview payload itself, though the output schema covers returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope qualifier: 'Salva o desenho ativo POR CIMA do arquivo atual' (saves the active drawing over the current file). The overwrite semantics and destructive nature immediately separate it from adjacent tools like dxf_export or plot_to_pdf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'QUANDO USAR: só quando o usuário pediu para gravar' gives a clear trigger condition, and it names a refusal case (unnamed drawing, never saved) plus the remediation (use SAVEAS in AutoCAD). Nothing about when to invoke is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_active_documentADestructive
Torna ativo um desenho já aberto, pelo nome (ex.: "SUPORTES-01.dwg") ou caminho completo.
QUANDO USAR: para trocar o desenho-alvo das demais ferramentas. Não abre arquivos novos. Parâmetros: name (str) — nome ou caminho; comparação sem diferenciar maiúsculas. Exemplo: set_active_document("SUPORTES-01.dwg").
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=true, so the mutation profile is already carried structurally. The description adds useful context (it retargets subsequent tool calls and does not open files), but it never reconciles the 'destructive' annotation — a mere context switch reads as benign/reversible, so the agent gets no explanation of what is actually destructive or whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight segments — purpose, when-to-use, parameter semantics, example — front-loaded and each earning its place. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter state-switch tool with an output schema present (so return values need not be documented) and full annotations, the description covers purpose, usage, and parameter format. Only the failure behavior for an unmatched name is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter has no schema description, so the description must compensate. It states the type (str), that the value may be a bare name or a full path, that matching is case-insensitive, and gives a concrete example — strong compensation, though it doesn't say what error occurs when no matching open drawing exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('torna ativo') and resource (an already-open drawing identified by name or path), and explicitly distinguishes itself from openers ('Não abre arquivos novos'). An agent can differentiate it from siblings like list_documents, save_document, and dxf_create without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains an explicit 'QUANDO USAR' clause naming the exact scenario (to switch the target drawing of the other tools) plus a clear exclusion ('não abre arquivos novos'). This is textbook when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snapshot_support_registerARead-only
Captura cadastro completo e limitado de suportes, sem alterar entidades ou salvar arquivos.
QUANDO USAR: antes de revisar atributos ou comparar revisões. Exige filtro explícito de bloco/camada. Parâmetros: block_filter, layer_filter, key_tag/type_tag/line_tag; nomes de atributos configuráveis. Exemplo: snapshot_support_register(block_filter="SUP-*", type_tag="TYPE", line_tag="LINE"). Retorna data.snapshot para audit_support_register/compare_support_register; recusa exceder o limite.
| Name | Required | Description | Default |
|---|---|---|---|
| key_tag | No | TAG | |
| line_tag | No | LINHA | |
| type_tag | No | TIPO | |
| block_filter | No | ||
| layer_filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/no-destruction profile, and the description reinforces it ("sem alterar entidades ou salvar arquivos"). It goes beyond annotations by disclosing a hard size cap ("recusa exceder o limite") and the return location (data.snapshot), which are useful behavioral facts not present in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then cleanly segmented into QUANDO USAR, Parâmetros, Exemplo, and Retorna blocks. Some content is mildly redundant across sections, but each block earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-param, read-only snapshot tool with an output schema and read-only annotations, the description supplies the triggering context, the required filter, parameter roles, an example, and the downstream consumers. An agent has everything needed to call it correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the param burden and largely succeeds: it names block_filter, layer_filter and the key_tag/type_tag/line_tag family, explains the tag params as configurable attribute names, and provides a concrete call example. Minor gap: it asserts an "explicit filter" requirement while the schema marks no parameters required (all defaults null), leaving a slight ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (capture a complete/limited register of supports) and adds scope qualifiers (no entity mutation, no file saving). It also names the downstream consumers audit_support_register and compare_support_register, so an agent can tell it apart from those siblings immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR: antes de revisar atributos ou comparar revisões" gives a clear triggering context and pairs it with a prerequisite (explicit block/layer filter). It points to the alternative tools it feeds but does not spell out when NOT to use it, so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusARead-only
Diagnóstico do AutoCAD: conectado?, versão, desenho ativo, unidades, nº de entidades, comando ativo.
QUANDO USAR: sempre como PRIMEIRA chamada de uma conversa e ao suspeitar de problema (erro de conexão, "AutoCAD ocupado"). Se o AutoCAD estiver fechado, retorna ok=false com error.code="autocad_not_running" (nunca inicia o AutoCAD sozinho). Parâmetros: nenhum. Exemplo: status() → data.document.units == "mm".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses a concrete failure mode (ok=false with error.code="autocad_not_running") and a side-effect guarantee ("nunca inicia o AutoCAD sozinho"). This is exactly the extra behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the diagnostic summary, then a clear QUANDO USAR block, then params and example. Dense but every line carries routing or behavioral information; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with an output schema, this description covers the full agent decision path: what it inspects, when to call it, and what happens on failure. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description reinforces this with "Parâmetros: nenhum" and a usage example, leaving no ambiguity about how to invoke it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (AutoCAD diagnostic) and enumerates exactly what it reports: connection state, version, active drawing, units, entity count, active command. This lets an agent distinguish it from siblings like list_documents or system_capabilities without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"QUANDO USAR" gives an explicit trigger: first call of a conversation and when suspecting a problem (connection error, "AutoCAD busy"). It states the condition clearly but does not name specific alternative tools or a when-not-to-use case, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_attributes_from_excelADestructive
Atualiza ATRIBUTOS de blocos já existentes casando pela TAG-chave (não insere nem move nada).
QUANDO USAR: a planilha é a fonte da verdade dos dados (TIPO, LINHA, PESO...) e o desenho deve refletí-la. FLUXO SEGURO: dry_run=true (mostra antes→depois, não encontrados e ambíguos); depois confirm=true. Como altera valores em massa, qualquer mudança real exige confirm=true. Um Ctrl+Z desfaz tudo. Parâmetros: path/sheet/header_row, key_tag (atributo-chave, ex. "TAG"; a planilha precisa de coluna com esse nome), block_name (restringe o universo; curinga), mapping ({coluna_excel: "TAG_DO_ATRIBUTO"}; sem mapping, cada cabeçalho é o nome da tag). Célula em branco = mantém o valor do desenho. Exemplo: sync_attributes_from_excel("C:\proj\suportes.xlsx", key_tag="TAG", dry_run=true).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| sheet | No | ||
| confirm | No | ||
| dry_run | No | ||
| key_tag | Yes | ||
| mapping | No | ||
| block_name | No | ||
| header_row | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and destructive, and the description adds important operational behavior: mass value changes require confirm=true, dry_run previews before/after plus missing and ambiguous matches, and Ctrl+Z undoes everything. It also clarifies blank-cell handling and that no blocks are inserted or moved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and safe workflow, then groups parameters and example efficiently. Despite its length, every section is relevant for a destructive 8-parameter tool with zero schema help.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the mutation scope, safe execution flow, parameter semantics, matching behavior, and edge cases such as blank cells and missing/ambiguous matches. An output schema exists, so return-value details need not be explained in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so well. It explains path, sheet, header_row, key_tag, block_name wildcard filtering, mapping behavior, dry_run, and confirm, including the default that each spreadsheet header becomes the attribute tag name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it updates attributes of existing blocks, matching by a key TAG. It also explicitly excludes inserting and moving, which distinguishes it from sibling block/import tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear when-to-use context: the spreadsheet is the source of truth for data such as TIPO, LINHA, PESO, and the drawing should reflect it. It also prescribes a safe dry_run-then-confirm flow, though it does not explicitly name alternative sibling tools for insertion or per-block updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_capabilitiesARead-only
Informa capacidades e restrições sem conectar ou iniciar AutoCAD.
QUANDO USAR: antes de escolher ferramentas; distingue configuração de conexão real. Parâmetros: nenhum. Exemplo: system_capabilities() informa read_only e limitações Plant 3D.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds genuinely new behavior — that it answers without connecting to or launching AutoCAD and surfaces read_only status plus Plant 3D limitations. No rates/limits or output detail, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: what it does first, then WHEN TO USE, then the parameter note and example. The 'Parâmetros: nenhum' line duplicates structured data and is the one non-earning sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needn't be described, and annotations carry the safety profile. For a zero-argument capability-probe tool the description supplies what matters — non-connection behavior and the Plant 3D scope — leaving little an agent would still need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description restates 'Parâmetros: nenhum', which is redundant with the empty schema but not harmful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (informs capabilities and restrictions) and adds the key scope qualifier that it does NOT connect to or start AutoCAD. That qualifier implicitly separates it from the connection-oriented sibling `status`, though the sibling is not named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'QUANDO USAR: antes de escolher ferramentas' gives a clear use context, and it explains the selection rationale (distinguishing configuration from a real connection). No explicit when-not-to-use or named alternative, 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.
update_block_attributesADestructive
Altera atributos de UM bloco (handle) ou de vários (filter). Sobrescrita exige confirm=true.
QUANDO USAR: corrigir/preencher TAG, TIPO, LINHA etc. FLUXO SEGURO: 1) dry_run=true para ver o antes→depois; 2) repetir com confirm=true. Sem confirm, se houver sobrescrita de valor existente ou mais de 1 bloco afetado, retorna ok=false com a prévia. Um único Ctrl+Z desfaz tudo. Parâmetros: attributes ({TAG: novo valor}; '' limpa), handle (string hex) OU filter ({"block_name": "SUP-", "layer": "SUPORTES", "where": {"LINHA": "10-P-1001"}}), dry_run, confirm. Exemplo: update_block_attributes({"TIPO": "GUIA"}, filter={"block_name": "SUP-", "where": {"TIPO": "SHOE"}}, dry_run=true).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| handle | No | ||
| confirm | No | ||
| dry_run | No | ||
| attributes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint=true annotation, the description discloses that overwriting an existing value or touching more than one block without confirm returns ok=false with a preview, and that a single Ctrl+Z reverts everything. This adds real operational context (guard conditions, preview-on-failure, reversibility) that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then clearly sectioned into when-to-use, safe-flow, and parameters, so scanning is easy. Slightly repetitive in restating the parameter list and then an example, but every block is informative rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive 5-parameter mutation with nested filter objects and an output schema, the description supplies everything an agent needs: targeting logic, safety gating, overwrite semantics, undo behavior, and per-parameter format. Return values are correctly left to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden and does so: it explains attributes as a {TAG: value} map where '' clears a value, handle as a hex string, filter with a concrete nested example (block_name/layer/where), and the roles of dry_run and confirm. This fully compensates for the absent schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb (Altera/muda) and resource (atributos de bloco) and immediately scopes the two targeting modes: single block via handle or multiple via filter. An agent can distinguish this from read_block_attributes or dxf_modify_entities without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'QUANDO USAR' clause names the concrete tasks (corrigir/preencher TAG, TIPO, LINHA) and an explicit safe workflow (dry_run first, then confirm=true) with the failure condition spelled out. No alternative is left to inference for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zoom_extentsADestructive
Enquadra a vista atual em todos os objetos do desenho (ZOOM Extents).
QUANDO USAR: depois de inserir/desenhar coisas, para o usuário enxergar o resultado. Não altera o desenho (não entra no histórico de desfazer). Exemplo: zoom_extents().
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly asserts 'Não altera o desenho (não entra no histórico de desfazer)' — a non-mutating, non-destructive view operation — while the annotations declare destructiveHint=true and readOnlyHint=false. These directly contradict, so per the rubric this scores 1 and is flagged.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded blocks: what it does, when to use it, side-effect note, plus a call example. Every sentence carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary. For a zero-parameter view tool the description covers purpose, trigger and side effects adequately; the only shortfall is the unresolved conflict with the annotations rather than missing content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The example call 'zoom_extents()' usefully confirms the empty-argument invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Enquadra a vista atual em todos os objetos do desenho' — with the canonical English term '(ZOOM Extents)' as a parenthetical anchor. An agent can immediately tell this is a viewport-fitting operation, distinct from the draw_* / dxf_* mutation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'QUANDO USAR: depois de inserir/desenhar coisas, para o usuário enxergar o resultado' gives an explicit trigger condition tied to sibling tools (draw/insert). It stops short of 5 because it names no alternative (e.g. zoom-to-window/selection) or when-not case.
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.
50 tool updates
v0.3.1- First observed
add_dimension - First observed
add_mtext - First observed
add_text - First observed
audit_support_register - First observed
check_layer_standard - First observed
compare_support_register - First observed
copy_entity - First observed
create_layer - First observed
delete_entities - First observed
draw_circle - First observed
draw_line - First observed
draw_polyline - First observed
dxf_add_dimensions - First observed
dxf_add_entities - First observed
dxf_audit - First observed
dxf_create - First observed
dxf_create_layer - First observed
dxf_create_layout - First observed
dxf_define_block - First observed
dxf_delete_entities - First observed
dxf_export - First observed
dxf_get_entity - First observed
dxf_info - First observed
dxf_insert_support_symbol - First observed
dxf_modify_entities - First observed
dxf_query - First observed
dxf_read_attributes - First observed
dxf_sql_query - First observed
export_blocks_to_excel - First observed
get_entity - First observed
import_blocks_from_excel - First observed
insert_block - First observed
list_block_definitions - First observed
list_documents - First observed
list_layers - First observed
move_entity - First observed
plot_to_pdf - First observed
project_data_get - First observed
project_data_set - First observed
query_entities - First observed
read_block_attributes - First observed
run_lisp - First observed
save_document - First observed
set_active_document - First observed
snapshot_support_register - First observed
status - First observed
sync_attributes_from_excel - First observed
system_capabilities - First observed
update_block_attributes - First observed
zoom_extents
TDQS
Scored across 50 tools
The dxf_ prefix cleanly separates the offline DXF surface from the live AutoCAD surface, which helps a lot. However, the two parallel surfaces create genuine overlap (get_entity vs dxf_get_entity, query_entities vs dxf_query, create_layer vs dxf_create_layer, add_dimension vs dxf_add_dimensions), and within the offline set dxf_query/dxf_sql_query/dxf_read_attributes blur together. Descriptions disambiguate mode and purpose but an agent still faces many near-parallel choices.
Almost every tool follows a predictable verb_noun pattern (draw_circle, create_layer, query_entities, delete_entities, insert_block, read/update_block_attributes, import/export_blocks_to_excel). The offline tools uniformly use a dxf_ prefix plus the same convention, and the support-register trio (snapshot/audit/compare) and project_data_set/get are internally consistent.
50 tools is well beyond the heavy threshold and is inflated by maintaining two near-parallel surfaces (live editing and offline DXF). While the domain is broad, the live/offline duplication means several tools do not clearly earn a separate place, making the set unwieldy to navigate.
Coverage is excellent across the full lifecycle: create/read/update/delete for entities, layers, blocks, attributes, and dimensions, plus layouts, PDF/PNG/SVG export, Excel round-trip import/export/sync, audit and revision comparison, SQL querying, and in-DWG project metadata. Both the live and offline workflows are served end-to-end with no obvious dead ends.
Maintenance
Related MCP Connectors
Revit MCP: lets AI read and edit your open model. Windows, best supported on Revit 2021+, free beta.
AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
Connects AI assistants to QCDatabase.AI for everyday construction quality-control work.
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Autodesk Civil 3D, allowing them to retrieve project data, create/modify/delete drawing elements, and execute code to automate Civil 3D operations.344MIT
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants like Claude for Desktop or Cursor to control supported CAD applications through natural language, including drawing, layer/entity/block management, data export, and file/session operations.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants such as Claude for Desktop or Cursor to control AutoCAD, ZWCAD, GstarCAD, and BricsCAD through text-based instructions for drawing, layers, blocks, entities, files, and automation tasks.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to control supported CAD applications through natural-language or direct tool calls for drawing, layer, block, entity, file, and data-export operations.-



