Skip to main content
Glama
BambuStudio-MCP

BambuStudio-MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BAMBUSTUDIO_PROFILESYesPath to the bundled BambuStudio profiles (e.g., $BAMBUSTUDIO_MCP_DIR/runtime/squashfs-root/resources/profiles).
BAMBUSTUDIO_WORKSPACEYesPath to the workspace holding project copies, revisions, logs, and slice results. The server creates it automatically.
BAMBUSTUDIO_EXECUTABLEYesPath 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.

Prepare saved BambuStudio projects; never control a printer. Inspect the project and options first. Confirm the actual printer, every active nozzle and filament. Ask for intended loads, critical surfaces and time constraints when missing. Before print recommendations or slices, confirm the filament material, brand, exact product/variant and color. Ask about drying history and calibration. Ask only for missing details. Do not infer the actual spool from a saved profile. Use the client's web search to find official manufacturer specifications for that exact product. Cite the source URLs. Never substitute specifications for another product or variant. If exact specifications cannot be verified or web search is unavailable, use a Generic profile from list_profiles. Match the confirmed material, printer and nozzle. If the material is unknown or no compatible Generic profile exists, ask the user before proceeding. Identify values from manufacturer specifications, profiles and calibration. Label Generic values as unverified starting points. Check saved filament settings against the confirmed spool before slicing. Read bambustudio://quality-guide and call get_print_guidance before recommendations. Record user declarations with record_print_context. Resolve missing inputs and hardware/material mismatches. Run analyze_geometry for the exact revision before slicing, show its highlighted SVG previews, and explain unresolved issue IDs. Ask about moving parts, hinges, fitting holes, cosmetic faces and load direction. Suggest a small cut-out joint coupon before a long moving-part print. Use explicit revisions for changes. Compare alternatives against an unchanged baseline. Review get_job inspection or call inspect_slice for existing sliced archives. Check commands separately from saved settings. Use matched physical samples for fit and finish decisions. Geometry and slicer estimates do not prove strength or finish. Read bambustudio://guide before recommendations. Studio's unsaved GUI state is not synchronized. Poll jobs until terminal status. Preserve the original and export to a new filename.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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. Compact results retain counts, shared path totals and bead-edge margins; raw paths stay at report_path. Geometry comparisons link paths to issue IDs from the exact revision. Unknown firmware, plate origins and extruder mappings remain unknown. Targets do not establish actual temperatures or physical fusion.

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_geometryA

Find geometric print-risk candidates using nominal layer sections, facing clearances, roofs, bed contact and mesh facets; save highlighted 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). Results are heuristics. Read issue_guidance and slicer_fixes tables. Append # to a highlighted preview path. Raw arrays stay at report_path for slice correlation; the response includes counts.

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. Run analyze_geometry first and show its highlighted preview. Unresolved or missing geometry analysis returns warnings, not a block. 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

NameDescription
prepare_print

Resources

Contextual data attached and managed by the client

NameDescription
guideEvidence-led print preparation procedure and reference sources.
spatial_editsSpatial edit inputs, units, and example requests.
quality_guideSourced preparation rules, prerequisites, candidate settings and physical acceptance checks.
print_contextExact user-declaration input shape and example for record_print_context.
coverage
catalogComplete versioned catalog. Prefer list_options for paginated queries.

TDQS

B3.4/5.0

Scored across 19 tools

Disambiguation4/5

Most tools have clearly distinct purposes: list_options vs get_settings (catalog vs current values), analyze_geometry vs inspect_slice (risk heuristics vs G-code inspection), and get_print_guidance vs analyze_geometry (advice vs detection) are explicitly delineated. A few boundaries are softer — inspect_project, get_settings, and list_profiles all read project/profile state, and get_job vs inspect_slice both take job_id — but the descriptions provide enough cues to pick correctly.

Naming Consistency5/5

Every tool follows snake_case verb_noun form (list_options, restore_revision, edit_regions, cancel_job, apply_settings, inspect_slice, analyze_geometry, record_print_context). No camelCase or bare-noun deviations; open_in_studio is the only slight variant but still verb-led and predictable.

Tool Count4/5

Nineteen tools is on the heavy side, but the domain (slicing, revisions, spatial edits, geometry analysis, job control, comparison) is genuinely multi-faceted and each tool maps to a distinct operation. Nothing appears redundant enough to warrant removal, though a couple of read paths could theoretically be consolidated.

Completeness4/5

Coverage is strong: open/inspect projects, edit regions, apply settings atomically, restore revisions, slice, inspect slices, compare candidates, export, and record context all exist. Minor gaps remain — there is no list_jobs/discover-jobs tool (job ids must come from prior calls) and no explicit workspace/project deletion or cleanup operation.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues