
OpenSCAD MCP Server

2025.03.22
19
Python3D模型生成参数化设计AI图像生成多视图重建内容生成开发效率
OpenSCAD-MCP-Server 是一个基于模型上下文协议(MCP)的服务,专注于通过文本描述或图像生成3D模型,特别是利用多视图重建和OpenSCAD创建参数化3D模型。该服务集成了AI图像生成、多视图图像生成、3D重建、远程处理等功能,并支持OpenSCAD集成和3D打印机发现。
View on GitHub
Overview
基本能力
产品定位
OpenSCAD-MCP-Server 是一个专注于3D模型生成和参数化设计的服务,通过AI和多视图重建技术,将文本描述或图像转换为3D模型。
核心功能
- AI图像生成:使用Google Gemini或Venice.ai API从文本描述生成图像。
- 多视图图像生成:为同一3D对象生成多个视图以进行重建。
- 图像审批工作流:在重建前审查并批准/拒绝生成的图像。
- 3D重建:使用CUDA多视图立体技术将批准的多视图图像转换为3D模型。
- 远程处理:在局域网内的远程服务器上处理计算密集型任务。
- OpenSCAD集成:使用OpenSCAD生成参数化3D模型。
- 参数化导出:导出保留参数属性的模型(CSG、AMF、3MF、SCAD)。
- 3D打印机发现:可选网络打印机发现和直接打印。
适用场景
- 从文本描述快速生成3D模型。
- 通过多视图图像重建复杂3D模型。
- 在资源有限的设备上使用远程处理进行3D重建。
- 参数化3D模型设计和导出。
工具列表
- generate_image_gemini:使用Google Gemini API生成图像。
- generate_multi_view_images:生成同一3D对象的多个视图。
- create_3d_model_from_images:从批准的多视图图像创建3D模型。
- create_3d_model_from_text:从文本描述到3D模型的完整流程。
- export_model:将模型导出为特定格式。
- discover_remote_cuda_mvs_servers:发现网络中的CUDA MVS服务器。
- get_remote_job_status:检查远程处理任务状态。
- download_remote_model_result:从远程服务器下载完成的模型。
- discover_printers:发现网络中的3D打印机。
- print_model:在连接的打印机上打印模型。
常见问题解答
- 如何设置API密钥:在根目录创建
.env
文件并添加API密钥。 - 如何启用远程处理:在
.env
文件中设置REMOTE_CUDA_MVS_ENABLED=True
。 - 如何访问Web界面:启动服务后访问
http://localhost:8000/ui/
。
使用教程
使用依赖
- 安装Python虚拟环境:
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
- 安装OpenSCAD:
- Ubuntu/Debian:
sudo apt-get install openscad
- macOS:
brew install openscad
- Windows: 从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 .. make
安装教程
- 克隆仓库:
git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
- 安装依赖:
pip install -r requirements.txt
- 设置API密钥:
- 在根目录创建
.env
文件并添加:GEMINI_API_KEY=your-gemini-api-key VENICE_API_KEY=your-venice-api-key # Optional REMOTE_CUDA_MVS_API_KEY=your-remote-api-key
调试方式
- 启动服务:
python src/main.py
- 访问Web界面:
http://localhost:8000/ui/
- 使用MCP工具进行交互,例如生成图像:
json { "prompt": "A low-poly rabbit with black background", "model": "gemini-2.0-flash-exp-image-generation" }