← 返回目录
M

MCP 3D Printer Server

社区
通过 MCP 连接并控制主流 3D 打印机,支持 STL/3MF 编辑、切片与打印。
分类
其他 第 124 / 230
Stars
★ 254 非常热门
传输方式
stdio(本地进程) · Streamable HTTP
运行环境
Node.js 18+ · Docker
凭据
需要 API Key / 凭据
许可证
GPL-2.0
最近提交
工具数
23
53FMRS · D

该服务器把 MCP 客户端与多品牌 3D 打印机管理系统打通,覆盖状态查询、文件管理、打印控制和相当完整的 STL 编辑、切片与可视化能力,并对 Bambu Lab 提供 3MF 打印、FULU OrcaSlicer-bambulab 集成与桥接诊断工具。它由社区维护而非厂商官方,采用 GPL-2.0 许可,支持 stdio 与 streamable-http 本地传输。适合希望用自然语言驱动打印流程的用户,但需要提供打印机凭据与局域网访问权限,STL 大文件处理存在内存压力,Bambu 的 FTP 传输与机型预设配置存在实际风险,部分功能(如 Bambu 实时状态和 FULU macOS 切片)仍有已知限制。

最强项 · 文档质量 14/20 最弱项 · 安全与权限 8/20

可靠性
9/20
安全与权限
8/20
维护活跃度
11/20
文档质量
14/20
安装易用性
11/20
查看各项评分依据
可靠性 9/20
静态审查仅依据 README 文本,无法看到任何已提交的测试文件或 CI 工作流,尽管文中自称『Added real behavior tests for both transports』,但这只是声明而非可核验证据,故不超过 12 分上限。工具面与真实行为之间存在明显不一致:README 自己承认 Bambu 的 getStatus 目前仅确认 MQTT 连接、AMS 映射为占位逻辑、MD5 未实现、setTemperature 依赖固件接受、startJob 仅支持 .gcode;同时 Roadmap 列出大量未完成项。依赖较重且外部化(bambu-js、basic-ftp、Three.js、外部切片器可执行文件、FULU 桥接运行时),失败模式多为环境依赖型且难诊断。自我披露的 macOS FULU 切片 SIGSEGV 与不可中断的 UE 进程属于真实已知缺陷。扣分点:无可见测试/CI 证据、声明与实现差距、错误路径依赖外部组件;得分点为诚实披露限制与明确的失败方式。
安全与权限 8/20
无红线行为:未发现恶意代码、凭据窃取、隐蔽外传或伪造维护者身份;README 未包含真实 token。凭据处理上,API_KEY、BAMBU_TOKEN、BAMBU_SERIAL 均通过环境变量或工具参数传入,未见写入日志或回传的证据,但也未声明是否脱敏。风险点集中在:1) 文档明示 Bambu FTP 文件操作可能是不加密的明文 FTP,属于网络层数据暴露;2) 工具面包含危险副作用——print_3mf、start_print、cancel_print、set_printer_temperature、process_and_print_stl 可触发物理打印,README 除 bambu_model 强制与温度确认外,未见系统性的人机确认门禁;3) 可执行文件选择类参数(slicer_path、bridge_command、plugin_dir)默认关闭(MCP_ALLOW_EXECUTABLE_ARG=false)并解释了提示注入风险,这是好的最小权限设计,但一旦开启即可由模型描述/3MF 元数据影响本机执行程序;4) Bambu 打印走本地 MQTT/FTPS,未静默切换到云路径,边界较清晰。按锚点 10 为『主要风险可见但权限/确认/范围不完整』,综合给 8。
维护活跃度 11/20
仓库未归档,233 stars,1 个未决 issue,GPL-2.0 许可证明确,README 显示近期有实质性更新(双传输、FULU 集成、Bambu 修复、Docker 改造)。但静态证据有限:无法核验提交频率、发布节奏、依赖升级策略、安全响应渠道;GitHub 徽章中的 Maintenance 与 Stars 链接指向 yourusername 占位地址,属于文档瑕疵并暗示治理/版本化不严谨。Roadmap 长期存在大量未完成项(完整 MQTT 状态、AMS 映射、MD5、预设发现、各厂商功能对齐),说明维护是持续但覆盖面尚未闭合。无可见的贡献者治理、版本发布说明或安全披露流程。按 10 分锚点(活跃但治理/版本化有缺口)略加,给 11。
文档质量 14/20
文档层次完整:安装(npm/源码/Docker)、配置项逐条列出、按厂商分别说明端口与鉴权、工具与资源均有 JSON 参数示例、Bambu 与 FULU 的分平台设置步骤、限制与内存/可视化/性能注意事项、MCP 安全提示附录、以及主流通用客户端配置文件路径表。显著优点是主动披露未完成项与失败案例(macOS FULU 切片崩溃、需要 Windows 测试者、AMS 行为不确定、FTP 明文风险),这对静态评估很有价值。扣分点:文档与能力存在矛盾之处(『real behavior tests』无对应可见证据;徽章链接为占位地址);部分环境变量(如 BAMBU_STUDIO_CONFIG_PATH 的示例路径)需用户自行推导;缺少版本化 API/工具 schema 的权威定义(无缓存 manifest 可对照);故障排查以说明为主而非可复现步骤。按『可用但有隐藏假设与排障缺口』的 10 分锚点向上插值,给 14。
安装易用性 11/20
安装路径清晰:npm 全局安装或源码 + npm link,提供 Docker/Docker Compose 路径,给出 Claude Desktop/Cursor/Codex 的具体配置位置与 JSON 示例。但达到『可工作连接』的门槛较高且平台差异大:Bambu 需要串号、访问令牌、机型(7 个枚举值)、开发者模式与 LAN Only 模式;切片需自行准备外部可执行文件并配置 SLICER_PATH/SLICER_TYPE;Docker 镜像默认不含切片器,需修改 Dockerfile 自行安装;FULU 路径在 Windows/Linux/macOS 上各有不同脚本与运行时目录,README 明确 macOS 尚未验证、Windows 需要测试者。这些属于手动、易碎且平台相关的装配过程。因静态材料中无可见的 CI 工作流或提交测试作为可执行性证据,setup 上限为 15;综合判定为『能用但手动且脆弱』,给 11。

静态评测 · 未实际运行收录于 2026-09-10

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件执行命令或代码访问网络

适合谁

  • 拥有 OctoPrint、Klipper、Duet、Repetier、Bambu Lab、Prusa 或 Creality 打印机的用户
  • 希望通过 MCP 客户端用自然语言完成打印与模型处理流程的用户
  • 需要端到端“修改 STL → 切片 → 打印”工作流的技术用户
  • 使用 FULU OrcaSlicer-bambulab 或 Bambu Studio 作为项目切片器的 Bambu 用户

不适合谁

  • 没有任何受支持打印机或打印机管理系统的用户
  • 不希望向服务器提供打印机凭据(API key、访问令牌、序列号)的用户
  • 期望在 MCP 中直接修改切片器层高、温度等切片参数的用户(需在生成 3MF 前完成)
  • 期望获得完整实时事件流式 Bambu 状态语义的用户(当前状态读取仍有限制)
  • 未启用开发者模式与仅局域网模式、或打印机不在同一网络的 Bambu 用户

所需权限

  • 打印机管理系统的 API key 或 Bearer token
  • Bambu Lab 的序列号(BAMBU_SERIAL)与访问令牌(BAMBU_TOKEN)
  • 对打印机所在局域网的网络访问(含 Bambu 的 MQTT 8883 端口与 FTPS 990 端口)
  • 对本地文件系统的读写访问(读写 STL/G-code/3MF 文件与临时目录)
  • 调用外部切片器可执行文件(SLICER_PATH)以及可选的 FULU 桥接命令
  • 可选的 MCP_ALLOW_EXECUTABLE_ARG=1,用于允许单次调用指定本地可执行文件

风险与副作用

  • STL 操作会把完整模型载入内存,处理大文件(如大于 10MB)可能导致内存不足
  • Bambu 文件操作用的 FTP 连接可能是未加密的普通 FTP,存在网络窃听风险
  • 错误的 Bambu 机型预设(bambu_model)可能生成危险 G-code,导致喷嘴与热床碰撞并损坏打印机
  • 允许单次调用传入可执行文件路径(MCP_ALLOW_EXECUTABLE_ARG)会让不受信任的输入选择本地运行的程序,应仅在可信诊断时开启
  • 工具输出应视为不可信输入,存在提示注入风险,破坏性操作建议加人工确认
  • 凭据以环境变量形式保存在客户端配置中,一旦泄露会影响打印机控制权

安装接入

准备工作

运行环境:Node.js 18+ · Docker

API_KEY 可选密钥 非 Bambu 打印机管理系统(如 OctoPrint、Prusa Connect)的 API 密钥,在各系统的 Web 界面中生成。
BAMBU_TOKEN 可选密钥 Bambu 打印机访问令牌,在打印机触摸屏 设置 > 网络 > 局域网模式 中查看。
其他可选配置项(27 个)
PRINTER_HOST 可选 打印机的 IP 地址或主机名。
PRINTER_PORT 可选 打印机 HTTP API 端口,如 OctoPrint 默认 80、Klipper 默认 7125。
PRINTER_TYPE 可选 打印机类型:octoprint、klipper、duet、repetier、bambu、prusa 或 creality。
TEMP_DIR 可选 服务器存放临时文件的目录。
BAMBU_SERIAL 可选 Bambu 打印机序列号,可在机身标签或 Bambu Studio 的设备管理中找到,Bambu 打印机必填。
BAMBU_MODEL 可选 Bambu 打印机型号(p1s、p1p、x1c、x1e、a1、a1mini、h2d),打印操作必填。
BED_TYPE 可选 热床板材类型,如 textured_plate、cool_plate 等。
NOZZLE_DIAMETER 可选 喷嘴直径(毫米),默认 0.4。
SLICER_TYPE 可选 切片器类型,如 prusaslicer、cura、orcaslicer、orcaslicer-bambulab、bambustudio。
SLICER_PATH 可选 切片器可执行文件的本地路径。
SLICER_PROFILE 可选 切片器配置文件路径。
FULU_ORCA_PATH 可选 FULU OrcaSlicer-bambulab 可执行文件路径,SLICER_PATH 未设置时的别名。
ORCASLICER_BAMBULAB_PATH 可选 FULU OrcaSlicer-bambulab 可执行文件路径的别名。
FULU_ORCA_PLUGIN_DIR 可选 FULU OrcaSlicer 应用插件目录,如 macOS 上的 Contents/MacOS 路径。
ORCASLICER_BAMBULAB_PLUGIN_DIR 可选 FULU 插件目录的别名。
PJARCZAK_MAC_RUNTIME_DIR 可选 FULU BambuNetwork 桥接运行时目录,macOS 默认为 ~/Library/Application Support/OrcaSlicer/macos-bridge/runtime。
FULU_BAMBU_BRIDGE_COMMAND 可选 FULU BambuNetwork 桥接命令,用于诊断 RPC。
BAMBU_STUDIO_CONFIG_PATH 可选 Bambu Studio 用户配置目录,用于读取打印机/耗材/工艺预设。
MCP_TRANSPORT 可选 MCP 传输方式:stdio 或 streamable-http。
MCP_HTTP_HOST 可选 HTTP 传输的监听地址,默认 127.0.0.1。
MCP_HTTP_PORT 可选 HTTP 传输的监听端口,默认 3000。
MCP_HTTP_PATH 可选 HTTP 传输的端点路径,默认 /mcp。
MCP_HTTP_STATEFUL 可选 HTTP 传输是否保持有状态会话。
MCP_HTTP_JSON_RESPONSE 可选 HTTP 传输是否返回 JSON 响应。
MCP_HTTP_ALLOWED_ORIGINS 可选 HTTP 传输允许的来源列表。
BLENDER_MCP_BRIDGE_COMMAND 可选 blender_mcp_edit_model 工具 execute=true 模式使用的桥接命令。
MCP_ALLOW_EXECUTABLE_ARG 可选 是否允许每次调用传入可执行文件选择器(如 slicer_path、bridge_command),默认关闭以防止注入。
  1. 确认已安装 Node.js 18 或更高版本。
  2. 全局安装:npm install -g mcp-3d-printer-server;或从源码安装:git clone 仓库后执行 npm install 与 npm link。
  3. 在运行服务器的目录创建 .env 文件或设置环境变量(API_KEY、PRINTER_HOST、PRINTER_PORT、PRINTER_TYPE 等;Bambu 打印机需额外设置 BAMBU_SERIAL、BAMBU_TOKEN、BAMBU_MODEL)。
  4. 在 MCP 客户端配置中添加 mcpServers 条目,command 使用 npx,args 为 ["-y", "mcp-3d-printer-server"],env 中填入打印机连接参数。
  5. 重启客户端(Codex 可运行 /mcp 或 codex mcp list 确认加载)。
  6. 也可使用 Docker 与 Docker Compose 运行:复制 .env.example 为 .env 后执行 docker-compose up --build -d;切片器建议安装在容器内部,而不是挂载宿主机可执行文件。
claude_desktop_config.json
{
  "mcpServers": {
    "3dprint": {
      "command": "npx",
      "args": ["-y", "mcp-3d-printer-server"],
      "env": {
        "PRINTER_HOST": "your_printer_ip",
        "PRINTER_TYPE": "bambu",
        "BAMBU_SERIAL": "your_printer_serial",
        "BAMBU_TOKEN": "your_access_token",
        "BAMBU_MODEL": "p1s",
        "SLICER_TYPE": "orcaslicer-bambulab",
        "SLICER_PATH": "/path/to/FULU/OrcaSlicer",
        "FULU_ORCA_PLUGIN_DIR": "/Applications/OrcaSlicer.app/Contents/MacOS"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "3dprint": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-3d-printer-server"
      ],
      "env": {
        "PRINTER_HOST": "your_printer_ip",
        "PRINTER_TYPE": "bambu",
        "BAMBU_SERIAL": "your_printer_serial",
        "BAMBU_TOKEN": "your_access_token",
        "BAMBU_MODEL": "p1s",
        "SLICER_TYPE": "orcaslicer-bambulab",
        "SLICER_PATH": "/path/to/FULU/OrcaSlicer",
        "FULU_ORCA_PLUGIN_DIR": "/Applications/OrcaSlicer.app/Contents/MacOS"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add 3dprint -e PRINTER_HOST=your_printer_ip -e PRINTER_TYPE=bambu -e BAMBU_SERIAL=your_printer_serial -e BAMBU_TOKEN=your_access_token -e BAMBU_MODEL=p1s -e SLICER_TYPE=orcaslicer-bambulab -e SLICER_PATH=/path/to/FULU/OrcaSlicer -e FULU_ORCA_PLUGIN_DIR=/Applications/OrcaSlicer.app/Contents/MacOS -- npx -y mcp-3d-printer-server

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

重启客户端后,在工具列表中确认出现 get_printer_status、slice_stl、print_3mf 等工具,然后询问"我的 3D 打印机现在状态如何"来验证连接。

常见排障

  1. 确认 Node.js 版本不低于 18
  2. 检查 PRINTER_HOST、PRINTER_PORT、PRINTER_TYPE 以及 API_KEY/令牌是否正确
  3. Bambu 用户确认已设置 BAMBU_SERIAL、BAMBU_TOKEN、BAMBU_MODEL,且打印机开启开发者模式与仅局域网模式
  4. 确认打印机与运行服务器的机器在同一局域网内
  5. 切片失败时检查 SLICER_TYPE、SLICER_PATH 以及切片器命令的 stderr 输出
  6. 使用 FULU OrcaSlicer-bambulab 时先调用 check_fulu_orca_setup 检查运行时负载与安装命令
  7. macOS 上 FULU CLI 切片可能崩溃或产生无法中断的进程,可改用 SLICER_TYPE=bambustudio 作为已知可行回退
  8. 若探针或切片工具报出可执行文件参数错误,检查是否设置了 MCP_ALLOW_EXECUTABLE_ARG
  9. 确认客户端配置文件位置正确并在修改后重启客户端

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 查看我的 3D 打印机当前状态。
  • 把 model.stl 的底座加宽 2 英寸,然后切片并开始打印。
  • 把 ~/Downloads/my_model.3mf 在 Bambu P1S 上打印出来。
  • 把这个 STL 模型绕 Z 轴旋转 90 度。

工具能力 23

get_stl_info 只读
获取 STL 文件的详细信息,包括尺寸、顶点数与包围盒。
extend_stl_base 写入
按指定量延伸 STL 模型的底座。
scale_stl 写入
对 STL 模型进行等比或按轴缩放。
rotate_stl 写入
绕指定轴旋转 STL 模型(单位为度)。
translate_stl 写入
沿指定轴平移 STL 模型(单位为毫米)。
merge_vertices 写入
合并距离小于给定容差的顶点,有助于封闭小缝隙。
center_model 写入
平移模型,使其包围盒中心位于世界原点 (0,0,0)。
lay_flat 写入
尝试找出模型最大的平面,并将其旋转到 XY 平面朝下(Z=0),便于打印摆放。
展开其余 15 个工具
modify_stl_section 写入
对 STL 文件的指定区域(顶部、底部、中心或自定义范围)应用缩放、旋转等变换。
generate_stl_visualization 只读
生成 STL 文件的多角度 SVG 可视化(正视、侧视、俯视和等轴测视图)。
slice_stl 写入
使用外部切片器将 STL 文件切片生成 G-code。
confirm_temperatures 只读
确认 G-code 文件中的温度设置。
process_and_print_stl 写入
处理 STL(延伸底座)、切片、确认温度并开始打印的端到端流程。
get_printer_status 只读
获取 3D 打印机的当前状态(温度、打印进度等)。
list_printer_files 只读
列出打印机上可用的文件。
upload_gcode 写入
上传 G-code 内容或本地 G-code 文件路径到打印机。
start_print 写入
开始打印打印机上已有的文件。
cancel_print 破坏性
取消当前打印任务。
set_printer_temperature 写入
设置打印机某个部件的温度。
check_fulu_orca_setup 只读
检查 FULU OrcaSlicer-bambulab 可执行文件、平台运行时负载、安装命令,并可选择探测 BambuNetwork 桥接。
fulu_bambu_network_rpc 只读
调用一个 FULU BambuNetwork 桥接 JSON RPC 方法;只读方法默认允许,会改变状态的方法需显式允许,打印方法还需指定 bambu_model。
print_3mf 写入
通过 FTP 上传已切片的 .3mf 文件,并通过 MQTT 命令在 Bambu 打印机上启动打印;必要时可先自动切片。
blender_mcp_edit_model 写入
Blender 桥接工具,支持可选的执行模式,用于模型编辑协作流程。

使用场景

用自然语言查询打印机状态、温度和打印进度
列出、上传并管理打印机上的 G-code 文件
对 STL 模型执行缩放、旋转、平移、底座延伸等修改
对 STL 进行切片并校验 G-code 温度
在 Bambu Lab 打印机上打印已切片的 3MF 文件
生成 STL 模型的多角度 SVG 可视化
读取 Bambu Studio 的机器、耗材和工艺预设

支持客户端

Claude Desktop
Claude Code
Cursor
Codex

依据项目文档列出,未经本站实测。

详细介绍

这是一个 Model Context Protocol(MCP)服务器,用于把 MCP 客户端连接到多种 3D 打印机管理系统:OctoPrint、Klipper(通过 Moonraker)、Duet、Repetier、Bambu Lab、Prusa Connect 以及 Creality Cloud。它支持查询打印机状态与温度、列出打印机上的文件、上传 G-code、启动/取消打印任务、设置温度,并提供较完整的 STL 操作能力:缩放、旋转、平移、底座延伸、合并顶点、居中、自动平放、局部区域修改、信息分析以及多角度 SVG 可视化。它还可用外部切片器把 STL 切片为 G-code、校验 G-code 中的温度设置,并能把切好的 3MF 通过 FTP 上传并在 Bambu Lab 打印机上通过 MQTT 启动打印;在配置了项目切片器时,可先用 FULU OrcaSlicer-bambulab 或 Bambu Studio 对未切片 3MF 自动切片。Bambu 集成还提供 FULU 运行时环境检测(check_fulu_orca_setup)与受保护的 FULU BambuNetwork 桥接 RPC 调用(fulu_bambu_network_rpc),以及读取 Bambu Studio 预设资源。服务器支持 stdio 与 streamable-http 两种本地传输方式,需要 Node.js 18 或更高版本,采用 GPL-2.0 许可。

同类可选方案

BioMCP 75 · B

统一的命令行语法,接入约30个可信生物医学数据源。

★ 659 · 工具数 11 与当前对比 →

源版本 e61a2e960f50 数据同步于 2026-10-19 查看 FMRS 评分方法