3D打印管理器添加福利群:解决AI开发者的「MCP实战痛点」
.3mf 打印: 添加了专门用于 Bambu Lab 打印机的 print_3mf 工具。该工具上传 .3mf 文件并通过 MQTT 直接发送打印命令,基于 OpenBambuAPI 规范。print_3mf、cancelJob),以使用直接 MQTT(TLS 端口 8883),而不是仅依赖 bambu-js 发送命令。.3mf 文件解析: 实现了解析器(src/3mf_parser.ts),用于读取 .3mf 文件中的元数据和 Bambu 特定的切片器设置(来自 project_settings.config)。machine、filament、process)作为 MCP 资源的支持(例如,preset://bambu/process/MyPreset),前提是设置了 BAMBU_STUDIO_CONFIG_PATH。slice_stl 工具的支持。merge_vertices、center_model 和 lay_flat 工具,用于使用 three.js 进行基本的模型准备。BAMBU_STUDIO_CONFIG_PATH 环境变量,用于加载预设。bambu-js 实现。getStatus,以订阅 MQTT 报告并维护实时状态。.3mf 切片器配置或用户覆盖的 AMS 映射,用于 MQTT 打印命令。.3mf 打印覆盖: 在 print_3mf 工具中添加逻辑,处理用户提供的覆盖(例如,校准标志),并可能通过 MQTT/G-code 处理常见的切片器设置。.3mf 文件的 MD5 哈希包含在 MQTT 打印命令中(可选但建议按协议)。bambu-js 的 FTP 操作(getFiles、uploadFile),如果可能/稳定,或者为 bambu-js 贡献 FTPS 支持。.3mf 支持: 在其他适用的打印机类型中添加 .3mf 打印支持。这是一个允许 MCP 用户连接以下 3D 打印机 API 端点的服务器:
该服务器是一个模型上下文协议(MCP)服务器,用于将 Claude 与 3D 打印机管理系统连接。它允许 MCP 通过各种打印机管理系统(如 OctoPrint、Klipper(通过 Moonraker)、Duet、Repetier 和 Bambu Labs 打印机)的 API 与 3D 打印机进行交互。
资源使用说明:此 MCP 服务器包含高级的 3D 模型操作功能,在处理大型 STL 文件时可能会占用大量内存。请参阅“限制与注意事项”部分,了解有关内存使用和性能的重要信息。
.3mf 文件(通过 MQTT 命令)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 # 使命令全局可用

您还可以使用 Docker 和 Docker Compose 在容器化环境中运行服务器。
.env.example 复制为 .env 并配置您的设置。docker-compose up --build -d
请注意,默认的 Docker 设置无法直接使用主机上安装的切片器。由于主机和容器之间的操作系统和库差异,将切片器可执行文件直接从主机挂载到容器中是不可靠的。
推荐的方法是在 Docker 镜像内部安装您首选的切片器。这使得容器自给自足。
为此,您需要修改 Dockerfile。以下是一个概念性示例,说明如何添加 PrusaSlicer 或 OrcaSlicer(具体命令可能因切片器、其依赖项和当前的 Alpine 软件包而异):
# ... 其他 Dockerfile 命令 ...
# 示例:安装 PrusaSlicer 或 OrcaSlicer(根据需要调整命令)
# 首先检查 Alpine 软件包仓库(例如,apk add prusaslicer 或 apk add orcaslicer)
# 如果不可用,手动下载并安装(例如,AppImage):
# RUN apk add --no-cache fuse # FUSE 可能用于 AppImages
# RUN wget https://example.com/path/to/OrcaSlicer_Linux_Vxxxx.AppImage -O /usr/local/bin/orcaslicer && \
# chmod +x /usr/local/bin/orcaslicer
# 在 docker-compose.yml 或运行时相应地设置 SLICER_PATH 环境变量
# 安装可执行文件的示例:
ENV SLICER_PATH=/usr/local/bin/orcaslicer
# ... Dockerfile 的其余部分 ...

修改 Dockerfile 后,重新构建镜像(docker-compose build)。您还需要确保 .env 文件或 docker-compose.yml 中的 SLICER_PATH 环境变量指向容器内的正确路径(例如,/usr/local/bin/orcaslicer)。同时将 SLICER_TYPE 设置为 orcaslicer。
很抱歉没有默认包含特定的切片器,但鉴于可用的切片器种类繁多(PrusaSlicer、OrcaSlicer、Cura 等)以及可用的配置,预安装一个切片器会不必要地增加镜像的体积。如果某个切片器成为非常常见的需求,我肯定会在未来的版本中考虑添加官方支持。
在您将运行服务器的目录中创建一个 .env 文件,或设置环境变量:
# 与打印机管理系统进行身份验证所需的 API_KEY=your_api_key_here # 默认打印机连接设置 PRINTER_HOST=localhost PRINTER_PORT=80 # 非 Bambu HTTP API 的端口 PRINTER_TYPE=octoprint # 选项:octoprint, klipper, duet, repetier, bambu, prusa, creality # 可选:临时文件目录 TEMP_DIR=/path/to/temp/dir # Bambu Labs 特定配置 BAMBU_SERIAL=your_printer_serial # Bambu 必需 BAMBU_TOKEN=your_access_token # Bambu 必需 # 切片器配置(用于 slice_stl 工具) SLICER_TYPE=prusaslicer # 选项:prusaslicer, cura, slic3r, orcaslicer SLICER_PATH=/path/to/slicer/executable SLICER_PROFILE=/path/to/slicer/profile # 可选:Bambu Studio 用户配置目录路径(用于加载预设) # 示例 macOS:/Users/your_user/Library/Application Support/BambuStudio/user/YOUR_USER_ID # 示例 Windows:C:\Users\your_user\AppData\Roaming\BambuStudio\user\YOUR_USER_ID # 示例 Linux:/home/your_user/.config/BambuStudio/user/YOUR_USER_ID BAMBU_STUDIO_CONFIG_PATH=
{
"mcpServers": {
"3dprint": {
"command": "mcp-3d-printer-server",
"env": {
"API_KEY": "your_api_key_here",
"PRINTER_HOST": "your_printer_ip",
"PRINTER_TYPE": "octoprint"
}
}
}
}

{
"mcpServers": {
"3dprint": {
"command": "mcp-3d-printer-server",
"env": {
"PRINTER_HOST": "your_printer_ip",
"PRINTER_TYPE": "bambu",
"BAMBU_SERIAL": "your_printer_serial",
"BAMBU_TOKEN": "your_access_token"
}
}
}
}

OctoPrint 是一个流行的 3D 打印机 Web 界面。它提供了一个用于控制打印机的 REST API。
Klipper 是一个 3D 打印机固件,与 Moonraker API 服务器一起工作。
Duet 是一个 3D 打印机控制板,具有自己的 Web 界面(DuetWebControl)。
Repetier-Server 是一个 3D 打印机主机软件。
Bambu Lab 打印机使用 MQTT 进行状态和控制,使用 FTP 进行文件操作。
BAMBU_SERIAL 和 BAMBU_TOKEN)要连接到您的 Bambu Lab 打印机,您需要两样东西:
打印机序列号:
访问令牌:
注意:如果您的打印机不在同一本地网络或您找不到访问令牌,您可能需要将打印