autocad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AUTOCAD_MCP_BACKEND | No | 백엔드 선택 (file_ipc 또는 ezdxf) |
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 |
|---|---|
| drawingA | Drawing file management. Operations: create — Create a new empty drawing. data: {name?} open — Open an existing drawing. data: {path} info — Get drawing extents, entity count, layers, blocks. save — Save current drawing. data: {path?} (saves to path if given, else QSAVE) save_as_dxf — Export as DXF. data: {path} plot_pdf — Plot to PDF. data: {path} purge — Purge unused objects. get_variables — Get system variables. data: {names: [...]} undo — Undo last operation. redo — Redo last undone operation. |
| entityA | Entity creation, querying, and modification. Create operations: create_line — x1, y1, x2, y2, layer? create_circle — data: {cx, cy, radius}, layer? create_polyline — points: [[x,y],...], data: {closed?}, layer? create_rectangle — x1, y1, x2, y2, layer? create_arc — data: {cx, cy, radius, start_angle, end_angle}, layer? create_ellipse — data: {cx, cy, major_x, major_y, ratio}, layer? create_mtext — data: {x, y, width, text, height?}, layer? create_hatch — entity_id, data: {pattern?} Read operations: list — layer? → list entities count — layer? → count entities get — entity_id → entity details Modify operations: copy — entity_id, data: {dx, dy} move — entity_id, data: {dx, dy} rotate — entity_id, data: {cx, cy, angle} scale — entity_id, data: {cx, cy, factor} mirror — entity_id, x1, y1, x2, y2 offset — entity_id, data: {distance} array — entity_id, data: {rows, cols, row_dist, col_dist} fillet — data: {id1, id2, radius} chamfer — data: {id1, id2, dist1, dist2} erase — entity_id |
| layerA | Layer creation and management. Operations: list — List all layers with properties. create — data: {name, color?, linetype?} set_current — data: {name} set_properties — data: {name, color?, linetype?, lineweight?} freeze — data: {name} thaw — data: {name} lock — data: {name} unlock — data: {name} |
| blockA | Block definition, insertion, and attribute management. Operations: list — List all block definitions. insert — data: {name, x, y, scale?, rotation?, block_id?} insert_with_attributes — data: {name, x, y, scale?, rotation?, attributes: {tag: value}} get_attributes — data: {entity_id} update_attribute — data: {entity_id, tag, value} define — data: {name, entities: [{type, ...}]} |
| annotationA | Annotation: text, dimensions, and leaders. Operations: create_text — data: {x, y, text, height?, rotation?, layer?} create_dimension_linear — data: {x1, y1, x2, y2, dim_x, dim_y} create_dimension_aligned — data: {x1, y1, x2, y2, offset} create_dimension_angular — data: {cx, cy, x1, y1, x2, y2} create_dimension_radius — data: {cx, cy, radius, angle} create_leader — data: {points: [[x,y],...], text} |
| pidA | P&ID drawing with CTO symbol library. Operations: setup_layers — Create standard P&ID layers. insert_symbol — data: {category, symbol, x, y, scale?, rotation?} list_symbols — data: {category} draw_process_line — data: {x1, y1, x2, y2} connect_equipment — data: {x1, y1, x2, y2} add_flow_arrow — data: {x, y, rotation?} add_equipment_tag — data: {x, y, tag, description?} add_line_number — data: {x, y, line_num, spec} insert_valve — data: {x, y, valve_type, rotation?, attributes?} insert_instrument — data: {x, y, instrument_type, rotation?, tag_id?, range_value?} insert_pump — data: {x, y, pump_type, rotation?, attributes?} insert_tank — data: {x, y, tank_type, scale?, attributes?} |
| viewA | Viewport control and screenshot capture. Operations: zoom_extents — Zoom to show all entities. zoom_window — Zoom to window: x1, y1, x2, y2 get_screenshot — Capture current view as PNG image. |
| systemB | Server status and management. Operations: status — Backend info, capabilities, health check. health — Quick health check (ping backend). get_backend — Return current backend name and capabilities. runtime — Return process/runtime details for spawn diagnostics. init — Re-initialize the backend. execute_lisp — Execute arbitrary AutoLISP code (File IPC only). data: {code} |
| validateA | LLM 모호성 → Branch 후보 생성 → Constraint Tree prune → Deterministic 실행 순서 반환. Operations: branch — DesignIntent → Branch 후보 생성. data: {intent: {shape_type, params, features?}} check — Branch 후보들 → Constraint Tree 검증 (valid/pruned 분류). data: {branches: [...]} select — Valid Branch 중 best 선택 (min cost + semantic priority + hash). data: {valid_branches: [...]} pipeline — Intent 리스트 → branch/check/select 전 단계 한번에. data: {intents: [{shape_type, params, features?}, ...]} pipeline 반환 예시 (PASS): {ok: true, selected_branch: {branch_hash, total_cost, commands: [...]}, stats: {...}} pipeline 반환 예시 (FAIL — 모두 prune): {ok: false, all_pruned: true, failures: [{branch_hash, failed_node, reason, suggestion}]} selected_branch.commands 를 순서대로 entity/layer/... 툴에 실행하면 항상 동일한 input → 동일한 output 이 보장된다. |
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 9 tools
The top-level tools (layer, drawing, entity, block, annotation, pid, view, system, validate) are clearly distinct by domain. However, there is some overlap between entity.create_mtext and annotation.create_text, and between block.insert and pid.insert_symbol, but these are minor and descriptions clarify the context.
The tool names are single nouns, while operations inside them use a mix of simple verbs (list, create) and compound verbs with underscores (save_as_dxf, get_variables, insert_with_attributes). Naming is not consistently verb_noun across all tools, and read operations use inconsistent verbs (list, get, info).
The server has 9 top-level tools, well within the ideal 3-15 range. Each tool represents a clear domain, and the number of tools is proportionate to the wide scope of AutoCAD functionality covered.
The tool surface is extensive, covering drawing file management, layers, entity CRUD, blocks, annotations, P&ID, view control, and system operations. Minor gaps exist, such as no direct editing of annotations or renaming layers, but these can be worked around with existing tools.