OpenSCAD MCP Server
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Manages environment variables for API keys and configuration settings, including remote processing options
Build system used to compile the CUDA Multi-View Stereo dependency for 3D reconstruction
Used for cloning and managing external dependencies like the cuda-multi-view-stereo repository for 3D reconstruction
OpenSCAD MCP Server
A Model Context Protocol (MCP) server that enables users to generate 3D models from text descriptions or images, with a focus on creating parametric 3D models using multi-view reconstruction and OpenSCAD.
Features
- AI Image Generation: Generate images from text descriptions using Google Gemini or Venice.ai APIs
- Multi-View Image Generation: Create multiple views of the same 3D object for reconstruction
- Image Approval Workflow: Review and approve/deny generated images before reconstruction
- 3D Reconstruction: Convert approved multi-view images into 3D models using CUDA Multi-View Stereo
- Remote Processing: Process computationally intensive tasks on remote servers within your LAN
- OpenSCAD Integration: Generate parametric 3D models using OpenSCAD
- Parametric Export: Export models in formats that preserve parametric properties (CSG, AMF, 3MF, SCAD)
- 3D Printer Discovery: Optional network printer discovery and direct printing
Architecture
The server is built using the Python MCP SDK and follows a modular architecture:
Installation
- Clone the repository:Copy
- Create a virtual environment:Copy
- Install dependencies:Copy
- Install OpenSCAD:
- Ubuntu/Debian:
sudo apt-get install openscad
- macOS:
brew install openscad
- Windows: Download from openscad.org
- Ubuntu/Debian:
- Install CUDA Multi-View Stereo:Copy
- Set up API keys:
- Create a
.env
file in the root directory - Add your API keys:Copy
- Create a
Remote Processing Setup
The server supports remote processing of computationally intensive tasks, particularly CUDA Multi-View Stereo reconstruction. This allows you to offload processing to more powerful machines within your LAN.
Server Setup (on the machine with CUDA GPU)
- Install CUDA Multi-View Stereo on the server machine:Copy
- Start the remote CUDA MVS server:Copy
- The server will automatically advertise itself on the local network using Zeroconf.
Client Configuration
- Configure remote processing in your
.env
file:Copy - Alternatively, you can specify a server URL directly:Copy
Remote Processing Features
- Automatic Server Discovery: Find CUDA MVS servers on your local network
- Job Management: Upload images, track job status, and download results
- Fault Tolerance: Automatic retries, circuit breaker pattern, and error tracking
- Authentication: Secure API key authentication for all remote operations
- Health Monitoring: Continuous server health checks and status reporting
Usage
- Start the server:Copy
- The server will start on http://localhost:8000
- Use the MCP tools to interact with the server:
- generate_image_gemini: Generate an image using Google Gemini APICopy
- generate_multi_view_images: Generate multiple views of the same 3D objectCopy
- create_3d_model_from_images: Create a 3D model from approved multi-view imagesCopy
- create_3d_model_from_text: Complete pipeline from text to 3D modelCopy
- export_model: Export a model to a specific formatCopy
- discover_remote_cuda_mvs_servers: Find CUDA MVS servers on your networkCopy
- get_remote_job_status: Check the status of a remote processing jobCopy
- download_remote_model_result: Download a completed model from a remote serverCopy
- discover_printers: Discover 3D printers on the networkCopy
- print_model: Print a model on a connected printerCopy
- generate_image_gemini: Generate an image using Google Gemini API
Image Generation Options
The server supports multiple image generation options:
- Google Gemini API (Default): Uses the Gemini 2.0 Flash Experimental model for high-quality image generation
- Supports multi-view generation with consistent style
- Requires a Google Gemini API key
- Venice.ai API (Optional): Alternative image generation service
- Supports various models including flux-dev and fluently-xl
- Requires a Venice.ai API key
- User-Provided Images: Skip image generation and use your own images
- Upload images directly to the server
- Useful for working with existing photographs or renders
Multi-View Workflow
The server implements a multi-view workflow for 3D reconstruction:
- Image Generation: Generate multiple views of the same 3D object
- Image Approval: Review and approve/deny each generated image
- 3D Reconstruction: Convert approved images into a 3D model using CUDA MVS
- Can be processed locally or on a remote server within your LAN
- Model Refinement: Optionally refine the model using OpenSCAD
Remote Processing Workflow
The remote processing workflow allows you to offload computationally intensive tasks to more powerful machines:
- Server Discovery: Automatically discover CUDA MVS servers on your network
- Image Upload: Upload approved multi-view images to the remote server
- Job Processing: Process the images on the remote server using CUDA MVS
- Status Tracking: Monitor the job status and progress
- Result Download: Download the completed 3D model when processing is finished
Supported Export Formats
The server supports exporting models in various formats:
- OBJ: Wavefront OBJ format (standard 3D model format)
- STL: Standard Triangle Language (for 3D printing)
- PLY: Polygon File Format (for point clouds and meshes)
- SCAD: OpenSCAD source code (for parametric models)
- CSG: OpenSCAD CSG format (preserves all parametric properties)
- AMF: Additive Manufacturing File Format (preserves some metadata)
- 3MF: 3D Manufacturing Format (modern replacement for STL with metadata)
Web Interface
The server provides a web interface for:
- Generating and approving multi-view images
- Previewing 3D models from different angles
- Downloading models in various formats
Access the interface at http://localhost:8000/ui/
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
This server cannot be installed
Enables users to generate parametric 3D models from text descriptions or images using multi-view reconstruction and OpenSCAD, with support for AI image generation and remote processing.