Skip to main content
Glama
Slicewise

Slicewise

by gjlmotea

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAMBU_DATA_DIRNoBambu Studio data folder for system and user presets. Defaults per platform.
BAMBU_MODEL_DIRNoFolders the model tools may read, joined with the platform path delimiter. Model tools refuse every path when unset.
BAMBU_OUTPUT_DIRNoWhere sliced and composed 3MF files go (also readable). Slicing and composing refuse to run when unset.
BAMBU_STUDIO_PATHNoBambu Studio executable path. Defaults per platform.
THINGIVERSE_TOKENNoThingiverse app token. Without it, model search returns links only.
BAMBU_SLICE_TIMEOUT_MSNoTimeout for one slice, in milliseconds.300000

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Before changing any parameter, call bambu_describe_parameters to confirm its meaning, unit and cost; do not guess from the name. When the user describes a symptom rather than a parameter, use bambu_diagnose to turn the symptom into an ordered list of remedies, and change only one thing at a time so the result can be attributed. When small print-in-place parts tend to detach from the bed or get dragged off by the nozzle, prefer bambu_optimize_print_in_place to create a conservative user preset; it explicitly turns Auto Brim off and adds Brim Ears only when asked. A leaf preset declares only a few dozen keys and inherits everything else. To learn the real value of a parameter, always use bambu_resolve_preset; do not read the leaf preset file. bambu_slice flattens the inheritance chain itself; do not try to bypass it by calling the BambuStudio CLI directly, or every inherited parameter falls back to the built-in default. After slicing, always check overrideAudit: honoured = false means that override was not honoured and must not be treated as applied. To make other adjustments show up in the Bambu Studio GUI, use bambu_save_user_preset; it writes to the user profile directory and takes effect after Studio is restarted. MakerWorld and Printables have no official API, so bambu_search_models returns only search links for them. Do not claim you have searched for or downloaded a model for the user. This server does not control a physical printer, does not upload files, and does not start prints.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
bambu_get_statusA

Reports the BambuStudio data directory, whether the slicer executable is available, preset counts, the machine and filaments currently selected in Studio, the allowed model directories, and the integration level of each model platform. Use it first to see what this server can do on this machine. No side effects.

bambu_list_presetsA

Lists machine, process or filament presets. By default only presets selectable in the UI are returned; intermediate presets that exist only to be inherited from (e.g. fdm_process_common) are filtered out. Names listed here do not show real setting values; use bambu_resolve_preset for that. No side effects.

bambu_resolve_presetA

Flattens a preset's inherits chain into the complete settings and records which level each value comes from. A BambuStudio leaf preset usually declares only a few dozen keys and inherits everything else from its parents, so to know the real value of any parameter you must look at the flattened result, not the leaf preset file. Use this whenever you need an actual setting value. No side effects.

bambu_compare_presetsA

Flattens two presets of the same kind and lists the settings that differ. Use it to answer questions like "what exactly is the difference between 0.20 Standard and 0.20 Strength" without reading four levels of JSON by hand. No side effects.

bambu_describe_parametersA

Explains what a parameter does, its unit, its typical range, the cost of raising or lowering it, and related parameters. Call this before changing any parameter, instead of tuning by what merely sounds reasonable. No side effects.

bambu_diagnoseA

Takes an observed symptom (warping, stringing, layer separation, elephant's foot, holes in the top surface, ...) and returns an ordered list of remedies, each with its mechanism, a suggested value and its cost. Use it when the user describes what went wrong rather than which parameter to change; apply one remedy at a time. If no known symptom matches, it says so instead of guessing. It also points out problems that no parameter can fix. No side effects.

bambu_plan_settingsA

Given what you want (safe and failure-free / fast / strong under load / good surface / economical), returns ordered parameter adjustments grouped by what they counter: adhesion and warping, nozzle collisions, surface quality, structural strength, time, filament. Each move includes its mechanism, a suggested value, its cost, and the actual value in the current preset and its shape (per-extruder parameters must be overridden with an array; a scalar is silently not applied). If modelPath is given, a printability analysis runs first and conditional adjustments are added based on the geometry. This is for planning before a print; to work back from a print that already failed, use bambu_diagnose. It only returns a plan and changes nothing. No side effects.

bambu_optimize_print_in_placeA

Creates an auto-stabilised copy of the given (or currently selected) process preset that can be used directly in Bambu Studio. Use it when small print-in-place parts detach from the bed or get dragged off by the nozzle. It applies exactly: first-layer outer wall 20 mm/s, first-layer infill 30 mm/s, outer wall capped at 60 mm/s, slowdown for overhangs, avoid crossing printed walls, Monotonic line, and ironing and Fuzzy Skin turned off. If the source is an existing user preset, its leaf-level calibrations (dimensions, elephant's foot, etc.) are kept, but the new file still inherits directly from the system preset. By default Auto Brim is explicitly turned off so the brim does not fuse gear clearances; Brim Ears can be requested explicitly, and you will still be reminded to check the first layer. It does not change filament temperature, cooling or flow, because regular PLA and Silk PLA must be calibrated separately. Writes a file to the user profile directory; takes effect after Bambu Studio is restarted.

bambu_save_user_presetA

Creates a custom preset that inherits from a system preset, in the BambuStudio user profile directory; it appears in the dropdown after Bambu Studio is restarted. BambuStudio has no plugin API (see bambulab/BambuStudio#9614), so this is the only way to get parameters tuned by an AI into the GUI. Writes a file; an existing preset with the same name is never silently overwritten.

bambu_sliceA

Slices with the BambuStudio CLI and reports real statistics: layer count, print time, filament weight. Presets are flattened before they are passed to the CLI; feeding the raw presets to the CLI makes every inherited parameter fall back to the built-in default (BambuStudio#1704), so do not call the CLI directly. After slicing, it reads the settings that actually took effect back from the output and audits each override you requested; an overrideAudit entry with honoured = false was not applied. Starts a child process and writes a .gcode.3mf to the configured output directory. It does not send anything to a printer or start a print.

bambu_inspect_modelA

Parses an STL (binary or ASCII), 3MF or OBJ and reports triangle count, bounding box, volume, surface area, and whether the mesh is closed. The format is detected from the file content, not the extension. For 3MF and OBJ it also reports the part count and part list (3MF coordinates have the placement transform applied; OBJ is split into parts by o / g, and Tinkercad's colour export is OBJ). Reads only files inside the allowed directories. No side effects.

bambu_check_printabilityA

Finds problems visible before slicing: exceeding the build volume, floating bodies that do not touch the plate, an unclosed mesh, the share of steep overhangs, too small a base area, too high an aspect ratio, features that are too thin, and warping risk on large bottom surfaces. Each finding lists the related parameters. Floating detection splits the mesh into shells, merges shells that touch or intersect into bodies, merges shells fully enclosed by another body into it, then checks whether each body reaches the plate and measures the gap to the nearest body: a narrow gap means the parts were not joined in the model (turning on support would make them print as separate pieces); only a wide gap really needs support. Accepts STL, 3MF and OBJ. This is geometric analysis, not a slicing simulation; thin walls inside the model only show up when actually sliced. No side effects.

bambu_measure_clearanceA

Measures the smallest clearance between the parts in a 3MF or OBJ, to judge whether a print-in-place mechanism will fuse when printed. Parts that touch each other are first merged into rigid bodies before comparing, because Bambu also stores the colour-change segments of a single solid as separate parts; without merging, one piece would be reported as "clearance 0". When the clearance is too small it suggests compensation, distinguishing outer contours from holes (the enclosed side is a hole to the slicer and is controlled by a different parameter). STL has no part boundaries, so it cannot be measured. No side effects.

bambu_compose_modelA

Builds a Bambu project 3MF from a base body STL plus extra parts. A negative part (negative_part) cuts away where it overlaps, a modifier (modifier_part) applies different settings to its region, and support_blocker / support_enforcer control support. In a Bambu model each of these is just one more part with a label, so no geometry (boolean) engine is needed. The output can be read back item by item with bambu_inspect_project, or passed straight to bambu_slice. Writes a file to the output directory.

bambu_inspect_projectA

Reads the objects and parts from a Bambu project 3MF, including each part's subtype and per-part settings. Use it to verify that what was written is really in the file; this is the key advantage of working with files over the GUI: you can compare item by item instead of only looking at the screen. It also flags subtypes that BambuStudio does not recognise. No side effects.

bambu_search_modelsA

Searches for models across platforms. Thingiverse uses its official API (requires THINGIVERSE_TOKEN). MakerWorld and Printables have no official public API, so for them only a search link is returned for a person to open; this is a deliberate downgrade: no scraping or private endpoints pretending to be an API. Do not claim to have searched or downloaded models from those platforms. Does not download any model. Accesses the internet.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 16 tools

Disambiguation5/5

Every tool targets a distinct operation: status, preset listing/flattening/diffing, parameter explanation, symptom diagnosis, goal planning, preset creation, slicing, mesh inspection, printability checking, clearance measuring, 3MF composition, project inspection, and online model search. The potentially overlapping pairs (diagnose vs plan_settings, inspect_model vs check_printability, optimize_print_in_place vs save_user_preset) are explicitly differentiated in their descriptions, e.g. 'forward planning' vs 'work back from a failed print'.

Naming Consistency4/5

All tools use the same bambu_ prefix and snake_case, and almost all follow a verb_noun pattern (get_status, list_presets, resolve_preset, compare_presets, inspect_model, check_printability, etc.). Minor deviations are the bare verbs bambu_diagnose and bambu_slice, which lack an object noun, but they remain clear in context.

Tool Count4/5

At 16 tools the set is slightly above the typical 3-15 sweet spot, but each tool covers a genuinely distinct capability across preset management, diagnosis/planning, slicing, geometry analysis, and model search. No tool appears redundant, so the count is justified by the breadth of the slicer-assistant domain rather than bloat.

Completeness4/5

Coverage is strong: environment introspection, full preset lifecycle (list, flatten, compare, describe, create, specialised print-in-place copy), diagnostics, planning, slicing, mesh/project inspection, printability and clearance analysis, and model search. Gaps remain in editing/deleting existing user presets (only creation is supported) and in downloading models from MakerWorld/Printables (deliberately link-only), but these are minor and workable around.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues