OpenSCAD MCP 服务器
模型上下文协议 (MCP) 服务器,使用户能够从文本描述或图像生成 3D 模型,重点是使用多视图重建和 OpenSCAD 创建参数化 3D 模型。
特征
AI 图像生成:使用 Google Gemini 或 Venice.ai API 根据文本描述生成图像
多视图图像生成:创建同一 3D 对象的多个视图以进行重建
图像审批工作流程:重建前审查并批准/拒绝生成的图像
3D 重建:使用 CUDA 多视图立体技术将批准的多视图图像转换为 3D 模型
远程处理:在局域网内的远程服务器上处理计算密集型任务
OpenSCAD 集成:使用 OpenSCAD 生成参数化 3D 模型
参数导出:以保留参数属性的格式导出模型(CSG、AMF、3MF、SCAD)
3D 打印机发现:可选的网络打印机发现和直接打印
建筑学
该服务器使用 Python MCP SDK 构建,并遵循模块化架构:
安装
克隆存储库:
git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate安装依赖项:
pip install -r requirements.txt安装OpenSCAD:
Ubuntu/Debian:
sudo apt-get install openscadmacOS:
brew install openscadWindows:从openscad.org下载
安装 CUDA 多视图立体:
git clone https://github.com/fixstars/cuda-multi-view-stereo.git cd cuda-multi-view-stereo mkdir build && cd build cmake .. make设置 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 多视图立体重建。这允许您将处理任务转移到局域网内更强大的机器上。
服务器设置(在装有 CUDA GPU 的机器上)
在服务器机器上安装 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启动远程 CUDA MVS 服务器:
python src/main_remote.py服务器将使用 Zeroconf 在本地网络上自动宣传自己。
客户端配置
在
.env文件中配置远程处理:REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=True REMOTE_CUDA_MVS_API_KEY=your-shared-secret-key或者,您可以直接指定服务器 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 密钥身份验证
健康监控:持续的服务器健康检查和状态报告
用法
启动服务器:
python src/main.py服务器将在http://localhost:8000上启动
使用 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" }
图像生成选项
服务器支持多种图像生成选项:
Google Gemini API (默认):使用 Gemini 2.0 Flash Experimental 模型生成高质量图像
支持多视图生成,风格一致
需要 Google Gemini API 密钥
Venice.ai API (可选):替代图像生成服务
支持多种模型,包括 flux-dev 和 fluently-xl
需要 Venice.ai API 密钥
用户提供的图像:跳过图像生成并使用您自己的图像
直接将图像上传到服务器
适用于处理现有照片或渲染图
多视图工作流程
服务器实现了3D重建的多视图工作流程:
图像生成:生成同一 3D 对象的多个视图
图像批准:审查并批准/拒绝每个生成的图像
3D 重建:使用 CUDA MVS 将批准的图像转换为 3D 模型
可以在本地或 LAN 内的远程服务器上处理
模型细化:可选择使用 OpenSCAD 细化模型
远程处理工作流程
远程处理工作流程允许您将计算密集型任务卸载到更强大的机器上:
服务器发现:自动发现网络上的 CUDA MVS 服务器
图像上传:将批准的多视图图像上传到远程服务器
作业处理:使用 CUDA MVS 处理远程服务器上的图像
状态跟踪:监控工作状态和进度
结果下载:处理完成后下载完成的3D模型
支持的导出格式
服务器支持导出多种格式的模型:
OBJ :Wavefront OBJ格式(标准3D模型格式)
STL :标准三角语言(用于3D打印)
PLY :多边形文件格式(用于点云和网格)
SCAD :OpenSCAD 源代码(用于参数模型)
CSG :OpenSCAD CSG 格式(保留所有参数属性)
AMF :增材制造文件格式(保留一些元数据)
3MF :3D 制造格式(带有元数据的 STL 的现代替代品)
Web 界面
该服务器提供了一个 Web 界面用于:
生成和批准多视图图像
从不同角度预览 3D 模型
下载各种格式的模型
执照
麻省理工学院
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
This server cannot be installed