内容
# acad-mcp(私有)
MCP 服务器赋予 Claude 对 Autodesk AutoCAD 2027 的完全控制权,通过进程内的 PyRx 桥接器。 与 Revit MCP(相同的架构;Revit 使用 :48884,AutoCAD 使用 :48885)配套。
## 架构
Claude(stdio/HTTP/SSE)-> FastMCP 服务器(server/)-> HTTP 127.0.0.1:48885
-> PyRx 插件(plugin/)内的 AutoCAD -> 主线程泵 -> 文档锁
-> ObjectARX 通过 PyRx。
插件在工作线程上运行 `ThreadingHTTPServer`;每个请求通过 `queue` 交给在 AutoCAD 主线程(泵)上运行的 `wx.Timer`,后者清空队列,锁定文档,并运行处理程序。 此计时器泵设计取代了直接的 `wx.CallAfter` 发布,后者在某些启动过程中会丢弃事件。 在 AutoCAD 会话中用 `ACADMCP_START` 启动泵。
## Claude 插件
Claude 插件的打包(市场、清单、AutoCAD 草图技能、斜杠命令、设置脚本、捆绑的服务器快照)位于配套仓库 [acad-mcp-plugin](https://github.com/Demolinator/acad-mcp-plugin) 中 - 使用 `/plugin marketplace add Demolinator/acad-mcp-plugin` 然后 `/plugin install autocad@acad-mcp-plugin` 进行安装。 此仓库是服务器/插件开发发生的地方;使用其 `sync-server.ps1` 刷新捆绑的快照。
## 从头开始设置(开发人员/独立服务器)
> 大多数人应该安装**插件** - 参见 [acad-mcp-plugin](https://github.com/Demolinator/acad-mcp-plugin),它捆绑了此服务器,是一键安装。 如果您正在开发服务器或独立安装(不使用插件),请使用以下步骤。
**先决条件:** AutoCAD 2027(完整版,非 LT 版)、Python 3.12(64 位)和 Claude Code 或 Claude Desktop。 在 Windows 上:`winget install Python.Python.3.12`.
1. **克隆并创建环境:**
```
git clone https://github.com/Demolinator/acad-mcp
cd acad-mcp
py -3.12 -m venv .venv
.venv\Scripts\python -m pip install -e ".[dev]"
```
2. **将 PyRx 桥接器安装到 AutoCAD 将使用的 Python 中:**
```
py -3.12 -m pip install cad-pyrx
```
3. **运行一次性准备脚本** - `setup-acad-mcp.bat`(在仓库根目录)。 它写入 `%APPDATA%\pyrx\pyrx.toml`(指向此仓库的 `plugin\acad_mcp_plugin.py`)和 `C:\temp\acadmcp_boot.scr`,并且是幂等的。 (或者手动执行:设置 `pyrx.toml` 的 `onload_path` 为插件文件。)
4. **启动带有监听器的 AutoCAD:**
```
"C:\Program Files\Autodesk\AutoCAD 2027\acad.exe" /nologo /b C:\temp\acadmcp_boot.scr
```
(或正常启动 AutoCAD,并在 PyRx 加载后运行 `ACADMCP_START`。) 桥接器现在监听 `http://127.0.0.1:48885`。
5. **使用 Claude 注册 MCP 服务器:**
```
claude mcp add acad -- <repo>\.venv\Scripts\python.exe -m acad_mcp_server.main
```
(Claude Desktop/Cowork:在 `%APPDATA%\Claude\claude_desktop_config.json` 中的 `mcpServers` 下添加相同的 `command`/`args`。)
6. **验证:** 在 Claude 中,调用 `acad_status` - 预期 `connected: true`。
## 每日使用
启动 AutoCAD(插件自动加载;如果未使用启动脚本,请运行 ACADMCP_START)。 在 Claude 中:`acad_status` 检查连接。
**41 个 MCP 工具**(39 个桥接到 AutoCAD + `acad_status` + `capture_screen`;两个非桥接工具在服务器端运行,因此插件的 `/health` 工具列表报告 39)。 桥接工具:
- **创建:** draw_line, draw_circle, draw_polyline, draw_rectangle, draw_arc, draw_text
- **图层/查询:** create_layer, list_layers, get_drawing_info, get_entity, list_entities
- **修改:** move_entities, copy_entities, rotate_entities, erase_entities, set_entity_properties
- **文档/退出剖面线:** save_drawing, execute_python
### 绘图文档(第 2A 阶段)
将几何图形转换为完整、注释、可以打印的图纸所需的一切:
- **尺寸:** dim_linear, dim_aligned, dim_radial(径向和直径), dim_angular
- **填充 + 多引线:** add_hatch(封闭边界上的预定义图案), add_leader
- **块 + 属性:** define_block, insert_block, list_blocks, set_block_attributes
- **参照:** attach_xref, list_xrefs, detach_xref
- **文本/尺寸样式:** create_text_style, create_dim_style, list_styles
- **布局 + 视口:** create_layout, create_viewport, list_layouts
- **标题块 + 打印:** insert_title_block, plot_to_pdf(通过 DWG To PDF.pc3 设备,返回写入的 PDF 路径)
## 测试
- 单元(无 AutoCAD):`.venv\Scripts\python -m pytest`(70 个测试)
- 实时烟雾测试(AutoCAD 正在运行):`.venv\Scripts\python smoke\smoke_test.py`
## 布局
- `server/` FastMCP 服务器(stdio 默认;--http/--sse)
- `plugin/` PyRx 插件加载到 AutoCAD 内部(HTTP :48885)
- `smoke/` 实时端到端测试
- `docs/superpowers/` 规格和计划
## 已知的开发机器状态(仓库外部)
- `%APPDATA%\pyrx\pyrx.toml` onload_path -> 此仓库的插件
- `C:\temp\acadmcp_boot.scr` 设置 SECURELOAD=0(仅开发人员)并启动监听器
## 许可证
MIT - 参见 [LICENSE](LICENSE). 版权所有 (c) 2026 Talal Ahmed.
(配套的 [acad-mcp-plugin](https://github.com/Demolinator/acad-mcp-plugin) 许可为 Apache-2.0。)