多线程
通过模型上下文协议(MCP)使用AI助手控制CAD应用程序。
   
文档: https://AnCode666.github.io/multiCAD-mcp/
什么是multiCAD mcp?
multiCAD mcp是一个mcp服务器,允许您使用Claude等用于桌面或Cursor的AI助手来控制CAD软件。无论您是绘制形状、管理图层、自动化重复任务还是执行复杂任务,都可以通过基于文本的指令来完成。
特性
- 多种CAD支持:适用于AutoCAD®、ZWCAD®、GstarCAD®和BricsCAD®
- 7个统一的MCP工具:清洁通道 55个CAD命令 用于图形、图层、图元、块和文件
- 块属性 (v0.2.0+):读取和写入块属性值
- 块创建:根据实体或用户选择创建块
- 简单的命令执行:“在50,50处画一个半径为25的红色圆圈”-不需要复杂的语法
- 复杂任务执行:“绘制y=sen(X)的图形并标记轴”
- 简单集成:适用于Claude、Cursor、VS Code和任何兼容MCP的客户端
- 快速可靠:高效的基于COM的实时CAD控制架构
- 灵活的:直接工具调用或自然语言-选择适合您的工具
系统要求
- Windows操作系统 (必需-使用Windows COM技术)
- Python 3.10或更高版本
- 一个或多个CAD应用程序 安装在您的计算机中
安装
详细的安装说明见 docs/01-SETUP.md.
快速启动:
# Install uv (if not installed)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Clone
git clone https://github.com/AnCode666/multiCAD-mcp.git
cd multiCAD-mcp
uv sync --dev
uv run python -m pip install --upgrade pywin32使用Claude Desktop进行设置
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"multiCAD": {
"command": "C:\\path\\to\\multiCAD-mcp\\.venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\multiCAD-mcp\\src\\server.py"]
}
}
}重要:在虚拟环境中使用Python解释器的完整路径(.venv\Scripts\python.exe),而不是系统 py 命令。这确保了Claude Desktop使用安装了所有必需依赖项的正确Python环境。
替换 C:\path\to\multiCAD-mcp 使用您的实际安装路径。
使用示例
直接工具调用
multiCAD mcp提供 7个统一的MCP工具 提供访问 54种不同的CAD命令。此架构旨在实现高效率,允许在单个调用中调度多个操作,从而将API开销减少70%。
- 绘图和形状:直线、圆、圆弧、矩形、折线和样条曲线。
- 区块管理:创建块(从实体或选择)、插入(批处理/单个)、列出和审核。
- 图层管理:创建、列出、重命名/删除(批处理)和切换可见性。
- 实体操纵:移动、旋转、缩放、复制/粘贴和选择(按类型/层/颜色)。
- 物业管理:更改颜色/图层(批/单)并设置颜色ByLayer。
- 数据和导出:提取数据(JSON),导出到Excel(总计或选定),以及实体调试。
- 查看和导航:缩放范围、调整视图和撤消/重做操作。
- 文件和会话:保存(DWG/DXF/PDF)、新建/关闭图形和多图形切换。
- 连接与控制:连接生命周期、诊断和自然语言回退。
\[!提示\] 每个工具使用紧凑的简写格式在一个调用中接受多个操作,从而将API开销减少70%。
选定实体导出
仅从CAD视口中当前选定的实体导出或提取数据:
# Export selected entities to Excel
export_data(scope="selected", format="excel", filename="selected_entities.xlsx")
# Extract selected entity data as JSON
export_data(scope="selected", format="json")复杂任务
你可以让你的人工智能助手执行需要多种工具的复杂任务,比如绘制方程图、复杂的标题栏或数据表。
配置
编辑 src/config.json 自定义:
{
"logging_level": "INFO",
"cad": {
"autocad": {
"startup_wait_time": 20,
"command_delay": 0.5
}
},
"dashboard": {
"port": 8888
},
"output": {
"directory": "~/Documents/multiCAD Exports"
}
}按键设置:
logging_level:设置为DEBUG,INFO,WARNING,或ERROR控制日志的冗长程度startup_wait_time:等待CAD应用程序启动的秒数(如果CAD速度较慢,则增加)command_delay:命令之间的延迟(秒)dashboard.port:Web仪表板端口(默认值:8888)open_dashboard:\[host,port\]--在浏览器中打开web仪表板(默认来自config.json:8888)output.directory:保存图形和导出的默认目录
故障排除
检查日志
multiCAD mcp生成详细的日志以帮助诊断问题:
日志位置: logs/multicad_mcp.log (在项目的 logs/ 目录)
查看日志:
# View latest 50 log entries
Get-Content logs/multicad_mcp.log -Tail 50
# View all logs
Get-Content logs/multicad_mcp.log
# Monitor logs in real-time (updates automatically)
Get-Content logs/multicad_mcp.log -Wait -Tail 10调整日志级别 在 src/config.json:
{
"logging_level": "DEBUG"
}可用级别(从最详细到最不详细):
DEBUG:诊断问题的详细信息INFO:常规信息消息(默认)WARNING:潜在问题的警告信息ERROR:仅显示错误消息
备注:更改配置后重新启动MCP服务器。
“连接失败”
- 确保您的CAD应用程序正在运行
- 检查您是否安装了正确的版本
- 验证Windows COM是否配置正确
- 使用
manage_session随着{"action": "status"}诊断问题 - 检查日志以获取详细的错误消息(见上文)
仪表板提供CAD状态的实时视图。您可以使用“立即刷新”按钮手动刷新数据。
- 仪表板端口:更改
dashboard.port在src/config.json前往您偏好的港口。 - 手动刷新:单击刷新按钮与当前CAD状态同步。
“未连接”
- 服务器在首次使用时自动连接
- 如果失败,请重新启动CAD应用程序并重试
- 使用
manage_session随着{"action": "connect"}重新建立连接 - 查看日志以识别连接问题
命令不起作用
- 检查CAD应用程序的命令行是否有消息或错误
- 确保坐标格式有效(例如,2D为“0,0”,3D为“0,0,0”)
- 验证连接状态
manage_session→{"action": "status"} - 启用DEBUG日志记录以查看详细的命令执行信息
文档
支持的CAD应用程序
| 应用程序 | 状态 | 注释 |
|---|---|---|
| AutoCAD 2018+ | ✅ 全面支持 | 主要实施 |
| ZWCAD 2020+✅ 完全支持 | 使用与AutoCAD-兼容的API | |
| GstarCAD 2020+✅ 完全支持 | 使用与AutoCAD-兼容的API | |
| BricsCAD 21+ | ✅ 完全支持 | 使用与AutoCAD-兼容的API |
项目状态
版本0.2.0 -统一的工具架构、块属性管理和现代打包。
许可证
Apache许可证2.0-请参阅 许可证 文件以获取详细信息。
致谢
本项目建立在以下基础之上:
支持
对于问题、疑问或功能请求,请在存储库上打开问题。
______________________________________________________________________
需要帮助设置吗? 从上面的安装步骤开始。
