README
🚀 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 文件和临时文件。
安装步骤
- 安装依赖:
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 文件
// 使用 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。
问题排查
打印机无法连接
- 检查网络设置,确保打印机和服务器在同一局域网内。
- 确认打印机的 Web 服务是否已启动。
- 查看服务器日志以获取详细错误信息。
温度控制异常
- 确保打印机固件版本支持温度控制功能。
- 检查相关权限设置,确保服务器有权限访问打印机的温度调节接口。
性能优化建议
- 文件压缩:对于大型 G-code 文件,可以使用 GZIP 压缩以减少传输时间。
- 缓存机制:在服务器端启用文件缓存,避免重复下载和上传文件。
- 并行处理:如果打印机支持多线程操作,可以尝试优化代码以提高处理效率。
开发指南
贡献代码
- Fork 项目仓库。
- 创建功能分支。
- 提交代码并创建 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 打印机服务器!如果有任何问题或建议,请随时联系维护团队。
Scan to join WeChat group