Mcp Openscad Render Loop について
OpenSCADをラップしたMCPサーバーで、エージェントやCADユーザーによるパラメトリック設計の反復を支援します。レンダリング、構文検証、パラメーター掃引、STL計測をツールとして提供します。
主な機能
- 01パラメーター指定でSTLをレンダリング
- 02PNGプレビューの生成
- 03パラメーター範囲の掃引
- 04OpenSCAD構文の検証
- 05モジュールと関数のシグネチャ抽出
- 06STL形状データの計測
活用シーン
- 01変更した寸法でCADモデルをレンダリング
- 02パラメーター範囲ごとの出力を比較
- 03レンダリング前にソース構文を確認
- 04STLの寸法と体積を調べる
MCP 対応
MCPクライアントに、OpenSCADのレンダリング、検証、掃引、シグネチャ抽出、STL計測ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Archimedes Marketで検証済みのアセットです。4つの観点(セキュリティ・品質・ライセンス・複雑さ)からなるTrust Reportの全文と、厳選されたカタログはアセットページでご覧いただけます。
MCP OpenSCAD Render Loop
OpenSCADをMCP サーバーとしてラップし、エージェントがGUIを行き来することなく、パラメトリックCAD設計を反復できるようにします。パラメーターを上書きして.scadソースをレンダリングし、パラメータースイープを実行し、構文を検証し、モジュールシグネチャを抽出し、STLの形状メトリクスを計算できます。
ツール
render_stl—-Dパラメーター上書きを使い、.scadファイルまたはインラインソースをSTLにレンダリングしますrender_png— カメラと画像サイズを制御してプレビューをPNGにレンダリングしますparametric_sweep— 1つ以上のパラメーター範囲を直積スイープし、出力のマニフェストを返しますvalidate_scad—openscad --checkで構文をチェックします(レンダリングなし)list_modules— トップレベルのmodule foo(...)とfunction bar(...)のシグネチャをデフォルト値とともに抽出しますcompute_metrics— STLから境界ボックス、体積、表面積、三角形数を計算します
このサーバーが作られた理由
OpenSCADのCLIはよく設計されていますが、冗長です。エージェントによるCADワークフローの大半は、同じループを繰り返します。パラメーターを編集 → レンダリング → 測定 → 調整。このサーバーを使えば、反復ごとに1回のツール呼び出しにまとめられ、形状メトリクスが直接返されるため、エージェントが自分でSTLのバイト列を解析する必要がありません。
クイックスタート
# 1. Install OpenSCAD (must be on PATH)
brew install openscad # macOS
apt-get install openscad # Debian/Ubuntu
# 2. Install the MCP server
pip install mcp-openscad-render-loop
# 3. Set output directory and run
export MCP_OPENSCAD_OUTPUT_DIR="/tmp/scad-renders"
mcp-openscad-render-loop serve
Claude Desktopの設定:
{
"mcpServers": {
"openscad": {
"command": "mcp-openscad-render-loop",
"args": ["serve"],
"env": {
"MCP_OPENSCAD_OUTPUT_DIR": "/tmp/scad-renders",
"MCP_OPENSCAD_BINARY": "/usr/local/bin/openscad"
}
}
}
}
一般的なエージェントのワークフロー
Agent: "Design an enclosure for a 60x40x15mm PCB with 2mm walls and M3 mounting posts."
↓
1. list_modules on enclosure.scad → finds module enclosure(pcb_l, pcb_w, pcb_h, wall, post_dia)
2. render_stl with pcb_l=60, pcb_w=40, pcb_h=15, wall=2, post_dia=3 → enclosure_v1.stl
3. compute_metrics on enclosure_v1.stl → bbox 66x46x21, volume 18.4cm³, 1,240 triangles
4. parametric_sweep on wall ∈ [1.5, 2.0, 2.5] → 3 STLs + metrics → wall=2 is the strength/weight knee
5. render_png at iso camera → preview image attached to agent's reply
安全性
- 書き込み可能なパスは
MCP_OPENSCAD_OUTPUT_DIRのみです。このディレクトリ外の出力パスはすべて拒否されます。 - 各レンダリングには60秒のハード上限が設定されています(変更可能)。長時間のスイープではレンダリングを並列ではなく順次実行し、メモリ使用量を抑えます。
- インラインの
.scadソースは出力ディレクトリ内の一時ファイルに書き込まれます。openscad以外で実行されるものはありません。 import("/some/path.dxf")によるパストラバーサルはできません。.scad内の相対パスは出力ディレクトリまたはソースファイルのディレクトリを基準に解決され、/を基準に解決されることはありません。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。