bambu-cloud-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAMBU_MCP_CONFIG_DIR | No | Directory for runtime config and credentials. Default: ~/.bambu-mcp. | ~/.bambu-mcp |
| BAMBU_APP_CERTIFICATE | No | Override the bundled X.509 certificate used by sign_message. | |
| BAMBU_APP_PRIVATE_KEY | No | Override the bundled X.509 private key used by sign_message. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_printerA | Add a Bambu Lab printer to the fleet. Saves config and connects via MQTT. |
| remove_printerA | Remove a printer from the fleet. Disconnects MQTT and removes from config. |
| reconnect_printerA | Reconnect a printer (or all printers) by re-reading config and re-establishing MQTT connections. |
| list_printersA | List all configured printers with their connection status. |
| get_statusB | Get current status of a printer (or all printers). Shows print progress, temperatures, speed, AMS, lights, etc. |
| get_versionB | Get firmware and module version information from a printer. |
| pause_printA | Pause the current print on a printer (or all printers). |
| resume_printA | Resume a paused print on a printer (or all printers). |
| stop_printA | Stop/cancel the current print on a printer (or all printers). WARNING: This cannot be undone. |
| start_printA | Start printing a file that is already on the printer's SD card. Supports .3mf and .gcode files. Use list_files to see available files, or upload_file to add one first. |
| start_printsA | Start multiple prints across different printers in parallel. Much faster than calling start_print multiple times. |
| set_speedA | Set print speed on a printer (or all printers). Use a profile name or a raw percentage. |
| set_lightB | Control the LED lights on a printer (or all printers). Supports chamber light and work light. |
| set_temperatureA | Set nozzle or bed temperature on a printer. Includes safety limits (nozzle max 300C, bed max 120C). |
| set_nozzleA | Set the nozzle diameter on a printer (for profile selection). |
| list_filesA | List files on a printer's SD card via FTP. Shows cached print files, timelapse videos, etc. |
| upload_fileA | Upload a local file to a printer's SD card via FTP. Supports .3mf, .gcode files. Use start_print after uploading to begin printing. |
| delete_fileB | Delete a file from a printer's SD card via FTP. |
| download_fileA | Download a file from a printer's SD card to your local machine via FTP. |
| get_camera_frameA | Capture a live JPEG snapshot from a printer's chamber camera over the LAN and return it as an image. Works for A1/A1 Mini/P1P/P1S on the same network with 'LAN Mode Liveview' enabled. The printer's IP is auto-detected; the LAN access code is used for auth (set once via set_camera_access for cloud printers). |
| set_camera_accessA | Store the LAN access code (and optional IP) for a printer's chamber camera, so get_camera_frame can authenticate. The access code is the 8-digit code in the printer's WLAN settings. |
| set_recordingA | Enable or disable camera recording on a printer (or all printers). |
| set_timelapseB | Enable or disable timelapse recording on a printer (or all printers). |
| change_filamentB | Change to a different AMS filament tray on a printer. |
| unload_filamentB | Unload the current filament from the extruder on a printer (or all printers). |
| send_gcodeA | Send a raw G-code command to a printer (or all printers). Some dangerous commands are blocked for safety. |
| skip_objectsA | Skip specific objects during a multi-object print. Skipped objects will not be printed. |
| sign_messageA | Sign a message using the Bambu Lab X.509 certificate. Used to authenticate with printers running firmware that requires certificate-based auth (post-January 2025 firmware). |
| cloud_statusA | Show Bambu cloud login status: whether credentials exist, the account, region, token expiry, and how many cloud printers are connected. |
| sync_cloud_printersA | Discover printers bound to your Bambu cloud account and connect them over the cloud MQTT broker (works remotely, off your LAN). Requires |
| cloud_logoutA | Log out of Bambu cloud: delete stored cloud credentials and disconnect cloud printers. LAN printers are unaffected. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools target clearly distinct resources and actions, such as file operations, print control, settings, and camera functions. The main ambiguity is between start_print and start_prints, which overlap in intent but differ in scope.
The vast majority of tools follow a consistent verb_noun snake_case pattern, like list_files, pause_print, and set_temperature. A few exceptions like cloud_logout and cloud_status use a noun-prefix or noun-phrase form, creating minor inconsistency.
With 31 tools, the surface exceeds the 25+ threshold and feels heavy for a printer management server. While many tools are individually useful, the count could be reduced by consolidating related set_* operations and print-start variants.
The tool set covers the main printer lifecycle: fleet management, file upload/download/delete, print control, status, settings, camera, filament, and cloud sync. Minor gaps include no explicit printer configuration update tool and cloud login existing only as an npm prerequisite rather than an MCP tool.