内容
# OpenSCAD MCP
一个用于生成、读取、验证和导出 OpenSCAD 模型的轻量级、无依赖的 MCP 服务器。
服务器将所有模型访问权限限制在此文件夹内:
- `models/` 用于 `.scad` 文件
- `outputs/` 用于生成的 `.stl`、`.3mf`、`.png`、`.svg` 和其他导出文件
## 要求
- Python 3.10+
- 已在本地安装 OpenSCAD
在 Windows 上,安装 OpenSCAD 并将 `openscad.exe` 添加到 `PATH`,或将 `OPENSCAD_BIN` 设置为可执行文件的完整路径。
示例 PowerShell 会话:
```powershell
$env:OPENSCAD_BIN = "C:\Program Files\OpenSCAD\openscad.exe"
python .\server.py
```
## 工具
- `list_models`:列出 `models/` 中的 `.scad` 文件
- `read_model`:读取一个模型
- `write_model`:创建或替换一个模型
- `discover_parameters`:解析简单的顶级赋值,如 `width = 80;`
- `set_parameters`:更新简单的顶级参数赋值
- `validate_model`:编译为 CSG 以捕获 OpenSCAD 错误
- `export_model`:导出为 `stl`、`3mf`、`png`、`svg`、`dxf`、`off`、`amf` 或 `csg`
## Claude Desktop / 兼容 MCP 配置
如果移动此文件夹,请调整路径:
```json
{
"mcpServers": {
"openscad": {
"command": "python",
"args": [
"C:\\Users\\admin\\Documents\\New project\\openscad-mcp\\server.py",
"--root",
"C:\\Users\\admin\\Documents\\New project\\openscad-mcp"
],
"env": {
"OPENSCAD_BIN": "C:\\Program Files\\OpenSCAD\\openscad.exe"
}
}
}
}
```
如果 `openscad.exe` 已在 `PATH` 中,则删除 `env` 块。
## 手动烟雾测试
这要求服务器初始化并列出工具:
```powershell
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' | python .\server.py
```
## 示例导出调用
从 MCP 客户端调用:
```json
{
"name": "export_model",
"arguments": {
"path": "parametric_box.scad",
"format": "stl",
"render": true
}
}
```
STL 将写入 `outputs/` 下。