这是一个模型上下文协议(MCP)服务器,允许用户通过文本描述或图像生成3D模型,重点是通过多视图重建和OpenSCAD创建参数化3D模型。
服务器使用Python MCP SDK构建,采用模块化架构:
openscad-mcp-server/ ├── src/ # 源代码目录 │ ├── main.py # 主应用程序 │ ├── main_remote.py # 远程CUDA MVS服务器 │ ├── ai/ # AI集成模块 │ │ ├── gemini_api.py # Google Gemini图像生成API │ │ └── venice_api.py # Venice.ai图像生成API(可选) │ ├── models/ # 3D模型生成模块 │ │ ├── cuda_mvs.py # CUDA多视图立体集成 │ │ └── code_generator.py # OpenSCAD代码生成器 │ ├── workflow/ # 工作流组件 │ │ ├── image_approval.py # 图像审批机制 │ │ └── multi_view_to_model_pipeline.py # 完整处理流程 │ ├── remote/ # 远程处理模块 │ │ ├── cuda_mvs_client.py # 远程CUDA MVS客户端 │ │ ├── cuda_mvs_server.py # 远程CUDA MVS服务器 │ │ ├── connection_manager.py # 远程连接管理 │ │ └── error_handling.py # 远程处理错误处理 │ ├── openscad_wrapper/ # OpenSCAD命令行包装器 │ ├── visualization/ # 预览生成和Web界面 │ ├── utils/ # 实用函数 │ └── printer_discovery/ # 3D打印机发现模块 ├── scad/ # 生成的OpenSCAD文件 ├── output/ # 输出文件(模型、预览) │ ├── images/ # 生成的图像 │ ├── multi_view/ # 多视图图像 │ ├── approved_images/ # 批准用于重建的图像 │ └── models/ # 生成的3D模型 ├── templates/ # Web界面模板 └── static/ # Web界面静态文件
克隆代码库:
git clone https://github.com/jhacksman/OpenSCAD-MCP-Server.git cd OpenSCAD-MCP-Server
创建虚拟环境:
python -m venv venv source venv/bin/activate # Windows系统使用:venv\Scripts\activate
安装依赖项:
pip install -r requirements.txt
安装OpenSCAD:
sudo apt-get install openscad
brew install openscad
安装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
文件GEMINI_API_KEY=您的Gemini API密钥 VENICE_API_KEY=您的Venice API密钥 # 可选 REMOTE_CUDA_MVS_API_KEY=您的远程API密钥 # 用于远程处理
服务器支持将计算密集型任务(特别是CUDA多视图立体重建)远程处理。这允许您将处理任务卸载到局域网内更强大的机器上。
在服务器机器上安装CUDA多视图立体:
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=您的共享密钥
或者,您可以直接指定服务器URL:
REMOTE_CUDA_MVS_ENABLED=True REMOTE_CUDA_MVS_USE_LAN_DISCOVERY=False REMOTE_CUDA_MVS_SERVER_URL=http://服务器IP:8765 REMOTE_CUDA_MVS_API_KEY=您的共享密钥
启动服务器:
python src/main.py
服务器将在http://localhost:8000启动
使用MCP工具与服务器交互:
generate_image_gemini:使用Google Gemini API生成图像
{
"prompt": "黑色背景的低多边形兔子",
"model": "gemini-2.0-flash-exp-image-generation"
}

generate_multi_view_images:生成同一3D对象的多个视图
{
"prompt": "低多边形兔子",
"num_views": 4
}

create_3d_model_from_images:从批准的多视图图像创建3D模型
{
"image_ids": ["view_1", "view_2", "view_3", "view_4"],
"output_name": "兔子模型"
}

create_3d_model_from_text:从文本到3D模型的完整流程
{
"prompt": "低多边形兔子",
"num_views": 4
}

export_model:将模型导出为特定格式
{
"model_id": "您的模型ID",
"format": "obj" // 或"stl"、"ply"、"scad"等
}

discover_remote_cuda_mvs_servers:在您的网络上查找CUDA MVS服务器
{
"timeout": 5
}

get_remote_job_status:检查远程处理作业的状态
{
"server_id": "服务器ID",
"job_id": "作业ID"
}

download_remote_model_result:从远程服务器下载完成的模型
{
"server_id": "服务器ID",
"job_id": "作业ID",
"output_name": "模型名称"
}

discover_printers:发现网络上的3D打印机
{}

print_model:在连接的打印机上打印模型
{
"model_id": "您的模型ID",
"printer_id": "您的打印机ID"
}

服务器支持多种图像生成选项:
Google Gemini API(默认):使用Gemini 2.0 Flash Experimental模型生成高质量图像
Venice.ai API(可选):替代图像生成服务
用户提供的图像:跳过图像生成,使用您自己的图像
服务器实现了用于3D重建的多视图工作流:
远程处理工作流允许您将计算密集型任务卸载到更强大的机器:
服务器支持以各种格式导出模型:
服务器提供Web界面用于:
通过http://localhost:8000/ui/访问界面
MIT许可证
欢迎贡献!请随时提交Pull Request。