bambu-cloud-mcp
Provides full control of Bambu Lab 3D printers, including cloud-based remote control, LAN camera capture, print management, temperature settings, filament/AMS operations, file uploads, and more.
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., "@bambu-cloud-mcpWhat's the current print status and temperatures?"
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.
bambu-cloud-mcp
Control your Bambu Lab 3D printers from any MCP client — over the cloud, from anywhere, with live chamber-camera capture on your LAN.
An MCP (Model Context Protocol) server that lets an AI assistant — Claude Code, Claude Desktop, or any MCP client — monitor and drive Bambu Lab printers. It talks to printers over MQTT, either on your LAN or through the Bambu cloud broker (us.mqtt.bambulab.com / cn.mqtt.bambulab.com), so status and control work from anywhere without putting the printer into LAN-Only mode. It ships 31 tools covering status, print control, temperatures, AMS/filament, files, and a live LAN chamber-camera snapshot.
Why this over other Bambu MCP servers
Most community Bambu MCP servers only do LAN control, or read-only cloud status. This one does two things they usually don't:
Full cloud control — every command (pause, resume, stop, set temp, change filament, raw G-code…) works over the internet, because the Bambu cloud MQTT broker accepts the same command topics (
device/<serial>/request) as the local one. Log in once with your account and your bound printers auto-connect.Live chamber camera —
get_camera_framepulls a real JPEG snapshot from A1 / A1 Mini / P1P / P1S printers over the LAN and returns it as an image your MCP client can display.
Camera is LAN-only. Bambu tunnels the cloud video feed through a proprietary P2P system (TUTK) that can't be reimplemented in the open, so the camera works only when your machine is on the same network as the printer. Status and control work from anywhere.
Related MCP server: 3D Printer MCP Server
Supported printers
Control (LAN + cloud): A1, A1 Mini, P1P, P1S, X1C, X1E, H2D and other current models.
Camera (LAN only): A1, A1 Mini, P1P, P1S via the port-6000 chamber-image protocol. X1/H2 series use RTSP instead and aren't wired up yet — PRs welcome.
Tools
All 31 tools, grouped by area:
Cloud
Tool | Description |
| Login status, account, region, token expiry, connected cloud printers |
| Discover and connect printers bound to your account over the cloud |
| Clear stored cloud credentials and disconnect cloud printers |
Printer management
Tool | Description |
| Add a LAN printer (IP + access code + serial) and connect |
| Remove a printer from the fleet |
| Re-establish MQTT connection(s) |
| List configured printers and connection status |
Status
Tool | Description |
| Print progress, temps, speed, AMS, lights, stage, etc. |
| Firmware / module versions |
Print control
Tool | Description |
| Control the active print |
| Start a |
| Start the same file across multiple printers in parallel |
Hardware
Tool | Description |
| Print speed (profile name or percentage) |
| Nozzle / bed temperature (with safety limits) |
| Chamber / work light on or off |
| Nozzle diameter (for slicer profiles) |
AMS / filament
Tool | Description |
| Load / switch filament from an AMS slot |
| Unload the current filament |
G-code
Tool | Description |
| Send raw G-code (some dangerous commands blocked) |
| Skip objects in a multi-object print |
Files (LAN, FTPS)
Tool | Description |
| List files on the printer's SD card |
| Upload a file to the SD card |
| Download a file from the SD card |
| Delete a file from the SD card |
Camera (LAN only)
Tool | Description |
| Capture a live JPEG from the chamber camera, returned as an image |
| Store a printer's LAN access code (and optional IP) for the camera |
| Toggle SD-card recording |
| Toggle timelapse |
Signing
Tool | Description |
| X.509 message signing for post-January-2025 firmware that requires certificate auth |
Requirements
Node.js 18+
For cloud control: a Bambu Lab account (the one your printers are bound to). No developer token needed — you log in with an emailed code, password, or 2FA.
For the camera: your machine on the same LAN as the printer, with "LAN Mode Liveview" enabled on the printer (Settings). This is independent of full LAN-Only mode, so the Bambu Handy app keeps working.
Installation
git clone https://github.com/dylansantwani/bambu-cloud-mcp.git
cd bambu-cloud-mcp
npm install
npm run buildThis compiles TypeScript to dist/. The MCP entry point is dist/index.js.
Configuration
Register the server with your MCP client
Claude Code (user scope — available in every project):
claude mcp add bambu -s user -- node /absolute/path/to/bambu-cloud-mcp/dist/index.jsClaude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"bambu": {
"command": "node",
"args": ["/absolute/path/to/bambu-cloud-mcp/dist/index.js"]
}
}
}Restart the client (or start a new session) so it picks up the server.
Environment variables
All are optional:
Variable | Purpose |
| Directory for runtime config and credentials. Default: |
| Override the bundled X.509 private key used by |
| Override the bundled X.509 certificate used by |
To set the config directory in a client, add an env block to the server entry:
{
"mcpServers": {
"bambu": {
"command": "node",
"args": ["/absolute/path/to/bambu-cloud-mcp/dist/index.js"],
"env": {
"BAMBU_MCP_CONFIG_DIR": "/absolute/path/to/config"
}
}
}
}Cloud login (for remote control)
Run the interactive login in your own terminal (it needs to prompt you, so it can't run inside the MCP client):
npm run loginChoose your region (US default).
Enter your account email.
Pick method 1 (email code) — no password needed; a one-time code is emailed to you. Password and TOTP-2FA are also supported.
Credentials are written to ~/.bambu-mcp/cloud.json (mode 0600). Your password, if you use one, is only ever sent to Bambu's login endpoint — never stored. On the next server start, your bound printers are auto-discovered and connected over the cloud; you can also trigger this anytime with the sync_cloud_printers tool.
Camera access (optional, LAN only)
The camera needs each printer's 8-character LAN access code (printer screen → Settings → WLAN). Store it once via the set_camera_access tool (or just ask your assistant to). The printer's LAN IP is auto-detected from its status, so you don't hardcode it. Then get_camera_frame returns a live snapshot.
Usage
Once the server is registered and you've logged in, talk to your assistant in plain language. Examples:
"List my Bambu printers and show their status."
"What's the progress on the print on my P1S?"
"Pause the print on printer
mini-1.""Set the nozzle temperature on my X1C to 220°C."
"Show me a camera snapshot of the A1."
"Start
benchy.3mfon all my printers.""Unload the filament, then load slot 2."
To add a LAN-only printer directly (no cloud account): "Add a printer at 192.168.1.50 with access code 12345678 and serial 01P00A123456789."
How it works
A printer's mode decides how its MQTT client connects:
LAN mode connects to the printer's IP with username
bblp+ the printer's access code.Cloud mode connects to
us.mqtt.bambulab.com(orcn.for China) with usernameu_<uid>+ your account token.
The command topics (device/<serial>/request and /report) are identical in both, which is why every control tool works the same over the cloud as on the LAN. File operations use FTPS (basic-ftp), and the chamber camera speaks the printer's TLS port-6000 image protocol directly (camera-client.ts).
src/
index.ts MCP server entry; registers tools, auto-connects on startup
fleet-manager.ts Multi-printer connection manager (LAN + cloud branches)
mqtt-client.ts Bambu MQTT protocol (status + all control commands)
bambu-cloud.ts Cloud API: login, email-code/2FA, device discovery, refresh
cloud-store.ts ~/.bambu-mcp/cloud.json credential store
login-cli.ts Interactive `npm run login`
camera-client.ts LAN chamber-image capture (TLS port 6000 → JPEG)
camera-store.ts ~/.bambu-mcp/cameras.json access-code store
ftp-client.ts FTPS file operations
tools/ One file per tool groupAll credentials stay local in ~/.bambu-mcp/ (cloud.json, cameras.json, printers.json), written 0600 and git-ignored. Nothing is sent anywhere except Bambu's own API and MQTT broker.
Troubleshooting
Cloud login 403 — Bambu's API sits behind Cloudflare; wait a moment and retry.
sync_cloud_printersreturns 0 printers — you're logged into an account with no bound printers. Log in with the account your Bambu Handy app uses.Camera
ECONNREFUSED— "LAN Mode Liveview" isn't enabled on that printer, or the printer is offline (the IP is auto-detected from status).Camera timeout — your machine isn't on the same network as the printer. The camera is LAN-only.
connack timeout/ECONNRESETon LAN — a Bambu printer allows only one local MQTT client; close BambuStudio / OrcaSlicer / Home Assistant and retry.
Contributing
Contributions are welcome — see CONTRIBUTING.md for dev setup, build steps, and the Conventional Commits convention. If you're using an AI coding agent, AGENTS.md has repo-specific notes.
Credits
LAN control base: griches/bambu-mcp — the original MQTT control layer and local toolset this project forks and builds on.
Cloud control, passwordless login, and LAN camera capture are original additions in this fork.
Cloud protocol details informed by ha-bambulab / pybambu; camera protocol per community reverse-engineering documented on the Bambu Lab forums.
License
MIT. The upstream base (griches/bambu-mcp) does not publish an explicit license; this fork attributes it prominently and MIT-licenses the original additions. If you're the upstream author and would like different handling, please open an issue.
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.103225GPL 2.0
- AlicenseNot gradedqualityFmaintenance3D Printing MCP By OctoEverywhere35Apache 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
- AlicenseBqualityCmaintenanceA Bambu Lab-focused MCP server for controlling Bambu printers, manipulating STL files, and managing end-to-end 3MF print workflows from any MCP-compatible client.37138GPL 2.0
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
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/dylansantwani/bambu-cloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server