Klipper打印机管理服务

一个通过Moonraker API使Claude能够读取、管理和控制Klipper 3D打印机的MCP服务器,支持配置管理、打印监控和GCode执行等功能。

  • by mikehatch
  • TypeScript
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 mikehatch/KlipperClaudeMCP

使用说明

Klipper MCP服务器

MCP(模型上下文协议)服务器,使Claude能够通过Moonraker API读取、管理和控制Klipper 3D打印机。

有了它,您可以让Claude评估您的配置、编写宏、监视打印、执行GCode等等。

  • 在文件未知时搜索配置值
  • 重新组织并添加注释/节标题
  • 评估宏的安全性
  • 监控温度和打印进度
  • 开始、暂停、恢复或取消打印
  • 使用实时打印机数据评估Jinja2模板

特性

  • 多打印机支持 -配置多台打印机并按名称引用它们
  • 读取配置文件 -查看printer.cfg和所有包含的配置文件
  • 安全写作 -自动 .bkp 更改前的备份
  • 跨配置搜索 -在所有配置文件中查找设置
  • 打印机状态监控 -查询温度、位置和打印进度
  • G代码执行 -运行GCode命令,对危险操作进行安全检查
  • 打印控制 -启动、暂停、恢复或取消打印作业
  • 模板评估 -使用实时打印机数据评估Jinja2样式模板
  • 工作经历 -查看打印历史记录和统计数据
  • G代码缩略图 -检索并显示嵌入在GCode文件中的缩略图
  • 系统监控 -检查CPU、内存和网络状态
  • 适用于Claude Desktop和VS Code -与任何MCP兼容的客户端一起使用

先决条件

  • Node.js 20或更高版本
  • 具有Moonraker API的Klipper打印机可在您的网络上访问
  • Claude桌面或带有Claude扩展名的VS代码

安装

  1. 克隆存储库

    git clone https://github.com/mikehatch/KlipperMCP.git
    cd KlipperMCP
    
  2. 安装依赖项

    npm install
    
  3. 构建服务器

    npm run build
    

配置

克劳德桌面

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "klipper": {
      "command": "node",
      "args": ["/path/to/KlipperMCP/dist/index.js"],
      "env": {
        "PRINTER_VORON": "http://192.168.1.100:7125",
        "PRINTER_ENDER": "http://192.168.1.101:7125"
      }
    }
  }
}

VS Code

复制示例配置:

cp .vscode/mcp.json.example .vscode/mcp.json

编辑 .vscode/mcp.json 使用您的打印机详细信息:

{
  "servers": {
    "klipper": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "PRINTER_VORON": "http://192.168.1.100:7125"
      }
    }
  }
}

配置选项

环境变量 描述
PRINTER_<NAME> 打印机的Moonraker URL。名称成为打印机标识符(小写)。
PRINTER_<NAME>_API_KEY 可选API密钥,如果Moonraker需要身份验证
MOONRAKER_URL 传统单打印机模式(仍受支持)
LOG_LEVEL 日志记录级别: debug, info, warn, error (默认值: info)

可用工具

配置管理

工具 说明
list_printers 列出所有已配置的打印机及其URL
list_config_files 列出config目录中的配置文件
read_config_file 读取配置文件的内容
write_config_file 写入或更新配置文件(带自动备份)
search_configs 在所有配置文件中搜索模式
get_config_info 获取文件的详细信息,包括部分和包含

打印机状态和控制

工具 说明
get_printer_status 查询温度、位置、打印进度和其他状态
execute_gcode 运行GCode命令(对危险命令进行安全确认)
control_print 启动、暂停、恢复或取消打印作业
emergency_stop 立即停止打印机(需要确认)

模板评估

工具 说明
evaluate_template 使用实时打印机数据评估Jinja2样式模板

模板评估器支持:

  • 可变访问: {{ printer.extruder.temperature }}
  • 括号符号: {{ printer["heater_generic chamber"].temperature }}
  • 过滤器: {{ value | round(1) }}, {{ value | int }}
  • 条件: {% if printer.extruder.temperature > 200 %}Hot{% endif %}

GCode文件和历史记录

工具 说明
list_gcode_files 列出可用的GCode文件及其可选元数据(切片器、时间、细丝、缩略图)
get_gcode_thumbnail 获取GCode文件的缩略图(小、中、大或最大)
get_print_history 查询作业历史和统计信息

系统信息

工具 说明
get_system_info 获取系统CPU、内存、网络和进程统计信息
restart_services 重新启动Klipper、固件或Moonraker(需要确认)

安全特性

危险操作需要明确确认:

  • G代码执行 -加热、移动或可能损坏打印机的命令会显示警告
  • 紧急停止 -需要确认
  • 打印取消 -需要确认以防止意外失业
  • 服务重新启动 -Klipper、固件和Moonraker重启需要确认
  • 配置写入 -使用自动备份 .bkp 扩展名(被Mainsail的“隐藏备份文件”选项隐藏)

检测到的危险GCode模式包括:

  • 加热指令(M104、M109、M140、M190)
  • 移动指令(G0、G1、G28)
  • 电机禁用(M84、M18)
  • 紧急停止(M112)
  • 校准命令(PID_CALIBRATE、PROBE_CALIBRATE)
  • 配置更改(保存配置、重启、固件重启)

使用示例

配置后,您可以询问Claude:

配置:

  • “列出我的打印机”
  • “在我的Voron上显示配置文件”
  • “阅读Ender的printer.cfg”
  • “在所有配置中搜索‘pressure_addvance’”
  • “我的printer.cfg中有哪些部分?”
  • “将[printer]部分中的max_velography更新为300”

监控:

  • “我的挤出机的当前温度是多少?”
  • “显示打印机状态”
  • “印刷进度如何?”

控制:

  • “打印机回家”(将要求确认)
  • “将床温设置为60°C”(将要求确认)
  • “暂停当前打印”
  • “取消打印”(将要求确认)

模板:

  • “评估此模板:挤出机处于{{printer.Extruder.temperature}}°C”

文件和历史记录:

  • “列出可用于打印的GCode文件”
  • “显示benchy.gcode的缩略图”
  • “显示我最近的打印历史记录”
  • “我的总打印统计数据是多少?”

系统:

  • “打印机主机的CPU温度是多少?”
  • “重新启动Klipper以应用配置更改”(将要求确认)

写入文件时,服务器将:

  1. 显示更改预览并要求确认
  2. 在覆盖之前创建自动备份
  3. 提醒您重新启动Klipper以应用更改

发展

# Run in development mode
npm run dev

# Build for production
npm run build

# Start the built server
npm start

运作原理

此MCP服务器连接到Klipper打印机的Moonraker API以访问配置文件并控制打印机。它在您的机器上本地运行,并通过模型上下文协议与Claude通信。

Claude <--MCP--> Klipper MCP Server <--HTTP--> Moonraker <---> Klipper

资源

许可证

麻省理工学院