中文EN

dsh-sw-cad

tools已测通过npmMIT

注册两个 MCP 服务器,在 Windows 上通过 COM 驱动本机安装的 AutoCAD 与 SolidWorks,另附两个按需技能。仅 Windows,需要 Python 3.11+;首次加载时自动安装钉死版本的上游服务器,并且只给真正装了的 CAD 应用注册对应的那一行。两者都只广告两个元工具而非完整工具表(SolidWorks 用本仓库的 discovery 垫片,AutoCAD 用上游 DISCOVERY_MODE=search),首次请求前加载的工具定义分别从 23,404 降到 256 token、从 83,732 降到 365 token。

下载量 / Downloads
1,818
依赖体积 / node_modules
18.92 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-sw-cad

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-sw-cad

![license](LICENSE)

![npm](https://www.npmjs.com/package/dsh-sw-cad)

两个 MCP 服务器 + 两个 Skill,让 DeepSeek Harness 或 Codex 的 agent 真正操控 CAD 软件。

它们封装了两个现成的开源项目——U-C4N/Autocad-MCP 和

wzyn20051216/solidworks-automation-skill——

让 agent 能在 AutoCAD 里画图、在 SolidWorks 里建模,并把结果导出。本仓库是配置层:隔离环境、启动参数、

按需加载、客户端注册。它不 fork、不魔改、不重新分发这两个服务器。上游缺什么能力,本仓库就在它前面补一层

——比如 SolidWorks 没有办法收起自己那 66 个工具,那就加一个垫片,而不是动它。

[English](README.md) | 中文

它做什么,什么时候需要它

一个能"看懂"图纸的 CLI agent 有用,一个能"产出"图纸的 agent 是另一回事。装上本配置包后,dsh 或 Codex

能接住这样一句话——"按 ISO A3 图框画一个 M6 螺纹孔支座,标注后导出 PDF"——并且真的做出来:建图层、画几何、

标尺寸、盖标题栏、跑验证器,最后把文件交给你。

代价和所有 COM 自动化一样:CAD 软件必须开着,agent 必须和 CAD 同 Windows 用户、同完整性级别运行。

这不是云服务,原生 .dwg / .sldprt 输出也没有无头替代方案。

两个 Skill 是入口。它们按需加载——只有当请求命中 SKILL.md 的 description 时才被读取,所以空闲会话不为此

付出任何上下文成本:

Skill · 工作方式

solidworks-automation · 脚本驱动:66 个 Python 模块(30 个 sw_*.py COM 封装 + OCCT/FEA/DFM 工具),自带预检、能力门禁与证据链

autocad-mcp-pro · 本仓库原创(上游没有 AutoCAD skill),通过两个元工具驱动 AutoCAD MCP

两个 MCP 服务器是肌肉,注册在客户端配置里:

服务器 · 广告工具数 · 空闲成本 · 模式

autocad · 2 · 365 token · 上游自带 DISCOVERY_MODE=search:只广告 search_tools + call_tool,242 个工具的目录按关键词检索

solidworks · 2 · 256 token · 本仓库的 mcp-shim/ 挡在上游 66 工具服务器前面(50 个 solidworks_ + 14 个 cadstudio_ + 2 个 design_*),后者全量广告要 23,404 token

<picture>

<source media="(prefers-color-scheme: dark)" srcset="docs/token-cost-dark.svg">

<img alt="常驻上下文成本柱状图:AutoCAD 直连 83,732 token,SolidWorks 直连 23,404,两个都直连 107,136,本仓库配置 621" src="docs/token-cost-light.svg">

</picture>

*工具定义是在你提出第一个请求之前就要付掉的。两台服务器直连要 107,136 token,走本仓库这套配置是 621,

省 99.4%。数字可用 mcp-shim/verify_shim.py 复现。*

你说人话
   │
   ├─ dsh / Codex 按 SKILL.md 的 description 按需加载 Skill
   │      ├─ solidworks-automation  → sw_*.py 脚本 → COM → SolidWorks
   │      └─ autocad-mcp-pro        → search_tools / call_tool → MCP → AutoCAD
   │
   └─ MCP 服务器(cordis.patch.yml / codex config.toml)
          ├─ autocad    上游 discovery 模式,242 工具按需检索
          └─ solidworks 本仓库垫片,2 个元工具,66 工具按需检索
                          └─ 首次调用时才拉起上游 server.py

哪些是上游的,哪些是本仓库的

这一点在这里比通常更重要——两个服务器都是别人的成果。分工如下:

部分 · 来源 · 许可证

AutoCAD MCP 服务器(autocad-mcp-pro) · U-C4N/Autocad-MCP,从 PyPI 安装 · MIT

SolidWorks Skill + MCP 服务器 · wzyn20051216/solidworks-automation-skill,安装时克隆 · MIT

skills/autocad-mcp-pro/SKILL.md · 本仓库原创——上游没有 AutoCAD skill · MIT

mcp-shim/(SolidWorks discovery 垫片 + 词表) · 本仓库原创——上游没有等价机制 · MIT

bin/、lib/(含探测 CAD COM 服务器的 probe.py)、package.json、cordis.patch.yml、install.ps1、bootstrap.ps1、codex-config.snippet.toml、assets/、两份 README · 本仓库原创 · MIT

上游代码一行都没有进仓库。 安装脚本在运行时才去 PyPI 取包、克隆(或 zip 下载)SolidWorks 仓库,所以

你拿到的永远是上游当前版本,著作权也始终归上游。本仓库补的是它们缺失的那一层:经过验证的启动参数、

discovery 模式配置、给缺这个机制的那台服务器补的垫片、按需 Skill 接线、把几个 G 的依赖挡在 C 盘之外的

junction 技巧,以及一个在 git 协议被拦时还能装完的安装器。

安装

三条路,挑一条。装之前先看本节末尾的前置条件。

1. 作为 dsh 插件安装(推荐)

dsh plugin --profile web add dsh-sw-cad

这就是全部。package.json 里声明了 dsh.bundle.patch,dsh 会读到本仓库的 cordis.patch.yml,

它只插入一行:这个包本身。包是一个真正的 cordis 插件(lib/index.js),不是包着一个可执行文件的壳,

所以 dsh 直接从 profile 里 import 它,不需要任何东西在 PATH 上。

首次加载时插件会自己解析路径,缺上游就把钉死版本的上游装好(几分钟,只一次),然后注册两个 MCP

客户端(绝对路径)。装不上就直接抛错,带上缺失的路径和重跑的命令——而不是注册两行起不来的配置,

让人以为装好了却没有工具。设 SW_CAD_NO_AUTO_INSTALL=1 可以关掉自动安装,把缺失项变成一条明确的报错。

2. npm 全局安装(附带 CLI)

npm install -g dsh-sw-cad
dsh-sw-cad install

结果一样,额外把 dsh-sw-cad 放进 PATH,可以用 doctor、where、serve——不想启动 dsh 就想先查一下

装没装好时有用。

3. 不用 npm:bootstrap.ps1

git clone https://github.com/27painter/dsh-sw-cad.git
cd dsh-sw-cad
.\bootstrap.ps1 -Check     # 只检测,不改动;缺东西时退出码为 1
.\bootstrap.ps1            # 缺什么装什么

它检查十项,只修缺失或过期的部分:

检查项 · 由谁修复

Python ≥ 3.11 · 不修——报出问题就停

venv-autocad + autocad-mcp-pro · install.ps1

venv-solidworks + mcp / pymupdf / ezdxf / pywin32 · install.ps1

SolidWorks skill 克隆 · install.ps1

discovery 垫片 · 从本仓库拷贝

垫片检索目录 · 用 --build-catalog 重建;比 server.py 旧时也会重建

~/.dsh/skills junction · 创建

~/.dsh/cordis.patch.yml 条目 · install.ps1(先备份)

~/.codex/skills junction · 创建

~/.codex/config.toml 条目 · 追加(先备份)

跑第二次是空操作。全部就绪时退出码 0,否则 1,所以可以放心塞进脚本或交给 agent。

除非核心组件真的缺失,否则不会下载任何东西。

[!WARNING]
第 3 条路还会写 ~/.dsh/cordis.patch.yml。如果你同时又装了插件,那就是用同一个 serverName 把同样
两个服务器注册了第二遍,dsh 会拒绝重复注册,会话直接起不来。两条路只能走一条:装了插件就把
~/.dsh/cordis.patch.yml 留成 []。

命令一览

命令 · 作用

dsh-sw-cad install · 装钉死版本的上游服务器,并写 ~/.dsh/sw-cad.json

dsh-sw-cad doctor · 报告哪些有、哪些缺,并打印钉死的版本;不改动,缺东西时退出码 1

dsh-sw-cad where · 打印服务器会用到的每一条路径

dsh-sw-cad serve autocad\ · solidworks · 以 stdio 跑一个 MCP 服务器,用于手动测试

install 是幂等的,而且插件首次加载时会自动跑一遍。版本钉在 lib/upstream.json——autocad-mcp-pro 1.6.0

加一个固定的 SolidWorks skill 提交——所以今天装和一个月后装,拿到的是同一套服务器。

[!TIP]
不想自己敲这些命令? 把下面这段发给你的 agent(dsh、Codex,或任何能在这台机器上跑命令的 agent),
它会替你装完——后面几节只在出问题时才需要看。
在这台 Windows 机器上安装 https://github.com/27painter/dsh-sw-cad。

运行:npm install -g dsh-sw-cad && dsh-sw-cad install
第一条装包,第二条装两个上游服务器(AutoCAD MCP 与 SolidWorks skill)并写好客户端条目。
dsh-sw-cad install 是幂等的,只补缺失的部分。

不要提权运行:它必须和 AutoCAD、SolidWorks 是同一个 Windows 用户。
除 ~/.dsh 与 ~/.codex 之外不要往 C 盘写东西,也不要动 CAD 安装目录和注册表。
装完用 dsh-sw-cad doctor、dsh --profile headless --dump-config、codex mcp list 验证。
哪一步失败就如实报告,不要自己绕过。

前置条件

  • Windows 10/11,已安装 AutoCAD 和/或 SolidWorks
  • PATH 里有 Python ≥ 3.11(python --version)
  • dsh(DeepSeek Harness)或 Codex CLI;第 1、2 条路还需要 Node ≥ 20
  • Git —— 可选;git 被拦时安装器会自动降级为 codeload zip 下载

先把仓库拿到本地:

git clone https://github.com/27painter/dsh-sw-cad.git
cd dsh-sw-cad

机器上没装 CAD

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:4,最后更新 2026-10-25

链接

GitHub · Homepage · npm

同类插件