OpenSCAD MCP Server

OpenSCAD MCP Server

site icon
2025.03.24 1
Python3D模型生成参数化设计AI图像生成内容生成
OpenSCAD MCP Server 是一个基于模型上下文协议(MCP)的服务,专注于通过文本描述或图像生成3D模型,特别是利用多视角重建和OpenSCAD创建参数化3D模型。该服务集成了AI图像生成、多视角图像生成、3D重建、远程处理等功能,并支持OpenSCAD集成和多种导出格式。
View on GitHub

Overview

基本能力

产品定位

OpenSCAD MCP Server 是一个专注于通过AI生成3D模型的服务,特别适用于参数化3D模型的创建和导出。

核心功能

  • AI图像生成:通过Google Gemini或Venice.ai API从文本描述生成图像。
  • 多视角图像生成:为3D对象生成多个视角的图像。
  • 图像审批工作流:在重建前审查和批准/拒绝生成的图像。
  • 3D重建:使用CUDA多视角立体技术将批准的图像转换为3D模型。
  • 远程处理:在局域网内的远程服务器上处理计算密集型任务。
  • OpenSCAD集成:生成参数化3D模型。
  • 参数化导出:导出保留参数属性的模型(CSG、AMF、3MF、SCAD)。
  • 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文件中添加GEMINI_API_KEYVENICE_API_KEY
  • 如何启用远程处理:在.env文件中设置REMOTE_CUDA_MVS_ENABLED=True
  • 如何安装CUDA Multi-View Stereo:克隆仓库并按照cmakemake步骤进行安装。

使用教程

使用依赖

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

安装教程

  1. 克隆仓库: git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
  2. 安装依赖: pip install -r requirements.txt
  3. 安装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
  4. 设置API密钥:在.env文件中添加GEMINI_API_KEYVENICE_API_KEY

调试方式

  1. 启动服务器: python src/main.py
  2. 访问Web界面: http://localhost:8000/ui/
  3. 使用MCP工具进行交互,如生成图像或创建3D模型。

许可证

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