io.github.blackmoon87/autocad-site-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
| Author | io.github.blackmoon87 |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 228 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"autocad-site-mcp": {
"url": "https://acad-qlae.onrender.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (19)
cad_new_drawingInitializes a fresh CAD drawing space, clearing existing entities and resetting layers.
Parameters:
name— string — Drawing filename, e.g. "Structural_Frame.dxf"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_add_layersCreates or configures CAD layers with custom colors (hex), linetypes (Continuous, Hidden, Center, Phantom), and lineweights (0.18, 0.25, 0.35, 0.50, etc.).
Parameters:
layers(required) — array — List of layer definitions to create
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_batch_add_entitiesFast batch insertion of multiple CAD entities (LINE, LWPOLYLINE, CIRCLE, ARC, ELLIPSE, XLINE, RAY, DONUT, SOLID, TRACE, WIPEOUT, SPLINE, ARRAY (associative rect/polar/path), MLINE (multiline), TABLE (title, header and data cells), IMAGE (picture embedded in the drawing), TEXT, MTEXT, DIMENSION, TOLERANCE, LEADER, HATCH (pattern or gradient), POINT, INSERT, POLYLINE3D). LINE, POINT and POLYLINE3D points take z.
Parameters:
entities(required) — array — Array of CAD entity definition objects
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_create_blockDefines a reusable Block containing geometric entities and optional attribute definitions (ATTDEF).
Parameters:
name(required) — string — Block name, e.g. "DOOR_900", "TITLE_BLOCK"entities(required) — array — Array of entity definition objects comprising the blockbasePoint— object — Insertion base pointattributes— array — Optional block attribute definitions
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_insert_blockPlaces an instance (INSERT) of a block into the drawing with transform scale, rotation, and attribute values.
Parameters:
name(required) — string — Name of the block to insertposition(required) — object — Insertion coordinatescale— number — Uniform scale factor (defaults to 1)attributes— object — Key-value map of attribute values for ATTDEF tagsrotationDeg— number — Rotation in degrees CCW
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_generate_parametricGenerates complex parametric structures: "structural_grid", "truss", "mechanical_flange", "gear", or "architectural_floorplan".
Parameters:
type(required) — string — Type of parametric structure to generateparams— object — Parameters specific to the structure (e.g. baysX, baysY, spacingX, span, height, teeth, module, rooms, etc.)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_run_commandsRuns AutoCAD command-line input in the current drawing, exactly as typed in the app. Statements are separated by ";" or newlines; inside a statement tokens are separated by spaces and the statement ends with Enter. Example: "LINE 0,0 100,0 100,50; CIRCLE 50,25 10; CHPROP ALL; C red; LAYMRG N DOORS; N WALLS Y; DRAWORDER ALL; F". Every statement ends with Enter, so keep the follow-up answers of one command step in the same statement ("CHPROP ALL; LA WALLS C red"; a question asked after Enter goes in the next statement: "LAYDEL N TEMP; Y"). Objects are selected with ALL or P (previous). Returns the command log and any problems. 3D: points x,y,z; 3DPOLY, ELEV, VIEW (Top, Front, SWiso ...), UCS. 3D solids: BOX, CYL, SPHERE, EXTRUDE, REVOLVE, UNION, SUBTRACT, INTERSECT, MASSPROP. Use cad_list_commands to see every command.
Parameters:
commands(required) — string — Command scriptselect— object — Optional Quick Select filter applied before the script; the commands then act on it (pre-selection, or P for previous). Example: { "type": "CIRCLE", "property": "radius", "op": "<", "value": 5 }. Properties: color, layer, linetype, lineweight, length, radius, area, text, height, blockname, measurement. Operators: =, <>, >, <, * (any). Text values accept * and ? wildcards. exclude: true inverts the filter.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_list_commandsLists every implemented AutoCAD command with its aliases and description. Optional filter matches the name, an alias or words in the description (for example "layer" or "dim").
Parameters:
filter— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_execute_scriptExecutes JavaScript to generate large or procedural geometry (loops, patterns, algorithms) without spending context tokens. Runs in a separate Node process that cannot write files, start programs or read anything outside the CAD sources; 30 s limit. Variables: CAD, M (CADMath), G (CADGeometry), E (CADEntities), S (CADState), D (CADDXF), L (CADLayouts), parametric, solid(recipe) (adds a 3D solid), console. Changes to the drawing are kept.
Parameters:
script(required) — string — JavaScript code to execute. Can call S.addEntity(), parametric.*, M.*, E.*, etc.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_open_dxfOpens an existing ASCII DXF file (AutoCAD R12 to 2018+) in place of the current drawing, so it can be edited with cad_run_commands and saved with cad_export_dxf. Returns counts, what was converted, and a warning listing objects that cannot be read (they would be missing from a saved file).
Parameters:
filePath(required) — string — Path of the .dxf file inside the server folder (CAD_MCP_OUTPUT_DIR, default: the server working directory), e.g. "plans/level1.dxf"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_export_dxfExports the current drawing to a standard AutoCAD 2000 (AC1015) ASCII DXF file compatible with AutoCAD, Civil 3D, SolidWorks, and LibreCAD.
Parameters:
filePath(required) — string — Path of the .dxf file inside the output folder (CAD_MCP_OUTPUT_DIR, default: the server working directory), e.g. "plans/level1.dxf"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_export_svgRenders the drawing or paper space layout to an SVG vector file for instant preview and inspection.
Parameters:
filePath(required) — string — Path of the .svg file inside the output folder (CAD_MCP_OUTPUT_DIR, default: the server working directory)background— string — Background color, e.g. "#ffffff" (default) or "#1e1e1e"
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_export_stlExports the closed 3D solids to a binary or ASCII STL file for 3D printing.
Parameters:
filePath(required) — string — Path of the .stl file inside the output folderids— array — Solid ids; default all solidsscale— number — Multiplier on the drawing units (default 1)binary— boolean — Default true; false writes ASCII
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_solidsInspects 3D solids: list (id, op, volume, bounds), measure (volume, area, centroid) or check (closed, curve error).
Parameters:
ids— array — Solid ids; default allfrom— integer — Start index; use the reply's next to pagelimit— integer — Solids per reply, 1 to 50 (default: as many as fit in 900 bytes)action— string — Default list
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_get_statsReturns comprehensive statistics of the current drawing: entity count, breakdown by type, layers, bounding box extents, blocks, and layouts.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_share_drawingShares the current drawing online via Cloudflare D1 storage (autocad.site). Returns view and edit URLs that can be shared with users or other agents.
Parameters:
name— string — Optional drawing name (defaults to current drawing name)apiUrl— string — Optional sharing API endpoint (default: "https://autocad.site")expiresDays— number — Expiration in days (e.g. 1, 7, 30; omit or 0 for never)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_open_sharedOpens a shared drawing from Cloudflare D1 storage into the current CAD session by its share ID or URL.
Parameters:
id(required) — string — Share ID (22 chars) or full URL, e.g. "https://autocad.site/?share=k7Qx..."apiUrl— string — Optional sharing API endpoint (default: "https://autocad.site")editToken— string — Optional edit token if not included in the URL fragment
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_update_sharedUploads and updates the current CAD session drawing to an existing shared drawing using its editToken.
Parameters:
id(required) — string — Share ID or full share URLeditToken(required) — string — Edit tokenapiUrl— string — Optional sharing API endpoint
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
cad_revoke_sharedRevokes and deletes a shared drawing from Cloudflare D1 storage using its ownerToken.
Parameters:
id(required) — string — Share ID or full share URLownerToken(required) — string — Owner token received when creating the shareapiUrl— string — Optional sharing API endpoint
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.