AutoCAD MCP Pro
Provides comprehensive tools for automating AutoCAD, including drawing management, entity creation and modification, layer management, block operations, dimensioning, analysis, view control, transactions, and headless DXF file operations via COM or ezdxf backends.
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., "@AutoCAD MCP ProCreate a new drawing with a circle at origin radius 5"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AutoCAD MCP Pro
Production-grade AutoCAD automation for AI agents — live through COM on Windows, or headless through ezdxf on any platform.
One typed MCP contract controls two execution engines. Build and edit drawings, query exact geometry, apply engineering standards (ISO 128/129/286/1101), refine quality issues inside transactions, and deliver hashed artifacts with validation evidence.
v1.4 release snapshot: 131 tools · 6 resources · 5 prompt templates · 474 collected tests. Runtime discovery through
system_aboutis authoritative.
Install in 10 seconds
pip install autocad-mcp-pro # or: uvx autocad-mcp-pro
autocad-mcp # stdio MCP server, backend auto-selectedHeadless (no AutoCAD required, any OS) or live AutoCAD on Windows:
AUTOCAD_MCP_BACKEND=ezdxf autocad-mcp # portable DXF engine
AUTOCAD_MCP_BACKEND=com autocad-mcp # live AutoCAD (pip install "autocad-mcp-pro[com]")Extras: [com] live AutoCAD (pywin32 + Pillow), [pdf] PDF/screenshot
rendering (matplotlib), [full] everything. Working from a checkout is the
same commands with pip install -e ".[full]" and python server.py.
Related MCP server: multiCAD-mcp
Benchmarks
Every number below is generated by a script in benchmarks/
and rendered to SVG with Python (matplotlib). No hand-edited charts, no
adjectives.
The leaderboard — nine public AutoCAD MCP servers, one rubric
# | Project | Score | Evidence |
1 | U-C4N/Autocad-MCP (this repo, v1.4.0) | 95 | A |
2 | 84 | A | |
3 | 83 | A | |
4 | 74 | B | |
5 | 73 | A | |
6 | 70 | A | |
7 | 68 | B | |
8 | 35 | B | |
9 | 30 | C |
Fixed public 100-point rubric — CAD breadth (25), correctness and delivery
(20), backends/platforms (15), engineering production (15), tests and
maintenance (15), security and operations (10) — applied to the public source
and documentation of each project
(benchmarks/source_review.json, dated).
Stars and raw tool counts score nothing. Evidence grade A = source plus
locally executed evidence, B = deep source review without a full live run,
C = documented tool surface only. This is a source review, not a shared
live run — the lanes below are the runtime evidence.
python -m benchmarks.render_chart1 · Live-run scores — same harness, pinned competitors
Server | Pinned commit | Score | Pass | Coverage |
autocad-mcp-pro (this repo) | working tree | 100.0 | 10/10 | 100% |
| 50.0 | 5/10 | 50% | |
| 45.0 | 4/10 | 50% |
Ten fixed tasks, one runner, headless ezdxf lane. Competitors are driven
black-box over MCP stdio using their own documented tool contracts at the
pinned commit, and every geometry claim is verified by re-opening the exported
DXF with ezdxf inside the harness — no self-reporting. unsupported scores
zero in the fixed matrix; per-task reasons are committed under
benchmarks/results/published/. File-IPC
(live AutoCAD) lanes run locally, not in CI.
python -m benchmarks.run_competitors --server puran-water-autocad-mcp --backend ezdxf
python -m benchmarks.run_competitors --server beiming183-autocad-mcp --backend ezdxf
python -m benchmarks.render_live_chart2 · Task matrix — where the score comes from
The single score hides which capabilities exist, so the matrix shows every task against every server: green = verified pass, amber = partial, gray = the server documents no equivalent (planning, refinement, TABLE/MLEADER, hashed delivery), red = attempted but failed verification.
python -m benchmarks.render_matrix_chart3 · Headless performance — scale evidence
Workload | Wall time | Throughput / result |
Create 2,000 lines (individual calls) | 0.64 s | ~3,100 entities/s |
10,000 lines: build + DXF export + reopen | 13.9 s | ~700 entities/s end-to-end |
Region query over 10,000 entities | 3.4 s | 2,500 matched |
Premium pass (layers + part + dims + full critique) | 0.32 s | 0 issues |
Workloads call the same backend methods the MCP tools call, so server-side overhead is included. Self-measurement only — competitor servers would pay an extra stdio serialization cost that in-process runs do not, so no cross-server timing claims are made. Numbers move with hardware; the machine fingerprint is recorded in the report.
python -m benchmarks.perf_suite --out benchmarks/results/published/perf-ezdxf.json
python -m benchmarks.render_perf_chart4 · Version A/B — every release re-proves correctness
compare_versions.py runs the same 21 deterministic, headless correctness
checks against the previous release tag and the current tree — each check in
its own subprocess, so a hard crash counts as a miss instead of killing the
run.
v1.4.0 release gate (baseline v1.3.0, report:
ab-v1.3.0-vs-v1.4.0.json):
Version | Checks passing | Pass rate | Fixed | Regressed |
v1.3.0 (baseline) | 21 / 21 | 100 % | — | — |
v1.4.0 (this release) | 21 / 21 | 100 % | 0 | 0 |
v1.4.0 added CI, packaging, benchmarks, tool profiles, paper space, ISO 286 fits and opt-in 3D solids without breaking a single correctness check. For contrast, the same suite caught the v1.0.0 → v1.1.0 jump:
Version | Checks passing | Pass rate |
v1.0.0 (first public release) | 8 / 21 | 38.1 % |
v1.1.0 | 21 / 21 | 100 % |
python benchmarks/compare_versions.py v1.3.0 --json ab.jsonFull rubric, caveats, method and boundaries for every lane:
benchmarks/README.md.
What ships in v1.4
Area | Tools |
Drawing lifecycle | create, open, save, export DXF/PDF, audit, purge, undo/redo |
Geometry | lines, arcs, polylines, splines, hatches, trim/extend/fillet/chamfer, handle-preserving edits |
Annotation | ISO 129 toleranced dimensions, ISO 286 fits ( |
Engineering generators | involute gears (front + section A-A), DIN 6885 keyed bores, ISO A3 titleblock |
Paper space (new) |
|
3D solids (new, opt-in) |
|
Quality loop |
|
Delivery |
|
Discovery | tool profiles (new): |
The tool surface evolves — ask system_about for the live grouped inventory
and system_capabilities for per-backend support modes instead of copying
lists from this README.
Architecture
flowchart LR
A[MCP host / AI agent] --> B[FastMCP server]
B --> C[Error - audit - timing - logging middleware]
C --> D[Typed tool contract + tool profiles]
D --> E[COM backend]
D --> F[ezdxf backend]
E --> G[Live AutoCAD]
F --> H[Headless DXF]
E --> I[Engineering quality + delivery]
F --> Iserver.py— FastMCP surface, lifespan, middleware, resources, prompts.backends/base.py— shared typed contract + capability model.backends/com_backend.py— single-STA-thread COM executor with per-call timeouts.backends/ezdxf_backend.py—asyncio.to_thread-wrapped DXF engine with snapshot transactions.engineering/— standards-aware planning, generators, critique, scoring, fits, refinement, validation, delivery.security.py— path validation and command/AutoLISP sanitization.
Backend capabilities
Capability | COM backend | ezdxf backend |
Live AutoCAD document control | ✓ | — |
Headless DXF creation and editing | — | ✓ |
Cross-platform execution | — | ✓ |
Transactions and rollback | ✓ | ✓ |
Paper-space layouts + viewports | ✓ | ✓ |
Viewport model-content rendering | ✓ | — |
TABLE and MLEADER semantics | Native | Portable composite |
3D solids (opt-in) | ✓ | — (no headless ACIS) |
Screenshots | AutoCAD window | Matplotlib render |
Raw AutoCAD commands / AutoLISP | Opt-in | — |
system_capabilities returns this machine-readably (native, composite,
rendered, snapshot, shared, unsupported) — use it at runtime instead of
assuming.
A production drawing workflow
drawing_preflight → drawing_plan → drawing_apply_iso_layers
→ deterministic create/edit tools → dimension_auto (+ fit="H7" callouts)
→ drawing_critique → drawing_refine
→ layout_create + viewport_create → drawing_finalize → drawing_deliverConnect an MCP client
Claude Desktop / Cursor / any stdio host
{
"mcpServers": {
"autocad": {
"command": "autocad-mcp",
"env": {
"AUTOCAD_MCP_BACKEND": "auto",
"ALLOWED_PATHS": "C:\\Users\\you\\Documents\\AutoCAD",
"TOOL_PROFILE": "full"
}
}
}
}After pip install autocad-mcp-pro the autocad-mcp command is on PATH; from
a checkout use "command": "python", "args": ["path/to/server.py"]. The
model vendor is not part of the server contract.
Local HTTP
autocad-mcp --transport http --port 8000Loopback only by default; a non-loopback bind is refused unless remote HTTP is explicitly enabled and a bearer token is configured.
Configuration
Variable | Default | Purpose |
|
|
|
|
|
|
|
| Expose the opt-in |
|
| Python logging level |
| empty | Comma-separated absolute paths the server may access |
|
| Maximum retained undo snapshots |
|
| Reject larger DXF input; |
|
| Bound list/selection response sizes |
|
| Per-call live AutoCAD timeout (seconds) |
|
| Allow blocked commands/LISP; reported as unsafe mode |
|
| Permit a non-loopback HTTP bind |
| empty | Bearer token required for remote HTTP |
Security model
Tool input is treated as untrusted:
every path passes traversal + allowed-root validation;
dangerous AutoCAD commands and AutoLISP channels are blocked by default, with regression tests for known bypass patterns;
remote HTTP requires explicit opt-in plus a bearer token;
DXF size, response sizes, undo history and COM call duration are bounded;
audit middleware records tool timing and failures;
system_status/system_aboutexposeunsafe_modewhen dangerous operations are enabled.
Please report vulnerabilities privately via GitHub rather than public issues.
Development
pip install -e ".[full]"
pip install pytest pytest-asyncio pytest-cov ruff build
python -m pytest # 474 tests
python -m ruff check . && python -m ruff format --check .
python -m buildCI runs the same gates on Linux (3.11/3.12), Windows (mocked-COM suite),
plus package, Docker and MCP-registry-schema jobs. Releases are tag-driven:
git tag vX.Y.Z && git push origin vX.Y.Z builds, publishes to PyPI and cuts
the GitHub Release. See
docs/RELEASE-DISTRIBUTION.md.
Repository map:
server.py FastMCP surface and orchestration
config.py Environment-driven settings
security.py Path, command, and AutoLISP guards
version.py Canonical package version
backends/ COM and ezdxf implementations
engineering/ Standards, generators, critique, fits, delivery
benchmarks/ Runners, adapters, published reports, chart renderers
tests/ Headless, mocked-COM, contract, and security testsRoadmap (1.5)
Screenshot overlay + handle grounding, ezdxf redo (forward snapshots), COM
block_create_from_entities, ISO 286 transition/interference hole letters
(delta rule), titleblock on paper-space layouts. Features are published when
their contracts and limitations are testable — not when they make a longer
checklist.
Contributing
Pull requests are welcome — especially reproducible competitor adapters, mocked/live COM coverage, engineering standards, and backend parity. For a large change, open an issue first so the tool contract and evidence plan can be agreed before implementation.
Author
Umutcan Edizsalan · Mechanical engineering work at Anka-Makine · GitHub @U-C4N
Built from production drawing work, then made model-agnostic through MCP.
License
mcp-name: io.github.u-c4n/autocad-mcp
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 Servers
- Alicense-qualityDmaintenanceEnables AI agents to interact with AutoCAD through Python automation to draw geometric shapes like lines, circles, and polylines in real-time. It facilitates direct control of a running AutoCAD instance on Windows for basic geometric element creation.Last updated5MIT
- Alicense-qualityCmaintenanceControls CAD applications (AutoCAD, ZWCAD, etc.) via AI assistants through the Model Context Protocol, enabling drawing, layer management, and automation through natural language or direct tool calls.Last updated72Apache 2.0
- Alicense-qualityCmaintenanceEnables automated CAD operations via natural language, supporting both AutoCAD LT on Windows and headless DXF generation on any platform.Last updatedMIT
- Alicense-qualityCmaintenanceEnables LLMs like Claude to create and edit AutoCAD drawings via natural language, supporting both headless DXF generation and live AutoCAD LT connection through file-based IPC.Last updatedMIT
Related MCP Connectors
DXF drawings for AI agents: structured facts, PNG renders, and an interactive in-chat viewer.
Deterministic AI agent microtools, no accounts/API keys. fetch_extract: 98% token cut. 38 tools.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/U-C4N/Autocad-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server