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代码
安装
- 克隆存储库
git clone https://github.com/mikehatch/KlipperMCP.git
cd KlipperMCP- 安装依赖项
npm install- 构建服务器
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_ | 打印机的Moonraker URL。名称成为打印机标识符(小写)。 |
PRINTER__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以应用配置更改”(将要求确认)
写入文件时,服务器将:
- 显示更改预览并要求确认
- 在覆盖之前创建自动备份
- 提醒您重新启动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 Klipper MCP Server Moonraker Klipper资源
许可证
麻省理工学院
