Skip to main content
Glama
Codemod3

CAD MCP Server

by Codemod3

CAD MCP Server

Python License: MIT MCP Built with ezdxf Formats: DXF · DWG

An MCP server that lets Claude (and any other MCP client) read, analyze, and edit CAD files — both DXF and DWG — powered by ezdxf.

It runs as a small local Python process over stdio. Your CAD files never leave your machine.

  • DXF — read and edit directly, no extra setup.

  • DWG — Autodesk's proprietary binary format. ezdxf cannot parse it alone, so DWG is converted to DXF automatically via the free ODA File Converter (one-time install). Once installed, DWG works everywhere DXF does.


Quick start (easiest — no clone, no pip)

If you have uv installed, you don't clone anything or manage dependencies — uvx fetches and runs the server for you.

Install uv once:

# Windows (PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh

Then add the server in one line:

# Claude Code:
claude mcp add cad -- uvx --from git+https://github.com/Codemod3/cad-mcp cad-mcp

For Claude Desktop, drop this into your config (see paths below) — no clone, no paths to edit:

{
  "mcpServers": {
    "cad": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/Codemod3/cad-mcp", "cad-mcp"]
    }
  }
}

That's it. First run downloads deps automatically; later runs are instant. Restart the client and the tools appear. (DWG still needs the free ODA File Converter; DXF works immediately.)

Prefer to clone and manage Python yourself? See Manual install.


Related MCP server: Greenloom CAD MCP Server

What it can do

Read / analyze (never modifies files)

Tool

What it does

dxf_summary

Overview — version, units, layers, entity counts, extents

dxf_list_layers

All layers with color, linetype, on/frozen/locked state

dxf_get_layer_entities

All entities on a specific layer

dxf_get_entities_by_type

Filter by type (LINE, CIRCLE, TEXT, …), optional layer filter

dxf_get_text

Extract all TEXT and MTEXT annotations

dxf_get_dimensions

Extract all DIMENSION annotations

dxf_get_blocks

List named block definitions

dxf_get_block_detail

Inspect entities inside a block

Edit (writes to a copy — your original is never touched)

Tool

What it does

cad_create_editable_copy

Copy the original DXF/DWG to <name>_edited.dxf. Run this first.

cad_add_line

Draw a line

cad_add_circle

Draw a circle

cad_add_arc

Draw an arc

cad_add_text

Add a text label

cad_add_polyline

Draw connected segments (LWPOLYLINE), optionally closed

cad_add_layer

Create a layer

cad_delete_entity

Delete one entity by its handle

cad_export_dwg

Convert the edited .dxf back to .dwg (needs ODA File Converter)

Editing model — safe by design:

  1. Call cad_create_editable_copy on your original → it returns the copy's path.

  2. Pass that copy path to every edit tool. Edits save in place and stack, so keep drawing on the same file.

  3. Your original is never modified.

  4. DWG can't be written directly, so edits always happen on the .dxf copy; run cad_export_dwg at the end if you need a .dwg back.


Requirements

  • Python 3.10+ (only for the manual install; uvx handles this for you)

  • The Python packages in requirements.txt (installed below)

  • DWG only: the free ODA File Converter

Check your Python:

python --version      # must be 3.10 or newer (try python3 on macOS/Linux)

Manual install

Use this if you'd rather clone the repo and manage Python yourself.

1. Get the code

git clone https://github.com/Codemod3/cad-mcp.git
cd cad-mcp

2. Install dependencies

Recommended — use a virtual environment so nothing pollutes your system Python:

python -m venv .venv
# Windows (PowerShell):
.venv\Scripts\Activate.ps1
# macOS / Linux:
source .venv/bin/activate

pip install -r requirements.txt

Or install as a proper command (cad-mcp) via pip:

pip install .

3. Verify it runs

python server.py

It should print a startup line to stderr and then wait silently (it's listening for an MCP client over stdio). Press Ctrl+C to stop. If you see no import errors, you're ready to connect a client.


Connect to a client

Point your MCP client at server.py. Use the full absolute path to the file, and the same Python that has the dependencies installed.

Claude Desktop

Edit the config file:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cad": {
      "command": "python",
      "args": ["C:\\full\\path\\to\\cad-mcp\\server.py"]
    }
  }
}

On macOS/Linux use "python3" and a /full/path/to/cad-mcp/server.py. If you used a virtualenv, point command at that venv's python, e.g. C:\\path\\to\\cad-mcp\\.venv\\Scripts\\python.exe.

Restart Claude Desktop. The CAD tools appear automatically.

Claude Code (CLI)

Easiest — no clone (needs uv):

claude mcp add cad -- uvx --from git+https://github.com/Codemod3/cad-mcp cad-mcp

If you cloned the repo instead:

claude mcp add cad -- python "C:\full\path\to\cad-mcp\server.py"

Scope (where the server is available):

claude mcp add cad --scope user  -- uvx --from git+https://github.com/Codemod3/cad-mcp cad-mcp   # all your projects
claude mcp add cad --scope project -- uvx --from git+https://github.com/Codemod3/cad-mcp cad-mcp  # writes .mcp.json for teammates

The repo also ships a ready .mcp.json — run Claude Code inside the project folder and the server loads automatically, no command needed.

Verify with /mcp, then just ask Claude to read or edit a CAD file. Remove with claude mcp remove cad.


DWG support

DWG files need the free ODA File Converter installed once:

  1. Download for your OS: https://www.opendesign.com/guestfiles/oda_file_converter

  2. Install it. Default Windows path: C:\Program Files\ODA\ODAFileConverter <version>\ODAFileConverter.exe

  3. Ensure it's on your PATH, or leave it at the default location where ezdxf finds it automatically.

Then use .dwg files exactly like .dxf — conversion is automatic. If the converter is missing, DWG tools return a clear error and DXF keeps working.


Usage examples

Once connected, just talk to Claude:

  • "Summarize this DXF file: C:\drawings\floor_plan.dxf"

  • "What layers are in site_plan.dwg?"

  • "Extract all the text annotations from my drawing."

  • "Make an editable copy of plan.dxf, then add a circle radius 5 at (10,10) on a new layer called NOTES."

  • "Draw the outline of a 20×10 room as a closed polyline, then export it to DWG."


Supported entity types (read)

LINE, CIRCLE, ARC, LWPOLYLINE, TEXT, MTEXT, INSERT (block refs), DIMENSION, LEADER, ELLIPSE, SPLINE — all other types are still captured with their common attributes (layer, color, handle).


Development

Run the test suite (offline, DXF only — no ODA converter needed):

pip install -r requirements.txt pytest pytest-asyncio
python -m pytest

Troubleshooting

Symptom

Fix

Tools don't appear in the client

Use the absolute path to server.py; fully restart the client.

ModuleNotFoundError: ezdxf / fastmcp

The command python isn't the one with deps. Point it at your venv's python, or pip install -r requirements.txt for that interpreter.

DWG tools error about ODA

Install the ODA File Converter and make sure it's on PATH.

"Cannot edit a .dwg file in place"

Expected — run cad_create_editable_copy first, edit the .dxf copy, then cad_export_dwg.

Client shows a broken/empty connection

Something printed to stdout. This server logs only to stderr; if you added prints, remove them — stdout is the MCP protocol channel.


License

MIT — see LICENSE.

Available Tools

17 tools
cad_add_arcAdd ArcA

Draw an arc on the editable copy and save it in place.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the key behavioral trait that this is a mutating operation by stating it saves the result in place. This complements the annotations (readOnlyHint=false, destructiveHint=false) and adds context about the target being an editable copy. It does not contradict the annotations.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the action and context, and every word earns its place.

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

Completeness4/5

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

Given that the schema covers parameters, the annotations cover read-only/destructive hints, and an output schema exists, the description is nearly complete. It would be slightly stronger with an explicit note on when to use this over sibling add_* tools, but the editable-copy scope covers the main prerequisite.

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

Parameters3/5

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

The free-text description does not explain any parameters, but the input schema already documents center, radius, start/end angles, file_path, and layer semantics ('Layer name (created if missing)'). Therefore the schema carries the parametric meaning, and the description adds no further value beyond the baseline.

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

Purpose5/5

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

The description uses a specific verb ('Draw') and resource ('an arc on the editable copy'), and clearly states the action's persistence ('save it in place'). This differentiates it from sibling tools like cad_add_line or cad_add_circle even without relying on the tool name.

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

Usage Guidelines4/5

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

The description establishes the correct context: the tool operates on the editable copy, not the original file. It does not explicitly name alternatives or exclusion conditions, but the editable-copy phrasing is a clear and sufficient usage signal.

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

cad_add_circleAdd CircleB

Draw a circle on the editable copy and save it in place.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no informative annotations (readOnlyHint, destructiveHint, etc. are all false/neutral), the description carries the behavioral disclosure burden. 'Save it in place' usefully communicates persistent in-place mutation of the editable copy, but it does not mention side effects like layer creation, coordinate-system behavior, or failure modes.

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

Conciseness5/5

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

The description is a single sentence with no filler, front-loading the action 'Draw a circle' and immediately giving the relevant context of the editable copy. Every word earns its place.

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

Completeness4/5

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

For a simple geometric-add tool with a rich input schema and an output schema present, the description plus schema is mostly complete for invocation. The only notable gap is the absence of sibling routing guidance, but that is already captured under usage guidelines.

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

Parameters3/5

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

The description itself adds no parameter-specific meaning, but the nested input schema already documents file_path, center, radius, and layer with helpful descriptions. Even though the schema coverage signal is 0%, the actual schema provides the needed semantics, so the description does not need to repeat them.

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

Purpose4/5

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

The description clearly states a specific action ('Draw a circle') and the target resource ('the editable copy'), which distinguishes it from sibling tools like cad_add_line and cad_add_arc. It does not explicitly mention the DXF entity type or contrast itself with those siblings, but the intended operation is unambiguous.

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

Usage Guidelines2/5

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

The description gives no guidance about when to use this tool versus alternatives such as cad_add_line, cad_add_arc, or cad_add_text. The phrase 'on the editable copy' implies a prior workflow step, but there is no explicit context or exclusion that would help an agent choose among the add_* siblings.

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

cad_add_layerAdd LayerA

Create a new layer on the editable copy and save it in place.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already signal that the tool is not read-only and not destructive; the description adds the meaningful behavior that changes are written back in place to the editable copy rather than producing a separate output. It does not disclose duplicate-name behavior or failure modes, but that is a minor gap for a simple mutation.

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

Conciseness5/5

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

One sentence with no filler. The core verb and target are front-loaded, and the persistence detail is packed in without redundancy. Every clause earns its place.

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

Completeness4/5

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

For a simple mutation with a well-described nested schema and an output schema, the description covers the object, target, and persistence behavior. It could add explicit sequencing guidance about requiring an existing editable copy, but nothing essential for invoking the tool is missing.

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

Parameters3/5

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

The description does not explain name, color, or file_path, but the nested input schema already documents all three explicitly, including 'Path to the editable .dxf copy' and 'ACI color index 0-256'. The description only reinforces the editable-copy semantic, so it adds little beyond the schema.

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

Purpose5/5

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

The description states a specific action ('Create a new layer'), names the target scope ('on the editable copy'), and adds persistence ('save it in place'). This clearly distinguishes it from read-only layer tools and the other cad_add_* entity tools.

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

Usage Guidelines3/5

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

The phrase 'on the editable copy' implies the prerequisite workflow after cad_create_editable_copy, but the description never explicitly says when to use this tool versus alternatives or how to handle pre-existing layers. No exclusions or alternative tool names are given, so usage guidance is mostly implicit.

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

cad_add_lineAdd LineA

Draw a line on the editable copy and save it in place.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only indicate it is not read-only and not idempotent; the description adds the concrete side effect that a line is drawn and saved in place, so the operation mutates the given file rather than returning a preview. This is useful behavior disclosure for a mutation tool.

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

Conciseness5/5

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

A single sentence, front-loaded with the action and target, with no filler or repetition. Every word contributes.

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

Completeness4/5

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

For a simple line-adding tool, the description plus the output schema and sibling list is nearly complete: it identifies the input file kind, the mutation, and the persistence behavior. It only lacks an explicit routing note against sibling adders and readers, which is minor.

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

Parameters2/5

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

The description adds no parameter-level meaning beyond identifying the line object and the editable-copy context; it does not mention start/end coordinates or layer behavior. With schema description coverage reported at 0%, the description fails to compensate for the parameter documentation load, though the nested schema itself happens to provide useful property descriptions.

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

Purpose5/5

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

The description names a specific action ('draw'), a specific object ('a line'), and a target context ('the editable copy'), and 'save it in place' confirms persistence. This cleanly distinguishes it from sibling tools like cad_add_circle, cad_add_arc, and cad_add_polyline.

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

Usage Guidelines3/5

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

The phrase 'on the editable copy' gives a clear precondition and implies this is a mutation pipeline tool used after an editable copy exists. However, it does not explicitly say when to prefer it over alternatives or mention the read-only DXF sibling tools.

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

cad_add_polylineAdd PolylineB

Draw an LWPOLYLINE (connected line segments) on the copy and save it.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already mark the tool as non-read-only, and the description adds that it writes to and saves the copy, implying a persisted mutation rather than a dry-run. It doesn't detail side effects like layer creation or whether existing geometry is overwritten, but those are represented in the schema. No contradiction with annotations.

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

Conciseness5/5

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

One 12-word sentence front-loads the operation and object. Every phrase ('on the copy', 'save it') adds operational context, so there is no redundancy.

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

Completeness3/5

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

With an output schema present and nested input parameters documented, the description doesn't need to restate return values or point formats. The main missing piece is explicit usage guidance among sibling add-tools, and the description provides no failure/precondition notes beyond the 'copy' reference.

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

Parameters2/5

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

Context signals report 0% schema description coverage at the parameter level, so the description carries the burden; 'connected line segments' maps loosely to the `points` array, and 'on the copy' maps to `file_path`, but `closed` and `layer` are left to the nested schema. That is minimal compensation for a parameter surface with structured sub-properties.

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

Purpose4/5

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

Uses a specific verb ('Draw') and object ('LWPOLYLINE') with a clarifying parenthetical ('connected line segments'), and it further scopes the action to the copy and persistence ('save it'). This distinguishes it from single-segment tools like cad_add_line, though it doesn't name the sibling. Overall clear.

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

Usage Guidelines2/5

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

No guidance on when to choose cad_add_polyline over cad_add_line/cad_add_circle or when the editable copy must first exist. The phrase 'on the copy' hints at a prerequisite but doesn't state it. No exclusions or alternative routing are provided.

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

cad_add_textAdd TextB

Add a TEXT entity on the editable copy and save it in place.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

The description usefully discloses that the tool mutates and persists the file ('save it in place'), which adds behavioral context beyond the generic false hints in annotations. However, it leaves other behavioral traits such as repeated-call effects or failure behavior to the agent to infer.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler or redundant wording. Every phrase earns its place by adding either the resource type or the persistence behavior.

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

Completeness3/5

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

The description covers the core purpose and the in-place save side effect, and the schema plus output schema handle parameter and return details. However, it omits the prerequisite workflow of creating or obtaining the editable copy and does not explicitly position the tool among cad_add_* siblings, leaving some contextual gaps for a mutating tool.

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

Parameters2/5

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

The tool description itself provides almost no parameter-level meaning; 'TEXT entity' and 'editable copy' only weakly map to the text and file_path parameters. With schema description coverage reported at 0%, the description does not compensate for the required position and text parameters, even though the nested schema does contain some property descriptions.

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

Purpose4/5

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

The description clearly states a specific action ('Add') on a specific resource ('TEXT entity on the editable copy') and distinguishes this from sibling add_* tools by entity type. It is more informative than the title and conveys the in-place save scope.

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

Usage Guidelines3/5

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

The phrase 'on the editable copy' implies when this tool is appropriate and hints at a prerequisite, but it does not explicitly mention the need to create the copy first via cad_create_editable_copy. It also does not explicitly contrast this tool with the other cad_add_* alternatives, so usage guidance is mostly inferred.

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

cad_create_editable_copyCreate Editable CopyA

Make an editable .dxf copy of an original DXF or DWG file.

The original is never modified. All edit tools then operate on the copy, in place — call them repeatedly to keep building on the same copy. DWG input is converted to DXF automatically (needs the ODA File Converter).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesCopyInput with file_path (original) and optional out_path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

It discloses that the original is never modified, that edits happen in place on the copy, and that DWG input requires the ODA File Converter for automatic conversion. These go beyond the sparse annotations and give the agent important safety and dependency context.

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

Conciseness5/5

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

The description is four short, information-dense sentences with the core action first and no filler. Each sentence covers a distinct aspect: action, safety, workflow, and conversion prerequisite.

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

Completeness5/5

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

Given the output schema and fully documented input schema, the description supplies everything needed to invoke correctly: required format, optional output behavior, workflow sequencing, and a prerequisite dependency. Nothing essential is missing.

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

Parameters3/5

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

Both parameters are fully documented in the schema, including defaults and value constraints, so the description does not need to add much. It reinforces the .dxf result and conversion behavior, but provides no new parameter-level detail.

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

Purpose5/5

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

The opening sentence names a specific action (make an editable .dxf copy) and both accepted input formats. By saying all edit tools operate on the copy, it positions this tool relative to the CAD sibling set, so an agent can distinguish setup from read/query and other export tools.

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

Usage Guidelines4/5

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

It clearly frames the intended workflow: create a copy once, then repeatedly call edit tools on that same copy. It does not spell out explicit when-not-to-use cases or name alternatives such as using dxf_* query tools directly on the original.

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

cad_delete_entityDelete Entity by HandleA

Delete a single entity by its handle from the editable copy.

Get handles from any read tool (they include a "handle" field).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior1/5

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

The annotations mark destructiveHint as false, yet the description says the tool will delete an entity from the file. Deleting an entity is a destructive update, at least to the editable copy, so the description contradicts the annotations. This is a serious annotation contradiction.

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

Conciseness5/5

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

Two concise sentences: the first states the action and target, the second gives the handle source. No filler and the most important information is front-loaded.

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

Completeness3/5

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

The description covers the key invocation flow (read handle, delete from editable copy) and an output schema is present, so return values need not be described. However, it omits prerequisite/irreversibility context and the destructive annotation conflict leaves the behavioral model inconsistent, so completeness is only adequate.

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

Parameters3/5

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

The description adds useful parameter context by explaining that the handle comes from any read tool result and by tying file_path to the editable copy, partially compensating for the schema coverage signal. It does not detail file path creation or path syntax, so it is only minimally sufficient.

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

Purpose5/5

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

The description states a specific action (Delete), a precise resource (a single entity), an identifier method (by handle), and a target scope (the editable copy). It is unambiguous and naturally distinguishes this tool from sibling read and creation tools.

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

Usage Guidelines4/5

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

It clearly instructs the agent to obtain handles from any read tool because they include a handle field, and restricts deletion to the editable copy. It does not provide explicit when-not-to-use wording, but there is no competing delete sibling, so the context is sufficient.

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

cad_export_dwgExport Copy to DWGA

Convert an edited .dxf file to .dwg (needs the ODA File Converter).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

The description discloses a meaningful behavioral requirement not present in the annotations: it needs the ODA File Converter. It also makes the transformation semantics explicit. It does not mention overwrite behavior, but the annotations indicate this is not a read-only operation while destructiveHint is false.

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

Conciseness5/5

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

The description is a single sentence with the action front-loaded and the prerequisite in parentheses. Every word earns its place and there is no redundant filler.

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

Completeness4/5

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

For a two-parameter file-conversion tool, the description plus schema and annotations are largely sufficient: the source, destination, and external dependency are all stated. A slight gap is that it does not explicitly tie this to cad_create_editable_copy as the preceding workflow step.

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

Parameters3/5

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

The description adds little parameter meaning beyond naming .dxf and .dwg, but the nested schema already documents file_path and out_path clearly. Even though the generated coverage signal reports 0%, the actual schema provides adequate descriptions for both parameters.

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

Purpose5/5

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

The description names the specific action (convert), source format (.dxf), and target format (.dwg). It is clearly distinguishable from the sibling dxf_* and cad_add_* tools, none of which perform this conversion.

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

Usage Guidelines3/5

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

The phrase 'edited .dxf file' implies use after an editable copy has been modified, and the parenthetical states an external prerequisite. However, it does not explicitly name alternatives such as cad_create_editable_copy 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.

dxf_get_block_detailInspect a Block DefinitionA
Read-onlyIdempotent

Return all entities inside a named block definition.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesBlockInput with file_path and block_name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the behavioral fact that the tool returns all entities in the block, but it does not disclose edge cases such as missing block names or empty block definitions. With annotations covering the main behavioral concerns, a 3 is appropriate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states exactly what the tool does with no filler or redundancy. Every word contributes to understanding the tool's purpose.

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

Completeness4/5

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

For a read-only tool with one parameter, full schema coverage, annotations, and an output schema, the description is sufficient to guide correct invocation. It does not cover error scenarios or relationship to dxf_get_blocks, but those are not essential given the strong structured metadata.

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

Parameters3/5

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

Schema description coverage is 100%, and both file_path and block_name have clear descriptions. The tool description itself adds no parameter-level meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description names a specific verb ('Return') and a precise resource ('entities inside a named block definition'), making the tool's function unambiguous. It also distinguishes itself from siblings like dxf_get_blocks by clarifying that this returns the contents of a block definition, not a list of block definitions.

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

Usage Guidelines4/5

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

The description clearly implies the usage context: when you need the contents of a specific block definition. It does not explicitly mention alternatives or when-not-to-use, but the resource-oriented phrasing provides enough context for an agent to select this tool over the related get/summary tools.

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

dxf_get_blocksList Block DefinitionsA
Read-onlyIdempotent

List all named block definitions in the DXF file.

Blocks are reusable symbol libraries (e.g. doors, valves, furniture). System blocks starting with * are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFileInput with file_path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description adds value by disclosing the exclusion of system blocks and explaining that blocks are reusable symbol libraries. This goes beyond the structured annotations without contradicting them.

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

Conciseness5/5

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

The description is three short sentences, front-loaded with the main behavior, then adding useful context and an important exclusion. Every sentence earns its place with no repetition or filler.

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

Completeness4/5

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

For a simple, read-only listing operation with a single well-documented parameter and an output schema, the description is nearly complete. It covers the key behavioral nuance (system blocks excluded), though it could be slightly richer by pointing to dxf_get_block_detail for deeper block inspection.

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

Parameters3/5

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

Schema description coverage is 100%, with file_path fully documented as 'Absolute path to the .dxf file.' The description adds no additional parameter-level detail, so it does not need to compensate; the schema carries the burden.

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

Purpose5/5

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

The description states a specific verb and resource: 'List all named block definitions in the DXF file.' It further clarifies scope by excluding system blocks starting with '*', which makes the tool's purpose distinct from a hypothetical block-detail tool. The title reinforces the purpose without contradicting it.

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

Usage Guidelines3/5

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

The description implies when to use it: when you need an overview of named blocks, especially reusable symbol libraries. However, it never explicitly mentions alternatives such as dxf_get_block_detail for detailed block content, nor does it state when this tool should not be used. The context is clear but leaves routing to inference.

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

dxf_get_dimensionsExtract Dimension AnnotationsA
Read-onlyIdempotent

Extract all DIMENSION entities from the drawing.

Returns each dimension's measurement text, layer, and geometry points.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFileInput with file_path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'all DIMENSION entities' scope and the returned fields, but does not describe edge cases such as missing dimensions or how geometry points are structured.

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

Conciseness5/5

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

Two concise sentences deliver the action first, then the return contents. There is no filler or repetition of schema details.

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

Completeness4/5

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

With one well-documented parameter, strong annotations, and an output schema, the description is largely complete. It could briefly note behavior when no dimensions exist, but nothing essential is missing for basic invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with file_path already documented as 'Absolute path to the .dxf file.' The tool description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Extract'), a specific resource ('DIMENSION entities'), and the drawing scope. It clearly distinguishes this tool from siblings like dxf_get_text and dxf_get_blocks by focusing on DIMENSION entities specifically.

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

Usage Guidelines3/5

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

The usage context is implied by the entity-type focus: use it when you need dimension annotations. However, it never explicitly contrasts itself with dxf_get_entities_by_type or other entity-specific tools, so the agent is left to infer when this specialized tool is preferable.

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

dxf_get_entities_by_typeGet Entities by TypeB
Read-onlyIdempotent

Return all entities of a given DXF type (e.g. LINE, CIRCLE, TEXT, MTEXT).

Optionally filter by layer name.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesEntityTypeInput with file_path, entity_type, optional layer_name, limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety burden is covered. The description adds little beyond the schema and even says 'all entities' while the `limit` parameter defaults to 100, potentially misleading agents about truncation or pagination. This overstatement is a real transparency gap.

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

Conciseness5/5

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

Two short sentences with the main verb and resource front-loaded. Every clause carries meaning, and the optional layer-filter note earns its place without filler.

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

Completeness3/5

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

For a read-only tool with a complete output schema and fully documented parameters, this is close to sufficient. The main gap is the tension between 'all entities' and the default `limit`, plus the absence of guidance for overlapping sibling tools. An agent relying only on the description could expect unbounded results.

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

Parameters3/5

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

Input-schema coverage is 100%, and every parameter already has a description, so the baseline of 3 applies. The description's examples of entity types add minor value, but it does not explain limit truncation or other parameter behavior beyond the schema.

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

Purpose4/5

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

The description clearly states the action ('Return all entities') and the resource (DXF type), with useful examples such as LINE, CIRCLE, TEXT, and MTEXT. However, it does not explicitly distinguish itself from siblings like dxf_get_layer_entities or dxf_get_text, so it misses the top tier.

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

Usage Guidelines3/5

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

It implies a clear use case: retrieve entities by DXF type, optionally filtered by layer. But it never says when to prefer this over alternatives such as dxf_get_layer_entities, dxf_get_text, or dxf_get_dimensions. Guidance is therefore implied rather than explicit.

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

dxf_get_layer_entitiesGet Entities on a LayerB
Read-onlyIdempotent

Return all entities on a specific layer.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesLayerInput with file_path, layer_name, and optional limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

The description says 'all entities' but the schema includes a limit parameter with a default of 50, so the description overstates what will be returned. Annotations cover the read-only, idempotent, and non-destructive profile, but the description does not disclose pagination or default limit behavior.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the core behavior and does not waste tokens.

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

Completeness3/5

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

The output schema and annotations cover safety and return structure, so the tool is largely callable. However, the misleading 'all' behavior and lack of guidance about the optional limit leave an incomplete picture for an agent deciding on pagination or volume expectations.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well documented in the schema. The description adds no meaning beyond the schema, meeting the baseline expectation but providing no extra semantic value.

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

Purpose4/5

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

The description clearly states the action and resource: 'Return all entities on a specific layer.' It is specific about the scope and distinct from sibling tools like dxf_get_entities_by_type or dxf_get_block_detail, though it does not explicitly call out those alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as dxf_get_entities_by_type or dxf_get_text. The agent is left to infer the appropriate choice from sibling names alone.

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

dxf_get_textExtract All Text from DXFA
Read-onlyIdempotent

Extract all TEXT and MTEXT entities from the drawing.

Useful for reading annotations, labels, title blocks, and notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFileInput with file_path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and side effects. The description adds that it extracts both TEXT and MTEXT, which is a minor detail, and does not disclose any additional behaviors such as output ordering or performance. Given the annotation coverage, this is acceptable but not rich.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, and no extraneous details. The wording is efficient and each word contributes.

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

Completeness5/5

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

For a single-parameter, read-only tool with rich annotations and an output schema, the description is complete. It states what it does and when it's useful; the output schema will specify return values, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100% for the single parameter (file_path), and the description adds no additional parameter meaning. The schema already provides the description of file_path as an absolute path, so the parameter semantics are fully handled by the schema.

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

Purpose5/5

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

Description states a specific action ('extract all TEXT and MTEXT entities') and resource, with a clear use case ('reading annotations, labels, title blocks, and notes'). It clearly distinguishes from siblings like dxf_get_dimensions or dxf_get_blocks, even without naming them.

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

Usage Guidelines4/5

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

Provides context on when to use ('useful for reading annotations...') but does not explicitly list alternatives or when-not scenarios. An agent could reasonably infer this is the go-to for text, but there is no explicit exclusion of other tools like dxf_get_entities_by_type.

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

dxf_list_layersList DXF LayersA
Read-onlyIdempotent

List all layers in a DXF file with their properties.

Returns each layer's name, color, linetype, lineweight, and on/frozen state.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFileInput with file_path to the .dxf file.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the output scope ('all layers') and property list, but does not disclose behaviors such as error handling, file-not-found behavior, or layer ordering. This is adequate though not rich.

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

Conciseness5/5

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

Two short sentences with the main action front-loaded and the return content summarized in the second sentence. There is no filler or repetition of the schema.

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

Completeness4/5

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

For a single-parameter read-only list operation with annotations and an output schema, the description is nearly complete. It could be stronger by naming a sibling (e.g., dxf_get_layer_entities) to disambiguate scope, but nothing critical is missing for a correct call.

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

Parameters3/5

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

The only parameter, file_path, is fully described in the schema as 'Absolute path to the .dxf file', and schema coverage is 100%. The description adds no additional parameter-level meaning beyond naming the file type, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('all layers in a DXF file'), and specifies the returned properties (name, color, linetype, lineweight, on/frozen state). This clearly differentiates it from sibling tools aimed at blocks, entities, text, and dimensions.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as dxf_summary or dxf_get_layer_entities. The description implies utility when an agent needs layer names/properties, but it gives no exclusions or selection criteria.

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

dxf_summaryDXF File SummaryA
Read-onlyIdempotent

Return a high-level overview of a DXF file.

Includes DXF version, units, layer count, entity counts per type, block definitions, and drawing extents.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYesFileInput with file_path to the .dxf file.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds detail about what the summary includes, which is useful, but it does not disclose additional behavioral traits such as error handling, file-size risks, or performance characteristics. No contradiction with annotations.

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

Conciseness5/5

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

The description is compact and well-structured: a single clear opening sentence followed by a terse list of the included summary fields. Every sentence earns its place, and the most important information is front-loaded.

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

Completeness4/5

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

For a simple read-only summarization tool with one fully documented parameter, a safe annotation profile, and an existing output schema, the description is largely complete. It could strengthen routing by explicitly contrasting with sibling tools, but nothing critical is missing for an agent to invoke the tool correctly.

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

Parameters3/5

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

There is only one parameter, file_path, and the schema already documents it as 'Absolute path to the .dxf file' with 100% coverage. The description does not add extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description starts with a clear, specific verb and resource: 'Return a high-level overview of a DXF file.' It then enumerates the exact content areas (version, units, layer count, entity counts, block definitions, extents), making it unmistakably distinct from the more focused sibling tools like dxf_get_blocks or dxf_list_layers.

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

Usage Guidelines3/5

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

Usage is implied rather than explicit: the tool is for a high-level summary, while siblings provide detailed or entity-specific views. However, the description does not explicitly state when to choose this tool over alternatives or mention any exclusions, so the agent must infer the appropriate context from the wording.

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

TDQS

A3.6/5.0
Disambiguation4/5

The read-only dxf_ tools and editing cad_ tools are cleanly separated, and most tools target a distinct resource (layers, blocks, text, dimensions). However, dxf_get_text and dxf_get_dimensions overlap with dxf_get_entities_by_type, and dxf_get_layer_entities partially overlaps with the layer filter available on dxf_get_entities_by_type.

Naming Consistency4/5

Tool names consistently use a dxf_ or cad_ prefix to separate reading from editing, which is a clear pattern. Verb usage is a bit mixed—get, list, summary, create, delete, add, export—but the resource nouns are predictable and the pattern remains readable.

Tool Count4/5

17 tools is slightly above the ideal 3-15 range but reasonable for a CAD server that supports both reading and editing. The count is justified by the variety of entity types and file operations, though a few read tools feel redundant.

Completeness4/5

The server covers core DXF/DWG inspection workflows—layers, blocks, entities, text, dimensions, summary—and basic editing via adding and deleting entities plus layer creation. Notable gaps include modifying existing entities, creating a drawing from scratch, and inserting blocks, but the main read-and-annotate workflow is well supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Codemod3/CAD-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server