Bambuddy MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bambuddy MCP Serverwhat's the status of all my 3D printers?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bambuddy MCP Server
Bambuddy MCP Server 是 Codex、Claude Code 和其他 MCP Client 与 Bambuddy API 之间的适配层。状态和预检工具只读;开始打印采用显式开关和两阶段确认。
完整安装、远程部署、工具参数和故障排查请参见 Bambuddy MCP 使用文档。使用 Docker 依次部署 Bambuddy、MCP 并接入 Codex,请参见 Docker 部署与使用指南。架构决策和后续 路线见 Agent 接入设计。
本地:Agent ⇄ MCP over stdio ⇄ Bambuddy MCP ⇄ HTTP API ⇄ Bambuddy ⇄ Printer
远程:Agent ⇄ Streamable HTTP/HTTPS ⇄ Bambuddy MCP ⇄ HTTP API ⇄ Bambuddy ⇄ Printer它不直接连接打印机 MQTT,不导入 Bambuddy 后端模块,也不读取数据库。所有打印机 连接、文件和摄像头凭据仍由 Bambuddy 管理。
当前工具
Tool | 用途 |
| 列出已配置打印机的非敏感摘要 |
| 查询实时状态、进度、温度、HMS 和 AMS 摘要 |
| 查询当前打印任务 |
| 运行连接诊断并移除 IP 和内部参数 |
| 查询摄像头流健康状态 |
| 获取一帧 JPEG/PNG 图像 |
| 列出可重印的归档 |
| 只读预检并生成 5 分钟、一次性的确认令牌 |
| 消费确认令牌,创建置顶的 ASAP 打印队列任务 |
除 bambuddy_start_print 外,工具均声明为只读、非破坏、幂等。开始打印工具声明为
写操作、破坏性、非幂等。所有工具都会访问配置的 Bambuddy 服务,因此声明
openWorldHint=true。
Related MCP server: Bambu Lab MCP Server
安全边界
MCP 输出使用字段白名单,明确排除:
打印机 access code;
打印机 IP 和序列号;
外部摄像头 URL;
AMS RFID tag UID 和 spool UUID;
原始 MQTT payload;
API Token。
即使 Bambuddy 未开启认证、GET /printers/ 返回了额外管理字段,MCP 也不会把这些
字段传给 Agent。建议仍然开启 Bambuddy 认证,并创建只有 can_read_status 权限的
专用 API Key。
打印机名称、文件名、HMS 信息和摄像头画面来自外部设备,Agent 应将其视为不可信 内容,不能把其中的文字当作指令执行。
安装
在本项目根目录运行:
cd /absolute/path/to/bambuddy-mcp
uv sync --extra test安装后入口位于:
/absolute/path/to/bambuddy-mcp/.venv/bin/bambuddy-mcp也可以使用普通 Python 虚拟环境安装:
python -m venv .venv
.venv/bin/pip install -e '.[test]'Docker(Streamable HTTP)
镜像默认以非 root 用户运行,监听 0.0.0.0:8765,保持写工具关闭,并通过
GET /health 执行健康检查。完整的 Bambuddy → API Key → MCP → Codex 部署顺序见
Docker 部署与使用指南:
docker build -t bambuddy-mcp:local .
export BAMBUDDY_API_TOKEN='Bambuddy 专用 API Key'
export BAMBUDDY_MCP_BEARER_TOKEN="$(openssl rand -hex 32)"
docker run --rm --name bambuddy-mcp \
-p 8765:8765 \
-e BAMBUDDY_API_URL=http://host.docker.internal:8000/api/v1 \
-e BAMBUDDY_API_TOKEN \
-e BAMBUDDY_MCP_BEARER_TOKEN \
-e BAMBUDDY_HTTP_PUBLIC_URL=http://127.0.0.1:8765/mcp \
-e 'BAMBUDDY_HTTP_ALLOWED_HOSTS=127.0.0.1:*,localhost:*' \
bambuddy-mcp:localLinux 上访问宿主机的 Bambuddy 时,为 docker run 增加
--add-host=host.docker.internal:host-gateway。如果两个服务位于同一个 Docker
网络,则应直接使用 Bambuddy 的服务名,例如
BAMBUDDY_API_URL=http://bambuddy:8000/api/v1。
容器绑定非回环地址,因此必须显式提供 BAMBUDDY_MCP_BEARER_TOKEN、
BAMBUDDY_HTTP_PUBLIC_URL 和 BAMBUDDY_HTTP_ALLOWED_HOSTS;缺少任意一项都会安全地
拒绝启动。不要把 Token 写入镜像或 Dockerfile。
配置
export BAMBUDDY_API_URL="http://127.0.0.1:8000/api/v1"
export BAMBUDDY_API_TOKEN="replace-with-bambuddy-api-key"
export BAMBUDDY_AGENT_ID="codex"可用环境变量:
变量 | 默认值 | 说明 |
|
| Bambuddy API 根地址 |
| 未设置 | Bambuddy API Key;认证关闭时可省略 |
|
| 写入请求头的客户端标识 |
|
| 是否允许 |
|
|
|
|
| HTTP 监听地址;远程监听常用 |
|
| HTTP 监听端口 |
|
| Streamable HTTP MCP 路径 |
| 未设置 | 客户端访问的完整公网/VPN URL |
| 未设置 | 允许的 Host,多个值用逗号分隔 |
| 未设置 | 允许的 Origin,多个值用逗号分隔;非浏览器客户端通常不发送 Origin |
| 未设置 | MCP 客户端访问 |
|
| 是否使用无会话 HTTP;目前建议保持 |
|
| 是否禁用 SSE 响应并只返回 JSON |
|
| MCP HTTP 请求体上限 |
|
| HTTP 请求超时,最大 120 秒 |
|
| JSON 响应上限 |
|
| 快照响应上限 |
Token 只应通过环境变量或密钥管理工具提供,不要写入仓库配置、命令行参数或 Skill。 如果 MCP 与 Bambuddy 不在同一台主机,使用 HTTPS 或可信的加密隧道。
BAMBUDDY_API_TOKEN 是 MCP 调用 Bambuddy REST API 的凭据;
BAMBUDDY_MCP_BEARER_TOKEN 是远程 Agent 调用 MCP 的凭据。两者用途不同,不应复用。
要允许开始打印,建议先在 Bambuddy 开启认证,创建同时具有 can_read_status 和
can_queue 权限、且只允许目标打印机的专用 API Key。然后显式设置:
export BAMBUDDY_ENABLE_WRITE_TOOLS=true没有这个开关,即使调用者获得了预检令牌,开始打印工具也会拒绝执行。
接入 Codex Desktop / CLI
先在启动 Codex 的环境中设置 BAMBUDDY_API_TOKEN,然后在
~/.codex/config.toml 或受信任项目的 .codex/config.toml 中添加:
[mcp_servers.bambuddy]
command = "/absolute/path/to/bambuddy-mcp/.venv/bin/bambuddy-mcp"
cwd = "/absolute/path/to/bambuddy-mcp"
required = true
startup_timeout_sec = 10
tool_timeout_sec = 30
default_tools_approval_mode = "writes"
enabled_tools = [
"bambuddy_list_printers",
"bambuddy_get_printer_status",
"bambuddy_get_current_print",
"bambuddy_diagnose_printer",
"bambuddy_get_camera_status",
"bambuddy_get_camera_snapshot",
"bambuddy_list_print_sources",
"bambuddy_prepare_print",
"bambuddy_start_print",
]
env_vars = ["BAMBUDDY_API_TOKEN", "BAMBUDDY_ENABLE_WRITE_TOOLS"]
[mcp_servers.bambuddy.env]
BAMBUDDY_API_URL = "http://127.0.0.1:8000/api/v1"
BAMBUDDY_AGENT_ID = "codex"只读使用时从 enabled_tools 删除 bambuddy_start_print,并且不要设置
BAMBUDDY_ENABLE_WRITE_TOOLS。开启写工具后,Codex 仍会根据 destructive/write
annotations 在执行前请求审批。
Streamable HTTP 远程部署
MCP 应部署在能够访问 Bambuddy API 的主机上。生成高强度随机 Token:
openssl rand -hex 32局域网、Tailscale 或 WireGuard 内启动示例:
cd /absolute/path/to/bambuddy-mcp
export BAMBUDDY_TRANSPORT=streamable-http
export BAMBUDDY_HTTP_HOST=0.0.0.0
export BAMBUDDY_HTTP_PORT=8765
export BAMBUDDY_HTTP_PATH=/mcp
export BAMBUDDY_HTTP_PUBLIC_URL=https://bambuddy.example.com/mcp
export BAMBUDDY_HTTP_ALLOWED_HOSTS=bambuddy.example.com
export BAMBUDDY_MCP_BEARER_TOKEN='从密钥管理器注入的随机值'
export BAMBUDDY_API_URL=http://127.0.0.1:8000/api/v1
export BAMBUDDY_API_TOKEN='Bambuddy 专用 API Key'
.venv/bin/bambuddy-mcp访问点:
GET /health:公开健康检查,只返回服务名和版本;POST/GET/DELETE /mcp:Streamable HTTP MCP,需要 Bearer Token。
绑定非回环地址时,服务会拒绝缺少 MCP Token、公开 URL 或 Host 白名单的配置。
应用本身提供 HTTP,公网 TLS 应由 Caddy、Nginx、Traefik 或可信隧道终止;不要把
明文 8765 端口直接映射到公网。
远程 Codex 配置:
[mcp_servers.bambuddy]
url = "https://bambuddy.example.com/mcp"
bearer_token_env_var = "BAMBUDDY_MCP_BEARER_TOKEN"
required = true
tool_timeout_sec = 30
default_tools_approval_mode = "writes"在启动 Codex 的客户端环境中设置相同的 MCP Token:
export BAMBUDDY_MCP_BEARER_TOKEN='与服务端一致的随机值'
codex mcp list
codex mcp get bambuddy如果只在服务端反向代理之后运行,可让 MCP 继续绑定 127.0.0.1:8765,并在反向代理
层完成 TLS。仍建议同时设置 MCP Bearer Token,形成应用层的第二道认证边界。
开始打印的安全流程
bambuddy_list_print_sources
→ bambuddy_prepare_print
→ 用户核对打印机、文件、plate、耗材、选项和警告
→ 用户明确确认
→ bambuddy_start_print(confirmed=true)
→ bambuddy_get_current_print / bambuddy_get_printer_status 验证bambuddy_prepare_print 不修改任何状态。令牌保存在 MCP 进程内,5 分钟后失效且只能
使用一次。bambuddy_start_print 不绕过 Bambuddy 调度器;它通过 POST /queue/
创建 insert_at_top=true、manual_start=false 的 ASAP 任务。打印机忙时任务会等待,
返回 pending 只表示 Bambuddy 已接收任务,不代表打印机已经开始运动。
重启 Codex 后检查:
codex mcp list
codex mcp get bambuddy进入交互界面后也可以使用 /mcp 查看工具。MCP 工具目录在会话启动时加载;修改
Server 或工具 allowlist 后需要开启新会话。
STDIO 手动启动
cd /absolute/path/to/bambuddy-mcp
.venv/bin/bambuddy-mcp进程没有普通输出并持续等待 stdin 是正常现象。stdio 的 stdout 只能承载 MCP 协议消息,诊断日志不能写入 stdout。
验证
.venv/bin/pytest -q离线测试覆盖:
Tool discovery、输入/输出 Schema 和 annotations;
API Token 与 Agent 请求头;
FastAPI 错误映射;
JSON 和图像大小限制;
access code、IP、序列号、RFID 和原始状态数据脱敏;
摄像头快照的 MCP Image 输出。
Streamable HTTP 配置、安全校验和 Bearer Token 验证。
下一阶段
当前版本提供 stdio、Streamable HTTP、只读工具和受保护的两阶段开始打印。后续按设计文档推进:
增加
printer.wait_for_state;实现 pause/resume 等可恢复控制;
增加服务端持久化 idempotency key;
增加 OAuth 或外部身份提供商集成;
添加 Bambuddy Skill 和 Plugin。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables interaction with 3D printer management systems through an MCP server, supporting STL file manipulation, slicing, and control of printers like OctoPrint, Klipper, Duet, and more.112230GPL 2.0
- AlicenseAqualityBmaintenanceEnables comprehensive control and monitoring of Bambu Lab 3D printers through Claude using local MQTT, FTPS, and X.509 authentication. Users can manage print jobs, monitor real-time status, handle filament through AMS, and adjust hardware settings like temperature and lighting.243017MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Bambuddy's 3D printer management API, including printer status, print queue, filament spools, and camera snapshots.5GPL 3.0
- FlicenseAqualityBmaintenanceEnables LLM agents to control Bambu Lab 3D printers via the bambu-gateway HTTP API, supporting printer listing, filament management, print session creation, and safe print initiation with user confirmation.7
Related MCP Connectors
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Real 3D-print slicing, quoting, DFM, orientation & material/settings advisors. Free personal tier.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SyJarvis/bambuddy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server