OpenSCAD MCP サーバー
マルチビュー再構築と OpenSCAD を使用してパラメトリック 3D モデルを作成することに重点を置いて、ユーザーがテキスト記述または画像から 3D モデルを生成できるようにするモデル コンテキスト プロトコル (MCP) サーバーです。
特徴
AI画像生成: Google GeminiまたはVenice.ai APIを使用してテキストの説明から画像を生成します
マルチビュー画像生成:再構築のために同じ3Dオブジェクトの複数のビューを作成します
画像承認ワークフロー: 再構築前に生成された画像を確認し、承認/拒否する
3D再構成: CUDAマルチビューステレオを使用して、承認されたマルチビュー画像を3Dモデルに変換します。
リモート処理: LAN 内のリモート サーバーで計算負荷の高いタスクを処理します。
OpenSCAD 統合: OpenSCAD を使用してパラメトリック 3D モデルを生成する
パラメトリックエクスポート: パラメトリックプロパティを保持する形式でモデルをエクスポートします (CSG、AMF、3MF、SCAD)
3Dプリンターの検出: オプションのネットワークプリンターの検出と直接印刷
Related MCP server: Tripo3D MCP
建築
サーバーは Python MCP SDK を使用して構築され、モジュール アーキテクチャに従います。
インストール
リポジトリをクローンします。
git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server仮想環境を作成します。
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate依存関係をインストールします:
pip install -r requirements.txtOpenSCAD をインストールします。
Ubuntu/Debian:
sudo apt-get install openscadmacOS:
brew install openscadWindows: openscad.orgからダウンロード
CUDA Multi-View Stereo をインストールします。
git clone https://github.com/fixstars/cuda-multi-view-stereo.git cd cuda-multi-view-stereo mkdir build && cd build cmake .. makeAPI キーを設定します。
ルートディレクトリに
.envファイルを作成するAPI キーを追加します:
GEMINI_API_KEY=your-gemini-api-key VENICE_API_KEY=your-venice-api-key # Optional REMOTE_CUDA_MVS_API_KEY=your-remote-api-key # For remote processing
リモート処理のセットアップ
サーバーは、特にCUDAマルチビューステレオ再構成など、計算負荷の高いタスクのリモート処理をサポートします。これにより、LAN内のより高性能なマシンに処理をオフロードできます。
サーバーのセットアップ(CUDA GPU 搭載マシン上)
サーバーマシンに CUDA Multi-View Stereo をインストールします。
git clone https://github.com/fixstars/cuda-multi-view-stereo.git cd cuda-multi-view-stereo mkdir build && cd build cmake .. makeリモート CUDA MVS サーバーを起動します。
python src/main_remote.pyサーバーは、Zeroconf を使用してローカル ネットワーク上で自動的に自分自身をアドバタイズします。
クライアント構成
.envファイルでリモート処理を構成します。REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=True REMOTE_CUDA_MVS_API_KEY=your-shared-secret-keyあるいは、サーバーの URL を直接指定することもできます。
REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=False REMOTE_CUDA_MVS_SERVER_URL=http://server-ip:8765 REMOTE_CUDA_MVS_API_KEY=your-shared-secret-key
リモート処理機能
自動サーバー検出: ローカルネットワーク上の CUDA MVS サーバーを検索します
ジョブ管理: 画像のアップロード、ジョブのステータスの追跡、結果のダウンロード
フォールトトレランス: 自動再試行、サーキットブレーカーパターン、エラー追跡
認証: すべてのリモート操作に対する安全なAPIキー認証
ヘルスモニタリング: 継続的なサーバーのヘルスチェックとステータスレポート
使用法
サーバーを起動します。
python src/main.pyサーバーはhttp://localhost:8000で起動します。
MCP ツールを使用してサーバーと対話します。
generate_image_gemini : Google Gemini API を使用して画像を生成する
{ "prompt": "A low-poly rabbit with black background", "model": "gemini-2.0-flash-exp-image-generation" }generate_multi_view_images : 同じ 3D オブジェクトの複数のビューを生成する
{ "prompt": "A low-poly rabbit", "num_views": 4 }create_3d_model_from_images : 承認されたマルチビュー画像から 3D モデルを作成する
{ "image_ids": ["view_1", "view_2", "view_3", "view_4"], "output_name": "rabbit_model" }create_3d_model_from_text : テキストから 3D モデルへの完全なパイプライン
{ "prompt": "A low-poly rabbit", "num_views": 4 }export_model : モデルを特定の形式でエクスポートする
{ "model_id": "your-model-id", "format": "obj" // or "stl", "ply", "scad", etc. }discover_remote_cuda_mvs_servers : ネットワーク上の CUDA MVS サーバーを検索します
{ "timeout": 5 }get_remote_job_status : リモート処理ジョブのステータスを確認する
{ "server_id": "server-id", "job_id": "job-id" }download_remote_model_result : リモートサーバーから完成したモデルをダウンロードする
{ "server_id": "server-id", "job_id": "job-id", "output_name": "model-name" }discover_printers : ネットワーク上の3Dプリンターを発見する
{}print_model : 接続されたプリンターでモデルを印刷する
{ "model_id": "your-model-id", "printer_id": "your-printer-id" }
画像生成オプション
サーバーは複数の画像生成オプションをサポートしています。
Google Gemini API (デフォルト):高品質の画像生成にGemini 2.0 Flash Experimentalモデルを使用します
一貫したスタイルでマルチビュー生成をサポート
Google Gemini APIキーが必要です
Venice.ai API (オプション):代替画像生成サービス
flux-devやfluently-xlを含むさまざまなモデルをサポート
Venice.ai APIキーが必要です
ユーザー提供画像: 画像生成をスキップして独自の画像を使用する
画像をサーバーに直接アップロードする
既存の写真やレンダリングを扱うのに便利
マルチビューワークフロー
サーバーは、3D 再構築のためのマルチビュー ワークフローを実装します。
画像生成: 同じ 3D オブジェクトの複数のビューを生成します
画像承認: 生成された各画像を確認し、承認/拒否します
3D再構築: CUDA MVSを使用して承認された画像を3Dモデルに変換します。
ローカルまたはLAN内のリモートサーバーで処理できます
モデルの改良: オプションでOpenSCADを使用してモデルを改良する
リモート処理ワークフロー
リモート処理ワークフローを使用すると、計算負荷の高いタスクをより強力なマシンにオフロードできます。
サーバー検出: ネットワーク上の CUDA MVS サーバーを自動的に検出します
画像アップロード: 承認されたマルチビュー画像をリモートサーバーにアップロードします
ジョブ処理: CUDA MVSを使用してリモートサーバー上の画像を処理する
ステータス追跡: ジョブのステータスと進行状況を監視する
結果ダウンロード: 処理が完了したら完成した3Dモデルをダウンロードします
サポートされているエクスポート形式
サーバーはさまざまな形式でのモデルのエクスポートをサポートしています。
OBJ : Wavefront OBJ形式(標準3Dモデル形式)
STL : 標準三角形言語(3Dプリント用)
PLY : ポリゴンファイル形式(点群およびメッシュ用)
SCAD : OpenSCAD ソースコード (パラメトリック モデル用)
CSG : OpenSCAD CSG 形式 (すべてのパラメトリック プロパティを保持)
AMF : 付加製造ファイル形式(一部のメタデータを保持)
3MF : 3D 製造フォーマット (メタデータ付きの STL の最新代替)
ウェブインターフェース
サーバーは次の Web インターフェイスを提供します。
マルチビュー画像の生成と承認
3Dモデルをさまざまな角度からプレビューする
さまざまな形式でのモデルのダウンロード
http://localhost:8000/ui/でインターフェースにアクセスします。
ライセンス
マサチューセッツ工科大学
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。