乐高模型编辑服务

一个允许AI助手创建、检查和编辑存储在BrickLink Studio和LDraw文件中的乐高模型的MCP服务器。

  • by datakurre
  • Python
  • 本地部署
  • 30 星标
  • 更新于
在 GitHub 查看 datakurre/brick-mcp

使用说明

砖mcp

一 主控程序 服务器,允许AI助手创建、检查和编辑存储在BrickLink Studio中的LEGO模型(.io)和LDraw(.ldr)文件。让你的AI助手打开一个文件,移动零件,改变颜色,添加新的砖块,然后保存回直接在BrickLink Studio中打开的文件。

特性

  • 打开并保存 BrickLink工作室 .io 文件和普通LDraw .ldr / .mpd 文件
  • 列出零件,检查物料清单,查看建筑说明步骤
  • 按会话ID添加、删除、移动、旋转和重新着色单个零件
  • 搜索内置零件数据库并查找LDraw颜色代码
  • 使用从头开始创建新模型 new_model()

需求

  • Python≥3.14
  • 拒绝 (推荐--自动处理所有依赖关系)

如果没有Nix,请手动安装Python依赖项:

pip install "fastmcp>=3.1.0" "pyzipper>=0.3.6"

MCP客户端配置

VS Code

存储库提供了一个即用型 .vscode/mcp.json 使用Nix:

{
  "servers": {
    "bricks": {
      "type": "stdio",
      "command": "nix",
      "args": ["run", "/path/to/brick-mcp"]
    }
  }
}

替换 /path/to/brick-mcp 使用本地克隆的路径,或使用 github:datakurre/brick-mcp 直接从GitHub运行,无需克隆。

克劳德桌面(claude_desktop_config.json)

{
  "mcpServers": {
    "bricks": {
      "command": "nix",
      "args": ["run", "github:datakurre/brick-mcp"]
    }
  }
}

没有Nix(本地Python)

{
  "mcpServers": {
    "bricks": {
      "command": "python",
      "args": ["/path/to/brick-mcp/main.py"]
    }
  }
}

典型工作流程

1. open_model("path/to/model.io")   — load a file
2. list_parts()                      — see what's inside
3. change_color("abc123", 4)         — change a part to Red
4. add_part("3001.dat", 4, x=0, y=-24, z=0)  — place a new 2×4 brick
5. save_model()                      — write back to the original file

工具参考

文件操作

工具 说明
new_model(name) 在内存中创建一个新的空模型。
open_model(path) 打开a .io, .ldr,或 .mpd 文件。为所有部分分配会话ID。
save_model(path) 保存模型。省略 path 以覆盖源文件。
get_model_info() 返回文件名、子模型、总零件数、脏标志。

检查

工具 说明
list_parts(submodel) 列出所有带有ID、颜色、位置和旋转的零件。
get_bom(submodel) 按零件号和颜色分组的物料清单。
get_steps(submodel) 建立指令步骤边界和每个步骤的零件数量。

编辑

工具 说明
add_part(part_number, color, x, y, z, rotation_matrix, submodel) 添加零件并返回其新会话ID
remove_part(part_id, submodel) 按会话ID删除零件
move_part(part_id, x, y, z, submodel) 将零件移动到新的绝对坐标。
rotate_part(part_id, rotation_matrix, submodel) 更换零件的旋转矩阵
change_color(part_id, color, submodel) 对零件重新着色。
add_step(submodel) 添加STEP标记(建筑说明边界)。
remove_step(step_index, submodel) 按索引删除STEP标记。

零件和颜色数据库

工具 说明
search_parts(query) 按名称或编号搜索内置零件数据库。
list_colors() 所有带有名称和十六进制值的LDraw颜色代码。
get_color_info(color_code) 特定颜色代码的详细信息。

坐标系

LDraw用途 LDU (LDraw单位)。关键测量:

测量 LDU
1个螺柱宽度 20
1砖高 24
1板高 8

这 Y轴反转: y=0 是构建板, y=-24 X和Z是水平面。

常用LDraw颜色代码

代码 颜色
0 黑色
1 蓝色
2 绿色
4 红色
14 黄色
15 白色
71 浅蓝灰色
72 深蓝灰色

使用 list_colors() 查看完整列表。

通用零件号

零件 编号
砖1×1 3005
砖1×2 3004
砖1×4 3010
砖2×2 3003
砖2×4 3001
板1×1 3024
板1×2 3023
板2×4 3020

使用 search_parts("brick 2x4") 查找您不知道的零件号。