CAD MCP Server
Click on "Install 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., "@CAD MCP ServerSummarize the CAD file drawing.dxf"
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.
CAD MCP Server
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.
ezdxfcannot 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 | shThen add the server in one line:
# Claude Code:
claude mcp add cad -- uvx --from git+https://github.com/Codemod3/cad-mcp cad-mcpFor 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 |
| Overview — version, units, layers, entity counts, extents |
| All layers with color, linetype, on/frozen/locked state |
| All entities on a specific layer |
| Filter by type (LINE, CIRCLE, TEXT, …), optional layer filter |
| Extract all TEXT and MTEXT annotations |
| Extract all DIMENSION annotations |
| List named block definitions |
| Inspect entities inside a block |
Edit (writes to a copy — your original is never touched)
Tool | What it does |
| Copy the original DXF/DWG to |
| Draw a line |
| Draw a circle |
| Draw an arc |
| Add a text label |
| Draw connected segments (LWPOLYLINE), optionally closed |
| Create a layer |
| Delete one entity by its handle |
| Convert the edited |
Editing model — safe by design:
Call
cad_create_editable_copyon your original → it returns the copy's path.Pass that copy path to every edit tool. Edits save in place and stack, so keep drawing on the same file.
Your original is never modified.
DWG can't be written directly, so edits always happen on the
.dxfcopy; runcad_export_dwgat the end if you need a.dwgback.
Requirements
Python 3.10+ (only for the manual install;
uvxhandles 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-mcp2. 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.txtOr install as a proper command (cad-mcp) via pip:
pip install .3. Verify it runs
python server.pyIt 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.jsonmacOS:
~/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, pointcommandat 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-mcpIf 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 teammatesThe 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:
Download for your OS: https://www.opendesign.com/guestfiles/oda_file_converter
Install it. Default Windows path:
C:\Program Files\ODA\ODAFileConverter <version>\ODAFileConverter.exeEnsure it's on your
PATH, or leave it at the default location whereezdxffinds 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 pytestTroubleshooting
Symptom | Fix |
Tools don't appear in the client | Use the absolute path to |
| The |
DWG tools error about ODA | Install the ODA File Converter and make sure it's on |
"Cannot edit a .dwg file in place" | Expected — run |
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 toolscad_add_arcAdd ArcA
Draw an arc on the editable copy and save it in place.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | CopyInput with file_path (original) and optional out_path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 DefinitionARead-onlyIdempotent
Return all entities inside a named block definition.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | BlockInput with file_path and block_name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 DefinitionsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | FileInput with file_path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 AnnotationsARead-onlyIdempotent
Extract all DIMENSION entities from the drawing.
Returns each dimension's measurement text, layer, and geometry points.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | FileInput with file_path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 TypeBRead-onlyIdempotent
Return all entities of a given DXF type (e.g. LINE, CIRCLE, TEXT, MTEXT).
Optionally filter by layer name.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | EntityTypeInput with file_path, entity_type, optional layer_name, limit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 LayerBRead-onlyIdempotent
Return all entities on a specific layer.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | LayerInput with file_path, layer_name, and optional limit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 DXFARead-onlyIdempotent
Extract all TEXT and MTEXT entities from the drawing.
Useful for reading annotations, labels, title blocks, and notes.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | FileInput with file_path. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 LayersARead-onlyIdempotent
List all layers in a DXF file with their properties.
Returns each layer's name, color, linetype, lineweight, and on/frozen state.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | FileInput with file_path to the .dxf file. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 SummaryARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes | FileInput with file_path to the .dxf file. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.
Geometry and CAD file metadata extraction for STL, OBJ, PLY, PCD, LAS/LAZ, glTF/GLB.
AI Hub for AEC — 50+ 3D formats, clash detection, ACC integration via Autodesk Platform Services.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables natural language control of AutoCAD drawings via LLMs like Claude, supporting drawing, layer management, and SQLite-backed entity analysis.
- AlicenseAqualityCmaintenanceEnables automated CAD operations via natural language, supporting both AutoCAD LT on Windows and headless DXF generation on any platform.8MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to control AutoCAD—draw, edit, query, layers, blocks, annotations, screenshots, plot to PDF—using plain language.2MIT
- AlicenseCqualityBmaintenanceEnables generating CAD files through DXF drafting and OpenSCAD operations, with natural-language planning via local Ollama.23MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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