Skip to main content
Glama
BambuStudio-MCP

BambuStudio-MCP

🧩 BambuStudio MCP

Less menu diving. More informed slices.

Platform: Linux x86-64 Transport: MCP stdio Clients: Claude Code and Codex License: AGPL-3.0-or-later

Demo: STL input, Claude Code tool calls, slice comparisons, and 3MF export

Give Claude Code or Codex the tools to inspect a part, change its print configuration, and compare actual BambuStudio slices.

STL or 3MF in. Configured 3MF out. Current release: 0.4.2. Start with an STL model or a saved 3MF project. Export the configured result as a new 3MF project for BambuStudio.

This MCP server is for BambuStudio, the desktop slicer. It is NOT for Bambu Lab printer control. It runs outside BambuStudio and does not change BambuStudio source code. It works with saved projects, not unsaved changes in the GUI.

Quick start · Example requests · Documentation · Evidence

✨ What it does for your print

Ask for a stronger bracket, fewer supports, or a cleaner visible face. Give the assistant your material, load directions, and priorities.

The assistant proposes changes. The server applies supported edits to project copies and runs BambuStudio for time and filament estimates. The source project stays unchanged.

Your goal

Tools that help

Understand the part

Dimensions, overhangs, bed contact, sampled thickness, and SVG previews

Plan reinforcement

Orientation, walls, infill, object overrides, and local box modifiers

Refine the finish

Layer heights, seam paint, support paint, and process options

Compare the cost

The unchanged baseline plus up to seven alternatives, with time and filament estimates

Keep useful experiments

Project revisions, history restore, and export to a new file

Search the controls

A versioned catalog of 603 source-derived FFF options, with types, units, ranges, and scope rules

Strength and surface quality need physical checks. Geometry and slice estimates do not prove either result. The catalog has explicit restrictions. It does not mean that every GUI control or option combination has complete verification.

The assistant supplies advice through Claude Code or Codex. The server supplies local tools and slice results. It needs no separate model service. Your chosen client still determines how it sends data to its model provider.

Before print recommendations or slices, the assistant asks for missing filament details, including brand and exact product/variant. It uses the client's web search for official manufacturer specifications and cites source URLs. If exact specifications cannot be verified or web search is unavailable, it uses a compatible Generic material profile. Generic values remain starting points for calibration and a small physical sample.

Structured preparation tools record the actual printer, active nozzles, filaments, calibration, and physical observations. They also ask for firmware, build plate, environment, intended use and each spool's feeding path. get_print_guidance reports missing inputs and setup mismatches, then selects sourced checks for the stated concern. Slice jobs also inspect embedded G-code targets, object layers and feature feeds. Unknown firmware behavior remains unknown. Before slicing, analyze_geometry reports heuristic risks for clearances, horizontal holes, bed contact, islands, bridges and thin or stepped features. Show its highlighted SVG previews, then use inspect_slice to connect commanded paths with the geometry issue IDs. Missing analysis and unresolved high-ranked issues return warnings during slicing and export. Guidance covers upright curves, finer layers/nozzles, adaptive domes, flexible feed and support removal for P1S and other Bambu printers. Hardware limits apply. A P1S has one nozzle. Separate-nozzle support requires compatible multi-nozzle hardware and materials.

Related MCP server: bambu-printer-mcp

🚀 Quick start

1. Prepare the server

Use Linux x86-64, Python 3.11 or later, and uv. Install Claude Code or Codex before its registration step.

Open a terminal in this repository. Run these commands in the same shell:

export BAMBUSTUDIO_MCP_DIR="$(pwd -P)"
uv sync --frozen
mkdir -p "$BAMBUSTUDIO_MCP_DIR/runtime"

2. Get BambuStudio from GitHub Releases

The supported runtime is BambuStudio 02.08.04.57 (2.8.4 Public Beta). The commands use the Ubuntu 22.04 AppImage from the official release. Other Studio versions fail the server's version check.

Download the AppImage:

export BAMBUSTUDIO_APPIMAGE="BambuStudio_ubu22-v02.08.04.57-20260922164607.AppImage"
curl --fail --location \
  "https://github.com/bambulab/BambuStudio/releases/download/v02.08.04.57/$BAMBUSTUDIO_APPIMAGE" \
  --output "$BAMBUSTUDIO_MCP_DIR/runtime/$BAMBUSTUDIO_APPIMAGE"

Extract the AppImage into runtime/squashfs-root:

chmod +x "$BAMBUSTUDIO_MCP_DIR/runtime/$BAMBUSTUDIO_APPIMAGE"
(
  cd "$BAMBUSTUDIO_MCP_DIR/runtime" &&
  "./$BAMBUSTUDIO_APPIMAGE" --appimage-extract > extraction.log
)

The AppImage contains the executable, resources, and profiles. No separate profile download is necessary. The repository ignores /runtime/ through .gitignore.

Already have the AppImage? Use the instructions for a local download. For asset checksums and runtime problems, read the installation guide.

3. Set the runtime and workspace paths

export BAMBUSTUDIO_EXECUTABLE="$BAMBUSTUDIO_MCP_DIR/runtime/squashfs-root/AppRun"
export BAMBUSTUDIO_PROFILES="$BAMBUSTUDIO_MCP_DIR/runtime/squashfs-root/resources/profiles"
export BAMBUSTUDIO_WORKSPACE="$HOME/.local/share/bambustudio-mcp/workspace"

Use AppRun, which sets the path to the bundled libraries. The workspace holds project copies, revisions, logs, and slice results. The server creates it automatically. Keep the workspace separate from the extracted runtime. See paths and workspace.

4. Connect your assistant

Run the command for your client in the same shell. The command stores the current paths in the client configuration.

claude mcp add bambustudio --scope user --transport stdio \
  --env "BAMBUSTUDIO_EXECUTABLE=$BAMBUSTUDIO_EXECUTABLE" \
  --env "BAMBUSTUDIO_PROFILES=$BAMBUSTUDIO_PROFILES" \
  --env "BAMBUSTUDIO_WORKSPACE=$BAMBUSTUDIO_WORKSPACE" \
  -- "$(command -v uv)" --directory "$BAMBUSTUDIO_MCP_DIR" \
  run --frozen bambustudio-mcp

claude mcp get bambustudio
claude mcp list

Keep bambustudio before --env. Claude accepts multiple values after each --env option. The --scope user option makes the server available across your projects.

codex mcp add bambustudio \
  --env "BAMBUSTUDIO_EXECUTABLE=$BAMBUSTUDIO_EXECUTABLE" \
  --env "BAMBUSTUDIO_PROFILES=$BAMBUSTUDIO_PROFILES" \
  --env "BAMBUSTUDIO_WORKSPACE=$BAMBUSTUDIO_WORKSPACE" \
  -- "$(command -v uv)" --directory "$BAMBUSTUDIO_MCP_DIR" \
  run --frozen bambustudio-mcp

codex mcp get bambustudio
codex mcp list

Start a new client session. Ask the assistant:

Call the BambuStudio get_environment tool. Show the runtime version, compatibility result, and profiles path.

The expected version is 02.08.04.57. The compatibility result must be true. Ask for list_profiles to check access to the bundled profiles. The client starts the server automatically. You do not need a separate server terminal.

For a previous registration or a connection error, read the client guide.

🎯 Give your assistant a print brief

From STL to a configured 3MF

Open /absolute/path/bracket.stl. Use list_profiles to find compatible machine, process, and filament profiles. Use profiles for my machine, material, and nozzle. Inspect the part and compare two print configurations against the baseline. Export my selected revision as /absolute/path/bracket-configured.3mf for review in BambuStudio.

A bracket with a job to do

Open /absolute/path/bracket.3mf. Use PETG and the current 0.4 mm nozzle profile. The screws hold the back face. A downward load acts on the front arm. Preserve the holes. Compare the current project with two alternatives. Consider orientation, walls, local reinforcement, infill, and supports. Show time and filament estimates. Explain strength assumptions. Export my selected revision to a new filename.

A visible surface that matters

Inspect /absolute/path/enclosure.3mf. The front face is visible. Compare seam placement, layer heights, and support choices for that face. Show the time cost of each alternative. List the surface checks I must do on a physical print.

A time budget with a baseline

Open /absolute/path/fixture.3mf. Keep the mounting surfaces and holes unchanged. Compare the baseline with three alternatives under 7,200 seconds of estimated print time. Explain each compromise. Keep the baseline if no candidate meets the limit.

The workflow is inspect → revise → slice → compare → export → review in BambuStudio. For raw STL imports, select explicit machine, process, and filament profiles with list_profiles. Saved 3MF projects retain their configuration.

📚 Go deeper

Guide

Contents

Installation

Official AppImage, extraction, checksums, profiles, workspace, and runtime problems

Claude Code and Codex

CLI setup, saved paths, connection checks, and the --env error

Print preparation

Useful input, candidate comparisons, revisions, and physical checks

Tool reference

All 19 tools, resources, scopes, value types, and spatial edits

Verification and limits

Recorded evidence, repeatable checks, coverage gaps, and development checks

🔎 Evidence, without the magic claims

Version 0.4.2 checks report 131 automated passes and a separate real BambuStudio slicing round trip. Earlier records also cover Claude Code and Codex workflows. See the evidence and its limits before you interpret these results.

The complete-coverage release gate remains open. A compiled metadata comparison still needs a complete Studio development build. No physical strength or finish measurements support the current results.

License

AGPL-3.0-or-later. Read the third-party notices for catalog provenance and dependency notices. BambuStudio comes from its upstream release. This repository does not distribute the Studio executable.

Available Tools

19 tools
analyze_geometryA
Read-only

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.

Inputs: project_id (required), revision, overhang_angle.

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.

Inputs: changes (required), revision (required), project_id (required), scope, +1 more.

cancel_jobA

Cancel a queued or running job and terminate its Studio subprocesses.

Inputs: job_id (required).

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.

Inputs: revision (required), candidates (required), project_id (required), constraints.

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.

Inputs: edits (required), revision (required), project_id (required).

export_projectB

Export to a new filename. Supply a succeeded job_id to export that exact revision with slicing artifacts.

Inputs: revision (required), project_id (required), destination (required), job_id.

get_environmentB
Read-only

Report the Studio runtime, supported version, profiles location, and honest configuration coverage.

Inputs: no named parameters.

get_jobC
Read-only

Read persistent slice or comparison status, log tail, estimates, and output locations.

Inputs: job_id (required).

get_print_guidanceB
Read-only

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.

Inputs: project_id (required), revision.

get_settingsA
Read-only

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.

Inputs: project_id (required), keys, scope, target, +1 more.

inspect_projectC
Read-only

Inspect objects, volumes, resource IDs, instances, plates, bounds, and revision history.

Inputs: project_id (required), revision.

inspect_sliceA
Read-only

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.

Inputs: project_id (required), job_id, revision.

list_optionsC
Read-only

Search the full versioned FFF configuration catalog; inspect types, units, ranges, defaults and scopes.

Inputs: limit, query, scope, offset.

list_profilesA
Read-only

Find machine, process, or filament profiles. Use exact names or paths when importing models.

Inputs: kind, query.

open_in_studioA

Launch the saved revision in Studio for review. This does not synchronize or replace unsaved GUI state.

Inputs: project_id (required), revision.

open_projectB

Copy a saved 3MF into an isolated workspace, or import a model with explicit profiles through Studio.

Inputs: path (required), machine_profile, process_profile, filament_profiles.

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.

Inputs: context (required), revision (required), project_id (required).

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.

Inputs: restore (required), revision (required), project_id (required).

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.

Inputs: project_id (required), revision, plate_index, timeout_seconds.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      A
      maintenance
      An MCP server for controlling Bambu Lab 3D printers that enables users to manipulate STL files, slice 3MF files, and manage end-to-end print workflows directly from Claude. It provides real-time status monitoring, file management via FTPS, and printer control through MQTT for a focused, lean Bambu-only implementation.
      72
      9,128 npm
      319
      GPL 2.0
    • A
      license
      B
      quality
      D
      maintenance
      A Bambu Lab-focused MCP server for controlling Bambu printers, manipulating STL files, and managing end-to-end 3MF print workflows from any MCP-compatible client.
      37
      65 npm
      GPL 2.0
    • A
      license
      A
      quality
      A
      maintenance
      MCP server that lets Claude drive a real, running OrcaSlicer: load models, arrange the plate, tune settings, slice, and read results back.
      68
      1,944 PyPI
      104
      AGPL 3.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for pre-print QA of Bambu Studio projects, providing tools to inspect models and 3MF files, validate risky settings, create support variants, and open files in Bambu Studio.
      MIT