关于 ParCAD
ParCAD 是面向用户和 Agent 的代码化参数 CAD 工具,用于设计小型机械零件。它以 OpenCASCADE 精确 B-rep 为基础,将几何测量、预览和 STEP 导出关联到同一模型,并通过描述性选择器检查操作。
主要功能
- 01以代码构建参数化零件
- 02基于 OpenCASCADE 精确 B-rep 内核
- 03按几何特征选择并验证边与面
- 04测量体积、壁厚及孔洞关系
- 05生成剖面和按标签着色的视图
- 06导出 STEP 文件
适用场景
- 01设计可打印或加工的机械零件
- 02检查孔位、壁厚和几何关系
- 03让 Agent 通过测量数据评估零件
- 04从同一模型生成预览和 STEP 文件
MCP 相关
ParCAD 提供用于评估零件、读取文档等操作的 MCP 工具。Agent 可连接正在运行的应用或服务,也可由 `parcad mcp` 在客户端连接期间自行托管;同一工具也可通过命令行调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ParCAD
以代码编写的参数化 CAD——面向人类和 Agent。
状态:0.0.13,实验性。 由 Maging Studio 制作,DSL 仍在不断变化。每项操作都经过实测几何验证(eval/cases/),但它们还没有经历多年实际使用的考验,而这正是让 CAD 内核值得信赖所必需的。在加工零件前,请先测量。
从这里开始:入门指南,在浏览器标签页中花五分钟即可上手。

const plate = box(80, 60, 8).tag("plate");
const wall = box(8, 60, 40).at(-36, 0, 20).tag("wall");
const body = union(plate, wall, { blend: 6 }); // the blend is the fillet
const drilled = body.cut(...grid(2, 2, 36, 40).map(([x, y]) => cylinder(3, 32).at(x, y)));
return drilled
.edges({ curve: "circle", role: "hole", adjacentTo: { faceNormal: "+z" } })
.expect({ count: 4 }) // a build error, not a surprise
.fillet(0.8);
你永远不必通过索引来指定边。只需描述它——与顶面相交的圆形边缘——即使之后移动孔洞,这个描述仍然有效。

一张图,一个精确内核
你的脚本会构建一个小型 JSON 图,由精确内核读取——OpenCASCADE:真实的面和边、STEP 导出;无法忠实完成操作时会拒绝执行,而非提供近似结果。这张图能让今天的脚本在明天更换内核后继续运行。
每种内核总会在某些情况下返回看似有效、实则错误的答案,OpenCASCADE 和新近开源的 NVIDIA SMLIB 也不例外。对于零件遇到的情况,ParCAD 为 OpenCASCADE 8.0.1 应用了五个补丁,并会在内核报告成功后自行检查每次构建。


零件会经过测量,而非凭空假定——包括体积、壁厚,以及两个钻孔是否真正连通。Agent 通过 MCP 获取相同数据,无需查看屏幕。
当它查看时,看到的也是专为阅读而制作的图片:共享相同缩放比例的视图、展示内部结构的剖面,以及按构建标签着色的每个表面。

它面向小型机械零件——支架、法兰、歧管、散热器,以及你会打印或加工的各种零件。examples/ 中有 31 个示例。
为什么不选 CadQuery、build123d 或 OpenSCAD
它们都很优秀,也早已问世。主要有三点不同。选择器是描述式且经过检查的——.expect({ count: 4 }) 会把悄然开始匹配三条边的选择器变成构建错误,而这正是导致代码式 CAD 脆弱的失效方式。你看到、测量和导出的内容都来自同一个精确 B-rep,因此预览和 STEP 文件属于同一个模型,而非两个项目。测量结果也是输出,而不是靠肉眼估计,这让 MCP 接口真正发挥作用,而不只是一个封装层。
安装
在 macOS 或 Linux 上使用 Homebrew(Linux 从 0.0.6 起支持),它会安装宿主端,且不包含窗口:
brew tap ierehon1905/parcad
brew trust ierehon1905/parcad
brew install parcad
然后将其添加到你的 Agent,需要时即可启动 parcad。若要自行使用应用,运行 parcad serve 并打开
http://127.0.0.1:4242——整个应用都在浏览器中。
Homebrew 安装路径中的内容都不会被隔离。同一个 parcad 既是无头驱动程序
(parcad part.js),也是运行中宿主端的客户端:parcad tools
会列出 Agent 可通过 MCP 调用的内容,而 parcad call <tool> 可从
shell 中调用工具。
或者下载桌面应用: Releases:
| 平台 | 下载 |
|---|---|
| macOS,Apple silicon | ParCAD-aarch64-apple-darwin.zip — 解压后拖到 Applications |
| Linux x86_64 | .deb 或 .AppImage(也可从 AppImageHub 下载) |
| Windows x86_64 | .msi 或 -setup.exe(winget 软件包正在等待审核) |
每个平台的构建版本都会在上传前,使用随附的 worker 测量整个 eval 语料库。Mac 应用尚未经过公证,因此 macOS 首次会拒绝运行:运行一次 xattr -dr com.apple.quarantine /Applications/ParCAD.app。
Windows 安装程序尚未签名:SmartScreen 会发出警告,点击 More info,然后选择
Run anyway。每个平台还提供一个 parcad-cli-* 压缩包,其中包含用于无窗口运行宿主端的 parcad、与其放在一起的 worker,以及种子零件。请将两个二进制文件放在一起。
构建
支持 macOS、Linux 和 Windows。日常开发在 macOS 上进行;发布工作流会在这三个平台上构建并测量,Linux arm64 也会构建。
你需要 Rust(工具链已固定;rustup 会遵循固定版本)、Bun、CMake、C++ 编译器、patch(1) 和 Python 3.11+。完整构建需要约 20 GB 可用空间。在 Linux 上,窗口还需要 WebKitGTK(libwebkit2gtk-4.1-dev),脚本沙盒的绑定还需要 libclang-dev。在 Windows 上,请使用 MSVC(Visual Studio Build Tools),并从 Git Bash 运行脚本;Git Bash 也提供 patch。
cd app && bun install --frozen-lockfile && cd .. # first: the Rust build shells out to bun
cargo build --locked --release
tools/build-worker.sh --release # the exact kernel — ~5 min on 14 cores, once
cd app && bun run tauri dev
无论使用哪个配置,cargo build 都会生成一个 dev 应用——Tauri 的开关是 custom-protocol 功能,而不是 --release——因此请通过 tauri dev 或 tauri build 启动窗口,绝不要直接运行二进制文件。根目录下的 cargo build
也刻意不会构建 OpenCASCADE;该任务由 tools/build-worker.sh 完成。
tools/check.sh # everything that gates a change (~5 min)
tools/check.sh --fast # the kernel crates and the editor tests (~4 s)
或者以无头模式运行:
bun tools/run.ts examples/bracket.js > /tmp/bracket.json
./target/release/parcad /tmp/bracket.json --out out --step out/part.step
应用会在 http://127.0.0.1:4242 提供 UI 和 MCP 端点。零件以纯 .js 文件的形式存放在 ~/Library/Application Support/parcad 中,你可以在任何位置编辑这些文件。
在 Agent 中使用
无需安装任何内容:打开 ParCAD web, 选择 Connect your AI,然后把页面显示的链接提供给客户端 — Claude Code、作为自定义连接器的 Claude app、Cursor、VS Code,或任何可连接到 URL 的客户端。浏览器标签页就是服务,提供与应用相同的工具,而且必须保持打开;中继会传递消息,但不会保留任何内容 (relay/README.md)。
以下所有方式都会在你的机器上运行同一个 parcad:也就是 Homebrew
安装的那个版本,桌面应用也自带它。请先安装其中一种。
作为插件使用,它会提供 MCP 服务和一项说明如何使用该服务的技能:
/plugin marketplace add ierehon1905/parcad
/plugin install parcad@parcad
在 Codex 中使用,它会在 PATH 中查找 parcad,因此需要先通过 Homebrew 安装:
codex plugin marketplace add ierehon1905/parcad
codex plugin add parcad@parcad
在 Cursor 或 VS Code 中使用,并确保 parcad 位于 PATH 中:
也可以手动添加服务,适用于任何可启动 stdio 服务的客户端:
claude mcp add parcad -- parcad mcp
codex mcp add parcad -- parcad mcp
如果有应用在运行,parcad mcp 会转发到应用或 parcad serve,因此 Agent 会与窗口共享实时会话。如果没有应用在运行,它就会自行托管服务,并持续运行到客户端断开连接。通过 URL 连接的客户端可以直接使用 http://127.0.0.1:4242/mcp,但前提是有主机在运行;brew services start parcad 可在登录后保持主机运行。
命令行也提供相同的工具,名称和参数也相同 —
parcad tools 可列出工具,parcad call evaluate_part --set [email protected]
可调用其中一项 — 无论应用是否打开,这些工具都能使用。
ParCAD 也已收录于官方 MCP Registry,
名称为 io.github.ierehon1905/parcad,因此可浏览该注册表的客户端能够按此名称安装。
让 Agent 从 read_docs 工具开始,它会通过一次调用提供完整语言内容。
更多信息
- docs/GETTING_STARTED.md — 五分钟上手,从浏览器到你自己的 Agent
- examples/ — 三十一个零件,从支架到液压歧管
- CONTRIBUTING.md — 门槛要求,以及变更必须满足的条件
- docs/ARCHITECTURE.md — 各部分如何协作,以及原因
- docs/GOTCHAS.md — 已经让人各自耗费一天的陷阱
- docs/NEXT.md — 尚缺少的内容及其优先顺序
隐私
ParCAD 不会收集任何关于你的信息:没有账户、分析数据或遥测。 PRIVACY.md 列出了所有会连接网络的内容。
许可
ParCAD 是基于 GNU AGPL-3.0 或更高版本许可的自由软件:你可以使用、修改和分享,但你分发或作为服务运行的修改版 ParCAD 也必须公开其源代码。你制作的零件归你所有 — 零件脚本以及 ParCAD 从中导出的所有内容,都可以按你喜欢的方式授权;examples/ 中的种子零件采用 MIT 许可。v0.0.9 及以前版本的发布仍采用 MIT 或 Apache-2.0 许可。
本软件基于其他许可下的组件构建:vendor/ 下的 OpenCASCADE 及其绑定采用 LGPL-2.1 许可;我们自行编写的一个文件 crates/parcad-core/src/occlusion.rs 采用 MPL-2.0 许可,因为它移植自 fidget。从源代码构建不受限制;重新分发二进制文件则需要履行相关义务 —
NOTICE.md 详细说明了这些义务,包括如何换用你自己的 OpenCASCADE。
本软件使用了 Open CASCADE Technology 软件提供的功能。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。