BambuStudio-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BAMBUSTUDIO_PROFILES | Yes | Path to the bundled BambuStudio profiles (e.g., $BAMBUSTUDIO_MCP_DIR/runtime/squashfs-root/resources/profiles). | |
| BAMBUSTUDIO_WORKSPACE | Yes | Path to the workspace holding project copies, revisions, logs, and slice results. The server creates it automatically. | |
| BAMBUSTUDIO_EXECUTABLE | Yes | Path to the BambuStudio AppRun executable (e.g., $BAMBUSTUDIO_MCP_DIR/runtime/squashfs-root/AppRun). Use AppRun, which sets the path to the bundled libraries. |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_environmentB | Report the Studio runtime, supported version, profiles location, and honest configuration coverage. |
| list_profilesA | Find machine, process, or filament profiles. Use exact names or paths when importing models. |
| open_projectB | Copy a saved 3MF into an isolated workspace, or import a model with explicit profiles through Studio. |
| inspect_projectC | Inspect objects, volumes, resource IDs, instances, plates, bounds, and revision history. |
| list_optionsC | Search the full versioned FFF configuration catalog; inspect types, units, ranges, defaults and scopes. |
| get_settingsA | Read settings and their origin. Scopes: project, plate, object, volume, height_range, filament. target selects plate_index (1-based), object_id, volume_id, min_z/max_z, or filament_index (0-based). Use keys to bound the response. Studio-normalized settings are returned by completed slice jobs. |
| record_print_contextB | Replace user-declared hardware, filament, calibration and physical observations for this project. Read bambustudio://print-context for the exact input shape. This records declarations, not verified measurements. It does not edit the 3MF. Observations apply only to this revision; optional job_id must match a succeeded slice. |
| get_print_guidanceB | Return deterministic missing-input questions, context/settings mismatches and sourced rules for selected concerns. Select concerns from bambustudio://quality-guide. Inputs are user declarations; no physical quality is inferred. |
| inspect_sliceA | Inspect embedded G-code targets, object layers and feature feeds without running it. With job_id inspect that exact succeeded revision; otherwise inspect the saved project, including older sliced imports. Unknown firmware branches and mappings remain unknown. Targets do not establish actual temperatures or speeds. |
| apply_settingsB | Validate and apply an atomic batch to a new revision. Uses JSON numbers, booleans, enums and arrays. Percentage strings such as '15%' are allowed only on percent types. A filament-scope change selects one existing filament_index; project-scope vector values must be complete arrays. Never overwrites the source. |
| restore_revisionA | Restore a historical or candidate revision as a new head; preserve all previous revisions. revision is the current head for concurrency protection; restore is the revision to copy. |
| analyze_geometryB | Measure geometry, sampled thickness, contact and downward-facing overhang regions; save SVG previews. Coordinates are world millimetres. Thickness is sampled geometry, not mechanical strength. Overhang angle is the downward-face threshold from horizontal in degrees (0..90). |
| edit_regionsA | Apply spatial edits atomically to a new revision. Read bambustudio://spatial-edits for exact shapes. Actions: rotate, paint, modifier_box, remove_modifier, height_range, layer_heights. Paint edits a shared mesh resource, affecting every instance of that resource. |
| start_sliceA | Queue a detached Studio slice. Returns immediately; poll get_job. 0 selects all plates; positive indexes are 1-based. |
| get_jobC | Read persistent slice or comparison status, log tail, estimates, and output locations. |
| cancel_jobA | Cancel a queued or running job and terminate its Studio subprocesses. |
| compare_candidatesA | Compare unchanged baseline with 1..7 alternatives, each {name, changes} or {name, revision}. Returns immediately with a persistent comparison job; poll get_job. Numeric constraints: max_time_seconds, max_filament_g. Spatial candidates use revisions made with edit_regions. Reports time/material estimates and tradeoffs; strength/finish remain unverified. |
| export_projectB | Export to a new filename. Supply a succeeded job_id to export that exact revision with slicing artifacts. |
| open_in_studioA | Launch the saved revision in Studio for review. This does not synchronize or replace unsaved GUI state. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| prepare_print |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | Evidence-led print preparation procedure and reference sources. |
| spatial_edits | Spatial edit inputs, units, and example requests. |
| quality_guide | Sourced preparation rules, prerequisites, candidate settings and physical acceptance checks. |
| print_context | Exact user-declaration input shape and example for record_print_context. |
| coverage | |
| catalog | Complete versioned catalog. Prefer list_options for paginated queries. |
TDQS
Scored across 19 tools
Most tools target clearly distinct resources and actions (projects, settings, geometry, slicing jobs, exports). A few read-oriented tools (inspect_project, inspect_slice, get_settings, list_options) touch adjacent surfaces and could occasionally be confused, but descriptions differentiate scope and intent well.
All names follow a consistent snake_case verb_noun pattern (get_settings, apply_settings, start_slice, cancel_job, compare_candidates, export_project). Verb reuse (get_*, inspect_*, open_*) is applied meaningfully to different objects rather than chaotically.
19 tools is on the heavier side but the domain (project editing, config, geometry analysis, slicing, job management, comparison, export) is genuinely broad. Each tool maps to a distinct operation and none appears redundant or filler.
The surface covers a full design-to-export lifecycle: open/import, inspect, read and apply settings, edit regions, analyze geometry, slice, poll/cancel jobs, compare candidates, restore revisions, and export. Minor gaps like listing/managing existing projects or deleting revisions are workable around.