mcpField
A
AutoCAD LT AutoLISP MCP Server

AutoCAD LT AutoLISP MCP Server

本地服务
github.com/hvkshetry媒体与设计60136 周前更新

关于 AutoCAD LT AutoLISP MCP Server

这是一个用于 AutoCAD LT 自动化和无头 DXF 生成的 MCP 服务。它面向需要通过自然语言驱动 CAD 绘图的用户,并支持 File IPC 与 ezdxf 两种后端。

主要功能

  1. 018 个整合工具覆盖图纸、实体、图层等操作
  2. 02File IPC 后端通过 AutoLISP 调度 AutoCAD LT
  3. 03ezdxf 后端可在无 AutoCAD 的环境中生成 DXF
  4. 04支持撤销、重做与 P&ID 符号插入
  5. 05提供 execute_lisp 以执行任意 AutoLISP 代码

适用场景

  1. 01通过 MCP 客户端在 AutoCAD LT 中批量创建实体与标注
  2. 02在 Linux 或 macOS 上离线生成 DXF 文件
  3. 03为 P&ID 图纸插入 CTO 符号库中的设备与阀门

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 drawing、entity、layer、block、annotation、pid、view 和 system 等工具。客户端通过 stdio 传输连接并调用这些工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AutoCAD MCP 服务

用于 AutoCAD LT 自动化和无头 DXF 生成的 MCP 服务。

两个后端,一个 API:

后端运行环境是否需要 AutoCAD?截图
File IPCWindows Python是 — AutoCAD LT 2024+(Windows)Win32 PrintWindow
ezdxf任意平台否(无头模式)matplotlib 渲染

该服务通过 MCP stdio 传输协议公开 8 个整合工具(drawing、entity、layer、block、annotation、pid、view、system)。MCP 客户端(Claude Desktop、Claude Code 等)连接后,可通过自然语言请求驱动 AutoCAD。

前置条件(File IPC 后端)

  • Windows 10/11(File IPC 后端使用 Win32 API 发送无需聚焦窗口的消息)
  • AutoCAD LT 2024 或更高版本 — Windows 版 LT 2024 开始支持 AutoLISP。虽然有 Mac 版 AutoCAD LT,但它不支持 AutoLISP。
  • Python 3.10+(原生 Windows 版,不是 WSL Python)
  • uv 包管理器(安装指南)

ezdxf 无头后端可在任何平台(Linux、macOS、WSL)上运行,无需安装 AutoCAD,即可离线生成 DXF。

快速开始

1. 克隆并安装
git clone https://github.com/puran-water/autocad-mcp.git
cd autocad-mcp
uv sync
2. 在 AutoCAD LT 中加载 LISP 分发器

打开 AutoCAD LT,并使用 APPLOAD 加载 mcp_dispatch.lsp:

  1. 在 AutoCAD 命令行中输入 APPLOAD
  2. 浏览到 <repo>/lisp-code/mcp_dispatch.lsp
  3. 点击 Load
  4. 你应看到:=== MCP Dispatch v3.1 loaded === 和 Ready for commands via (c:mcp-dispatch)

提示: 将该文件添加到 AutoCAD 启动套件(位于 APPLOAD 对话框中),这样每次打开图形时都会自动加载。

3. 配置 MCP 客户端

将以下内容添加到 MCP 客户端配置中(例如 Claude Desktop 的 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" }
    }
  }
}

要点:

  • command 必须指向项目虚拟环境中的 Windows Python(不是 WSL python)。
  • AUTOCAD_MCP_BACKEND 可以设为 auto(默认值 — 尝试使用 File IPC,失败时回退到 ezdxf)、file_ipc(需要 AutoCAD)或 ezdxf(仅无头模式)。
从 WSL 运行

如果 MCP 客户端在 WSL 中运行(例如 Claude Code),请通过 cmd.exe 启动服务,使其作为原生 Windows 进程运行:

{
  "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. 验证

在 MCP 客户端中调用:

system(operation="status")

如果 AutoCAD 正在运行,你应看到 backend: "file_ipc";无头模式下则应看到 backend: "ezdxf"。

工具

drawing — 文件/图形管理
操作说明File IPCezdxf
create重置为干净图形(全部擦除 + 清理)是是
open打开现有图形是是(DXF)
info获取实体数量和图层是是
save保存当前图形(如提供路径,则保存到该路径)是是
save_as_dxf导出为 DXF是是
plot_pdf绘制为 PDF是否
purge清理未使用的对象是是
get_variables按名称获取系统变量是是
undo撤销上一个操作是否
redo重做上一个撤销的操作是否
entity — 实体增删改查

创建: create_line、create_circle、create_polyline、create_rectangle、create_arc、create_ellipse、create_mtext、create_hatch

读取: list、count、get

修改: copy、move、rotate、scale、mirror、offset*、array、fillet*、chamfer*、erase

* offset、fillet、chamfer 仅支持 File IPC(ezdxf 无头后端不支持)。

layer — 图层管理

list、create、set_current、set_properties、freeze、thaw、lock、unlock

block — 块操作
操作File IPCezdxf
list是是
insert是是
insert_with_attributes是是
get_attributes是是
update_attribute是是
define否是
annotation — 文字、尺寸、引线

create_text、create_dimension_linear、create_dimension_aligned、create_dimension_angular、create_dimension_radius、create_leader

pid — P&ID 操作(CTO 符号库)

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

插入 P&ID 符号需要安装 CAD Tools Online(CTO)P&ID 符号库,安装路径为 C:\PIDv4-CTO\。ezdxf 后端内置了对 CTO 符号库的支持。对于 File IPC 后端,某些 P&ID 操作需要额外的 LISP 辅助程序——请参阅 wiki 中的 P&ID 部分,了解设置详情。

view — 视口和屏幕截图
操作描述
zoom_extents缩放以显示所有实体
zoom_window缩放到指定窗口
get_screenshot将当前 AutoCAD 视图截取为 PNG

File IPC 后端使用 PrintWindow(Win32)截取屏幕截图,即使 AutoCAD 最小化或在后台运行也能正常工作。ezdxf 后端通过 matplotlib 渲染。

system — 服务管理

status、health、get_backend、runtime、init、execute_lisp

execute_lisp 可运行任意 AutoLISP 代码(仅限 File IPC)。传入 data: {code: "(+ 1 2)"}。这使服务成为可扩展的自动化平台——可以执行任何有效的 AutoLISP 表达式。

架构

MCP Client (Claude)
    │  stdio (JSON-RPC)
    ▼
Python MCP Server (autocad_mcp)
    │
    ├── File IPC Backend ──► C:/temp/*.json ──► mcp_dispatch.lsp (AutoCAD LT)
    │   PostMessageW(WM_CHAR) to MDIClient — no focus steal
    │
    └── ezdxf Backend ──► in-memory DXF (headless, no AutoCAD needed)

File IPC 后端通过 PostMessageW(WM_CHAR) 向 AutoCAD 的 MDIClient 窗口发送按键,从而触发 (c:mcp-dispatch) AutoLISP 命令。此方法不会抢占窗口焦点——运行自动化时,你可以继续使用其他应用程序。

环境变量

变量默认值描述
AUTOCAD_MCP_BACKENDauto后端选择:auto、file_ipc、ezdxf
AUTOCAD_MCP_IPC_DIRC:/tempIPC 命令/结果 JSON 文件的目录(Python 和 LISP 两端必须一致)
AUTOCAD_MCP_IPC_TIMEOUT10.0IPC 命令超时时间,单位为秒(1-300)
AUTOCAD_MCP_ONLY_TEXTfalse禁用屏幕截图捕获(仅提供文本反馈)

注意: 如果更改 AUTOCAD_MCP_IPC_DIR,还必须更新 mcp_dispatch.lsp 中的 *mcp-ipc-dir* 变量,使其保持一致。

开发

uv sync
uv run pytest tests/ -v

AutoCAD LT AutoLISP 兼容性

AutoLISP 于 2024 版本(仅限 Windows) 加入 AutoCAD LT。Mac 版 AutoCAD LT 不支持 AutoLISP。

支持(LT 2024+ Windows)不支持
.lsp / .fas / .vlx / .dclVLIDE(Visual LISP IDE)
所有 vl-* 实用函数vlax-*(ActiveX/COM)
文件 I/O(open、read-line 等)Express Tools
实体访问(entget、entmod 等)3D 操作
选择集Mac 上的 AutoLISP

mcp_dispatch.lsp 分发器完全兼容 LT 2024 及更高版本。

v3.1 新增内容

  • execute_lisp — 通过临时文件模式运行任意 AutoLISP 代码。将服务从一组固定命令扩展为可扩展的自动化平台。
  • 撤销 / 重做 — 通过 drawing 工具执行单步撤销和重做。
  • 打开图形 — 以编程方式打开现有的 .dwg 文件(已禁止 FILEDIA)。
  • 创建图形 — 现在会重置当前图形(全部擦除并清理),而不是使用 _.NEW,从而保留 LISP 分发器命名空间。
  • 保存图形并指定路径 — save 使用 path 参数时会使用 SAVEAS;不指定路径时则使用 QSAVE。
  • get_variables 修复 — 正确处理 names 参数,并以适当的类型处理方式返回所请求的变量。
  • 多段线 / 引线修复 — 使用分号分隔格式正确编码点数组。
  • ESC 前缀 — 每次分发前发送 2 次 ESC,以取消先前超时遗留的待处理命令。
  • UTF-8 / cp1252 回退 — 处理 LISP 结果文件中的非 ASCII 字符(AutoCAD 使用 Windows-1252 编码)。
  • 可配置的 IPC 超时 — 环境变量 AUTOCAD_MCP_IPC_TIMEOUT(1–300 秒,默认值为 10)。
  • 线程安全的后端初始化 — 使用 asyncio.Lock 防止并行初始化竞争。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。