DMontgomery40_mcp 3D Printer Server

DMontgomery40_mcp 3D Printer Server

🚀 MCP 3D 打印机服务器

MCP 3D 打印机服务器是一款用于与 3D 打印机进行交互的 MCP 服务器。它支持通过 HTTP 或 WebSocket 协议连接打印机,具备文件传输、温度控制、打印状态监控等实用功能,能有效提升 3D 打印的便捷性和效率。

🚀 快速开始

MCP 3D 打印机服务器支持通过 HTTP 或 WebSocket 协议连接到打印机,并提供文件传输、温度控制、打印状态监控等功能。以下是使用该服务器的基本步骤:

安装依赖

npm install mcp-3d-printer-server

初始化配置

创建一个 config.json 文件:

{
"printer": {
"url": "http://your-printer-ip:port",
"wsUrl": "ws://your-printer-ip:port"
},
"server": {
"port": 3000,
"host": "localhost"
}
}

启动服务器

node index.js --config config.json

✨ 主要特性

核心功能

  • 文件传输:支持将 G-code 文件上传到打印机,同时支持多种文件格式,包括 G-code、STL 等,还提供上传、下载和删除功能。
  • 温度控制:可以设置和读取打印机的温度参数,实时监控打印机温度,支持设置目标温度并调整打印速度。
  • 打印控制:提供启动、停止和取消打印的功能。
  • 状态监控:实时监控打印机的状态,包括当前温度、打印进度等,显示当前打印进度、剩余时间等信息,还提供日志记录功能,便于调试和分析。

📦 安装指南

环境要求

  • Node.js 版本:必须是 18.0.0 或更高版本。
  • 内存:建议至少 4GB 内存以处理大型 STL 文件。
  • 存储空间:需要足够的磁盘空间来存放上传的 G-code 文件和临时文件。

安装步骤

  1. 安装依赖
npm install mcp-3d-printer-server
  1. 初始化配置: 创建一个 config.json 文件:
{
"printer": {
"url": "http://your-printer-ip:port",
"wsUrl": "ws://your-printer-ip:port"
},
"server": {
"port": 3000,
"host": "localhost"
}
}
  1. 启动服务器
node index.js --config config.json

💻 使用示例

基础用法

上传 G-code 文件

// 使用 HTTP 方式上传文件
await fetch('http://localhost:3000/upload', {
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data'
},
body: fs.createReadStream('path/to/file.gcode')
});

// 或者使用 WebSocket 方式
const ws = new WebSocket('ws://localhost:3000/ws');
await ws.send(fs.readFileSync('path/to/file.gcode'));

控制打印

// 启动打印
await fetch('http://localhost:3000/print/start', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
filename: 'example.gcode'
})
});

// 停止打印
await fetch('http://localhost:3000/print/stop');

读取温度

const response = await fetch('http://localhost:3000/temperature');
const temperatureData = await response.json();
console.log(temperatureData); // { extruderTemp: 200, bedTemp: 60 }

高级用法

使用 HTTP API

// 获取打印机状态
const response = await fetch('http://localhost:3000/status');
const status = await response.json();
console.log(status); // { isPrinting: false, currentTemp: 200, targetTemp: 210 }

使用 WebSocket 实时更新

const ws = new WebSocket('ws://localhost:3000/ws');

ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(`当前温度: ${data.temperature}`);
};

await ws.send('connect');

📚 详细文档

常见问题

无法连接打印机

检查打印机的 IP 地址和端口是否正确,确保网络连接正常。

打印过程中断

查看服务器日志以获取详细错误信息,并确保打印机没有硬件故障。

温度控制失败

确认打印机支持通过 API 设置温度,并检查相关权限设置。

注意事项

⚠️ 重要提示

  • 兼容性:目前主要支持主流的 FDM 打印机,其他类型可能需要额外配置。
  • 安全性:配置 HTTPS 以确保敏感数据的安全传输。

💡 使用建议

  • 性能优化:对于大规模打印任务,建议启用 GZIP 压缩以减少数据传输量。

兼容性说明

  • Firmware 版本:必须支持通过网络接口控制打印机。
  • 操作系统:支持 Windows、Linux 和 macOS。

问题排查

打印机无法连接

  1. 检查网络设置,确保打印机和服务器在同一局域网内。
  2. 确认打印机的 Web 服务是否已启动。
  3. 查看服务器日志以获取详细错误信息。

温度控制异常

  1. 确保打印机固件版本支持温度控制功能。
  2. 检查相关权限设置,确保服务器有权限访问打印机的温度调节接口。

性能优化建议

  • 文件压缩:对于大型 G-code 文件,可以使用 GZIP 压缩以减少传输时间。
  • 缓存机制:在服务器端启用文件缓存,避免重复下载和上传文件。
  • 并行处理:如果打印机支持多线程操作,可以尝试优化代码以提高处理效率。

开发指南

贡献代码

  1. Fork 项目仓库。
  2. 创建功能分支。
  3. 提交代码并创建 Pull Request。

问题报告

  • 使用 GitHub Issues 提交 bug 或提出功能需求。
  • 请提供详细的错误信息和复现步骤。

附录

支持的文件格式

  • G-code:打印机的标准控制语言。
  • STL:表示三维表面的文件格式,常用于 3D 打印前处理。

接口文档

详细的 API 文档请参阅 API DOCS

🔧 技术细节

功能模块

1. 文件传输模块

  • 支持多种文件格式,包括 G-code、STL 等。
  • 提供上传、下载和删除功能。

2. 温度控制模块

  • 实时监控打印机温度。
  • 支持设置目标温度并调整打印速度。

3. 打印状态监控模块

  • 显示当前打印进度、剩余时间等信息。
  • 提供日志记录功能,便于调试和分析。

📄 许可证

此项目遵循 MIT 许可证。请参阅 LICENSE 文件以获取详细信息。

徽章

属性 详情
npm 版本 2.0.1
许可证 MIT License
维护者 John Doe john@example.com

感谢使用 MCP 3D 打印机服务器!如果有任何问题或建议,请随时联系维护团队。

  • 0 关注
  • 0 收藏,29 浏览
  • system 提出于 2025-10-04 10:21

相似服务问题

相关AI产品