The v1.6 roadmap in five tracks: 154 -> 247 registered tools in 28 groups. Evidence re-measured for the release: - correctness A/B against v1.5.1: 26/48 -> 48/48, 22 fixed, 0 regressed (ab-v1.5.1-vs-v1.6.0.json, replacing the -dev report); - the reference adapter on matrix v7: 21/21 (autocad-mcp-pro.json, which was the v3 run of 1.5); the published-report test follows it to v7; - the 100-point rubric re-scored per category, every withheld point named: 93 (the competitor rows are their July snapshots, not re-reviewed); - the perf lane as medians of five alternating runs, beside a v1.4.0 comparison on one interpreter (perf-v1.4.0-vs-v1.6.0.json). Two roadmap criteria are not green, and the changelog, the README and the roadmap say so: criterion 5 is withdrawn (track D, Plant 3D, dropped) and criterion 7 is not met (creation 1.25x / 1.38x v1.4.0's time, still 1.17x / 1.20x with the timeout off). Carried to 1.7. README rewritten for 1.6: what is new, the mechanical and architectural sheets, the rubric and task-matrix charts, the measured limits (including the four feature tables that ship empty), and the 1.7 roadmap. server.json describes the 1.6 surface and declares TOOL_PACKS. CLAUDE.md corrects the ISO 286 letter set and the empty feature tables. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
16 KiB
AutoCAD MCP Pro v1.6.0 — Roadmap and decomposition
Date: 2026-09-15 · Status: decomposition approved; every track below gets its own design spec and implementation plan before code · Baseline: v1.5.1 (154 registered tools, 19 groups, 1369 tests)
Status at release (1.6.0, 2026-09-25). Tracks A, E, B, G, F and H shipped: 247 registered tools in 28 groups. Criteria 1–4, 6 and 8 are met. 1 and 3 are the
pid_roundtripandmech_assemblybenchmark tasks; 2 is the foreign-P&ID fixture test; 4 is the three topology focuses plus the correctness checkdiff_detects_known_edits, on synthetic revisions rather than the README hero sheet; 6 isab-v1.5.1-vs-v1.6.0.json(48 / 48, 0 regressions); 8 is the per-category rubric inbenchmarks/source_review.json(93). Criterion 5 is withdrawn: track D was dropped because the maintainer does not use Plant 3D. Criterion 7 is not met: creation is 1.25× and 1.38× v1.4.0's time (perf-v1.4.0-vs-v1.6.0.json), still 1.17× and 1.20× with the timeout off, and it moves to 1.7. §4's rule that 1.6.0 waits for every criterion was set aside for these two by the maintainer's decision to release.
1. Goal
An LLM driving this server can — without guessing coordinates, to a named standard, and with the result verified by the server itself —
- (A) draw a P&ID and read one back as a graph, instrument index and line list;
- (B) produce a complete machine-part / assembly sheet (views, sections, standard parts, symbols, BOM, balloons);
- (C/H) understand an existing or foreign drawing (topology, standards, revision diff);
- (D) query an AutoCAD Plant 3D project read-only;
- (E) control AutoCAD's own settings (styles, page setup, templates, preferences, documents);
- (F) draft an architectural floor plan and read rooms back from one.
The bar is "best in every category, and evidenced" — not the longest checklist. Features ship when their contracts and limitations are testable (README, "Roadmap (1.6)").
Success criteria (measured, not asserted)
| # | Criterion | Where it is measured |
|---|---|---|
| 1 | pid_roundtrip: a three-equipment P&ID drawn with the tools is read back by pid_graph with the expected edge count, zero dangling lines, a correct instrument index and line list; drawing_critique returns 0 issues; drawing_finalize score ≥ 90 |
new benchmark task + correctness suite |
| 2 | A foreign P&ID (plain blocks + TAG attributes, no catalog) yields a graph whose every node carries a confidence < 1.0 — no fabricated certainty |
unit test on a hand-authored fixture |
| 3 | mech_assembly: a flange-coupling / bearing-housing style sheet (views + section + BOM + balloons + ISO 129 dims) from generators; critique 0 issues; score ≥ 90 |
new benchmark task |
| 4 | Topology DRC parity with beiming v4 (DANGLING_ENDPOINT, NEAR_MISS, INTERIOR_CROSSING) and drawing_diff on two revisions of the README hero sheet |
tests + benchmark task |
| 5 | Plant 3D line list / BOM / weld list correct on a synthetic .dcf fixture built from the public projects' schema, and manually checked against the three public projects |
tests + scripts/verify_plant3d_public.py |
| 6 | Correctness A/B vs v1.5.1: zero regressions (python benchmarks/compare_versions.py v1.5.1) |
release gate |
| 7 | Headless creation throughput back to v1.4.0 numbers (timeout armed only where a call can block) | perf lane |
| 8 | Re-score on the 100-point rubric in benchmarks/source_review.json ≥ 90 with evidence per category, published next to the competitor rows |
docs |
2. Competitive research (snapshot 2026-09-14)
Method: gh search repos / gh api over GitHub, 20 READMEs read in full
(Firecrawl was unavailable — HTTP 402). Stars as of the snapshot.
| Repository | ★ | What it has that v1.5.1 does not |
|---|---|---|
| puran-water/autocad-mcp v3.1 | 506 | pid tool (insert_valve/pump/tank/instrument, draw_process_line, connect_equipment, add_line_number) — bound to the commercial CAD Tools Online symbol library at C:\PIDv4-CTO\; 8 consolidated tools; freehand AutoLISP |
| LokmenoWer/best-cad-mcp v1.6 | 16 | 322 tools (profiles 114/215/322). Drawing understanding: CAD-IR, semantic objects and graphs, dimension binding, constraint checks; CADPlan dry-run; BOM + balloons; image-to-CAD tracing; VLM grounding with pixel/world mapping. COM-only |
| beiming183-cloud/AutoCAD-MCP v4.0 + AutoCAD-skills | 7 + 7 | Native .NET transaction worker; topology DRC (DANGLING_ENDPOINT, NEAR_MISS_CONNECTION, INTERIOR_CROSSING), view-source consistency, plot-scale truth; product/industrial features; the skill expects threads, springs, bearings, splines |
| varavista/autocad-mcp v5.0 | — | xref (attach/detach/reload/bind), validate (connectivity, orphans, duplicates, qc_report), export (BOM, data_extract, Excel), electrical (NEC calcs, panel schedule, wire numbers), titleblock_fill, batch_plot, page_setup, natural-language commands |
| john0909/ZWCAD-Mechanical-MCP | 13 | 37 tools: manage_bom / create_partlist, insert_balloon, manage_frame, manage_title_block(set_field), query_dimensions, manage_style (layer/linetype/textstyle/dimstyle), manage_xdata, manage_dictionary, manage_document |
| Romeraaa/autocadplant3d-mcp | 1 | Plant 3D project queried read-only through its SQLite files (.dcf, .pspc): line list, component list, BOM, pipe lengths, weld list, bolt/gasket list, validate_specs, find_untagged — no .NET plugin, no open session |
| AnCode666/multiCAD-mcp | — | Multi-CAD COM (AutoCAD/ZWCAD/GstarCAD/BricsCAD), multi-document switching, Excel export |
| thepiruthvirajan/autocad-mcp-server | 62 | Walls, doors, windows, building structures over COM |
| xstaar/autocad-mcp | 6 | YQArch architectural add-on, 684 commands |
| OmniZenRaj/dxf-mcp | 0 | Read-only DXF: BOM from block attributes, check_standards (required/forbidden layers, units) |
| mattmohandiss/cad-mcp-server | 5 | STEP inspection, DFM checks, diff_step revision compare (OCCT) |
| daobataotie/CAD-MCP | 547 | Basic COM drawing over three CAD brands; NL command parsing — stars, not capability |
| mixelpixx/KiCAD-MCP-Server | 2246 | Not AutoCAD; the most-starred CAD MCP, shows the ceiling of the category |
P&ID ecosystem outside MCP:
- Coldbari/IPD-Studio (25★) defines "intelligent P&ID": ISA-5.1 tag parsing
(
FIC→ Flow Indicating Controller), loop derivation, instrument index and line list generated from the model, 16 line classes, off-page connectors, live validation (duplicate/missing/illegal tags, dangling lines, incompatible connections), DEXPI-shaped XML, R12 DXF export. - process-intelligence-research/pyDEXPI (222★) — DEXPI 1.3 data model in Pydantic, Proteus XML loader, NetworkX graph. AGPL-3.0: cannot be a dependency of an MIT server. DEXPI export is therefore out of 1.6.
- Public Plant 3D projects with real
.dcf/.pspcfiles:Aggie-Propulsion-Lab/Mu-Propellant-Feed(Piping.dcf 397 KB, ProcessPower.dcf 1.0 MB, 30 spec sheets),bnguyen07/AutoCAD("Project 1"),marianabucsa/University(Lab10). None carries a licence, so they are schema sources only — never committed; tests run on a synthetic fixture generated by our own script with the same schema.
Today's P&ID support in v1.5.1 is a prompt template (prompt_pid_diagram) that
tells the model to hand-draw pumps as circle + triangle — the "no coordinate
guessing" rule, violated by our own prompt.
3. Tracks
Each track: scope · not in 1.6 · headline evidence. Detailed designs live in
their own specs (2026-MM-DD-v1.6-<track>-design.md).
A · P&ID — expert and reader (engineering/pid/)
- Symbol catalogue authored in code (ISO 10628-2 equipment and valves,
ISA-5.1 instrumentation): ~41 base symbols, valve × actuator variants, 4 × 5
instrument-bubble variants, parametric vessels; every symbol a real block
with
TAGattributes and named ports (position + direction). - Two new generic contracts:
block_define(name, entities, attdefs)andentity_get/set_xdata. pid_symbol_list/insert,pid_line_draw(port-to-port orthogonal routing, ISA-5.1 line classes → layer/linetype/marker, line numbers),pid_tag_parse(ISA-5.1 grammar),pid_graph,pid_instrument_index,pid_line_list,pid_equipment_list,pid_from_spec; critique focusespid_*;prompt_pid_diagramrewritten onto the tools.- Not in 1.6: DEXPI export, ISA-5.2 logic symbols, obstacle-avoiding routing, cross-file off-page links (same-file layouts only).
- Evidence: criteria 1 and 2.
E · AutoCAD settings and environment
dimstyle_*,textstyle_*,mleaderstyle_*,tablestyle_*(ISO-25 / ISOCPEUR authored, both engines);drawing_settingsextended (limits, grid, snap, ortho, polar, LTSCALE/PSLTSCALE, CANNOSCALE, INSUNITS/LUNITS/AUNITS) over a validated whitelist plussystem_variable_describe.page_setup_*with CTB selection,batch_plot;.dwttemplates (drawing_new(template=), bundled ISO A3-mech / A1-arch / A3-P&ID).- COM-only, refused headlessly:
system_preferences_get/set,drawing_properties(DWGPROPS),document_list/activate/close,system_launch. Both engines:layer_state_*,view_named_*,ucs_*. - Evidence: settings round-trip tests both engines; a page-setup PDF whose mediabox is read back (beiming's "plot-scale truth").
B · Mechanical 2D — the complete part drawer (engineering/mech/)
- Standard parts as generators: ISO 4014/4017 bolts, ISO 4032 nuts, ISO 7089 washers, ISO 4762 cap screws, ISO 6410 thread representation, DIN 471/472 ring grooves, DIN 509 undercuts, DIN 332 centre holes, ISO 15 / ISO 8826 bearings, ISO 3601 O-ring grooves.
- Part generators from one parameter source:
shaft_draw(steps, chamfers, fillets, keyways, threads, grooves → front view + section + auto dims),plate_draw(outline + holes/slots/pockets → front + side, hidden lines for through features),flange_draw;mech_part_from_specdoes the whole sheet in one call. - Annotation symbols: surface texture ISO 21920-1 / ISO 1302, welding ISO 2553, centre marks and centrelines, section line A-A, detail view; material hatch map (ISO 128-50).
- BOM / parts list ISO 7573 with balloons;
bom_extractfrom block attributes;data_extract→ CSV/XLSX. - Not in 1.6: a general 3D → 2D projection kernel (views come from generators, not from arbitrary solids), splines DIN 5480, springs.
- Evidence: criterion 3.
G · Sheet and delivery standard
sheet_frame_iso5457(size)with zone letters, centring and trimming marks; A4–A0 title blocks (ISO 7200); revision block +revision_add(with revcloud);xref_attach/bind/reload/detach;image_attach(raster underlay); headless real DWG throughodafcwhen the ODA converter is installed, refused otherwise.- Evidence: frame geometry pinned against ISO 5457 tables; xref round-trip.
F · Architectural 2D (engineering/arch/)
arch_grid,arch_wall(thickness, justification, corner clean-up),arch_door(opens the wall, leaf + swing),arch_window,arch_stair,arch_room_label(area measured, not typed),arch_north_arrow,arch_section_mark,arch_schedule(doors|windows|rooms); furniture and sanitary block catalogue overblock_define; ISO 13567 layers (existing), ISO 4157 numbering, ISO 7519 / ISO 128-23 line rules, annotative text at 1:50 / 1:100.- Reader:
arch_room_detect— rooms and an area schedule from a foreign plan, overboundary_trace. - Not in 1.6: AutoCAD Architecture / Revit objects, 3D walls, IFC.
- Evidence: a two-room plan drawn, read back, schedule matches.
H · Understanding and QA
- Topology DRC as critique focuses:
dangling_endpoint,near_miss,interior_crossing,overlap,zero_length;check_standards(required/forbidden layers, units, text heights, dim styles);query_dimensions;drawing_scan(view clusters, title block, tables);drawing_diff(a, b)by handle and geometry digest. - Evidence: criterion 4.
D · Plant 3D, read-only (plant3d/)
- SQLite reads of
.dcf/.pspc:plant3d_list_projects/detect_project,line_list,component_list,bom,pipe_length,weld_list,bolt_gasket_list,validate_specs,find_untagged. Never writes. - Evidence: criterion 5.
Cross-cutting (inside the tracks above)
- I · Speed — per-call timeout armed only where a call can block;
*_from_specone-call sheets; perf lane re-measured (criterion 7). - K · Human in the loop —
user_pick_point,user_select(COMGetPoint/GetSelection),system_prompt_message; refused headlessly. - L · Knowledge resources — MCP resources for authored standard tables
(
autocad://standards/iso286,isa51_letters,layers/{set},pid/symbols): zero tool-budget cost.
4. Order and dependencies
A → E → B → G → F → H → D.
- A first: the loudest gap (three rivals ship
pid, we ship a prompt), and it builds the block/port/graph infrastructure F reuses. - E second, small: B and F need ISO dimstyles, text styles and templates.
- B before F: the existing engineering package, critique and score are mechanical-shaped — proven pattern, deepened.
- G before F: frames, title blocks and revision block serve every sheet.
- H after the drawing tracks so the DRC has three domains to run against.
- D last: isolated, read-only, no shared code.
Each track = its own spec → plan → implementation → CHANGELOG entry. 1.6.0 is
released once every track's criterion is green; pre-release tags (1.6.0a1…)
after each track are optional and decided at that point.
5. Cross-cutting decisions
- Tool packs.
TOOL_PACKS(comma list; defaultall) with packscore,mech,pid,arch,plant3d,settings. A client advertises only the packs it uses;TOOL_PROFILEfilters within enabled packs;DISCOVERY_MODEindexes every enabled pack;system_aboutreports packs; idle token cost is published per pack. Rationale: ~300 tools would pushfullto ~80k idle tokens — best-cad-mcp's most criticised trait. - Dual-engine by default;
@capabilityonly for real engine boundaries (unchanged rule). Every COM path added in 1.6 is executed once against the live AutoCAD on the author's machine and recorded in the changelog; "written against the ActiveX reference, never executed" is no longer an acceptable final state where AutoCAD is available. - Every tool has an alias-corpus entry, a docstring, tests on both engines (fake-ActiveX for COM), and refusals that were measured rather than assumed.
- Authored standards data is pinned by provenance tests (the
fits.pypattern): symbol geometry, ISA letter tables, ISO 5457 frames, thread tables — each with a test a reader can check against the standard. - Benchmarks. Each track adds a task to the matrix; competitor reports are
never back-filled (chart shows
not run). The correctness suite grows per track and the A/B gate runs against v1.5.1. - Domain packs must not degrade other domains: every new critique focus returns nothing on a drawing with no entities of its domain, so a mechanical sheet is not scored on P&ID rules and vice versa.
- No licence contamination: pyDEXPI (AGPL) and the CTO library (commercial) are excluded; public Plant 3D projects are schema sources only.
6. Explicitly out of 1.6
Electrical schematics IEC 60617 (1.7 — cheap once A's symbol/graph infrastructure exists), DEXPI export, image-to-CAD tracing, a STEP/3D kernel, a bundled VLM judge, BricsCAD/ZWCAD/GstarCAD verification, Plant 3D writes, ISA-5.2 logic symbols, Revit/IFC.