Mods MCP服务器
一 MCP(模型上下文协议) 将LLM桥接到的服务器 Mods CE,用于数字制造的基于浏览器的可视化编程环境。
加载PCB设计、配置铣削参数、为Roland SRM-20生成刀具路径——所有这些都可以通过Claude或任何兼容MCP的客户端使用自然语言完成。
Sample test program to create a toolpath for PCB milling
它做什么
服务器通过Playwright在Chrome浏览器中启动Mods CE实例,通过HTTP提供服务,并公开12个MCP工具,让LLM:
- 发现 可用程序(数控铣床、激光切割机、3D打印机)和模块(172个已解析)
- 负载 浏览器中预先构建的机器程序
- 检查 完整程序状态:模块、参数、连接和开关状态
- 配置 刀具直径、进给速度、切削深度、阈值等参数
- 加载文件 (SVG、PNG)转换为阅读器模块进行处理
- 执行 通过触发计算和预设来执行工作流
- 出口 生成的刀具路径文件(RML、G代码等)
- 创建 通过将模块连接在一起来定制程序
支持的机器
Mods CE包括以下预构建程序:
- 罗兰SRM-20 --PCB铣削(2D迹线、轮廓)、蜡铣削
- 尾声 --激光切割/雕刻
- 普吕萨 --3D打印
- Shopbot --CNC布线
- 还有更多
programs/machines/
快速开始
先决条件
- Node.js>=18.0.0
- 已安装谷歌Chrome浏览器
- Git
安装
git clone --recurse-submodules https://github.com/lahoramaker/mods-mcp.git
cd mods-mcp
npm install
npx playwright install chrome运行服务器
node src/server.js这将开始:
- 端口8080上为Mods CE服务的HTTP服务器
- 加载Mods CE的Chrome浏览器窗口
- stdio上的MCP服务器
选项:
--port 9090--使用其他HTTP端口--headless--在无头模式下运行Chrome
配置
克劳德代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"mods": {
"command": "node",
"args": ["/absolute/path/to/mods-mcp/src/server.js"]
}
}
}克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"mods": {
"command": "node",
"args": ["/absolute/path/to/mods-mcp/src/server.js"],
"env": {}
}
}
}MCP工具
| 工具 | 说明 |
|---|---|
get_server_status | 服务器运行状况、浏览器状态、HTTP URL、加载的程序 |
list_programs | 按类别列出可用程序 |
list_modules | 按类别列出可用模块 |
get_module_info | 解析模块的输入、输出和类型 |
load_program | 将程序加载到浏览器中 |
get_program_state | 读取所有模块、参数、连接和开关状态 |
set_parameter | 在模块中设置参数值 |
trigger_action | 单击模块中的按钮(计算、预设等) |
load_file | 将文件加载到模块的文件输入中 |
create_program | 从模块和连接构建自定义程序 |
save_program | 将当前程序状态保存到文件 |
export_file | 检索最近生成的输出文件 |
示例:PCB铣削工作流程
以下是从SVG PCB设计生成铣削刀具路径的顺序:
1. get_server_status → verify browser is connected
2. load_program → "programs/machines/Roland/SRM-20 mill/mill 2D PCB"
3. get_program_state → inspect modules, find on/off switches
4. set_parameter → toggle save file switch ON (see note below)
5. trigger_action → apply preset "mill traces (1/64)"
6. load_file → load SVG into "read SVG" module
7. trigger_action → click "calculate" on "mill raster 2D"
8. export_file → retrieve the generated .rml toolpath开/关开关模式
机器程序使用 开/关开关模块作为门 在管道末端:
- 切换到 Webusb (机器输出)为 开 默认情况下
- 切换到 保存文件 (磁盘输出)为 关闭 默认情况下
要将刀具路径保存到文件而不是发送到机器,请使用 get_program_state 找到连接到的开/关开关 save file,然后用以下键将其打开 set_parameterThe connectedTo / connectedFrom 状态输出中的字段显示哪个开关控制哪个路径。
建筑
mods-mcp/
├── src/
│ ├── server.js # MCP server + HTTP static file server
│ ├── browser.js # Playwright browser automation
│ ├── programs.js # Program discovery and creation
│ └── modules.js # Module introspection via vm sandbox
├── mods/ # Mods CE (git submodule)
├── .claude/
│ └── commands/
│ └── mods-workflow.md # Claude Code slash command guide
├── .mcp.json # Claude Code MCP configuration
├── CLAUDE.md # Platform internals documentation
└── package.json文档
看 docs/architecture.md C4架构图包括:
- 系统上下文 --MCP服务器如何融入LLM+Mods+机器生态系统
- 集装箱示意图 --服务器进程中的三个主要容器
- 构件图 --四个源模块的详细视图
- 序列图 --PCB铣削工作流程的完整数据流
- 内部管道 --数据如何通过Mods CE模块流动
Claude代码集成
此回购包括 /mods-workflow Claude Code的slash命令,教LLM如何正确使用MCP工具,包括开/关开关门控模式、模块消歧和复选框处理。
许可证
Mods CE子模块由 Mods项目 麻省理工学院比特与原子中心。有关其许可条款,请参阅子模块。
______________________________________________________________________
此仓库中的代码是使用Claude code(Opus 4.6)和OpenSpec工作流生成的。
