Skip to main content
Glama
hp-mcp-autocad

hp-mcp-autocad

by HuuPhucGL

HP MCP AutoCAD

Máy chủ MCP cho phép Claude (Claude Desktop, Claude Code) điều khiển AutoCAD đang mở: vẽ, sửa, ghi kích thước, chèn block, chụp màn hình, lưu và xuất PDF. Không có AutoCAD thì vẫn tạo được file DXF ở chế độ ezdxf.

Bản này do Nguyễn Hữu Phúc sửa đổi từ vn-autocad-claude của andyluu98, vốn phát triển từ autocad-mcp của puran-water. Giấy phép MIT. Ghi công chi tiết: NOTICE.md.

Khác gì bản gốc

Mục

Bản gốc

Bản HP

drawing create

Xóa toàn bộ đối tượng và purge ngay

Từ chối nếu bản vẽ đang có đối tượng, trừ khi người dùng xác nhận

Lưu, xuất DXF, in PDF

Ghi đè nếu file đã có

Không ghi đè; gợi ý tên mới YYMMDD - tên file

execute_lisp

Chạy mọi đoạn LISP

Chặn đoạn có lệnh xóa (ERASE, entdel, vl-file-delete, PURGE...) khi chưa xác nhận

batch

Nhận mọi lệnh trong danh sách cho phép

Không nhận lệnh xóa sạch, LISP tùy ý, batch lồng nhau; lệnh xóa đối tượng cần xác nhận

Bản vẽ mới (ezdxf)

Không đặt đơn vị

Đơn vị mm, hệ mét

Tài liệu

Tiếng Anh

Tiếng Việt

Chi tiết: CHANGELOG.md.

Related MCP server: vn-autocad-claude

Yêu cầu

  • Windows 10/11

  • AutoCAD bản đầy đủ, hoặc AutoCAD LT 2024 trở lên trên Windows (LT có AutoLISP từ bản 2024)

  • Python 3.10 trở lên (Python Windows, không dùng Python trong WSL)

  • uv và Git

Chế độ ezdxf (không cần AutoCAD) chạy được trên mọi hệ điều hành.

Cài đặt

1. Tải mã và cài thư viện

git clone https://github.com/HuuPhucGL/HP-MCP-Autocad.git
cd HP-MCP-Autocad
uv sync

2. Nạp file trung gian vào AutoCAD

  1. Mở AutoCAD, tạo một bản vẽ mới.

  2. Gõ APPLOAD, chọn lisp-code/mcp_dispatch.lsp, bấm Load.

  3. Dòng lệnh báo === MCP Dispatch v3.1 loaded === là xong.

  4. Thêm file vào Startup Suite trong hộp thoại APPLOAD để lần sau AutoCAD tự nạp.

3. Khai báo MCP cho Claude

Tạo file .mcp.json ở thư mục gốc dự án (Claude Code, tab Code của Claude Desktop):

{
  "mcpServers": {
    "hp-mcp-autocad": {
      "command": "C:\\duong-dan\\HP-MCP-Autocad\\.venv\\Scripts\\python.exe",
      "args": ["-m", "autocad_mcp"],
      "env": { "AUTOCAD_MCP_BACKEND": "auto" }
    }
  }
}

Thay C:\\duong-dan\\ bằng đường dẫn thật. Hoặc dùng lệnh:

claude mcp add hp-mcp-autocad -- C:\duong-dan\HP-MCP-Autocad\.venv\Scripts\python.exe -m autocad_mcp

AUTOCAD_MCP_BACKEND: auto (mặc định, có AutoCAD thì dùng, không thì chuyển ezdxf), file_ipc (bắt buộc AutoCAD), ezdxf (không cần AutoCAD).

4. Kiểm tra

Thoát hẳn Claude rồi mở lại, mở phiên mới và hỏi:

Kiểm tra kết nối MCP với AutoCAD: đang mở bản vẽ nào, đơn vị gì, đang chạy chế độ nào.

Kết nối đúng thì Claude báo backend: file_ipc.

Chốt an toàn

Mỗi khi gặp chốt, máy chủ trả về lỗi [HP an toàn] kèm hướng dẫn, để Claude dừng lại hỏi người dùng.

Thao tác

Khi nào bị chặn

Mở khóa (chỉ khi người dùng đồng ý)

drawing create

Bản vẽ đang có đối tượng

data.xac_nhan_xoa = true

drawing save không kèm đường dẫn

Luôn chặn (sẽ lưu đè bản vẽ đang mở)

data.ghi_de = true

drawing save, save_as_dxf, plot_pdf

File đích đã tồn tại

data.ghi_de = true

system execute_lisp

Đoạn LISP có lệnh xóa

data.cho_phep_xoa = true

system batch

Có entity-erase

data.cho_phep_xoa = true

system batch

Có drawing-create, execute-lisp, drawing-purge, batch

Không mở khóa; gọi riêng từng công cụ

Biến môi trường HP_MCP_TAT_AN_TOAN=1 tắt toàn bộ chốt. Không khuyến khích.

Nên ghi thêm vào CLAUDE.md của dự án:

Chỉ vẽ đúng phần tôi yêu cầu. Không xóa đối tượng có sẵn trong bản vẽ. Trước khi sửa bản vẽ có sẵn, lưu bản sao vào _backup.

Công cụ

Công cụ

Việc làm được

drawing

Tạo, mở, xem thông tin, lưu, xuất DXF, in PDF, purge, đọc biến hệ thống, undo, redo

entity

Vẽ line, circle, polyline, rectangle, arc, ellipse, mtext, hatch; liệt kê, đếm, đọc; copy, move, rotate, scale, mirror, offset, array, fillet, chamfer, erase

layer

Liệt kê, tạo, đặt hiện hành, đổi thuộc tính, freeze, thaw, lock, unlock

block

Liệt kê, chèn, chèn kèm thuộc tính, đọc và sửa thuộc tính, định nghĩa block (ezdxf)

annotation

Chữ, kích thước thẳng, xiên, góc, bán kính, đường dẫn ghi chú

pid

Sơ đồ công nghệ đường ống (cần thư viện CTO)

view

Zoom toàn bộ, zoom cửa sổ, chụp màn hình bản vẽ

system

Trạng thái, kiểm tra, khởi tạo lại, execute_lisp, batch (nhiều lệnh trong một lần, một nhóm undo)

Cách hoạt động

Claude
  │  MCP qua stdio
  ▼
Máy chủ Python (autocad_mcp) ── chốt an toàn hp_an_toan
  │
  ├── file_ipc ──► C:/temp/*.json ──► mcp_dispatch.lsp trong AutoCAD
  └── ezdxf    ──► tạo DXF trong bộ nhớ, không cần AutoCAD

Biến môi trường

Biến

Mặc định

Ý nghĩa

AUTOCAD_MCP_BACKEND

auto

auto, file_ipc, ezdxf

AUTOCAD_MCP_IPC_DIR

C:/temp

Thư mục trao đổi file lệnh (phải khớp phía LISP)

AUTOCAD_MCP_IPC_TIMEOUT

10.0

Thời gian chờ mỗi lệnh, giây (1–300)

AUTOCAD_MCP_ONLY_TEXT

false

Tắt chụp màn hình

HP_MCP_TAT_AN_TOAN

tắt

1 để tắt chốt an toàn

Lỗi hay gặp

Hiện tượng

Cách xử lý

Claude chờ rất lâu

AutoCAD chưa mở, chưa nạp mcp_dispatch.lsp, hoặc đang mở hộp thoại

Luôn ra ezdxf dù AutoCAD đang mở

Yêu cầu Claude khởi tạo lại kết nối (system init); vẫn lỗi thì nạp lại LSP

Ảnh chụp bản vẽ toàn màu đen

Cửa sổ AutoCAD đang thu nhỏ

Claude không thấy hp-mcp-autocad

Chưa mở phiên mới, hoặc .mcp.json sai thư mục, sai đường dẫn

AutoCAD for Mac

Bản gốc có hỗ trợ thử nghiệm AutoCAD bản đầy đủ trên Mac (không phải LT). Xem hướng dẫn trong README của vn-autocad-claude. Bản HP chưa thử trên Mac.

Phát triển

uv sync
uv run pytest tests/ -v

Giới hạn

  • Không thay kỹ sư: kết quả vẽ phải được kiểm tra, đo lại trước khi dùng.

  • Chốt an toàn lọc theo mẫu lệnh, không chặn được mọi cách xóa; vẫn cần CLAUDE.md và thư mục _backup.

  • execute_lisp vẫn chạy được AutoLISP tùy ý khi không có lệnh xóa; chỉ dùng với yêu cầu rõ ràng.

Giấy phép

MIT. Ghi công: NOTICE.md.

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}

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

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

The annotations already mark the tool as non-read-only, and the operation names imply creation, but the description adds no behavioral context beyond that. It does not mention side effects on the drawing, error behavior, coordinate-system assumptions, or what happens after a successful operation.

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, well-structured as a scannable operation list, and every line adds useful information. There is no filler or redundant restating of the schema.

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 generic schema, the description is nearly complete: it covers all operations and their payload shapes. Minor gaps include undocumented behavior of include_screenshot and lack of explicit units or coordinate context, but these do not prevent correct operation selection.

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

Parameters5/5

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

The input schema is generic and has 0% schema description coverage, so the description carries the full burden. It compensates thoroughly by defining the exact data object shape expected for every operation, including required fields and optional markers.

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 names the resource ('Annotation') and enumerates six specific creation operations (text, dimension variants, leader), so an agent knows exactly what the tool does. It is clearly distinguishable from sibling tools like drawing, entity, and layer by its scope.

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 opening line 'Annotation: text, dimensions, and leaders' plus the operation list gives a clear context for when to use this tool. It does not explicitly name alternatives or exclusions, but the intended usage is obvious enough for an agent to select it appropriately.

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

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With readOnlyHint=false, the description's listing of mutating operations (insert, update_attribute, define) is consistent with the annotation. It adds operation-level context but does not disclose side effects, coordinate assumptions, failure behavior, or what happens when metadata is updated.

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 front-loaded with a one-line summary followed by a structured operation list. Every operation gets a single line with its data payload, and there is no filler or redundant restating of schema fields.

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?

For a six-operation dispatch tool with a generic data field and no enums, the description provides the necessary operation vocabulary and rough data contracts. However, requiredness of fields like x/y/name is not marked, and deeper semantics for define and attribute operations are left vague.

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 description coverage is 0%, so the description carries the parameter documentation burden, and it does so with per-operation data shapes including optional markers for scale, rotation, and block_id. It still leaves some fields under-specified, such as the entities array in define, attribute value types, and include_screenshot semantics, but the core data contracts are understandable.

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 opening line scopes the tool to block definition, insertion, and attribute management, and the operation list enumerates distinct verbs such as list, insert, define, get_attributes, and update_attribute. This clearly identifies the resource and actions, distinguishing it from sibling drawing, entity, and layer tools.

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 block-related usage through the operation list, but it does not explicitly state when to use this tool versus siblings like entity or layer. There is no exclusion guidance or comparison to alternatives, so an agent must infer the appropriate context.

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.

HP safety rules (ask the user before unlocking): create erases ALL entities: refused on a non-empty drawing unless data.xac_nhan_xoa = true. save / save_as_dxf / plot_pdf never overwrite an existing file (or QSAVE over the open drawing) unless data.ghi_de = true; a new "YYMMDD - name" path is suggested instead.

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only supply readOnlyHint=false, and the description goes well beyond that: it warns that create erases ALL entities, that save/save_as_dxf/plot_pdf will not overwrite existing files or QSAVE over the open drawing without a flag, and that a new 'YYMMDD - name' path is suggested instead. This is exactly the destructive-behavior disclosure an agent needs before invoking a write tool.

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?

Front-loaded with a one-line scope statement, then a scannable operation list, then a clearly headed safety block. It is long but nearly every line adds information; only the HP-specific flag names are opaque to a reader without context.

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?

With an output schema present, return values need not be explained, and the description covers all ten operations plus their destructive guardrails, which is sufficient for a multi-operation dispatcher. The only material omission is the undocumented include_screenshot parameter.

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 description coverage is 0% and the data object is untyped (additionalProperties), so the description carries the burden — it documents the per-operation data payloads ({name?}, {path}, {names: [...]}) and names the safety flags xac_nhan_xoa and ghi_de. The gap is include_screenshot, which appears in the schema but is never mentioned in the description.

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?

States the resource (drawing file management) and enumerates ten concrete operations with their verb semantics (create, open, save, purge, plot_pdf, etc.), so an agent can map an intent to an operation without opening the schema. The operation list also implicitly distinguishes it from siblings like entity/layer/block tools.

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?

Gives explicit preconditions for the risky operations (create refused on non-empty drawing unless data.xac_nhan_xoa=true; save/export refused unless data.ghi_de=true) which is real usage guidance. However, it never routes the agent between this tool and the sibling tools (entity, layer, block, view), so the when-to-use-this-vs-alternatives question is only implied by the operation list.

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

NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
dataNo
layerNo
pointsNo
entity_idNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations only supply readOnlyHint=false, so the description carries the burden. The operation list correctly reflects mutating and read-only behaviors, but does not mention side effects, prerequisites such as an open drawing, or the meaning of the include_screenshot flag.

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 content is organized into Create/Read/Modify groups with one line per operation, and every line adds a signature or behavior. The summary sentence is front-loaded and there is no 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 19 operations and only 1 required schema parameter, the description covers most of what an agent needs to choose and call an operation. It would be more complete if it explicitly stated that operation must be set to one of the listed names and described include_screenshot.

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 schema_description_coverage=0%, the operation-specific parameter shapes such as create_circle data: {cx, cy, radius} and offset data: {distance} provide crucial meaning absent from the schema. It still leaves some semantics implicit, such as angle/factor units and accepted operation strings.

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 opening line 'Entity creation, querying, and modification' names the resource and the three verb families, and the operation list makes the scope concrete. It lacks explicit differentiation from siblings like drawing or block, so it stops short of 5.

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?

It clearly signals this is the tool for entity-level operations such as create_line, list, move, and erase rather than drawing/session-level tasks. There is no explicit 'when-not-to-use' or direct pointer to a sibling, but the context is unambiguous.

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

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}

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With readOnlyHint=false, the annotations already signal mutation; the description goes further by itemizing mutating operations such as create, set_current, set_properties, freeze, thaw, lock, and unlock. It does not disclose side effects or reversibility, but the operation list provides meaningful behavioral detail beyond the 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 a compact, front-loaded summary followed by a bulleted operation list with minimal syntax. Every line adds information, and it avoids redundancy with the schema.

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 layer tool with a sparse schema, the description covers the core call shape well: operation names and per-operation data. The output schema presumably handles return-value documentation, so the main remaining gap is the unexplained include_screenshot parameter and lack of explicit required-field notes. Overall it is adequate for an agent to invoke most operations correctly.

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 description coverage is 0%, so the description must carry parameter meaning; it does so by listing valid operation strings and showing the expected data object shape for each operation (e.g., create data: {name, color?, linetype?}). However, it leaves include_screenshot completely undocumented and does not explicitly mark which fields within data are required.

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 'Layer creation and management' and then enumerates eight specific operations (list, create, set_current, set_properties, freeze, thaw, lock, unlock), making both the resource (layers) and the actions concrete. This clearly separates it from sibling tools like entity, block, or view.

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 the tool is for any layer-management task, but the description never explicitly states when to choose it over a sibling tool or when not to use it. No prerequisites, exclusions, or alternative tools are mentioned, so usage guidance is only implicit.

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

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

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description reveals that operations mutate the drawing by creating layers, inserting symbols, and connecting equipment, which is consistent with the readOnlyHint=false annotation. It does not disclose prerequisites such as whether setup_layers must be called first, coordinate system expectations, or the effect of include_screenshot. It adds operation-level behavior but not deeper behavioral context.

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 tight, consistently formatted operation list with no filler. The domain statement is front-loaded, and every line adds a distinct operation or data shape. It is an excellent model of concise reference documentation.

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 dispatch tool, the description covers all operation names and their data payloads, and an output schema exists so return-value documentation is not essential. It is slightly incomplete around the include_screenshot parameter and setup ordering, but otherwise sufficient for correct invocation.

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 description coverage is 0%, but the description lists the expected data keys for each operation, including optional fields marked with '?'. This substantially compensates for the generic schema. The only structured parameter not explained is include_screenshot, which prevents a 5.

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 opening phrase 'P&ID drawing with CTO symbol library' plus the enumerated operations (setup_layers, insert_symbol, draw_process_line, etc.) makes the tool's purpose concrete. It stops short of a clean single verb+resource statement and does not explicitly contrast with sibling drawing/layer tools, so it earns 4 rather than 5.

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 this tool, such as when inserting P&ID symbols or drawing process lines. However, it never explicitly states when to prefer this tool over sibling tools like drawing, layer, or block, and it gives no exclusions. Guidance is implied rather than explicit.

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

systemB
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} batch — Run many commands in one round-trip + one UNDO group (File IPC only). data: {commands: [{command, params}, ...]} e.g. {"commands": [ {"command": "create-line", "params": {"x1":0,"y1":0,"x2":100,"y2":0}}, {"command": "create-text", "params": {"x":10,"y":10,"text":"Phòng ngủ","height":25}} ]} Far faster than one call per entity; use for bulk drawing.

HP safety rules (ask the user before unlocking): execute_lisp with erase/delete/purge code is refused unless data.cho_phep_xoa = true. batch never accepts drawing-create, execute-lisp, drawing-purge or nested batch; batch with entity-erase needs data.cho_phep_xoa = true.

NameRequiredDescriptionDefault
dataNo
operationYes
include_screenshotNo

Output Schema

NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, yet the description explicitly describes state-changing behavior: init re-initializes the backend, execute_lisp runs arbitrary AutoLISP code, and batch can create entities. These operations contradict the read-only annotation; the safety rules do not resolve the inconsistency.

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 structured as a scannable operation list with compact one-line entries and a concrete batch example. It is appropriately sized for seven operations, with only minor redundancy between the status and health descriptions.

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?

An output schema exists, so return values need not be explained. But the readOnlyHint contradiction leaves an incorrect safety model, include_screenshot is undocumented, and the effects of init are only vaguely stated for a tool that can execute arbitrary code and mutate drawings.

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 carry parameter meaning. It lists the allowed operation values and documents data shapes for execute_lisp and batch, including cho_phep_xoa, but never explains the include_screenshot parameter and leaves data unspecified for several operations.

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 states the resource (server) and enumerates seven specific operations with distinct verbs such as status, health, init, execute_lisp, and batch. It distinguishes this tool from siblings by domain (system/server management versus drawing, entity, layer, etc.), though the umbrella term 'management' remains broad.

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?

It gives operation-level guidance and explicitly says batch is for bulk drawing and faster than one call per entity, plus safety rules for erase/delete/purge. However, it does not state when to choose system over sibling tools or when not to use init/execute_lisp beyond the HP safety gate.

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.

NameRequiredDescriptionDefault
x1No
x2No
y1No
y2No
operationYes

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, lowering the burden; the description adds operation semantics and notes that get_screenshot returns a PNG. However, it does not disclose the coordinate space for zoom_window (model/world vs screen), whether coordinates are effectively required despite schema null defaults, or what happens if coordinates are omitted or passed with other operations.

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?

A one-line purpose statement followed by three bullet-style operation lines; every sentence earns its place. The purpose is front-loaded, and each operation is a single scannable line with no redundant filler.

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?

For a dispatcher with an unconstrained operation parameter and no enums, the description supplies the critical operation vocabulary that the schema lacks, and the output schema presumably covers return values. However, it leaves notable gaps: coordinate semantics for zoom_window, whether coordinates are required for that operation, and whether the coordinate parameters should be null for the other two operations.

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?

With 0% schema description coverage, the description partially compensates: 'zoom_window — Zoom to window: x1, y1, x2, y2' maps the four numeric parameters to the operation that consumes them, and the Operations list is the only source of valid values for the unconstrained operation string. But it leaves coordinate ordering, units, and coordinate system unspecified, and does not clarify that x1/y1/x2/y2 are effectively required for zoom_window even though the schema marks them optional with null defaults.

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 states a clear purpose ('Viewport control and screenshot capture') and enumerates three distinct operations, each with a specific verb, resource, and effect (zoom_extents, zoom_window, get_screenshot). It is immediately distinguishable from sibling tools like drawing, entity, or layer, which cover different AutoCAD domains.

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 gives implicit selection guidance — zoom_extents for showing everything, zoom_window for a specific region, get_screenshot for capturing PNG output. However, there is no explicit when-to-use wording, no exclusions, and no stated alternative among the sibling tools; the domain separation from drawing/entity/layer/block is only implied by names.

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.

  1. 8 tool updatesv3.2.0+hp.1
    • First observedannotation
    • First observedblock
    • First observeddrawing
    • First observedentity
    • First observedlayer
    • First observedpid
    • First observedsystem
    • First observedview

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation3/5

Several operations overlap: insert_symbol(category) vs insert_valve/insert_instrument/insert_pump/insert_tank, and block.insert also places symbols; connect_equipment vs draw_process_line vs entity.create_line all draw lines; create_text vs create_mtext vs add_equipment_tag all place text. Grouping helps, but an agent must guess which layer of abstraction to use for the same visual result.

Naming Consistency4/5

Most names follow verb_noun snake_case (create_line, insert_symbol, zoom_extents, set_current), and namespacing by group keeps bare nouns like list/get/count unambiguous. Minor deviations: bare verb operations (create, open, info, save, undo) and kebab-case in the batch examples (create-line, create-text) drift from the tool naming convention.

Tool Count3/5

Eight groups is tidy, but the actual operation surface is roughly 70 commands, well past the comfortable range for one server. The domain breadth justifies much of it, yet P&ID-specific inserts duplicate generic entity/block operations and could be trimmed.

Completeness4/5

Coverage is broad: entity CRUD plus transforms, layers, blocks with attributes, dimensions/leaders, drawing file lifecycle, plotting, viewport screenshots, and a batch escape hatch. Gaps remain in modifying or deleting P&ID-specialized items (tags, line numbers, valves) and no layer delete or text-edit operation.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to control AutoCAD, GstarCAD, or ZWCAD through natural language via Claude Desktop. It provides tools for drawing geometric shapes, adding text and dimensions, and managing CAD files using the Windows COM interface.
    6
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables Claude to control AutoCAD—draw, edit, query, layers, blocks, annotations, screenshots, plot to PDF—using plain language.
    8
    12
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Web to control a local AutoCAD instance via MCP, exposing 149 tools for CAD operations with dual COM/ezdxf backend support.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects Claude Desktop to a running AutoCAD instance over local Windows COM, letting users query, draw, edit, organize layers, measure areas, take off quantities, and export sheets to PDF using plain language. Every action is undoable, logged, and optionally restricted to read-only mode with no network exposure.
    MIT