OpenSCAD について
OpenSCAD MCP Serverは、SCADソースからPNGプレビューを生成し、STLジオメトリを出力します。AgentやCADワークフロー向けに、視覚的なモデル調整と後工程用データの作成を支援します。
主な機能
- 01SCADからPNGプレビューを生成
- 02STLジオメトリを出力
- 03プレビューのサイズとカメラを設定
- 04反復モデリングスキルを同梱
活用シーン
- 01SCADの反復中に形状を確認
- 02製造や検査向けにジオメトリを出力
- 03パラメーター違いのレンダリングを比較
MCP 対応
MCPクライアントに`render_scad_png`と`export_scad_stl`ツールを提供します。結果は画像コンテンツと埋め込みSTLリソースとして返されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| width | number | いいえ | 出力画像の幅(ピクセル、デフォルト:800) |
| height | number | いいえ | 出力画像の高さ(ピクセル、デフォルト:600) |
| scadCode | string | はい | レンダリングする OpenSCAD コード |
| cameraPreset | enum | いいえ | `cameraPosition` が指定されていない場合に使用する、名前付きカメラプリセットisometric | front | back | left | right | top | bottom |
| cameraPosition | object | いいえ | カメラ位置({ x,y,z })。例:{ x: 0, y: -25, z: 20 } |
| cameraPosition.x | number | いいえ | カメラの X 座標 |
| cameraPosition.y | number | いいえ | カメラの Y 座標 |
| cameraPosition.z | number | いいえ | カメラの Z 座標 |
詳細
OpenSCAD MCP Server
OpenSCAD(SCAD)のソースコードからPNG プレビューとSTL ジオメトリをレンダリングする MCP(Model Context Protocol)サーバーです。モデルを視覚的にプレビューし、後続の用途(製造、シミュレーション、検査など)向けにエクスポートできる、エージェント主導の反復的な CAD ワークフローを支援するよう設計されています。
⚠️ ベータ版
この MCP サーバーは現在ベータ版です。パフォーマンス、API、機能は変更される可能性があります。問題の報告や貢献を歓迎します。
ユースケース
-
エージェント主導の反復的なモデリング
エージェントが OpenSCAD のソースを生成または変更し、形状や比率を評価するための PNG プレビューをレンダリングして、複数のやり取りを通じてモデルを調整します。 -
MCP コンテキスト内でのジオメトリアーティファクトの生成
エージェントは STL ファイルを具体的なジオメトリアーティファクトとしてエクスポートし、後続のツールに渡したり、保存、検査したり、ほかの MCP 対応システムに引き継いだりできます。 -
パラメトリックデザインの視覚的な根拠付け
PNG プレビューによって、パラメトリックまたはプログラムで記述された SCAD コードを視覚的に把握でき、幻覚を抑え、空間的な変化についてエージェントが推論できるようになります。 -
設計の検証と比較
エージェントはモデルの複数のバリエーション(パラメーターの一括変更など)をレンダリングし、保存またはエクスポートするジオメトリを決定する前に、結果を視覚的に比較できます。
利用可能なツール
render_scad_png:SCAD ソースから PNG プレビュー画像をレンダリングします。- 入力:
scadCode(文字列)、任意のwidth/height(数値)、任意のcameraPresetと任意のcameraPositioncameraPreset:isometric、front、back、left、right、top、bottomのいずれかcameraPosition:{ x, y, z }
- 出力:MCP
ImageContent
- 入力:
export_scad_stl:SCAD ソースから生成した STL をエクスポートします。- 入力:
scadCode(文字列)、任意のfilename(文字列) - 出力:MCP 埋め込みリソース(STL)
- 入力:
スキル
このリポジトリには、反復的な SCAD → PNG → 評価 → 改良のループを支援するために、この MCP サーバーの使い方を紹介するOpenSCAD 反復モデリングスキルも含まれています。
制限事項
- パフォーマンス:複雑な SCAD モデルのレンダリングには時間がかかる場合があり、特に WASM 環境では顕著です。
- 機能のサポート:OpenSCAD のすべての機能が完全にサポートされているとは限らず、WASM 版では制限がある場合があります。
- フォント:現在、テキストのレンダリングには対応していません。今後のリリースで対応を予定しています。
インストール
公開されているパッケージは、stdio 経由で実行することを想定しています。npx を使って MCP クライアントで設定してください。
{
"mcpServers": {
"openscad": {
"command": "npx",
"args": ["-y", "openscad-mcp-server"]
}
}
}
HTTP 経由で実行する場合(Docker での実行など)は、--http を渡してください。
MCP_PORT=3000 npx -y openscad-mcp-server --http
サーバーは GET /health と、ステートレスなストリーム可能 HTTP MCP エンドポイント POST /mcp を公開します。
スキルの使用
エージェントスキルは、エージェントに新しい機能や専門知識を付与するための、シンプルでオープンな形式です。
OpenSCAD 反復モデリングスキルを使う最も簡単な方法は、skills CLIを使ってインストールすることです。
npx skills add fboldo/openscad-mcp-server --skill openscad-iterative-modeling
ローカル開発
- 依存関係をインストール:
bun install - Stdio(クライアントでの実行方法と同じ):
bun index.ts --stdio - HTTP(手動テストに便利):
bun index.ts(または--http)- ポート:
MCP_PORT(デフォルトは3000) - エンドポイント:
GET /health、MCP はPOST /mcp
- ポート:
- MCP Inspector:
bun run dev
類似プロジェクト
-
jhacksman/OpenSCAD-MCP-Server ユーザーのプロンプトから画像を生成し、その後に3D再構築や3Dプリンターの検索まで行う、別のアプローチを採用したプロジェクトです。非常に興味深いプロジェクトです。OpenSCADやMCP サーバーに関心がある方は、ぜひご覧ください。
-
petrijr/openscad-mcp このプロジェクトと似ていますが、Pythonベースのサーバーを使用し、レンダリングにはOpenSCAD CLIを利用します。
関連リンク
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。