返回 MCP 目录
public公开dns本地运行

mcp-3D-printer-server

MCP 3D打印服务器是一个连接Claude与多种3D打印机管理系统的协议服务器,支持OctoPrint、Klipper等多种打印机API,提供文件管理、打印控制和高级STL模型处理功能。

article

README

🚀 MCP 3D 打印机服务器文档

MCP 3D 打印机服务器是一款用于控制和管理 3D 打印机的实用工具。它借助 RESTful API 实现交互,能对 STL 文件进行处理、生成 GCode、监控打印进度,还可进行基本的温度控制,为 3D 打印工作提供了全面的支持。

🚀 快速开始

MCP 3D 打印机服务器支持通过 RESTful API 进行交互,能够处理 STL 文件、生成 GCode、监控打印进度并进行基本的温度控制。

✨ 主要特性

  • STL 文件操作:支持读取、写入和修改 STL 模型文件。
  • GCode 生成:集成切片工具(如 PrusaSlicer)以生成打印代码。
  • 温度监控与控制:提供设置和监控打印机温度的能力。
  • 文件管理:支持上传和下载文件到打印机。
  • 打印状态查询:返回当前打印任务的状态信息。

📦 安装指南

  1. 首先,确保系统已安装 Node.js(推荐版本 18.0.0 或更高)。
  2. 使用 npm 安装 MCP 3D 打印机服务器:
    npm install mcp-3d-printer-server
    
  3. 启动服务:
    node index.js
    

📚 详细文档

接口概述

| 动作 | 路径 | 方法 | 描述 | |------|------|------|------| | 获取模型列表 | /api/models | GET | 返回所有上传的 STL 模型列表。 | 上传新模型 | /api/models | POST | 上传一个新的 STL 文件。 | 处理模型 | /api/models/{modelId}/process | POST | 对指定模型进行处理(如扩展基底、切片等)。 | 获取打印状态 | /api/printers | GET | 返回所有连接打印机的状态信息。 | 控制温度 | /api/printers/{printerId}/temp | POST | 设置打印机的温度参数。

请求与响应示例

上传模型

请求示例:

POST /api/models
Content-Type: multipart/form-data

file=@model.stl

响应示例:

{
  "status": "success",
  "message": "Model uploaded successfully.",
  "modelId": "12345"
}

处理模型

请求示例:

POST /api/models/12345/process
Content-Type: application/json

{
  "operations": ["extend_base", "slice", "check_temperatures"]
}

响应示例:

{
  "status": "success",
  "message": "Model processing started.",
  "taskId": "abc123"
}

操作指南

扩展基底

用于增加模型的基底高度,防止打印失败。

使用方法:

  1. 上传 STL 文件到 /api/models
  2. 发送处理请求并包含 extend_base 操作。

示例:

{
  "operations": ["extend_base"]
}

切片

集成 PrusaSlicer 进行切片处理,生成打印所需的 GCode。

使用方法:

  1. 确保已安装并配置了 PrusaSlicer。
  2. 在处理请求中包含 slice 操作。

示例:

{
  "operations": ["slice"]
}

温度确认

检查模型的推荐打印温度设置。

使用方法: 在处理请求中包含 check_temperatures 操作,服务器将返回建议的温度参数。

Bambu Lab 打印机限制

特殊注意事项

  • 启动打印任务:必须通过特定的 API 调用。
  • 温度控制:直接控制可能受限,需使用提供的接口。
  • 文件管理:文件必须符合特定格式和大小要求。

🔧 技术细节

扩展基底操作

function extendBase(model) {
    // 实现扩展基底的逻辑
}

切片处理

const slicer = new PrusaSlicer();
slicer.process('model.stl', 'output.gcode');

限制与注意事项

内存使用

处理大模型时,需确保服务器有足够的内存。

性能考虑

  • 多线程支持:推荐在多核处理器上运行以提升性能。
  • 磁盘空间:确保足够的存储空间用于处理和存储 STL 文件及 GCode。

测试建议

  1. 在生产环境部署前,先进行充分的测试。
  2. 使用不同尺寸和复杂度的模型进行验证。

标志

| 名称 | 描述 | |------|------| | npm 版本 | 显示当前 npm 包的版本信息。 | | 许可证 | 项目使用的开源许可证信息。 | | TypeScript 版本 | 当前项目的 TypeScript 编译器版本。 |

💻 使用示例

基础用法

const express = require('express');
const app = express();

app.get('/api/models', (req, res) => {
    // 返回模型列表逻辑
});

app.post('/api/models', (req, res) => {
    // 处理文件上传逻辑
});

app.listen(3000, () => {
    console.log('Server running on port 3000');
});

参考资料

  1. Node.js 官方文档
  2. PrusaSlicer API 文档
  3. RESTful API 设计指南

如需进一步支持或遇到问题,请联系技术支持。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端