CADCraft MCP 是一个供 Agent 调用 CAD 能力的 MCP 插件。它提供 cadcraft stdio 服务,默认运行 cadcraft-cli mcp 的 Headless 会话;如果任务要求操作正在运行的桌面应用,也可以连接该应用的控制服务。
具体做法是:在宿主 MCP 配置中把启动参数改为 launch.py --connect 127.0.0.1:PORT,连接 127.0.0.1:PORT 控制服务。一个 Headless MCP 进程只维护自己的图纸状态;不同进程之间通过保存文件交接。
主要能力与使用方式:
- 命令发现:list_commands 返回当前命令 ID、参数文本和启用状态。
- 命令执行:command_line {"text":"rectang 0,0 100,60"} 模拟逐步提示;execute {"command":"circle","params":{"center":[10,10],"radius":4}} 直接执行 JSON,通常更适合精确自动化。程序化调用不会弹出交互对话框。
- 图纸核查:inspect_drawing 与 query_entities 检查实体、图层和坐标;render 返回图纸 PNG。连接桌面后额外可用 screenshot、ui_inspect 和 ui_click。
- 保存与复核:save {"path":"/absolute/output.dxf"} 后重新打开并复核关键内容;保存或打开是文件写入/读取操作,应事先确定路径及覆盖授权。
失败与状态核实:execute 的 isError 应被视为失败;command_line 可能在正常 MCP 结果的 error 字段中报告命令错误,因此也要检查该字段和当前 running / prompt。若约束求解报告失败,应检查约束状态与几何,不能以命令返回成功替代验收。桌面桥在传输失败后可能重发相同请求;发生超时或断线时,将创建/删除等副作用视为结果未知,先查询当前图纸或重新打开保存文件,确认是否已生效后再决定后续动作。取消交互命令可能保留已绘制的部分;需要恢复原状态时,应检查并明确执行撤销。脚本或多命令任务要在每个重要步骤后保存 Handle 和预期实体快照。