Skip to main content
Glama
ks40-academy

autocad-mcp

by ks40-academy

AutoCAD MCP Server

Máy chủ MCP cho tự động hóa AutoCAD LTtạo DXF headless.

Hai backend, một API:

Backend

Runtime

Cần AutoCAD?

Screenshot

File IPC

Windows Python

Có — AutoCAD LT 2024+ (Windows)

Win32 PrintWindow

ezdxf

Mọi nền tảng

Không (headless)

matplotlib render

Server cung cấp 8 công cụ chính (drawing, entity, layer, block, annotation, pid, view, system) thông qua MCP stdio transport.

Một MCP client (Claude Desktop, Claude Code, v.v.) có thể kết nối và điều khiển AutoCAD bằng yêu cầu ngôn ngữ tự nhiên.


Prerequisites (Backend File IPC)

Yêu cầu:

  • Windows 10/11
    (Backend File IPC dùng Win32 API để gửi message tới cửa sổ mà không cần focus)

  • AutoCAD LT 2024 trở lên
    AutoLISP được hỗ trợ từ LT 2024 trên Windows.

    ⚠ AutoCAD LT cho Mac không hỗ trợ AutoLISP.

  • Python 3.10+
    (Python chạy native trên Windows — không dùng WSL Python)

  • uv package manager

Cài đặt:

https://docs.astral.sh/uv/getting-started/installation/


💡 Backend ezdxf headless chạy được trên:

  • Linux

  • macOS

  • WSL

không cần AutoCAD, chỉ dùng để tạo file DXF offline.


Quick Start

1. Clone và cài đặt

git clone https://github.com/ks40-academy/autocad-mcp.git
cd autocad-mcp
uv sync

2. Load LISP dispatcher trong AutoCAD LT

Mở AutoCAD LT và load file:

mcp_dispatch.lsp

bằng lệnh APPLOAD

Các bước:

  1. APPLOAD trong command line

  2. Chọn file

<repo>/lisp-code/mcp_dispatch.lsp
  1. Nhấn Load

Nếu thành công sẽ thấy:

=== MCP Dispatch v3.1 loaded ===
Ready for commands via (c:mcp-dispatch)

💡 Mẹo

Thêm file này vào Startup Suite trong APPLOAD để AutoCAD tự load khi mở bản vẽ.


3. Cấu hình MCP client

Ví dụ cấu hình trong:

claude_desktop_config.json

{
  "mcpServers": {
    "autocad-mcp": {
      "command": "C:\\path\\to\\autocad-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "autocad_mcp"],
      "env": { "AUTOCAD_MCP_BACKEND": "auto" }
    }
  }
}

Lưu ý quan trọng

  • command phải trỏ tới Windows Python trong venv

  • Không dùng WSL Python


Chạy từ WSL

Nếu MCP client chạy trong WSL (ví dụ Claude Code):

khởi động server thông qua cmd.exe

{
  "mcpServers": {
    "autocad-mcp": {
      "type": "stdio",
      "command": "cmd.exe",
      "args": [
        "/d",
        "/s",
        "/c",
        "cd /d C:\\path\\to\\autocad-mcp && .venv\\Scripts\\python.exe -m autocad_mcp"
      ],
      "env": { "AUTOCAD_MCP_BACKEND": "auto" }
    }
  }
}

4. Kiểm tra hoạt động

Từ MCP client gọi:

system(operation="status")

Kết quả:

backend: "file_ipc"

nếu AutoCAD đang chạy

hoặc

backend: "ezdxf"

nếu chạy chế độ headless.


Tools

Related MCP server: ai-cad

drawing — Quản lý file bản vẽ

Operation

Mô tả

File IPC

ezdxf

create

Reset bản vẽ sạch

Yes

Yes

open

Mở bản vẽ

Yes

Yes (DXF)

info

Thông tin entity và layer

Yes

Yes

save

Lưu bản vẽ

Yes

Yes

save_as_dxf

Xuất DXF

Yes

Yes

plot_pdf

Xuất PDF

Yes

No

purge

Xóa đối tượng không dùng

Yes

Yes

get_variables

Lấy biến hệ thống

Yes

Yes

undo

Hoàn tác

Yes

No

redo

Làm lại

Yes

No


entity — Quản lý đối tượng

Tạo

  • create_line

  • create_circle

  • create_polyline

  • create_rectangle

  • create_arc

  • create_ellipse

  • create_mtext

  • create_hatch

Đọc

  • list

  • count

  • get

Chỉnh sửa

  • copy

  • move

  • rotate

  • scale

  • mirror

  • offset*

  • array

  • fillet*

  • chamfer*

  • erase

offset, fillet, chamfer chỉ dùng với File IPC.


layer — Quản lý layer

  • list

  • create

  • set_current

  • set_properties

  • freeze

  • thaw

  • lock

  • unlock


block — Thao tác block

Operation

File IPC

ezdxf

list

Yes

Yes

insert

Yes

Yes

insert_with_attributes

Yes

Yes

get_attributes

Yes

Yes

update_attribute

Yes

Yes

define

No

Yes


annotation — Chú thích

  • create_text

  • create_dimension_linear

  • create_dimension_aligned

  • create_dimension_angular

  • create_dimension_radius

  • create_leader


pid — P&ID

Thư viện ký hiệu CTO.

Các lệnh:

  • setup_layers

  • insert_symbol

  • list_symbols

  • draw_process_line

  • connect_equipment

  • add_flow_arrow

  • add_equipment_tag

  • add_line_number

  • insert_valve

  • insert_instrument

  • insert_pump

  • insert_tank


⚠ Cần cài thư viện:

https://www.cadtoolsonline.com/

vào thư mục

C:\PIDv4-CTO\

view — Viewport & Screenshot

Operation

Mô tả

zoom_extents

Zoom toàn bộ

zoom_window

Zoom theo cửa sổ

get_screenshot

Chụp ảnh AutoCAD

File IPC dùng:

PrintWindow (Win32)

Có thể chụp ngay cả khi AutoCAD bị minimize.

ezdxf dùng:

matplotlib render

system — Quản lý server

  • status

  • health

  • get_backend

  • runtime

  • init

  • execute_lisp


execute_lisp

Chạy AutoLISP bất kỳ:

Ví dụ

(+ 1 2)

Gửi:

data: {code: "(+ 1 2)"}

Biến server thành nền tảng automation mở rộng.


Architecture

MCP Client (Claude)
        │
        │ stdio (JSON-RPC)
        ▼
Python MCP Server (autocad_mcp)
        │
        ├── File IPC Backend
        │       │
        │       └── C:/temp/*.json
        │               │
        │               ▼
        │        mcp_dispatch.lsp (AutoCAD)
        │
        └── ezdxf Backend
                │
                ▼
           in-memory DXF

File IPC gửi keystrokes tới AutoCAD bằng:

PostMessageW(WM_CHAR)

Ưu điểm:

  • Không cướp focus cửa sổ

  • Có thể làm việc ứng dụng khác song song.


Environment Variables

Variable

Default

Mô tả

AUTOCAD_MCP_BACKEND

auto

chọn backend

AUTOCAD_MCP_IPC_DIR

C:/temp

thư mục IPC

AUTOCAD_MCP_IPC_TIMEOUT

10

timeout

AUTOCAD_MCP_ONLY_TEXT

false

tắt screenshot


⚠ Nếu đổi:

AUTOCAD_MCP_IPC_DIR

phải sửa luôn biến:

*mcp-ipc-dir*

trong file

mcp_dispatch.lsp

Development

uv sync
uv run pytest tests/ -v

AutoCAD LT AutoLISP Compatibility

AutoLISP được thêm vào AutoCAD LT 2024 (Windows).

Hỗ trợ

Không hỗ trợ

.lsp

VLIDE

vl-* functions

vlax-*

File I/O

Express Tools

entget

3D operations

selection sets

AutoLISP trên Mac


What's New v3.1

Các cập nhật chính:

  • execute_lisp

  • undo / redo

  • open drawing

  • create drawing reset

  • save path

  • get_variables fix

  • polyline fix

  • ESC prefix

  • UTF8 fallback

  • IPC timeout config

  • thread-safe init


License

MIT

Available Tools

8 tools
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}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include readOnlyHint=false, indicating mutation. The description adds no further behavioral context, such as whether operations modify the current drawing, prerequisites for coordinates, or potential side effects. It is purely a list of operations with data fields, providing no disclosure beyond what the readOnlyHint already implies.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact, well-organized list. It front-loads the purpose and then enumerates operations with their required data fields in a consistent, scannable format. Every line is informative and there is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (six distinct operations) and the sparse schema, the description covers the essential information needed to invoke each operation. An output schema exists, so return values need not be explained. However, it omits contextual details like coordinate system, units, or the effect of include_screenshot, leaving some ambiguity for an agent without prior AutoCAD knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is extremely generic (data is an untyped object), so the description is essential to know which fields each operation expects. It lists the data structure for every operation, enabling an agent to pass correct parameters. However, it does not explain the meaning of coordinate fields (e.g., x, y, dim_x) or units, which would add further semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's scope: 'Annotation: text, dimensions, and leaders.' It then lists specific creation operations (create_text, create_dimension_linear, etc.), making it obvious this tool creates annotation entities. This distinguishes it from siblings like 'layer' or 'entity' which handle different drawing aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The list of operations provides clear context that this tool is for creating annotations, and the separation from sibling tools (layer, drawing, etc.) makes the usage context obvious. However, it does not explicitly state when not to use this tool or name alternatives, so it lacks the explicit exclusion guidance that would earn a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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, ...}]}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false, offering little behavioral detail. The description compensates by listing mutating operations (insert, define, update_attribute) and specifying the data payload expected for each. It still omits side effects or permissions, but the operation-level detail goes well beyond the minimal annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and scannable, with a one-line summary followed by a bulleted list of operations. Every line adds necessary information, and there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-operation tool with a non-specific schema, this description provides a solid operation catalog and per-operation data contracts. It lacks detail on the 'include_screenshot' parameter and error/return behavior, but the presence of an output schema reduces the need to document returns. Overall, it is sufficient for an agent to select and invoke the correct operation in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is highly generic: 'operation' is a bare string without an enum, and 'data' is a free-form object. The description compensates by enumerating valid operation values and giving explicit data shapes (name, x, y, scale?, rotation?, etc.). However, the 'include_screenshot' parameter is never explained, preventing full semantic coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Block definition, insertion, and attribute management,' which clearly identifies the resource (blocks) and the verbs (define, insert, manage attributes). It then enumerates six specific sub-operations, making the tool's scope unmistakable and distinct from sibling tools like layer, entity, or annotation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys a clear domain: everything here is block-related, so an agent can infer when to choose this tool. However, it does not explicitly state exclusions or alternatives (e.g., 'use entity for non-block operations'), leaving a minor gap in when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations only include readOnlyHint=false, the description adds operation-specific behaviors such as save's fallback to QSAVE when no path is given and open requiring an existing drawing. It does not detail destructive side effects for purge or plot_pdf, but it provides more than the raw annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact bulleted list with one-line explanations for each operation, front-loaded with the tool's purpose. No redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex with ten sub-operations, and the description covers each operation's purpose and data fields. However, it omits the include_screenshot parameter and does not explicitly guide usage relative to sibling tools, but the output schema likely covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by listing operation-specific data fields (e.g., data: {path} for open, data: {names: [...]} for get_variables). However, the include_screenshot parameter is not documented, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as 'Drawing file management' and enumerates ten specific operations (create, open, info, save, etc.) with brief explanations, distinguishing it from sibling tools like layer and entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through 'Drawing file management' and operation names, but does not explicitly state when to choose this tool over siblings like layer or entity. It provides context but no exclusions or direct comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
dataNo
layerNo
pointsNo
entity_idNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists mutating operations (move, erase, copy) and details their parameters, which goes beyond the simple readOnlyHint=false annotation. However, it does not disclose side effects (e.g., erase is destructive), error conditions, or any required permissions, leaving behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear section headers and compact per-operation signatures. It is front-loaded with a summary line and avoids redundant prose. It is long, but each line is necessary to cover the many operations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all operation signatures, but for a tool with 10 parameters and many distinct operations, it lacks higher-level context such as prerequisite conditions (e.g., an open drawing), return value behavior, and any caveats about destructive operations. The presence of an output schema mitigates the return value gap, but other contextual details remain missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description carries the full burden of explaining parameters. It does this well by mapping each operation to its specific parameters, including nested data fields like fillet's {id1, id2, radius}. However, it omits the include_screenshot parameter and doesn't explain the meaning of '?' in the signatures.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function as 'Entity creation, querying, and modification' and lists all supported operations (create_line, list, move, erase, etc.), making its scope unambiguous and distinguishing it from sibling tools like layer, block, or drawing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description groups operations into Create, Read, and Modify, implying when each operation should be used. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusionary guidance or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

layerB

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutability (readOnlyHint: false). The description adds the operation list and data shapes but does not disclose behavioral consequences, such as how freezing or locking a layer affects the drawing, whether permissions are required, or any side effects. For a mutation tool with multiple state-changing operations, this lack of behavioral context is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise summary line followed by a bullet-style list of operations. Each operation line is short and useful, containing only the essential data shape. No filler or redundant information is present, making it efficient to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 operations) and the presence of an output schema (so return values need not be described), the description covers most operational inputs but misses the 'include_screenshot' parameter and does not elaborate on the effects of operations like freeze or set_current. It is adequate for basic invocation but not fully complete for nuanced decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides data structures for each operation (e.g., create: {name, color?, linetype?}, freeze: {name}), which adds significant meaning to the 'operation' and 'data' parameters. However, it does not explain the 'include_screenshot' parameter, and the data for 'list' is not specified, leaving some gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as for 'Layer creation and management' and lists eight specific operations (list, create, set_current, set_properties, freeze, thaw, lock, unlock). This is a specific verb+resource combination, and it distinguishes from sibling tools (drawing, entity, block, etc.) by focusing exclusively on layers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear list of operations with their required data, which implies when each operation is appropriate, but it does not explicitly state when to use this tool versus alternatives. There are no exclusions or mentions of sibling tools, so the agent must infer that layer management belongs here based on the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pidB

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?}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, which already signals mutation. The operation names (insert, draw, connect, add) are consistent with that. However, the description adds no behavioral context beyond the operation list—no prerequisites, side effects, state changes, or error behavior. For a tool with many mutating operations, this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact bulleted list, front-loaded with the tool's general purpose. Each line enumerates an operation and its data payload with no filler. It is concise and well-structured for quick reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With many operations and an output schema, the description provides a useful reference but lacks context about sequencing (e.g., 'setup_layers' may need to run first), return values, or whether a drawing must be open. The include_screenshot parameter is not explained either. It is adequate but not complete for an agent to fully plan multi-step workflows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fills in the data shapes for each operation, e.g., 'insert_symbol — data: {category, symbol, x, y, scale?, rotation?}' and 'add_flow_arrow — data: {x, y, rotation?}'. This is essential for constructing valid data objects. Still, it doesn't enumerate allowed values for fields like category or valve_type, and coordinate units are not specified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'P&ID drawing with CTO symbol library' and lists concrete operations (insert_symbol, draw_process_line, etc.). This clearly communicates the tool's scope. However, the top-level statement is a noun phrase rather than an explicit verb+resource, and it doesn't directly distinguish from sibling tools beyond listing specialized operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the list of operations: it's for P&ID drawing tasks like inserting symbols and drawing process lines. There is no explicit 'use this when...' or mention of alternatives, and no guidance on when not to use it. Sibling tools like layer, drawing, and entity suggest other areas, but the description doesn't clarify the boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

systemC
Read-only

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}

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description directly contradicts the readOnlyHint annotation. While the annotation claims read-only behavior, the description includes 'init' (re-initialize) and 'execute_lisp' (execute arbitrary code), which are mutating operations. This is a serious inconsistency that could mislead an agent into assuming safe read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear summary and a bulleted list of operations. It is concise and front-loaded with the core purpose, though the list format could be more compact by grouping similar operations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While an output schema exists, the description omits critical behavioral context like which operations are mutating, parameter details for 'data' and 'include_screenshot', and clarifications around 'File IPC only'. The read-only contradiction and missing parameter semantics make it incomplete for a multi-operation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description is expected to compensate by explaining params. It implicitly describes the 'operation' parameter via the list of operations and explains 'data' for execute_lisp, but 'include_screenshot' is never described. The 'data' parameter is only contextualized for one operation, leaving ambiguity for others.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as server status and management, with a list of operations that specify exactly what it does. It distinguishes itself from sibling tools (layer, drawing, etc.) by focusing on backend operations, though the broad 'management' term could be more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The operation list implies when to use the tool (e.g., for health checks, backend info), but there is no explicit guidance on when to prefer this tool over alternatives. It does not mention exclusions or alternatives, leaving usage intent somewhat implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

viewA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
operationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds the behavior of each operation (zoom, screenshot) but does not disclose potential side effects, coordinate system details, or error conditions. It adds some behavioral context beyond the annotation but not deeply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the main purpose, and lists operations in a clear bullet-like format. Every sentence earns its place, with no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 operations, 5 params, output schema present), the description is mostly complete. It covers the operation types and their arguments, and the output schema likely explains return values. It lacks finer details like coordinate units or default behavior, but remains sufficient for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does explain the 'operation' parameter values and mentions that zoom_window uses x1, y1, x2, y2, but does not clarify their meaning beyond being coordinates, nor the role of null defaults for optional parameters. Partial compensation for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Viewport control and screenshot capture' with a specific verb and resource, and enumerates three distinct operations (zoom_extents, zoom_window, get_screenshot). It is easily distinguishable from sibling tools focused on layers, drawing entities, blocks, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage via the operation list, but provides no explicit guidance on when to choose this tool over alternatives. It does not mention exclusions or context such as 'use this when you need to adjust the view or capture the screen' – the purpose is stated but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv3.0.0
    • First observedannotation
    • First observedblock
    • First observeddrawing
    • First observedentity
    • First observedlayer
    • First observedpid
    • First observedsystem
    • First observedview

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct domain (layers, drawings, entities, blocks, annotations, P&ID symbols, views, system). The only minor overlap is between entity create_mtext and annotation create_text, but they are clearly differentiated as multi-line vs single-line text.

Naming Consistency5/5

All tool names follow a consistent lowercase noun pattern, with operations nested as verbs underneath. No mixed conventions, camelCase, or unpredictable verbs; the naming is uniform and intuitive.

Tool Count5/5

8 tools is well-scoped for an AutoCAD automation server, each covering a major functional area without unnecessary overlap. The count fits squarely in the ideal 3-15 range and avoids redundancy.

Completeness5/5

The tool set provides thorough coverage of drawing lifecycle (create, open, save, plot, purge), entity creation/editing, block management, layer management, annotation, and even specialized P&ID workflows. There are no obvious missing operations that would cause agent failures.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Production-grade AutoCAD automation server enabling real-time CAD control via COM and headless DXF operations through 87 tools, including drawing creation, entity modification, layer management, and batch processing, designed for AI agent integration via the Model Context Protocol.
    2
    100
    65
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides DXF parsing, entity extraction, geometry analysis, and optional AutoCAD COM automation for CAD tasks.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLMs like Claude to create and edit AutoCAD drawings via natural language, supporting both headless DXF generation and live AutoCAD LT connection through file-based IPC.
    9
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language control of AutoCAD LT for automation and headless DXF generation, supporting drawing, entity, layer, block, annotation, P&ID, and system operations via an MCP interface.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ks40-academy/autocad-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server