Bambu Studio MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAMBU_STUDIO_EXE | No | Path to the Bambu Studio executable. Default: Windows `C:\Program Files\Bambu Studio\bambu-studio.exe` · macOS `/Applications/BambuStudio.app/Contents/MacOS/BambuStudio` · Linux `bambu-studio` on `PATH`. | |
| BAMBU_STUDIO_MCP_CACHE | No | Per-user cache folder for the MCP server. | |
| BAMBU_STUDIO_CONFIG_DIR | No | Bambu Studio configuration directory. Default: Windows `%APPDATA%\BambuStudio` · macOS `~/Library/Application Support/BambuStudio` · Linux `~/.config/BambuStudio`. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_environmentB | Where Bambu Studio and its profiles are, profile version, cache folder, safety guarantees. |
| list_printersB | Installed printer presets (one per printer + nozzle): bed size, max height, forbidden zones, number of extruders, default process and filament. 'query' filters by words, e.g. 'P1S 0.4'. |
| list_presetsC | Process or filament presets compatible with a printer, including the user's own presets. |
| get_settingsA | Every valid setting key with its current value for printer+process. Filter with words ('support', 'wall', 'infill', 'brim', 'ironing', 'seam'). 'per_object' tells which keys may be set per object/part. Use the exact keys in slice_model 'settings'. |
| list_object_typesA | Object types and what each changes from the printer's default (functional, decorative, miniature, flat, enclosure, vase, draft, print_in_place, standard). |
| analyze_modelA | Geometry before slicing: size, fit on the printer, overhang share, bed contact, slenderness, flat tops and which installed layer heights hit them exactly, suggested object types, plus a preview image of the model. |
| slice_modelA | Build a Bambu Studio project from meshes, slice it headless and verify the result. Writes <output_dir>/.3mf (saved by Bambu Studio itself, G-code inside) and -report.md. Returns time, grams per filament, purge, colour changes and 'problems'. object_type picks process and settings; auto_adjust adds supports/brim when the geometry needs them; 'settings' (global) always wins. Never prints. |
| compare_slicesB | Slice the same model several ways and compare time, grams, colour changes, support time and how far flat tops fall from the layer grid. vary='process' (values optional: the sensible layer heights for the nozzle) or any setting key with explicit values, e.g. vary='support_type', values=['tree(auto)','normal(auto)']. Nothing is saved. |
| slice_projectA | Slice an existing Bambu Studio project (.3mf, e.g. from MakerWorld) keeping its objects, paint and modifiers, optionally with another process, filaments, settings or even another printer (objects are then re-arranged for the new bed). The original file is never modified. |
| paint_modelA | Colour a single mesh by rules -- the Bambu Studio brush, automated -- then slice and verify. Rules apply in order (later wins); each needs 'type' and usually 'filament': {"type":"height","from":3.3,"to":99,"filament":2} {"type":"facing","direction":"up","angle":20,"filament":2} {"type":"image","file":"logo.png","view":"top","colors":{"#FF0000":3},"tolerance":80} {"type":"body","index":1,"filament":3} {"type":"fill","point":[x,y,z],"angle":30,"filament":4} Any rule accepts "within":[x0,y0,z0,x1,y1,z1] and "only_from":slot. z is measured from the part's base. Returns the result and a preview image -- check it before trusting the paint. |
| self_testB | Slice six colour bands to prove the paint codes on this machine. Run after updating Bambu Studio. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| paint_rules | Reference of the painting rules. |
TDQS
Scored across 11 tools
Most tools have clearly distinct purposes (analysis, painting, environment, presets). The three slicing tools (slice_model, slice_project, compare_slices) share the core 'slice' action but are differentiated by input source and whether output is saved, so confusion is limited to a single family.
All eleven tools follow a consistent snake_case verb_noun pattern (list_object_types, analyze_model, slice_model, get_settings, etc.). No mixed conventions or stylistic drift.
Eleven tools is well within the ideal 3-15 range for a headless slicer service. Each tool covers a distinct capability (discovery, analysis, slicing, comparison, painting, validation) with no filler.
The surface covers the full discover-analyze-slice-verify lifecycle: resource listing, geometry analysis, slicing (model and project), variation comparison, painting, environment introspection and self-test. Actual printing is intentionally excluded, and export/preview handling is adequate, leaving only minor gaps.