ParCAD について
ParCADは、小型機械部品を設計する人やエージェント向けのコードベースのパラメトリックCADツールです。OpenCASCADEの正確なB-repカーネルを使い、測定、プレビュー、STEP出力を同じモデルに結び付け、記述的なセレクターを検証します。
主な機能
- 01コードによるパラメトリック部品の作成
- 02OpenCASCADEの正確なB-repカーネル
- 03エッジと面の記述的な選択と検証
- 04体積、肉厚、穴の関係の測定
- 05断面図とタグ別カラー表示
- 06STEPファイルのエクスポート
活用シーン
- 01印刷・加工用の機械部品の設計
- 02穴位置、肉厚、形状の関係の確認
- 03測定値を使ったエージェントによる部品評価
- 04同じモデルからのプレビューとSTEP生成
MCP 対応
部品の評価やドキュメントの読み取りなどに使うMCPツールを提供します。エージェントは起動中のアプリやホストに接続でき、`parcad mcp`はクライアントの接続中にホストを実行できます。同じツールはコマンドラインからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ParCAD
コードで記述するパラメトリック CAD — 人にもエージェントにも。
ステータス:0.0.13、実験段階。 Maging Studio が開発しており、DSL はまだ変化し続けています。すべての操作は実測形状(eval/cases/)と照合されていますが、CAD カーネルの信頼性を築くほど長年にわたって酷使されてはいません。加工する前に、部品を測定してください。
まずはこちら:はじめに、ブラウザーのタブで5分です。

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 に5つのパッチを適用し、カーネルが成功を報告した後も各ビルドを独自に検査します。


部品は想定ではなく測定されます — 体積、壁厚、2つのボアが実際につながっているかどうか。エージェントは画面を見なくても、MCP 経由で同じ数値を取得できます。
画面を確認する場合には、読み取りやすい画像が表示されます:同じ縮尺を共有するビュー、内部を通る断面、そして構築時のタグで色付けされたすべての面です。

小型機械部品 — ブラケット、フランジ、マニホールド、ヒートシンクなど、プリントまたは加工する部品を対象としています。examples/ に31個の例があります。
CadQuery、build123d、OpenSCAD ではなく ParCAD を選ぶ理由
これらは優れたソフトウェアで、歴史もずっと長いです。違いは3つあります。セレクターは 説明的で、検証されます — .expect({ count: 4 }) により、気付かないうちに3つのエッジにしか一致しなくなったセレクターはビルドエラーになります。これこそ、コードで記述する CAD が脆弱になる原因です。表示、測定、エクスポートのすべてが同じ正確な B-rep から生成されるため、プレビューと STEP ファイルは別々のプロジェクトではなく、ひとつのモデルです。そして測定結果は目視で確かめるものではなく出力として得られます。これにより、MCP のインターフェースは単なるラッパーではなく、実際に機能するものになります。
インストール
macOS または Linux(Linux は 0.0.6 以降)では、Homebrew を使うとウィンドウを表示せずにホストをインストールできます。
brew tap ierehon1905/parcad
brew trust ierehon1905/parcad
brew install parcad
次に、エージェントに追加します。必要なときに parcad が起動します。アプリを自分で使うには、parcad serve を実行して http://127.0.0.1:4242 を開きます。アプリ全体をブラウザーで利用できます。
Homebrew 版では、隔離されたファイルはありません。同じ parcad がヘッドレスドライバー(parcad part.js)としても、実行中のホストのクライアントとしても動作します。parcad tools を実行すると、エージェントが MCP 経由で呼び出せるものが一覧表示され、parcad call <tool> を実行すると、シェルから呼び出せます。
または、リリースからデスクトップアプリを入手できます。
| プラットフォーム | ダウンロード |
|---|---|
| macOS、Apple シリコン | ParCAD-aarch64-apple-darwin.zip — 解凍して「アプリケーション」にドラッグします |
| Linux x86_64 | .deb または .AppImage(AppImageHubでも入手できます) |
| Windows x86_64 | .msi または -setup.exe(winget パッケージはレビュー待ちです) |
各プラットフォームのビルドは、アップロード前に同梱のワーカーを使って評価コーパス全体を測定します。Mac アプリはまだ公証されていないため、macOS では初回起動時に拒否されます。xattr -dr com.apple.quarantine /Applications/ParCAD.app を一度実行してください。Windows インストーラーはまだ署名されていないため、SmartScreen の警告が表示されたら、詳細情報をクリックしてから実行を選択します。各プラットフォームには、ウィンドウを表示せずにホストを実行するための parcad-cli-* アーカイブもあります。parcad、その隣にあるワーカー、シードパーツが含まれています。2 つのバイナリは一緒に置いてください。
ビルド
macOS、Linux、Windows に対応しています。日常的な開発は macOS で行っています。リリースワークフローでは 3 つすべてのプラットフォームでビルドと測定を行い、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)を使用し、patch も利用できる Git Bash からスクリプトを実行してください。
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 は、プロファイルに関係なく 開発用アプリを生成します。Tauri の切り替えに使うのは --release ではなく custom-protocol 機能です。そのため、ウィンドウを起動するには 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
アプリは UI と MCP エンドポイントを http://127.0.0.1:4242 で提供します。パーツは ~/Library/Application Support/parcad にプレーンな .js ファイルとして保存され、好きな場所で編集できます。
エージェントから使う
何もインストールせずに使う場合は、ParCAD webを開き、 Connect your AIを選んで、表示されたリンクをクライアントに渡します。Claude Code、カスタムコネクターとしてのClaudeアプリ、Cursor、VS Code、URLに接続できる任意のクライアントに対応しています。タブがサーバーとなり、アプリと同じツールを利用できます。タブは開いたままにしておく必要があります。リレーがメッセージを中継し、内容は保持しません (relay/README.md)。
以下のどの方法でも、マシン上で同じparcadが実行されます。Homebrewがインストールするもので、デスクトップアプリにも同梱されています。いずれかを先にインストールしてください。
プラグインとして使う場合。MCP サーバーと、その使い方を説明するスキルが導入されます。
/plugin marketplace add ierehon1905/parcad
/plugin install parcad@parcad
Codexで使う場合。CodexはPATH上のparcadを検出するため、Homebrewでインストールします。
codex plugin marketplace add ierehon1905/parcad
codex plugin add parcad@parcad
parcadがPATH上にある状態でCursorまたはVS Codeから使う場合:
または、stdioサーバーを起動できる任意のクライアントで、サーバーを手動で追加します。
claude mcp add parcad -- parcad mcp
codex mcp add parcad -- parcad mcp
parcad mcpは、アプリまたはparcad serveが起動している場合はそこに中継するため、エージェントはウィンドウと同じライブセッションを共有します。どちらも起動していない場合は、クライアントの接続が続く間、parcad mcp自体がサーバーをホストします。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として登録されています。Registryを参照できるクライアントでは、この名前でインストールできます。
エージェントはread_docsツールから使い始めてください。このツールは、1回の呼び出しで言語仕様全体を渡します。
詳細情報
- docs/GETTING_STARTED.md — ブラウザーから自分のエージェントまで、5分で始める方法
- examples/ — ブラケットから油圧マニホールドまで、31個のパーツ
- 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ライセンスです。
他のライセンスに基づくコンポーネントを使用しています。OpenCASCADEとvendor/以下のそのバインディングはLGPL-2.1でライセンスされており、自作ファイルのうち1つである
crates/parcad-core/src/occlusion.rsは、fidgetから移植されたためMPL-2.0です。ソースからのビルドに制限はありませんが、バイナリの再配布には義務が伴います。
NOTICE.mdに、OpenCASCADEを独自のものに差し替える方法を含め、詳細を記載しています。
本ソフトウェアは、Open CASCADE Technologyソフトウェアが提供する機能を利用しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。