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 提供的模型,对打印过程中的图像进行评估并在必要时触发紧急停止。
  • 安装步骤

    1. 确保使用 Node.js 18 及以上环境。
    2. 克隆仓库并进入项目目录。
    3. 安装依赖并构建:
      • npm install
      • npm run build
    4. 根据需要配置环境变量(如 BAMBU_LAB_MQTT_HOST、BAMBU_LAB_MQTT_PASSWORD、BAMBU_LAB_DEVICE_ID 等)。
    5. 运行 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 下载等依赖)。

服务器信息