OpenSCAD MCP Server

OpenSCAD MCP Server

site icon
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/

使用教程

使用依赖

  1. 安装Python虚拟环境: python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
  2. 安装OpenSCAD:
  3. Ubuntu/Debian: sudo apt-get install openscad
  4. macOS: brew install openscad
  5. Windows: 从openscad.org下载安装
  6. 安装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

安装教程

  1. 克隆仓库: git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
  2. 安装依赖: pip install -r requirements.txt
  3. 设置API密钥:
  4. 在根目录创建.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

调试方式

  1. 启动服务: python src/main.py
  2. 访问Web界面: http://localhost:8000/ui/
  3. 使用MCP工具进行交互,例如生成图像: json { "prompt": "A low-poly rabbit with black background", "model": "gemini-2.0-flash-exp-image-generation" }

许可证

该项目遵循 MIT 开源许可条款。