mcpField
M
Mcp Openscad Render Loop

Mcp Openscad Render Loop

ローカル
github.com/archimedes-market開発ツール323 週間前に更新

Mcp Openscad Render Loop について

OpenSCADをラップしたMCPサーバーで、エージェントやCADユーザーによるパラメトリック設計の反復を支援します。レンダリング、構文検証、パラメーター掃引、STL計測をツールとして提供します。

主な機能

  1. 01パラメーター指定でSTLをレンダリング
  2. 02PNGプレビューの生成
  3. 03パラメーター範囲の掃引
  4. 04OpenSCAD構文の検証
  5. 05モジュールと関数のシグネチャ抽出
  6. 06STL形状データの計測

活用シーン

  1. 01変更した寸法でCADモデルをレンダリング
  2. 02パラメーター範囲ごとの出力を比較
  3. 03レンダリング前にソース構文を確認
  4. 04STLの寸法と体積を調べる

MCP 対応

MCPクライアントに、OpenSCADのレンダリング、検証、掃引、シグネチャ抽出、STL計測ツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Archimedes Trust Report — VERIFIED 92/100

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。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。