OpenSCAD AI C#MCP服务器
C#中的HTTP MCP服务器,将OpenSCAD模型渲染为确定性多视图PNG图像,供LLM工具使用。
特性
- 基于HTTP的MCP(
POST /mcp)使用JSON-RPC 2.0方法:initialize,ping,tools/list,tools/call - 健康/根端点(
GET /)返回server up - 工具:
render_openscad
- 输入: scad_file_path (路径到 .scad 文件) - 可选输入: print_process (fdm 或 sla,默认值 fdm) - 固定渲染大小: 1600x1200 (不可由用户配置) - 输出:带有MCP的6个确定性视图 image 内容块(base64 PNG) - 视图:top_ne、缩放的top_ne x3、top_sw、bottom_ne、bottom_sw、top - 严格的印刷适性规则,自动执行:禁止边缘壁厚接近零;FDM的最小壁厚为1.0mm,SLA为2.0mm
- 工具:
compare_renders
- 输入: reference_image_path (目标/原始图像), rendered_image_path (OpenSCAD渲染) - 输出:具有解释的定量相似性度量 - 度量:SSIM(结构相似性)、MSE(均方误差)、直方图相关性、边缘对齐 - 自动调整图像大小以匹配尺寸,从而进行准确比较
- F6风格渲染管道(网格导出+渲染),不是OpenSCAD预览模式
- 相机居中于bbox模型中心(
$vpt)具有确定性距离($vpd) - 在图像叠加上:顶部标签+XYZ图例(X红色,Y绿色,Z蓝色)
- 可选的CGAL验证工人集成,用于断开连接的零件和自交叉点
需求
- .NET SDK 10+
- OpenSCAD CLI可在
PATH作为openscad
跑
dotnet run --urls http://127.0.0.1:8770要与CGAL worker一起运行:
CGAL_WORKER_PATH=/absolute/path/to/cgal_worker dotnet run --urls http://127.0.0.1:8770默认工作路径(如果未设置env var):
Validation/cgal_worker/bin/cgal_worker
然后:
GET http://127.0.0.1:8770/->server upPOST http://127.0.0.1:8770/mcp用于MCP JSON-RPC调用
MCP工具示例
渲染OpenSCAD模型
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "render_openscad",
"arguments": {
"scad_file_path": "/absolute/path/to/model.scad"
}
}
}将渲染图像与参考进行比较
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "compare_renders",
"arguments": {
"reference_image_path": "/path/to/original_photo.png",
"rendered_image_path": "/path/to/render_top_ne.png"
}
}
}退货:
ssim:0.0-1.0(1.0=结构相同)mse:越低越好(\500显著差异)histogram_correlation:-1.0到1.0(>0.90的颜色匹配良好)edge_alignment:0.0-1.0(>0.80边缘对齐良好)
