使用说明
项目简介
本项目 'MCP 3D Printer Server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在连接大型语言模型(如 Claude)与各种 3D 打印机管理系统。通过此服务器,LLM 能够控制 3D 打印机,进行文件管理,并执行 STL 文件的修改和处理,从而实现更智能的 3D 打印工作流程。
主要功能点
- 打印机状态监控: 获取打印机实时状态,包括温度、打印进度等。
- 文件管理: 浏览、上传和下载打印机上的文件。
- 打印控制: 启动、取消和监控打印任务,设置打印机温度。
- 高级STL文件操作: 提供多种 STL 文件处理工具,例如:
- 扩展底座: 增加模型底部以提高附着力。
- 模型缩放: 按比例或沿特定轴缩放模型。
- 模型旋转: 绕任意轴旋转模型。
- 模型平移: 沿特定轴移动模型。
- 分段修改: 修改 STL 文件的特定部分(顶部、底部、中心或自定义区域)。
- STL文件分析: 提供详细的模型信息,如尺寸、顶点数等。
- SVG可视化: 生成 STL 文件的多角度 SVG 预览图。
- STL切片: 将 STL 文件切片生成 G-code 文件。
- 温度确认: 验证 G-code 文件中的温度设置。
- 端到端打印流程: 从 STL 修改到打印的完整自动化流程。
- 支持多种打印机系统: 兼容 OctoPrint, Klipper (Moonraker), Duet, Repetier, Bambu Labs, Prusa Connect, Creality/Ender 等主流 3D 打印机管理系统。
安装步骤
-
环境准备: 确保已安装 Node.js 18 或更高版本 和 npm 或 yarn。
-
安装: 可以通过 npm 全局安装,或者从源代码安装。
npm 安装 (推荐)
npm install -g mcp-3d-printer-server源代码安装
git clone https://github.com/DMontgomery40/mcp-3D-printer-server.git cd mcp-3D-printer-server npm install npm link # 将命令添加到全局环境
服务器配置
MCP 服务器需要配置环境变量以连接到您的 3D 打印机。您可以通过创建 '.env' 文件或直接设置环境变量进行配置。
在您运行服务器的目录下创建 '.env' 文件,并根据您的打印机类型填写以下配置信息:
# 打印机 API 密钥 (必需) API_KEY=your_api_key_here # 默认打印机连接设置 PRINTER_HOST=localhost # 打印机 IP 地址或主机名 PRINTER_PORT=80 # 打印机 API 端口 PRINTER_TYPE=octoprint # 打印机管理系统类型,选项: octoprint, klipper, duet, repetier, bambu, prusa, creality # 可选: 临时文件目录 TEMP_DIR=/path/to/temp/dir # 默认为项目目录下的 temp 文件夹 # Bambu Lab 打印机特定配置 BAMBU_SERIAL=your_printer_serial # Bambu 打印机序列号 (Bambu Lab 打印机必需) BAMBU_TOKEN=your_access_token # Bambu 打印机访问令牌 (Bambu Lab 打印机必需) # 切片器配置 (用于 STL 切片功能) SLICER_TYPE=prusaslicer # 切片器类型,选项: prusaslicer, cura, slic3r SLICER_PATH=/path/to/slicer/executable # 切片器可执行文件路径 SLICER_PROFILE=/path/to/slicer/profile # 切片器配置文件路径 (可选)
MCP客户端配置 (以 Claude Desktop 为例)
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,您需要在客户端的配置文件中添加服务器配置信息。以下是 Claude Desktop 的配置示例(编辑 Claude Desktop 的配置文件):
{ "mcpServers": { "3dprint": { // 服务器名称,可以自定义 "command": "mcp-3d-printer-server", // MCP 服务器启动命令,与安装方式有关,如果使用 npm 全局安装,则直接使用命令名 "env": { // 传递给 MCP 服务器的环境变量 "API_KEY": "your_api_key_here", // 您的打印机 API 密钥 "PRINTER_HOST": "your_printer_ip", // 您的打印机 IP 地址 "PRINTER_TYPE": "octoprint" // 您的打印机类型 } } } }
Bambu Lab 打印机配置示例:
{ "mcpServers": { "3dprint": { "command": "mcp-3d-printer-server", "env": { "PRINTER_HOST": "your_printer_ip", // 您的 Bambu 打印机 IP 地址 "PRINTER_TYPE": "bambu", // 打印机类型设置为 bambu "BAMBU_SERIAL": "your_printer_serial", // 您的 Bambu 打印机序列号 "BAMBU_TOKEN": "your_access_token" // 您的 Bambu 打印机访问令牌 } } } }
配置说明:
- '"3dprint"': MCP 服务器的名称,可以自定义,在 Claude 中通过此名称引用该服务器。
- '"command": "mcp-3d-printer-server"': 启动 MCP 服务器的命令。如果您使用 npm 全局安装,则直接使用 'mcp-3d-printer-server'。如果从源代码安装,并且使用 'npm link' 添加到全局环境,也使用此命令。否则,请根据实际安装路径调整。
- '"env"': 传递给 MCP 服务器的环境变量,这些环境变量将覆盖 '.env' 文件或系统环境变量中的设置。
- '"API_KEY"': 您的打印机 API 密钥,用于身份验证。
- '"PRINTER_HOST"': 您的 3D 打印机的 IP 地址或主机名。
- '"PRINTER_TYPE"': 您使用的打印机管理系统类型,例如 'octoprint', 'klipper', 'bambu' 等。
- '"BAMBU_SERIAL"', '"BAMBU_TOKEN"': Bambu Lab 打印机所需的序列号和访问令牌,仅在 'PRINTER_TYPE' 为 'bambu' 时需要配置。
请根据您的实际打印机类型和网络配置,修改上述 JSON 配置信息。 重启 Claude Desktop 使配置生效。
基本使用方法
-
启动服务器: 在安装 'mcp-3d-printer-server' 的环境下,打开终端,输入命令 'mcp-3d-printer-server' 并回车,启动 MCP 服务器。服务器默认使用 stdio 传输协议。
-
连接 Claude: 配置并重启 Claude Desktop 后,Claude 应该能够检测到并连接到 '3dprint' MCP 服务器。
-
与 Claude 交互: 您可以使用自然语言指令指示 Claude 控制 3D 打印机或处理 STL 文件。例如:
打印机控制
- "我的 3D 打印机现在状态如何?"
- "列出打印机上的文件。"
- "上传这个 G-code 文件到打印机:[G-code 文件内容]"
- "开始打印文件 'benchy.gcode'。"
- "取消当前打印任务。"
- "设置喷头温度为 200°C。"
- "设置热床温度为 60°C。"
STL 文件操作与打印
- "将这个 STL 文件底座加长 2 英寸,然后发送到切片器并排队打印。"
- "将 model.stl 的底座加长 1.5 英寸。"
- "将这个 STL 文件均匀缩放 150%。"
- "将 model.stl 缩放为宽度两倍,但保持高度不变。"
- "将这个模型绕 Z 轴旋转 90 度。"
- "将这个 STL 模型向上移动 5 毫米,在下方创建一个间隙。"
- "你能否只修改这个模型的顶部,使其放大 20%?"
- "分析这个 STL 文件,告诉我它的尺寸和详细信息。"
- "生成这个 STL 文件的可视化图像,让我看看它是什么样子。"
- "创建我的模型从不同角度的 SVG 可视化图像。"
- "使这个模型的底座更宽,但不改变其高度。"
- "使用 PrusaSlicer 切片修改后的 STL 文件。"
- "确认 G-code 中的喷头温度为 200°C,热床温度为 60°C。"
- "处理这个 STL 文件,将底座加长 2 英寸,切片,然后开始打印,但先确认温度。"
请注意,具体指令可能需要根据 Claude 的理解能力进行调整。
注意事项
- 内存使用: STL 文件操作,尤其是大型文件,可能消耗大量内存。请注意 Claude 运行环境的内存限制。
- Bambu Lab 打印机限制: 由于 Bambu Lab API 的限制,部分功能可能受限,例如直接启动打印任务和温度控制。
- 切片器配置: STL 切片功能依赖于外部切片器 (PrusaSlicer, Cura, Slic3r) 的正确配置,请确保已安装并配置正确的切片器路径和配置文件。
信息
分类
桌面与硬件