内容
# OpenSCAD MCP 服务器
[](https://www.npmjs.com/package/openscad-mcp-server)
[](https://www.npmjs.com/package/openscad-mcp-server)
[](https://github.com/fboldo/openscad-mcp-server/actions/workflows/ci.yml)
一个 MCP(模型上下文协议)服务器,从 OpenSCAD(SCAD)源代码渲染 **PNG 预览** 和 **STL 几何体**。它旨在支持 **迭代的、基于代理的 CAD 工作流程**,可以在此过程中预览模型并导出以供下游使用(例如制造、模拟或检查)。
⚠️ **测试版**
该 MCP 服务器目前处于测试阶段。性能、API 和功能可能会发生变化。欢迎提出问题和贡献。
## 用例
- **迭代的基于代理的建模**
代理生成或修改 OpenSCAD 源代码,渲染 PNG 预览以评估形状和比例,并在多个回合中完善模型。
- **MCP 环境中的几何工件生成**
代理导出 STL 文件作为具体的几何工件,可以传递给下游工具、存储、检查或传递给其他支持 MCP 的系统。
- **参数设计的视觉基础**
PNG 预览为参数化或程序化的 SCAD 代码提供视觉基础,减少幻觉,使代理能够推理空间变化。
- **设计验证和比较**
代理可以渲染多个模型变体(例如参数扫描),并在决定保留或导出哪个几何体之前直观比较结果。
## 可用工具
- `render_scad_png`: 从 SCAD 源代码渲染 PNG 预览图像。
- 输入:`scadCode`(字符串),可选 `width`/`height`(数字),可选 `cameraPreset` 和可选 `cameraPosition`
- `cameraPreset`: `isometric`、`front`、`back`、`left`、`right`、`top`、`bottom` 之一
- `cameraPosition`: `{ x, y, z }`
- 输出:MCP `ImageContent`
- `export_scad_stl`: 从 SCAD 源代码导出 STL。
- 输入:`scadCode`(字符串),可选 `filename`(字符串)
- 输出:MCP 嵌入式资源(STL)
## 技能
该存储库还包括一个 [OpenSCAD 迭代建模技能](skills/openscad-iterative-modeling/SKILL.md),演示了如何使用此 MCP 服务器支持迭代的 SCAD → PNG → 审查 → 改进循环。
## 限制
- **性能**: 渲染复杂的 SCAD 模型可能很慢,特别是在 WASM 环境中。
- **功能支持**: 并非所有 OpenSCAD 功能都可能完全支持或在 WASM 版本中存在限制。
- **字体**: 目前不支持文本渲染。计划在未来版本中支持。
## 安装
已发布的软件包旨在通过 stdio 运行。在 MCP 客户端中使用 `npx` 配置:
```json
{
"mcpServers": {
"openscad": {
"command": "npx",
"args": ["-y", "openscad-mcp-server"]
}
}
}
```
### 使用技能
[代理技能](https://github.com/agentskills/agentskills)是一种简单、开放的格式,用于为代理提供新的功能和专业知识。
使用 OpenSCAD 迭代建模技能的最简单方法是使用 [技能 CLI](https://github.com/vercel-labs/skills) 安装:
```bash
npx skills add fboldo/openscad-mcp-server --skill openscad-iterative-modeling
```
## 本地开发
- 安装依赖:`bun install`
- stdio(与客户端运行方式匹配):`bun index.ts --stdio`
- HTTP(用于手动测试):`bun index.ts`
- 端口:`MCP_PORT`(默认为 `3000`)
- 端点:`GET /health`,MCP 在 `POST /mcp`
- MCP 检查器:`bun run dev`
## 相似项目
- [jhacksman/OpenSCAD-MCP-Server](https://github.com/jhacksman/OpenSCAD-MCP-Server)
该项目提供了一种不同的方法,依赖于从用户提示生成图像,然后进行 3D 重建甚至 3D 打印机发现。这是一个非常有趣的项目,如果您对 OpenSCAD 和 MCP 服务器感兴趣,我推荐您查看。
- [petrijr/openscad-mcp](https://github.com/petrijr/openscad-mcp)
与该项目类似,但使用基于 Python 的服务器,并依赖 OpenSCAD CLI 进行渲染。
## 相关链接
- [OpenSCAD](https://openscad.org/)
- [OpenSCAD WASM](https://github.com/openscad/openscad-wasm)
- [模型上下文协议(MCP)](https://modelcontextprotocol.org/)
- [Bun](https://bun.sh/)
## 许可证
MIT — 请参阅 [LICENSE](LICENSE)。