3D打印机控制服务器

Bambu Lab P1P MCP服务器是一个通过MQTT协议实现Claude Desktop与Bambu Lab P1P 3D打印机交互的服务,提供打印机状态监控、打印控制、速度调整等功能。

  • by Shockedrope
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 Shockedrope/bambu-mcp-server

使用说明

Bambu Lab P1P MCP服务器

MCP(模型上下文协议)服务器,使Claude Desktop能够通过MQTT与您的Bambu Lab P1P 3D打印机进行交互。直接通过Claude控制打印机、检查状态和管理打印!

特性

  • 获取打印机状态:检查打印进度、温度和打印机状态
  • 控制打印:暂停、恢复或停止活动打印
  • 调速:在静音、标准、运动和Ludicrous模式之间更改打印速度
  • 实时更新:通过MQTT监视打印机状态

先决条件

  • Python 3.10或更高版本
  • 本地网络上的Bambu Lab P1P打印机
  • 打印机访问代码(来自打印机设置)

获取打印机信息

您需要P1P中的三条信息:

  1. 打印机IP地址:在路由器的DHCP客户端列表或打印机设置中找到此项
  2. 访问码:
    • 在打印机屏幕上:设置→ 网络→ 局域网模式
    • 启用LAN模式(如果尚未启用)
    • 注意8个字符的访问代码
  3. 序列号:
    • 在打印机屏幕上找到:设置→ 设备
    • 格式: 01P00AXXXXXXXXX

安装

  1. 克隆或下载这些文件 到计算机上的某个目录

  2. 安装Python依赖项:

pip install -r requirements.txt
  1. 设置环境变量.创建一个 .env 在shell中文件或设置这些:
export BAMBU_PRINTER_IP="192.168.1.100"        # Your printer's IP
export BAMBU_ACCESS_CODE="12345678"            # Your 8-char access code
export BAMBU_SERIAL_NUMBER="01P00A123456789"   # Your printer serial number
  1. 测试服务器 (可选):
python bambu_lab_mcp.py --help

Claude桌面配置

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bambu-lab": {
      "command": "python",
      "args": ["/absolute/path/to/bambu_lab_mcp.py"],
      "env": {
        "BAMBU_PRINTER_IP": "192.168.1.100",
        "BAMBU_ACCESS_CODE": "12345678",
        "BAMBU_SERIAL_NUMBER": "01P00A123456789"
      }
    }
  }
}

重要:替换 /absolute/path/to/bambu_lab_mcp.py 保存文件的完整路径。

用法示例

配置后,您可以向Claude询问以下问题:

  • “我的3D打印机的状态如何?”
  • “我的打印完成了吗?”
  • “暂停当前打印”
  • “恢复打印”
  • “将打印速度设置为运动模式”
  • “喷嘴的温度是多少?”
  • “打印还剩多少时间?”

可用工具

bambu_get_status

获取当前打印机状态,包括:

  • 打印状态(空闲、打印、暂停等)
  • 进度百分比和剩余时间
  • 喷嘴和床层温度
  • 当前文件名和图层信息
  • 速度设置和风扇速度

选项:

  • detailed:请求完整状态更新(需要2-3秒)
  • response_format:选择“markdown”(默认)或“json”输出

bambu_control_print

控制活动打印:

  • pause:暂停当前打印
  • resume:恢复暂停的打印
  • stop:取消打印(⚠️ 无法撤消)

bambu_set_speed

打印时更改打印速度:

  • 级别1:静音(最安静、最慢)
  • 级别2:标准(默认,平衡)
  • 第三级:运动(速度快,质量好)
  • 4级:Ludicrous(最高速度)

故障排除

“无法连接到打印机”

  • 验证打印机是否已通电并连接到Wi-Fi
  • 检查打印机IP地址是否正确
  • 确保打印机上启用了LAN模式
  • 验证访问代码是否正确(区分大小写)

“缺少必需的环境变量”

  • 仔细检查所有三个环境变量是否已设置
  • 验证变量名是否完全匹配(区分大小写)
  • 确保值不是空字符串

MCP服务器未在Claude中显示

  • 验证中的路径 claude_desktop_config.json 是绝对的,不是相对的
  • 配置更改后重新启动Claude Desktop
  • 检查Claude Desktop日志中的错误消息

macOS/Linux上的权限被拒绝

  • 确保Python文件可读: chmod +r bambu_lab_mcp.py
  • 验证Python是否已安装并可从命令行访问

安全说明

  • 访问代码授予您对打印机的完全控制权,确保其安全
  • 此服务器仅通过本地网络连接到您的打印机
  • 没有数据发送到外部服务器
  • MQTT连接使用TLS加密

局限性

  • 每个服务器实例仅支持一台打印机
  • 无法将新文件上传到打印机(请使用Bambu Studio/Handy)
  • 无法访问摄像头馈送
  • P1P特异性(可能适用于P1S/X1C,但未经测试)

贡献

请随时提交问题或拉取请求以改进此MCP服务器!

许可证

MIT许可证-可根据需要自由使用和修改。

致谢

  • 使用 模型上下文协议
  • 基于社区逆向工程的MQTT集成
  • 感谢Bambu实验室社区提供API文档