Power CAD MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POWER_CAD_LAUNCH | No | If 1, launch AutoCAD when it is not running | 0 |
| POWER_CAD_PROGID | No | COM ProgID list (comma-separated). Default order: AutoCAD.Application, .26 (2027), .25, .24 | |
| POWER_CAD_BACKEND | No | Backend to use: autocad / dxf / auto (AutoCAD on Windows, otherwise DXF) | auto |
| POWER_CAD_DXF_PATH | No | File to open/save at startup for the DXF backend | |
| POWER_CAD_WORKSPACE | No | Base folder for relative paths. Defaults to current folder. | |
| POWER_CAD_ALLOW_LISP | No | If 1, allow AutoLISP expressions in run_command (dangerous functions remain blocked) | 0 |
| POWER_CAD_ALLOW_COMMANDS | No | If 0, disable run_command | 1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cad_statusA | Report the active backend (AutoCAD over COM, or headless DXF), connection and open drawing. |
| new_drawingA | Create a new, empty drawing and make it active. |
| open_drawingB | Open an existing drawing and make it active. |
| save_drawingA | Save the active drawing (optionally under a new name). |
| get_drawing_infoB | Name, path, units, current layer, entity count and extents of the active drawing. |
| list_layersA | List layers with color, linetype and on/frozen/locked/current state. |
| create_layerB | Create a layer (or update it if it exists) and optionally make it current. |
| update_layerA | Change a layer's color/linetype, turn it on/off, freeze/thaw, lock/unlock or rename it. |
| set_current_layerA | Make a layer current; new entities without an explicit layer go there. |
| delete_layerC | Delete an unused layer. |
| draw_lineC | Draw a straight line segment. |
| draw_polylineB | Draw a polyline through the points (2D lightweight polyline; 3D if Z varies). |
| draw_rectangleA | Draw an axis-aligned rectangle (closed polyline) from two opposite corners. |
| draw_polygonA | Draw a regular polygon as a closed polyline. |
| draw_circleC | Draw a circle. |
| draw_arcB | Draw a circular arc counter-clockwise from start_angle to end_angle. |
| draw_ellipseC | Draw a full ellipse. |
| draw_pointC | Place a POINT entity. |
| add_textB | Add single-line text at the insertion point (left baseline). |
| add_mtextB | Add multiline text (MTEXT) with its top-left corner at the insertion point. |
| add_dimensionC | Dimension the distance between p1 and p2 (aligned, or linear/horizontal/vertical). |
| add_hatchC | Fill a closed boundary with a hatch pattern or solid fill. |
| draw_batchB | Create many entities in one call. Returns the created entity (or error) for every operation. |
| list_blocksA | List block definitions available for insert_block. |
| create_blockC | Define a new block from existing model-space entities. |
| insert_blockC | Insert a block reference. |
| list_entitiesB | List model-space entities with their geometry (filtered, up to |
| get_entityB | Get one entity's type, layer, color and geometry by handle. |
| delete_entitiesC | Erase entities. |
| move_entitiesB | Move entities by a displacement vector [dx, dy(, dz)]. |
| copy_entitiesB | Copy entities, offsetting the copies by a displacement vector. Returns the new entities. |
| rotate_entitiesB | Rotate entities about a base point. |
| scale_entitiesB | Scale entities uniformly about a base point. |
| mirror_entitiesA | Mirror entities across the line p1-p2 (keeps the originals unless delete_source). |
| offset_entityB | Create a parallel copy (OFFSET) of a line, arc, circle or polyline. |
| set_entity_propertiesB | Change an entity's layer, color, linetype or lineweight. |
| zoom_extentsB | Zoom the view to show the whole drawing. |
| zoom_windowA | Zoom the view to the window spanned by two corners. |
| run_commandA | Send raw input to the AutoCAD command line (AutoCAD backend only). Shell/script/loader commands are blocked; AutoLISP needs POWER_CAD_ALLOW_LISP=1. |
| export_drawingB | Export the drawing: AutoCAD → pdf/dwg/dxf/png/bmp/wmf; headless → dxf/png/pdf/svg. |
| render_previewA | Render the current drawing to a PNG image so you can check the result visually. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 41 tools
Each tool targets a distinct action+resource: drawing primitives, entity edits (move/copy/rotate/scale/mirror), and layer operations are cleanly separated. Minor overlap between create_layer (which also updates) and update_layer, and draw_batch vs individual draw_* tools, but boundaries remain readable.
Overwhelmingly consistent verb_noun pattern (draw_line, list_entities, create_layer, zoom_extents). Only minor deviations like cad_status (noun-first) and get_drawing_info break the otherwise predictable scheme.
41 tools is heavy for a single server, though CAD genuinely spans drawing, layers, blocks, entity editing, views and export so most tools earn their place. Still, the surface could be trimmed or further consolidated (e.g. more batch variants).
Strong lifecycle coverage: drawing setup, primitives, layer management, blocks, entity CRUD and transforms, viewing and export. Gaps like trim/extend/fillet and undo are notable but not blocking for core workflows.