MCPVault

rotate_stl

MCP tool from Bambu Printer MCP by DMontgomery40

Rotate an STL model around one or more axes. Angles are in degrees. Omitted axes default to 0.

How to use it

rotate_stl is exposed by the Bambu Printer MCP MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), and the rotate_stl tool becomes available to the model automatically. See the full listing for setup details and every tool this server provides.

Install Bambu Printer MCP

$npx @rowbotik/bambu-printer-mcp
FULL BAMBU PRINTER MCP LISTING

Other tools in Bambu Printer MCP (39)

camera_snapshot

Capture a single JPEG frame from the printer's chamber camera. Read-only.

cancel_print

Cancel the currently running print job. Sends an UpdateState MQTT command with state: "stop". Not resumable — use pauseprint if you may want to continue.

center_model

Translate the model so the center of its bounding box sits at the world origin (0, 0, 0). Useful before applying transformations or exporting for use in another tool.

clear_hms_errors

Clear HMS or print error state on the printer. Sends Bambu's cleanprinterror MQTT command.

delete_printer_file

Delete a single file from the printer's SD card via FTPS. Destructive. Requires confirm: true — without it the call returns status: "skipped" and does not contact the printer. Path traversal segments (..) are rejected. Only files under cache/, timelapse/, and logs/ can be deleted.

extend_stl_base

Add solid geometry underneath the model to increase its base height. Useful for improving bed adhesion on models with a small or unstable footprint.

get_printer_filaments

Read the live AMS inventory and resolve each loaded tray to Bambu Studio

get_printer_status

Retrieve current printer state including temperatures, print progress, layer count, time remaining, and AMS slot data. Internally sends a pushall MQTT command to force a fresh status report before reading cached state.

get_slice_settings

Inspect the slicer settings embedded in a saved 3MF template or in an extracted JSON/config profile without slicing anything.

get_stl_info

Inspect an STL file without modifying it. Returns bounding box dimensions, face count, vertex count, and model center.

lay_flat

Identify the largest flat surface on the model and rotate the model so that face is oriented downward on the XY plane (Z = 0). This is a common preparation step before slicing to minimize the need for supports.

list_3mf_plate_objects

List object IDs from a sliced 3MF plate. Use this before skipobjects so you pass real Bambu object IDs instead of display-order guesses.

list_printer_files

List files stored on the printer's SD card. Scans the cache/, timelapse/, and logs/ directories and returns both a flat list and a directory-grouped breakdown.

list_templates

List saved templates from the local registry directory. You can override the registry root with BAMBUTEMPLATEDIR.

merge_vertices

Merge vertices that are closer together than the specified tolerance. This can close small gaps in a mesh and slightly reduce file size. Useful as a cleanup step before slicing.

pause_print

Pause the currently running print job. Sends an UpdateState MQTT command with state: "pause". Resumable via resumeprint.

print_3mf

The primary tool for starting a Bambu print. Recommended input: a pre-sliced .gcode.3mf exported from Bambu Studio — see docs/SLICING.md. This tool handles the complete workflow:

print_collar_charm

High-level wrapper for a prepared two-part dog-collar-charm workflow. This tool is intentionally specialized: it expects a prepared two-part charm project and applies a fixed tray policy.

recommended.load_filaments

the profile path the MCP will use for

reread_ams_rfid

Trigger a Bambu AMS RFID re-read for one AMS slot. This can move AMS filament; use it only when the printer is idle and unloaded.

resolve_3mf_ams_slots

Dry-run the AMS match without uploading or starting a print. The tool reads Metadata/plate<n>.json and Metadata/sliceinfo.config, then compares required trayinfoidx values against live AMS trays.

resume_print

Resume a paused print job. Sends an UpdateState MQTT command with state: "resume".

save_template

Copy a local 3mf, json, or .config file into the template registry and register it under a reusable template name.

scale_stl

Scale an STL model along individual axes. Omit any axis to leave it unchanged (defaults to 1.0).

set_airduct_mode

Set H2/P2 airduct mode to cooling or heating. This is intended for supported printers only.

set_ams_drying

Start or stop the AMS filament drying cycle on heated AMS units (AMS Pro / AMS-HT). The action parameter accepts start or stop. The amsid must be an integer from 0 to 3.

set_fan_speed

Set a printer fan speed from 0 to 100 percent. Accepted fan values are part, auxiliary, chamber, 1, 2, and 3.

set_light

Set a printer light node mode. Common Bambu firmware reports the chamber light as chamberlight; valid modes are on, off, and flashing.

set_print_speed

Set the active print speed mode. Accepted mode values are silent, standard, sport, ludicrous, or their numeric equivalents 1, 2, 3, and 4.

set_temperature

Set the target temperature for the bed or nozzle. Dispatches an M140 (bed) or M104 (nozzle) G-code command via MQTT. Valid range is 0 to 300 degrees Celsius. Accepted values for component are bed, nozzle, extruder, tool, and tool0.

skip_objects

Skip specific object IDs during a running multi-object print. Use list3mfplateobjects on the sliced 3MF to find the IDs first.

slice_stl

Slice an STL or 3MF file using an external slicer and return the path to the output file. The output is a sliced 3MF (for BambuStudio and OrcaSlicer) or a G-code file (for PrusaSlicer, Cura, Slic3r).

slice_with_template

Slice an STL or 3MF using a named template from the local registry. This is a higher-level wrapper over slicestl for template-based workflows.

start_print_job

Start printing a .gcode file that is already on the printer's SD card. Do not use this for .3mf files -- use print3mf instead, which handles the projectfile MQTT command with proper metadata.

summary.loaded_slots

, summary.resolvedprofileslots,

TCP-on-6000

for A1, A1 mini, P1S, P1P. Native protocol per OpenBambuAPI/video.md: TLS on port 6000, 80-byte auth packet (bblp + access token), repeating 16-byte frame header + JPEG payload.

upload_file

Upload a local file (G-code or 3MF) to the printer. If print is true and the file is a .gcode file, startprintjob is called automatically after a successful upload. For .3mf files, upload completes normally but you must use print3mf to initiate the print (which handles plate selection and metadata).

upload_gcode

Write G-code content from a string directly to the printer's cache/ directory. The content is written to a temporary file and uploaded via FTPS.

uptodate

boolean