- Home
- MCP servers
- Bambu Lab
Bambu Lab
- typescript
1
GitHub Stars
typescript
Language
4 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"schwarztim-bambu-mcp": {
"command": "node",
"args": [
"/path/to/bambu-mcp/dist/index.js"
],
"env": {
"BAMBU_LAB_COOKIES": "YOUR_COOKIES",
"BAMBU_LAB_BASE_URL": "https://api.bambulab.com",
"BAMBU_LAB_DEVICE_ID": "YOUR_SERIAL_NUMBER",
"BAMBU_LAB_MQTT_HOST": "192.168.1.100",
"BAMBU_LAB_MQTT_PORT": "8883",
"BAMBU_APP_CERTIFICATE": "YOUR_CERT",
"BAMBU_APP_PRIVATE_KEY": "YOUR_PRIVATE_KEY",
"BAMBU_LAB_MQTT_PASSWORD": "YOUR_ACCESS_CODE",
"BAMBU_LAB_MQTT_USERNAME": "bblp"
}
}
}
}You can run a complete MCP server that gives you local MQTT control, file uploads, and X.509 based command signing for Bambu Lab printers on your network. This server lets you manage printers, monitor status, control cameras and AMS, upload files, and bypass firmware authentication in a secure, configurable way so you can automate and integrate your Bambu Lab devices with Claude AI or your own tools.
How to use
This MCP server is designed to connect your Bambu Lab printer to a local MQTT broker over TLS, expose status and control actions through MCP tools, and enable file uploads to the printer SD card via FTPS. You’ll run the server locally on the same network as your printer and configure your MCP client to issue commands such as starting prints, pausing, resuming, adjusting temperatures, and controlling the camera or AMS.
To get started, ensure your environment variables are set and your Claude MCP client is configured to launch the server process. You can then use the available tools to issue commands, monitor real-time status, and manage filament with safety bounds in place.
How to install
Prerequisites: ensure you have Node.js 18 or higher installed on your system, and your Bambu Lab printer is reachable on the local network.
Install steps you should follow in sequence to set up the MCP server.
# Clone the MCP server repository
git clone https://github.com/schwarztim/bambu-mcp.git
# Change into the project directory
cd bambu-mcp
# Install dependencies
npm install
# Build the project
npm run build
Configuration
Configure the server environment to point to your printer and enable secure communication. You will provide the printer’s IP, LAN access code, and serial number, and adjust optional TLS and signing settings as needed.
# Copy example environment configuration and edit with your details
cp .env.example .env
# Edit .env with your printer IP, access code, and serial number
Security and safety
The server includes safety features such as blocked G-code checks, temperature caps for nozzle and bed, file validation for uploads, and path traversal prevention to keep your printer secure.
Notes and best practices
For best results, keep printers on a separate VLAN, rotate LAN access codes regularly, and avoid committing sensitive configuration files. The server supports overrides for X.509 certificates via environment variables if credentials rotate.
Examples and troubleshooting
If you encounter connection issues, verify MQTT_TLS port is reachable (default 8883), your printer IP is correct, and the LAN access code matches the printer configuration. Check that FTPS port 990 is open for file uploads.
Available tools
get_user_profile
Fetch the Bambu Lab cloud account profile through the cloud API.
list_printers
List printers registered to your cloud account.
get_printer_status
Query printer status via cloud API.
sign_message
Sign a message with the X.509 certificate to bypass firmware authentication.
printer_stop
Immediately stop the current print.
printer_pause
Pause the current print.
printer_resume
Resume a paused print.
printer_set_speed
Set print speed via predefined profiles or a percentage.
printer_send_gcode
Send a G-code command to the printer (unsafe commands blocked by safety checks).
printer_print_file
Start printing a file from the printer SD card.
skip_objects
Skip specific objects during multi-object prints.
printer_get_status
Request a full status push including temperatures, progress, AMS, and fans.
printer_get_cached_status
Return the last cached status for frequent polling.
printer_get_version
Get firmware and module version information.
camera_record
Enable or disable camera recording.
camera_timelapse
Enable or disable timelapse recording.
ams_change_filament
Change to a different AMS filament tray (0-3).
ams_unload_filament
Unload current filament from the extruder.
set_temperature
Set nozzle or bed temperature with safety limits.
set_nozzle
Set nozzle diameter for profile selection.
led_control
Control chamber and work LED lights.
mqtt_connect
Connect to the printer via local MQTT over TLS.
mqtt_disconnect
Disconnect from MQTT.
ftp_upload_file
Upload files to the printer SD card via FTPS.