使用说明
OpenSCAD MCP服务器
MCP(模型上下文协议)服务器,使LLM能够使用OpenSCAD创建和操纵3D模型。
为什么选择OpenSCAD?
OpenSCAD基于代码的CSG(构造性实体几何)方法非常适合LLM集成:
- 基于文本:模型是在代码中定义的,而不是GUI交互
- 确定性的:相同的代码总是产生相同的几何图形
- 可组合:CSG操作(联合、差异、船体)自然地映射到LLM如何描述形状
- 参数化:易于创建可调整的设计
特性
| 工具 | 说明 |
|---|---|
openscad_create_model |
创建新的.scad模型文件 |
openscad_update_model |
更新现有模型代码 |
openscad_get_model |
检索模型源代码 |
openscad_list_models |
列出工作区中的所有模型 |
openscad_delete_model |
删除模型 |
openscad_render_preview |
生成PNG预览图像 |
openscad_render_code |
直接渲染代码而不保存 |
openscad_export |
导出到STL、3MF、AMF等。 |
openscad_get_info |
获取OpenSCAD版本和配置 |
安装
先决条件
-
OpenSCAD 必须安装。默认路径:
C:\Program Files\OpenSCAD\openscad.exe- 下载地址:https://openscad.org/downloads.html
-
Python 3.10+ 使用pip
安装MCP服务器
cd openscad-mcp
pip install -e .
配置Claude桌面
添加到您的Claude桌面配置(%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"openscad": {
"command": "openscad-mcp"
}
}
}
或者,如果您在开发模式下安装并希望指定路径:
{
"mcpServers": {
"openscad": {
"command": "python",
"args": ["-m", "openscad_mcp.server"]
}
}
}
使用示例
简单立方体
cube([20, 20, 20], center=true);
圆形盒子
$fn = 32;
minkowski() {
cube([20, 20, 10], center=true);
sphere(r=2);
}
空心圆柱体
$fn = 64;
difference() {
cylinder(h=30, r=15);
translate([0, 0, -1])
cylinder(h=32, r=12);
}
参数化设计
// Parameters
wall_thickness = 2;
inner_diameter = 30;
height = 50;
$fn = 64;
difference() {
cylinder(h=height, d=inner_diameter + wall_thickness*2);
translate([0, 0, wall_thickness])
cylinder(h=height, d=inner_diameter);
}
工作区
模型存储在 ./workspace/ 相对于服务器。首次运行时会自动创建工作区。
导出格式
- 标准模板库:3D打印的标准格式
- 3MF:现代3D打印格式,支持材料
- 抽象消息格式:增材制造文件格式
- 关闭:对象文件格式
- DXF/SVG:用于激光切割等的2D导出。
- 便携式网络图形:渲染图像
相机控制
预览渲染支持相机定位:
-
旋转模式:
translate_x,translate_y,translate_z,rot_x,rot_y,rot_z,distance- 例子:
"0,0,0,45,0,30,200"-45°仰角,30°旋转视角
- 例子:
-
眼睛/中心模式:
eye_x,eye_y,eye_z,center_x,center_y,center_z- 例子:
"100,100,100,0,0,0"-在(100100100)处观察原点的相机
- 例子:
发展
# Install dev dependencies
pip install -e ".[dev]"
# Run directly
python -m openscad_mcp.server
许可证
麻省理工学院