cad_mcp_server
by hj2018118
README.md
# DrawMCP
面向 AutoCAD / 中望CAD(ZWCAD)/ FreeCAD 的 MCP(Model Context Protocol)工具集:把三种 CAD 的绘图、查询、编辑与导出能力封装成 MCP 工具,供本地大模型或外部 Agent 调用。
本仓库包含以下组件:
- `cad_mcp_server/`:MCP Server(HTTP + JSON-RPC 2.0,路径 `/mcp`)
- `cad_chat_desktop/`:桌面 Chat GUI(PySide6 + LangChain 工具调用)
- `cad_autocad_plugin/`:AutoCAD .NET 插件(通过本地 HTTP Bridge 连接)
- `cad_zwcad_plugin/`:中望CAD(ZWCAD).NET 插件(通过本地 HTTP Bridge 连接)
- `cad_freecad_workbench/`:FreeCAD Workbench(Python 插件:本地 HTTP API + 信息输出面板)
文档导航(建议先读):
- `docs/README.md`(完整导航)
- `docs/freecad_setup.md`
- `docs/zwcad_setup.md`(中望 2026:真实程序集名、端口 56101、NETLOAD 步骤)
- `docs/manual_test_cases.md`(人工输入测试用例:逐条粘进聊天框的话术 + 该看到什么)
> `create_venv_env.bat` / `run_cad_mcp.bat` / `start_server.bat` / `start_gui.bat` / `start_all.bat` 便于快速跑通与联调。
### 1. 安装依赖
桌面 GUI 依赖 PySide6,建议 Python 3.12 或 3.13。
也可以直接运行根目录的 `create_venv_env.bat` 一键创建 venv 并安装依赖(默认放在仓库外 `..\_env\.venv312`)。
建议把虚拟环境放到仓库外(仓库目录保持干净,便于上传 GitHub)。在仓库根目录下执行:
```powershell
py -3.12 -m venv ..\_env\.venv312
..\_env\.venv312\Scripts\python -m pip install -r .\requirements.txt
```
也可以直接使用根目录一键脚本(Windows):
- 创建 venv + 安装依赖:`create_venv_env.bat`
- 启动(三实例 + GUI):`run_cad_mcp.bat`
- 说明文档:`docs/windows_bats.md`
更多环境说明见:
- `docs/python_env.md`
- `docs/conda_env.md`
### 2. 启动(Windows,CAD 插件/http 模式)
说明:
- 也可直接使用根目录一键脚本 `start_server.bat autocad`(或 `zwcad` / `freecad`)。
- 需要先在 CAD 插件侧配置 token,并在这里通过 `CAD_PLUGIN_TOKEN` 传入同一个 token。
- 三个 CAD 平台要并行,就起三个 MCP 实例(端口对应见 `docs/platform_testing.md` 第 1 节)。
启动 MCP Server(连接插件):
```powershell
$env:CAD_BRIDGE_MODE="http"
$env:CAD_PLUGIN_BASE_URL="http://127.0.0.1:56100"
$env:CAD_PLUGIN_TOKEN="<你的token>"
..\_env\.venv312\Scripts\python -m cad_mcp_server
```
默认监听 `http://127.0.0.1:9100/mcp`(可通过 `MCP_PORT` 修改)。
### 3. 启动 MCP Server(可选:mock 自测)
也可用根目录一键脚本:`start_server.bat mock` 或 `start_all.bat mock`。
```powershell
$env:CAD_BRIDGE_MODE="mock"
..\_env\.venv312\Scripts\python -m cad_mcp_server
```
默认监听 `http://127.0.0.1:9100/mcp`(可通过 `MCP_PORT` 修改)。
服务端同时提供对外集成接口(REST / OpenAI tools / Skills),详见:
- `docs/integration/external_agent_integration.md`
### 4. 启动桌面 GUI
也可用根目录一键脚本:`start_gui.bat`(或 `start_all.bat mock` 一次启动 server+gui)。
```powershell
..\_env\.venv312\Scripts\python -m cad_chat_desktop
```
默认:
- LLM:LM Studio(`http://127.0.0.1:1234/v1`,model=`google/gemma-4-e4b`)
- MCP Endpoint:`http://127.0.0.1:9100/mcp`
也可以使用 conda(同样建议放到仓库外),详见 `docs/conda_env.md`。
### 5. 版权与许可
#### 许可协议
本项目采用 **MIT License**,完整条款见 [LICENSE](LICENSE)。
Copyright (c) 2026
在遵守 MIT 条款(保留版权与本许可声明)的前提下,你可以自由使用、修改、分发本项目,包括用于商业用途。本项目按「原样」提供,不附带任何明示或默示担保。
#### AI 辅助开发说明
本项目的源代码与文档在开发过程中,使用了阿里云通义千问(Qwen)系列大模型辅助完成代码编写、文档整理等工作。
#### 第三方组件与商标
- **Python 依赖**(FastAPI、uvicorn、httpx、pydantic、PyYAML、langchain 等):版权归各自作者,许可多为 MIT / BSD,具体以各项目仓库声明为准;运行时经 `pip install -r requirements.txt` 获取,本仓库不再分发。
- **PySide6 / Qt for Python**:采用 LGPLv3 等许可,本仓库仅以依赖方式引用,未修改其源码。
- **厂商 SDK 程序集**:AutoCAD(`accoremgd` / `acdbmgd` / `acmgd`)、中望CAD(`ZwManaged` / `ZwDatabaseMgd`)、FreeCAD 的头文件与程序集均为各厂商的专有软件,本仓库**不随附、也不再分发**这些文件,构建时只从本机已安装的官方程序目录引用。
- **商标**:AutoCAD、ZWCAD、FreeCAD、Qwen 等名称与商标归各自权利人所有,本项目与上述厂商之间不存在隶属、赞助或背书关系。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues