Files
autocad-mcp-pro/docs/superpowers/specs/2026-09-15-v1.6-roadmap-design.md
T
Umut CANandClaude Opus 5 3430573de1 docs: v1.6 roadmap decomposition and the Track A (P&ID) design spec
Research snapshot of the AutoCAD MCP field (20 READMEs, 2026-09-14), the
seven 1.6 tracks with measurable acceptance criteria, their order
(A -> E -> B -> G -> F -> H -> D), and the tool-pack decision.

Track A: symbol catalogue authored in code (ISO 10628-2 + ISA-5.1), two
generic contracts (block_define, entity_get/set_xdata), nine pid_* tools,
routing, the ISA-5.1 tag grammar, the pid_graph reader, six critique
focuses, TOOL_PACKS, and the test/evidence plan.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
2026-09-15 10:07:23 +03:00

15 KiB
Raw Blame History

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)

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 / .pspc files: 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 TAG attributes and named ports (position + direction).
  • Two new generic contracts: block_define(name, entities, attdefs) and entity_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 focuses pid_*; prompt_pid_diagram rewritten 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_settings extended (limits, grid, snap, ortho, polar, LTSCALE/PSLTSCALE, CANNOSCALE, INSUNITS/LUNITS/AUNITS) over a validated whitelist plus system_variable_describe.
  • page_setup_* with CTB selection, batch_plot; .dwt templates (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_spec does 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_extract from 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 through odafc when 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 over block_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, over boundary_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_spec one-call sheets; perf lane re-measured (criterion 7).
  • K · Human in the loop — user_pick_point, user_select (COM GetPoint / 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

  1. Tool packs. TOOL_PACKS (comma list; default all) with packs core, mech, pid, arch, plant3d, settings. A client advertises only the packs it uses; TOOL_PROFILE filters within enabled packs; DISCOVERY_MODE indexes every enabled pack; system_about reports packs; idle token cost is published per pack. Rationale: ~300 tools would push full to ~80k idle tokens — best-cad-mcp's most criticised trait.
  2. Dual-engine by default; @capability only 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.
  3. 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.
  4. Authored standards data is pinned by provenance tests (the fits.py pattern): symbol geometry, ISA letter tables, ISO 5457 frames, thread tables — each with a test a reader can check against the standard.
  5. 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.
  6. 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.
  7. 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.