CDT AutoCAD Provider
Summary: This MCP server lets an AI client drive AutoCAD natively — opening/creating drawings, drawing and editing geometry, managing layers/blocks/layouts/viewports, and committing work safely in transactions — with a headless DXF backend as an alternative.
Discovery & health:
help,system_status,system_capabilitiesfor self-introspection.Document lifecycle:
document_new,document_open,document_info,document_save,document_save_as,document_export_pdf(optional layout), plusdrawing_auditanddrawing_purgefor cleanup.Query the drawing:
object_list(paged, type/layer filters),object_get,object_count.Edit existing objects: set properties (color, layer, visibility, linetype), delete, move, copy, rotate, scale.
Create geometry: lines, circles, arcs, polylines, text, and hatches (pattern, scale, angle, boundary points).
Annotate: linear and aligned dimensions.
Layers: list, create (with color), set current.
Blocks: list, create from object IDs with a base point, insert (scale, rotation, layer).
Layouts & viewports: list/create/set-current layouts; create, list, scale, lock, and delete viewports.
Views: zoom extents, zoom window, and capture a screenshot.
Transactions & undo:
transaction_begin/commit/rollbackplusundo/redofor reversible work.
Caveats: The README advertises 87 tools but this schema exposes 50. Native acceptance is limited to AutoCAD 2027 x64 on Windows via COM (attach_only requires a running session); a headless ezdxf path exists with reduced capabilities. No arbitrary shell, AutoLISP, macro, or custom C# execution is exposed, and file access should be scoped to allowed roots.
Provides tools for interacting with AutoCAD and DWG/DXF drawings, including document creation and editing, entity manipulation, layers, blocks, layouts, viewports, zoom, screenshot capture, and PDF export.
Click on "Deploy 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., "@CDT AutoCAD Provider Open site_plan.dxf and list all layers"
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.
CDT-AutoCAD
Generic AutoCAD execution provider for Model Context Protocol (MCP) clients. It owns native CAD execution, state verification and recovery; engineering design rules belong to CDT_Engineer.
Provider 0.4.3 · Contract autocad-generic-v1 · 87 public tools.
Native acceptance is scoped to AutoCAD 2027 full on Windows x64. The headless DXF
lane has separate capabilities; other AutoCAD versions need their own acceptance.
Quickstart / MCP Client Configuration
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"cdt-autocad": {
"command": "uvx",
"args": ["cdt-autocad-provider"],
"env": {
"CDT_AUTOCAD_BACKEND": "com",
"CDT_AUTOCAD_COM_PROGID": "AutoCAD.Application.26",
"CDT_AUTOCAD_COM_ATTACH_POLICY": "attach_only"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"cdt-autocad": {
"command": "uvx",
"args": ["cdt-autocad-provider"]
}
}
}Related MCP server: AutoCAD 2024 MCP
Install and run
Use Python 3.12 and the platform lock from this checkout. On Windows:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install pip==26.1.2
.\.venv\Scripts\python.exe -m pip install -r pylock.windows.toml
.\.venv\Scripts\python.exe -m pip install --no-deps --no-build-isolation .
$env:CDT_AUTOCAD_BACKEND = 'com'
$env:CDT_AUTOCAD_COM_PROGID = 'AutoCAD.Application.26'
$env:CDT_AUTOCAD_COM_ATTACH_POLICY = 'attach_only'
.\.venv\Scripts\cdt-autocad.exe --transport stdioStart AutoCAD in the same interactive user/session first. attach_only refuses
when the application is unavailable. For headless use, install the Linux lock
where applicable and select CDT_AUTOCAD_BACKEND=ezdxf.
See reproducible installation.
Use safely
Discover
help,system_statusandsystem_capabilities.Bind native writes to
document_pidandexpected_parent_fp.Execute bounded semantic features, then inspect/query/measure the result.
Continue only after verified commit or rollback. Reconcile uncertain completion before retrying; timeout does not prove native cancellation.
Tool presence does not imply native strong-integrity support for every route. Configure allowed file roots; HTTP requires deployment-managed authentication. No arbitrary shell, AutoLISP, macro or caller-supplied C# execution is exposed.
Reference
Tool contract — callable surface and guarantees.
Documentation index — architecture, security and QA references.
License
Distributed under the open-source MIT License. See LICENSE, copyright, third-party notices and source provenance.
Available Tools
87 toolsartifact_sealA
Save the active drawing, require a clean persisted state, copy it to a content-addressed accepted artifact, and write a SHA-256 manifest for stable handoff provenance.
Side-effects: Saves document, writes artifact file and provenance manifest to disk. Disambiguation: Use at completion of milestone or deliverable handoff.
Inputs: destination_dir. Returns: object
batch_create_entitiesA
Create 1..10000 generic typed CAD primitives through the managed native bridge using caller-supplied document PID and predecessor fingerprint binding.
Side-effects: Creates multiple entities in active space with idle yields. Disambiguation: Use for high-throughput batch primitive creation; for single entities use entity_create_*.
Inputs: entities (required), document_pid (required), expected_parent_fp (required). Returns: object
batch_insert_blocksA
Insert 1..10000 persistent-PID-bound block references through the managed native bridge only when caller document PID and predecessor fingerprint still match.
Side-effects: Inserts block references across the drawing. Disambiguation: Use for bulk component placement; for single placement use block_insert.
Inputs: inserts (required), document_pid (required), expected_parent_fp (required). Returns: object
batch_transform_entitiesA
Transform 1..10000 persistent semantic PIDs with typed translate, rotate-Z, or uniform scale after caller document PID and predecessor fingerprint binding.
Side-effects: Mutates entity transforms in active drawing. Disambiguation: Use for bulk updates to existing entities; for single objects use object_move, object_rotate, or object_scale.
Inputs: transform (required), document_pid (required), semantic_pids (required), expected_parent_fp (required). Returns: object
block_createA
Create a named block definition by copying the specified existing objects around a WCS base point; source objects remain in their original space.
Side-effects: Creates BLOCK definition; original objects remain in space. Disambiguation: Creates reusable definition; does not insert an instance.
Inputs: name (required), object_ids (required), base_x, base_y. Returns: object
block_insertA
Insert an existing named block at a WCS point with XY scale and rotation in degrees, optionally assigning the new reference to a layer.
Side-effects: Adds INSERT entity to active space. Disambiguation: Inserts instance of existing block; use batch_insert_blocks for bulk placement.
Inputs: x (required), y (required), name (required), layer, +3 more. Returns: object
block_listARead-only
List named block definitions, excluding anonymous blocks, with base point, entity count, attribute-definition count, and xref status.
Side-effects: None. Read-only block definition query. Disambiguation: Use to discover available blocks before inserting.
Inputs: limit, offset, name_filter, include_xrefs, +1 more. Returns: result
dimension_alignedA
Create an aligned dimension from WCS extension points and a WCS dimension-line point, using the active drawing's dimension style.
Side-effects: Adds aligned DIMENSION entity. Disambiguation: Dimension line stays parallel to extension points regardless of angle.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +3 more. Returns: object
dimension_angularA
Create a typed angular dimension from one vertex, two WCS ray points, and a text point; invalid collinear rays are rejected before mutation.
Side-effects: Adds angular DIMENSION entity. Disambiguation: Use to dimension angles in degrees; rays must not be collinear.
Inputs: text_x (required), text_y (required), first_x (required), first_y (required), +5 more. Returns: object
dimension_diametricA
Create a typed diametric dimension from center/chord geometry and positive leader length using the active drawing dimension style.
Side-effects: Adds diametric DIMENSION entity. Disambiguation: Displays diameter; for arc radii use dimension_radial.
Inputs: chord_x (required), chord_y (required), center_x (required), center_y (required), +2 more. Returns: object
dimension_linearA
Create a linear dimension from WCS extension points and dimension-line point; rotation is degrees and placement uses drawing units.
Side-effects: Adds linear DIMENSION entity. Disambiguation: Use for orthogonal (0 or 90 deg) dimensions; for angled geometry use dimension_aligned.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +4 more. Returns: object
dimension_ordinateA
Create an X- or Y-ordinate dimension from a WCS definition point and leader endpoint with strict axis validation.
Side-effects: Adds ordinate DIMENSION entity. Disambiguation: Measures absolute distance from drawing origin or datum.
Inputs: leader_x (required), leader_y (required), definition_x (required), definition_y (required), +2 more. Returns: object
dimension_radialA
Create a typed radial dimension from center/chord geometry and positive leader length using the active drawing dimension style.
Side-effects: Adds radial DIMENSION entity. Disambiguation: Displays radius (R); for full circles prefer dimension_diametric.
Inputs: chord_x (required), chord_y (required), center_x (required), center_y (required), +2 more. Returns: object
document_configure_unitsA
Configure drawing insertion units, measurement system, linear format, and precision using a bounded typed schema.
Side-effects: Updates drawing system variables (INSUNITS, MEASUREMENT, LUNITS, LUPREC). Disambiguation: Use during drawing setup to guarantee unit consistency (e.g. millimeters).
Inputs: measurement, linear_format, insertion_units, linear_precision. Returns: object
document_dependenciesARead-only
Inspect external-reference dependencies for the active drawing and report contained, resolved, loaded, and completeness state.
Side-effects: None. Read-only dependency audit. Disambiguation: Use to audit required file dependencies (XREFs, images) before archiving or sealing.
Inputs: no named parameters. Returns: object
document_export_pdfA
Export the active document or selected layout to an allowed PDF path; this writes an artifact and may require live AutoCAD plotting capability.
Side-effects: Writes PDF artifact to disk. Disambiguation: Use for vector deliverable export; use view_screenshot for quick raster inspection.
Inputs: path (required), layout. Returns: object
document_infoARead-only
Read verified metadata for the active document, including path, units, counts, current space, backend, and detected AutoCAD release when available.
Side-effects: None. Read-only document query. Disambiguation: Primary document query tool for inspecting active file state.
Inputs: no named parameters. Returns: object
document_newA
Create a new active CAD document in the current backend session; refuses unsafe transaction state.
Side-effects: Changes active document session, creates unsaved drawing. Disambiguation: Use to start a clean drawing; use document_open to load existing DWG/DXF files.
Inputs: no named parameters. Returns: object
document_openA
Open an existing allowed DWG/DXF path as the active document; changes session state.
Side-effects: Changes active document session. Disambiguation: Use to load an existing drawing; use document_new to create a blank drawing.
Inputs: path (required). Returns: object
document_saveA
Save the currently bound document to its verified existing path, or delegate to SaveAs when path is supplied; success requires immediate persisted-clean readback.
Side-effects: Persists unsaved drawing changes to disk and clears dirty state. Disambiguation: Use document_save to persist changes in-place; use document_save_as to write to a new destination path.
Inputs: path. Returns: object
document_save_asA
Save the active document to an allowed DWG/DXF destination, verify the same bound path and immediate persisted-clean state, then update its document scope.
Side-effects: Writes drawing to new file path, updates document binding. Disambiguation: Use to fork or save drawing under a new name; use document_save for in-place save.
Inputs: path (required). Returns: object
drawing_auditA
Run the backend drawing-audit operation on the active document; live AutoCAD AUDIT may repair content and does not expose a machine-readable repair count.
Side-effects: Runs AutoCAD AUDIT command, fixes corrupted entity pointers. Disambiguation: Use after heavy edits or imports; use drawing_purge to remove unused definitions.
Inputs: no named parameters. Returns: object
drawing_extentsARead-only
Measure the current drawing-space WCS extents using the backend geometry engine without changing document objects.
Side-effects: None. Read-only bounding box query. Disambiguation: Returns WCS coordinates [min_x, min_y, max_x, max_y]; does not change view.
Inputs: no named parameters. Returns: object
drawing_purgeA
Purge unused drawing resources from the active document; this mutates document state and should be used only when removal is intended.
Side-effects: Deletes unreferenced layers, blocks, and styles from document database. Disambiguation: Use to clean up drawing before export; destructive to unused resources.
Inputs: no named parameters. Returns: object
entity_create_arcA
Create an ARC at a WCS center with positive radius; start_angle and end_angle are degrees and the result is a new drawing object.
Side-effects: Adds ARC entity to active space. Disambiguation: Use for circular arcs in degrees; for full circles use entity_create_circle.
Inputs: cx (required), cy (required), radius (required), end_angle (required), +3 more. Returns: object
entity_create_circleA
Create a CIRCLE at a WCS center with positive radius in drawing units, optionally on a layer/color, and return the new object identifier.
Side-effects: Adds CIRCLE entity to active space. Disambiguation: Use for full 360-degree circles; for circular segments use entity_create_arc.
Inputs: cx (required), cy (required), radius (required), color, +1 more. Returns: object
entity_create_lineA
Create a LINE from two WCS endpoints in drawing units, optionally on a layer/color, and return the new backend object identifier.
Side-effects: Mutates active drawing state, advances document fingerprint. Disambiguation: Use entity_create_line for discrete linear segments in WCS; use entity_create_polyline for joined multi-segment paths.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required), +4 more. Returns: object
entity_create_polylineA
Create a 2D lightweight polyline from WCS XY points in drawing units, optionally closed/layered/colored, and return the new object identifier.
Side-effects: Adds LWPOLYLINE entity to active space. Disambiguation: Use for continuous multi-segment paths, contours, or closed boundaries.
Inputs: points (required), color, layer, bulges, +3 more. Returns: object
entity_create_textA
Create TEXT at a WCS insertion point with drawing-unit height and rotation in degrees, optionally on a layer/color, and return its identifier.
Side-effects: Adds TEXT entity to active space. Disambiguation: Use for labels, callouts, and notes.
Inputs: x (required), y (required), text (required), color, +3 more. Returns: object
feature_executeA
Execute one complete generic feature as a feature-local logical transaction bound to caller-supplied document PID and predecessor fingerprint.
Side-effects: Mutates active drawing state atomically; rolls back on failure. Disambiguation: Preferred route for multi-step feature creation; rolls back cleanly if any action fails.
Inputs: actions (required), feature_id (required), document_pid (required), correlation_id (required), +2 more. Returns: object
hatch_createA
Create a hatch from a closed WCS XY boundary using pattern, scale, and angle in degrees; invalid or unsupported boundaries are refused.
Side-effects: Adds HATCH entity to active space. Disambiguation: Use to fill closed contours; boundary must be closed and coplanar.
Inputs: boundary_points (required), angle, color, layer, +2 more. Returns: object
helpARead-only
Return provider contract guidance, workflow rules, capability map, and refusal notes.
Side-effects: None. Read-only guidance query. Disambiguation: Use help for human/agent operating guidance; use system_capabilities for machine-readable JSON capability flags.
Inputs: no named parameters. Returns: object
layer_createA
Create a new layer with the requested AutoCAD color index; existing names are refused and the active layer is not changed.
Side-effects: Adds layer record to drawing layer table. Disambiguation: Refuses if layer already exists; use layer_update_state to modify existing layers.
Inputs: name (required), color. Returns: object
layer_listARead-only
List drawing layers with normalized names, colors, linetypes, visibility/frozen/locked state, and whether each layer is current.
Side-effects: None. Read-only layer query. Disambiguation: Use to inspect existing layers before placing entities.
Inputs: no named parameters. Returns: result
layer_set_currentA
Set an existing layer as the active document layer; this changes session drawing state but does not move existing objects between layers.
Side-effects: Changes current working layer for subsequent entity creation. Disambiguation: Does not modify existing entities; only sets active context.
Inputs: name (required). Returns: object
layer_update_stateA
Update allowlisted layer state such as on/off, frozen, locked, color, linetype, or lineweight; unsafe changes to the current layer are refused before mutation.
Side-effects: Modifies layer table properties. Disambiguation: Use to change layer visibility or styling across all entities on that layer.
Inputs: name (required), color, is_on, linetype, +3 more. Returns: object
layout_createA
Create a new paper-space layout by name; duplicate or empty names are refused and existing layouts are preserved.
Side-effects: Adds layout to drawing. Disambiguation: Creates blank sheet; viewports must be added separately with viewport_create.
Inputs: name (required). Returns: object
layout_listARead-only
List document layouts and identify the current layout; this is read-only and does not change active model/paper space.
Side-effects: None. Read-only layout query. Disambiguation: Use to discover printable sheets.
Inputs: no named parameters. Returns: object
layout_set_currentA
Switch the active document to an existing layout; this changes the operator's current model/paper-space context.
Side-effects: Changes operator active space context. Disambiguation: Switch between Model and paper layouts.
Inputs: name (required). Returns: object
metadata_getBRead-only
Read one schema-agnostic metadata namespace from a persistent semantic PID through the native bridge.
Side-effects: None. Read-only metadata query. Disambiguation: Use to retrieve engineering attributes attached to entities.
Inputs: namespace (required), semantic_pid (required). Returns: object
metadata_queryARead-only
Query a bounded schema-agnostic metadata namespace across the active native document, optionally matching one dotted JSON path to an exact JSON value.
Side-effects: None. Read-only metadata query. Disambiguation: Use to locate entities by engineering metadata rather than visual layers.
Inputs: namespace (required), path, limit, equals, +1 more. Returns: object
metadata_setA
Set one bounded schema-agnostic JSON metadata namespace only when caller document PID and predecessor fingerprint still match.
Side-effects: Attaches XData/extension dictionary metadata to entity. Disambiguation: Use to store engineering properties (part numbers, materials) on entities.
Inputs: value (required), namespace (required), document_pid (required), semantic_pid (required), +1 more. Returns: object
native_document_identity_initializeA
Explicitly initialize provider-owned persistent document lineage on the active empty drawing space, returning verified document PID and semantic fingerprint.
Side-effects: Writes persistent dictionary lineage to drawing, advances document fingerprint. Disambiguation: Use once on an empty drawing to bootstrap native tracking; refuses non-empty drawings.
Inputs: no named parameters. Returns: object
native_integrity_statusARead-only
Inspect the same-session managed native bridge and the exact active AutoCAD document binding, including persistent document PID and semantic fingerprint.
Side-effects: None. Read-only integrity query. Disambiguation: Use native_integrity_status to verify native C# bridge liveness and optimistic lock state; use system_status for overall provider status.
Inputs: no named parameters. Returns: object
object_copyA
Copy one object by WCS delta dx/dy/dz using drawing units and return the new entity identifier without deleting the source.
Side-effects: Creates a duplicate entity at the offset location. Disambiguation: Creates new object; use object_move to translate without duplication.
Inputs: dx (required), dy (required), object_id (required), dz. Returns: object
object_countARead-only
Count objects in the backend's current supported space with optional type and layer filters; no document geometry is modified.
Side-effects: None. Read-only entity count query. Disambiguation: Lightweight count check before fetching full object lists.
Inputs: type_filter, layer_filter. Returns: result
object_deleteA
Delete one object by backend object identifier from the active document; this is destructive and timeout uncertainty must be reconciled before retry.
Side-effects: Destructive deletion of entity from active drawing. Disambiguation: Destructive removal; use object_set_properties(visible=False) if temporary hiding is preferred.
Inputs: object_id (required). Returns: object
object_getARead-only
Read one object by backend object identifier and return normalized type, layer, color, visibility, geometry properties, and current-space metadata.
Side-effects: None. Read-only entity query. Disambiguation: Use for single entity inspection; use object_measure for calculated metrics.
Inputs: object_id (required). Returns: object
object_intersectionsARead-only
Compute exact supported intersections between two distinct objects with an explicit extension mode; unsupported solvers fail closed rather than approximate silently.
Side-effects: None. Read-only intersection solver. Disambiguation: Computes geometric intersection points with extend options.
Inputs: first_id (required), second_id (required), extend_mode. Returns: object
object_listARead-only
List objects from the backend's current supported space with optional type/layer filters and bounded pagination; returned IDs are backend object identifiers.
Side-effects: None. Read-only entity query. Disambiguation: Use for sequential browsing of objects; use object_query when spatial filtering or bounding box measurements are needed.
Inputs: limit, offset, type_filter, layer_filter. Returns: result
object_measureARead-only
Measure one object using the active backend's exact supported geometry API and return type-specific metrics plus WCS bounding box for deterministic verification.
Side-effects: None. Read-only measurement query. Disambiguation: Returns deterministic type-specific mathematical metrics.
Inputs: object_id (required). Returns: object
object_moveA
Move one object by WCS delta dx/dy/dz using drawing units and return the normalized updated entity; this mutates geometry.
Side-effects: Shifts entity coordinates in active drawing. Disambiguation: Use for translation; use object_rotate or object_scale for other transforms.
Inputs: dx (required), dy (required), object_id (required), dz. Returns: object
object_queryARead-only
Query a bounded object set by type/layer and optional WCS bounding window, returning normalized objects plus measured bounds so source-registration workflows do not need side-channel DXF export.
Side-effects: None. Read-only spatial query. Disambiguation: Preferred spatial query tool to find objects inside a bounding box.
Inputs: limit, max_x, max_y, min_x, +4 more. Returns: object
object_rotateA
Rotate one object around the supplied WCS base point by angle_deg in degrees; this mutates geometry in the active document.
Side-effects: Mutates entity geometry in active drawing. Disambiguation: Rotates geometry counter-clockwise in degrees; use object_scale to resize or object_move to translate.
Inputs: base_x (required), base_y (required), angle_deg (required), object_id (required). Returns: object
object_scaleA
Scale one object uniformly about the supplied WCS base point by a positive factor; this mutates geometry in the active document.
Side-effects: Mutates entity scale in active drawing. Disambiguation: Modifies entity size; use object_move to reposition.
Inputs: base_x (required), base_y (required), factor (required), object_id (required). Returns: object
object_set_propertiesA
Update selected properties of one object—layer, color, linetype, or visibility—while leaving unspecified properties unchanged.
Side-effects: Modifies entity visual properties. Disambiguation: Use to style entities; for spatial changes use object_move, object_rotate, or object_scale.
Inputs: object_id (required), color, layer, visible, +1 more. Returns: object
redoA
Redo the most recent reverted backend/document operation according to backend history semantics; refuses when no redoable state is available.
Side-effects: Re-applies reverted modification. Disambiguation: Single-step forward history navigation.
Inputs: no named parameters. Returns: object
solid_booleanA
Apply UNION, SUBTRACT, or INTERSECT between two distinct ACIS 3DSOLIDs and return post-operation volume, centroid, bounding box, and tool-consumption state.
Side-effects: Combines or cuts solids; consumes tool body. Disambiguation: Constructive solid geometry operation.
Inputs: operation (required), tool_handle (required), target_handle (required). Returns: object
solid_create_primitiveA
Create a native ACIS BOX, CYLINDER, SPHERE, CONE, TORUS, or WEDGE from typed numeric parameters; the live AutoCAD backend is required and an optional output layer is applied explicitly.
Side-effects: Adds 3DSOLID entity to drawing. Disambiguation: Primary tool for baseline solid shapes; use boolean operations to combine.
Inputs: kind (required), parameters (required), layer. Returns: object
solid_exportA
Export selected native ACIS solids to a contained SAT artifact using AutoCAD's typed Export API and return SHA-256 provenance; unsupported STEP/STL requests are refused rather than emulated unsafely.
Side-effects: Writes SAT file to disk. Disambiguation: CAD interchange for solid geometry.
Inputs: path (required), handles (required), format. Returns: object
solid_extrudeA
Create an ACIS 3DSOLID by extruding a closed planar profile by non-zero height and bounded taper angle; temporary regions are cleaned deterministically.
Side-effects: Creates 3DSOLID from profile; removes temp region. Disambiguation: Linear extrusion; use solid_revolve for rotational solids.
Inputs: height (required), profile_object_id (required), layer, taper_angle. Returns: object
solid_inspectARead-only
Inspect an ACIS 3DSOLID by handle and return layer, visibility, volume, centroid, and WCS bounding box; face-level topology is reported as unsupported when it cannot be proven through ActiveX.
Side-effects: None. Read-only solid inspection. Disambiguation: Physical and spatial verification of solids.
Inputs: handle (required). Returns: object
solid_revolveA
Create an ACIS 3DSOLID by revolving a closed planar profile around a non-degenerate WCS 3D axis by a non-zero angle within plus/minus 360 degrees.
Side-effects: Creates 3DSOLID by rotation. Disambiguation: Use for axisymmetric shapes (shafts, pulleys).
Inputs: axis_x1 (required), axis_x2 (required), axis_y1 (required), axis_y2 (required), +5 more. Returns: object
solid_sweepA
Create an ACIS 3DSOLID by sweeping a closed profile along a supported typed CAD curve path; unsupported path types are refused before opaque AutoCAD failures.
Side-effects: Creates 3DSOLID along trajectory. Disambiguation: Path-driven extrusion for pipes, ducts, rails.
Inputs: path_object_id (required), profile_object_id (required), layer. Returns: object
solid_transformA
Apply one typed 3D move, rotate, uniform-scale, or mirror operation to an ACIS solid; free-form matrices and arbitrary commands are not accepted.
Side-effects: Modifies solid position/orientation. Disambiguation: 3D spatial transformation for ACIS bodies.
Inputs: handle (required), operation (required), parameters (required). Returns: object
system_capabilitiesARead-only
Return the backend capability map used to plan calls before side effects; this tool has no CAD side effects.
Side-effects: None. Read-only capability query. Disambiguation: Use system_capabilities before calling mutations to check supported CAD operations.
Inputs: no named parameters. Returns: object
system_statusARead-only
Report provider runtime status, AutoCAD version/progid, transport, and generation metadata.
Side-effects: None. Read-only status query. Disambiguation: Use system_status to verify CAD connection and process health; use system_capabilities to inspect supported operations.
Inputs: no named parameters. Returns: object
transaction_beginA
Begin a backend-tracked transaction or undo scope on the bound document; nested depth is limited and document switching is blocked while active.
Side-effects: Starts undo group; blocks document switching. Disambiguation: Group multiple modifications into a single undoable unit.
Inputs: no named parameters. Returns: object
transaction_commitA
Commit the current backend-tracked transaction or undo scope for the bound document; refuses when no tracked transaction is active.
Side-effects: Finalizes undo group. Disambiguation: Completes transaction started by transaction_begin.
Inputs: no named parameters. Returns: object
transaction_rollbackA
Rollback the current backend-tracked transaction or undo scope for the bound document; this intentionally reverts mutations in that scope.
Side-effects: Destructive reversal of mutations within active transaction. Disambiguation: Reverts state back to transaction_begin.
Inputs: no named parameters. Returns: object
undoA
Undo the most recent available backend/document operation according to backend history semantics; refuses when no undoable state is available.
Side-effects: Reverts last modification. Disambiguation: Single-step backward history navigation.
Inputs: no named parameters. Returns: object
viewport_createA
Create a paper-space viewport on a named layout with center/size in paper units, WCS view target, and positive custom scale.
Side-effects: Adds VIEWPORT entity to active layout. Disambiguation: Requires active paper-space layout.
Inputs: width (required), height (required), layout (required), center_x (required), +4 more. Returns: object
viewport_deleteA
Delete a paper-space viewport by handle; pre-existing or unknown viewports require force=true because ActiveX cannot reliably identify the main viewport.
Side-effects: Destructive deletion of viewport from paper space. Disambiguation: Deletes viewport layout frame; pass force=True for unmanaged or preexisting viewports.
Inputs: handle (required), force. Returns: object
viewport_listARead-only
List paper-space viewports for one or all layouts with handle, geometry, target, scale, lock state, and backend-created ownership hint.
Side-effects: None. Read-only viewport query. Disambiguation: Inspect viewport handles, scales, and bounding boxes.
Inputs: layout. Returns: object
viewport_lockA
Set or clear DisplayLocked for a paper-space viewport by handle and return the verified lock state.
Side-effects: Sets DisplayLocked property on viewport. Disambiguation: Lock viewports to prevent accidental zoom changes during drafting.
Inputs: handle (required), locked. Returns: object
viewport_set_scaleA
Set a paper-space viewport's positive custom scale by handle and return the verified scale and derived view height.
Side-effects: Updates viewport magnification and view height. Disambiguation: Adjusts architectural/engineering scale (e.g. 1:50, 1:100).
Inputs: scale (required), handle (required). Returns: object
view_screenshotARead-only
Capture the live AutoCAD application window as PNG bytes; this is read-only and requires the live COM screenshot capability.
Side-effects: None. Returns raster PNG bytes. Disambiguation: Quick visual verification; use document_export_pdf for vector deliverables.
Inputs: no named parameters.
view_set_directionA
Set a normalized 3D model-space view direction from a WCS vector and zoom to extents; this may alter persisted view state even though it does not modify CAD geometry.
Side-effects: Rotates 3D viewpoint; drawing geometry unmodified. Disambiguation: Arbitrary 3D view angle; use view_set_preset for standard orthogonal/isometric views.
Inputs: dx (required), dy (required), dz (required). Returns: object
view_set_presetA
Apply an allowlisted orthographic or isometric 3D view preset such as se_isometric using typed direction vectors rather than free-text AutoCAD commands.
Side-effects: Changes viewpoint camera to preset angle. Disambiguation: Fast standard view alignment.
Inputs: preset. Returns: object
view_set_visual_styleA
Apply an allowlisted model-space visual style such as shades_of_gray through a bounded internal AutoCAD command mapping; arbitrary command text is never accepted from callers.
Side-effects: Modifies viewport rendering mode. Disambiguation: Changes shading and display mode.
Inputs: style. Returns: object
view_zoom_extentsA
Zoom the live AutoCAD view to drawing extents; this changes only the operator view and does not modify drawing geometry.
Side-effects: Changes current display camera; drawing geometry unmodified. Disambiguation: Frames full drawing; use view_zoom_window to zoom to a specific area.
Inputs: no named parameters. Returns: object
view_zoom_windowA
Zoom the live AutoCAD view to the supplied WCS XY window bounds; zero-area windows are refused and drawing geometry is unchanged.
Side-effects: Changes display window; drawing geometry unmodified. Disambiguation: Zooms to specific bounding area.
Inputs: x1 (required), x2 (required), y1 (required), y2 (required). Returns: object
xref_attachA
Attach or overlay one allowed DWG/DXF external reference with a bounded WCS transform and optional layer; source paths are canonicalized before AutoCAD side effects.
Side-effects: Attaches external drawing file to active document. Disambiguation: Use to reference external drawings; use block_insert for internal blocks.
Inputs: path (required), x, y, z, +7 more. Returns: object
xref_detachA
Detach one existing XREF definition from the active document; this is destructive to reference state.
Side-effects: Destructive removal of XREF definition and references. Disambiguation: Destructive; removes dependency from drawing.
Inputs: name (required). Returns: object
xref_listARead-only
List live AutoCAD external references with contained/resolved/loaded state while redacting paths that fall outside configured allowed roots.
Side-effects: None. Read-only XREF query. Disambiguation: Use to inspect external DWG attachments.
Inputs: no named parameters. Returns: result
xref_reloadA
Reload one existing XREF only when its resolved source remains inside configured allowed roots.
Side-effects: Updates referenced geometry from disk. Disambiguation: Use when an external file has been updated on disk.
Inputs: name (required). Returns: object
xref_unloadA
Unload one existing XREF definition without deleting it, preserving a reversible reference state.
Side-effects: Unloads XREF memory representation. Disambiguation: Reversible; use xref_detach for permanent removal.
Inputs: name (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 87 tools
Most tools have distinct resource/action scopes, and descriptions include explicit cross-references for close neighbors such as document_save vs document_save_as and xref_unload vs xref_detach. Some overlap remains between generic object transforms, solid_transform, batch_transform_entities, and feature_execute vs transaction tools, so an agent still needs careful selection.
Tools are overwhelmingly snake_case with resource-first naming such as object_move, layer_create, and solid_boolean, which is predictable across major groups. Minor deviations like help/undo/redo and mixed action ordering in names such as native_integrity_status or drawing_extents keep it from perfect consistency.
87 tools is far above the recommended 3-15 range and crosses the 50+ extreme-mismatch threshold. Although the tools are largely non-redundant, the surface is too large for efficient agent selection and would benefit from consolidation into higher-level operations.
The surface covers document lifecycle, layers, blocks, xrefs, layouts, viewports, objects, entity creation, dimensions, solids, metadata, transactions, and undo/redo, so core AutoCAD workflows are well covered. Gaps remain for deleting layers/blocks/layouts, closing documents, block attributes, and several common entity types, but agents can mostly work around them.
Maintenance
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
Read and edit the Revit 2024–2027 model on your PC. Needs the free Revit MCP add-in.
DXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables automation of AutoCAD LT and headless DXF creation through two backends (File IPC for Windows AutoCAD LT and ezdxf for cross-platform) with tools for drawing, entity, layer, block, annotation, PID, view, and system operations.813MIT
- FlicenseBqualityBmaintenanceNatural-language MCP bridge for AutoCAD 2024. Enables users to inspect and edit DWG drawings, manage layers, entities, layouts, styles, and system variables; draw 2D geometry and 3D solids; perform measurements and transactional edits; and export to DWG, STL, PDF, DWF, SVG, or raster formats through a local named-pipe connection.211-
- AlicenseCqualityCmaintenanceEnables MCP clients to create and edit technical drawings, manage layers and geometry, process GIS/research mapping data, generate previews and layouts, and automate AutoCAD documents on Windows through COM.225578 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to drive AutoCAD LT or headless DXF generation through natural-language requests, exposing consolidated tools for drawings, entities, layers, blocks, annotations, P&ID symbols, viewport screenshots, and AutoLISP execution.1MIT