Skip to main content
Glama

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 を使用して構築され、モジュール アーキテクチャに従います。

openscad-mcp-server/ ├── src/ │ ├── main.py # Main application │ ├── main_remote.py # Remote CUDA MVS server │ ├── ai/ # AI integrations │ │ ├── gemini_api.py # Google Gemini API for image generation │ │ └── venice_api.py # Venice.ai API for image generation (optional) │ ├── models/ # 3D model generation │ │ ├── cuda_mvs.py # CUDA Multi-View Stereo integration │ │ └── code_generator.py # OpenSCAD code generation │ ├── workflow/ # Workflow components │ │ ├── image_approval.py # Image approval mechanism │ │ └── multi_view_to_model_pipeline.py # Complete pipeline │ ├── remote/ # Remote processing │ │ ├── cuda_mvs_client.py # Client for remote CUDA MVS processing │ │ ├── cuda_mvs_server.py # Server for remote CUDA MVS processing │ │ ├── connection_manager.py # Remote connection management │ │ └── error_handling.py # Error handling for remote processing │ ├── openscad_wrapper/ # OpenSCAD CLI wrapper │ ├── visualization/ # Preview generation and web interface │ ├── utils/ # Utility functions │ └── printer_discovery/ # 3D printer discovery ├── scad/ # Generated OpenSCAD files ├── output/ # Output files (models, previews) │ ├── images/ # Generated images │ ├── multi_view/ # Multi-view images │ ├── approved_images/ # Approved images for reconstruction │ └── models/ # Generated 3D models ├── templates/ # Web interface templates └── static/ # Static files for web interface

インストール

  1. リポジトリをクローンします。

    git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
  2. 仮想環境を作成します。

    python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  3. 依存関係をインストールします:

    pip install -r requirements.txt
  4. OpenSCAD をインストールします。

    • Ubuntu/Debian: sudo apt-get install openscad

    • macOS: brew install openscad

    • Windows: openscad.orgからダウンロード

  5. 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
  6. API キーを設定します。

    • ルートディレクトリに.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 搭載マシン上)

  1. サーバーマシンに 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
  2. リモート CUDA MVS サーバーを起動します。

    python src/main_remote.py
  3. サーバーは、Zeroconf を使用してローカル ネットワーク上で自動的に自分自身をアドバタイズします。

クライアント構成

  1. .envファイルでリモート処理を構成します。

    REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=True REMOTE_CUDA_MVS_API_KEY=your-shared-secret-key
  2. あるいは、サーバーの 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キー認証

  • ヘルスモニタリング: 継続的なサーバーのヘルスチェックとステータスレポート

使用法

  1. サーバーを起動します。

    python src/main.py
  2. サーバーはhttp://localhost:8000で起動します。

  3. 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" }

画像生成オプション

サーバーは複数の画像生成オプションをサポートしています。

  1. Google Gemini API (デフォルト):高品質の画像生成にGemini 2.0 Flash Experimentalモデルを使用します

    • 一貫したスタイルでマルチビュー生成をサポート

    • Google Gemini APIキーが必要です

  2. Venice.ai API (オプション):代替画像生成サービス

    • flux-devやfluently-xlを含むさまざまなモデルをサポート

    • Venice.ai APIキーが必要です

  3. ユーザー提供画像: 画像生成をスキップして独自の画像を使用する

    • 画像をサーバーに直接アップロードする

    • 既存の写真やレンダリングを扱うのに便利

マルチビューワークフロー

サーバーは、3D 再構築のためのマルチビュー ワークフローを実装します。

  1. 画像生成: 同じ 3D オブジェクトの複数のビューを生成します

  2. 画像承認: 生成された各画像を確認し、承認/拒否します

  3. 3D再構築: CUDA MVSを使用して承認された画像を3Dモデルに変換します。

    • ローカルまたはLAN内のリモートサーバーで処理できます

  4. モデルの改良: オプションでOpenSCADを使用してモデルを改良する

リモート処理ワークフロー

リモート処理ワークフローを使用すると、計算負荷の高いタスクをより強力なマシンにオフロードできます。

  1. サーバー検出: ネットワーク上の CUDA MVS サーバーを自動的に検出します

  2. 画像アップロード: 承認されたマルチビュー画像をリモートサーバーにアップロードします

  3. ジョブ処理: CUDA MVSを使用してリモートサーバー上の画像を処理する

  4. ステータス追跡: ジョブのステータスと進行状況を監視する

  5. 結果ダウンロード: 処理が完了したら完成した3Dモデルをダウンロードします

サポートされているエクスポート形式

サーバーはさまざまな形式でのモデルのエクスポートをサポートしています。

  • OBJ : Wavefront OBJ形式(標準3Dモデル形式)

  • STL : 標準三角形言語(3Dプリント用)

  • PLY : ポリゴンファイル形式(点群およびメッシュ用)

  • SCAD : OpenSCAD ソースコード (パラメトリック モデル用)

  • CSG : OpenSCAD CSG 形式 (すべてのパラメトリック プロパティを保持)

  • AMF : 付加製造ファイル形式(一部のメタデータを保持)

  • 3MF : 3D 製造フォーマット (メタデータ付きの STL の最新代替)

ウェブインターフェース

サーバーは次の Web インターフェイスを提供します。

  • マルチビュー画像の生成と承認

  • 3Dモデルをさまざまな角度からプレビューする

  • さまざまな形式でのモデルのダウンロード

http://localhost:8000/ui/でインターフェースにアクセスします。

ライセンス

マサチューセッツ工科大学

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jhacksman/OpenSCAD-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server