Bambu Lab MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 本仓库实现了一个遵循 Model Context Protocol (MCP) 的服务器端应用,面向 Bambu Lab 系列打印机。它通过本地 MQTT 与打印机建立低延迟通信,提供对打印机状态、文件上传、AMS 配置、相机监控、制造商云 API 授权等多种能力的集中管理与对外暴露。服务器以 JSON-RPC 形式向客户端提供工具注册、执行与提示模板渲染等核心能力。
-
主要功能点
- MCP 核心能力
- 注册、暴露与执行工具(Tools),支持 Cloud API、MQTT 控制、打印作业、相机与监控等功能。
- 处理 ListTools 与 CallTool 请求,返回工具清单及执行结果。
- JSON-RPC 通信,支持多种传输方式(当前实现基于标准输入/输出的隐式传输,便于与 Claude 等客户端集成)。
- 设备与流程集成
- 本地 MQTT 控制:打印、暂停、继续、速度设置、发送 G-code、从 SD 卡打印等。
- 监控与状态:持续缓存打印机状态、获取版本信息、AMS 料筒管理、相机控制与快照、以及 MakerWorld 集成下载和打印。
- 文件上传:通过 FTPS 将模型/文件上传到打印机 SD 卡(并提供备选的 Curl FTPS 方案)。
- 安全与合规:对 G-code 进行安全检查、对温度进行范围限制、对路径遍历和上传扩展名进行校验。
- MakerWorld 集成
- 支持直接下载、浏览器辅助下载等多路径获取 MakerWorld 模型,并提供 slicing、上传、打印等一体化流程。
- 视图与监控
- 集成 AI 视觉分析能力,基于 Azure OpenAI、OpenAI、或 Anthropic 提供的模型,对打印过程中的图像进行评估并在必要时触发紧急停止。
- MCP 核心能力
-
安装步骤
- 确保使用 Node.js 18 及以上环境。
- 克隆仓库并进入项目目录。
- 安装依赖并构建:
- npm install
- npm run build
- 根据需要配置环境变量(如 BAMBU_LAB_MQTT_HOST、BAMBU_LAB_MQTT_PASSWORD、BAMBU_LAB_DEVICE_ID 等)。
- 运行 MCP 服务器:
- node dist/index.js(若已通过构建输出)。如需以 MCP 客户端形式接入 Claude,请参照下方“服务器配置”给出命令与参数。
-
服务器配置(MCP 客户端接入信息示例,供参考,实际客户端不需要此处的代码)
- server_name: bambu-lab-mcp
- command: node
- args: ["/path/to/bambu-mcp/dist/index.js"]
- 说明: 启动后服务器将通过 MCP 协议对外暴露工具与能力;需要在客户端配置中提供执行命令的路径、以及必要的环境变量以连接到打印机(包括 MQTT 主机、密码、设备 ID 等)。示例配置中的环境变量需按实际环境填写。
说明:以上配置用于 MCP 客户端接入时的示例描述,实际客户端无需包含此处的代码实现,但需要知道服务器的启动命令与参数,以便正确连接与使用。
-
基本使用方法
- 启动后,客户端可以通过 MCP 的 JSON-RPC 方式查询工具列表、调用具体工具(如 mqtt_connect、printer_print_file、camera_snapshot、makerworld_download 等)来完成对打印机的控制、状态获取、模型下载、以及监控等操作。
- 客户端在发送调用请求时,应保持对服务器的稳定连接,尤其在打印任务进行中,避免重复发起高频请求导致资源争用。
- 若需要远程监控、AI 视图分析或 MakerWorld 流程,请确保相应的 API/密钥环境变量配置正确(Azure/OpenAI/Anthropic/API Key、云 API Cookies、MakerWorld 下载等依赖)。