Provides end-to-end 3D printing automation for Bambu Lab printers, including tools for printer control, status monitoring, camera feed integration, and automated slicing.
Uses the MQTT protocol to establish connections with printers for real-time monitoring of temperatures, print progress, and remote job control.
Integrates with OpenSCAD to perform parametric 3D model generation, allowing the creation of precise functional parts based on natural language requirements.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BambuStudio MCP ServerI need a tube squeezer for my lotion bottle, it's about 65mm diameter."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BambuStudio MCP Server
A comprehensive MCP (Model Context Protocol) server for Claude macOS app that provides end-to-end 3D printing automation with Bambu Lab printers - from natural language requirements to perfect printed objects.
What This Does
Tell Claude what you need, and it will:
Generate a 3D model from your description
Scale it to your exact dimensions
Slice it with optimized parameters
Print it on your Bambu printer
Monitor the print via camera
Detect any issues and suggest fixes
Learn from each print to improve the next one
Example Workflow
You: "I need a tube squeezer for my Gold Bond lotion bottle, it's about 65mm diameter"
Claude:
1. Parses requirements → tube_squeezer, 65mm, heavy_duty
2. Generates parametric model with CadQuery
3. Adjusts for larger size (thicker walls, more infill)
4. Slices with BambuStudio CLI
5. Monitors print via RTSPS camera
6. Records outcome: 88% quality, minor stringing
7. Recommends: +0.5mm retraction, -5°C nozzle tempFeatures
Phase 0: Model Generation (NEW!)
Natural Language Parsing: "I need a squeezer for 65mm bottle" → structured parameters
Image Analysis: Extract dimensions from photos with rulers
Parametric Generation: CadQuery/OpenSCAD for precise functional parts
Template Library: Pre-built customizable designs (squeezers, holders, clips)
AI Generation: Text-to-3D via Meshy/Tripo3D for organic shapes
Phase 1: Model Preparation
Model Analysis: Load and analyze STL/3MF files, extract dimensions
Smart Scaling: Scale based on target dimensions (toothpaste → lotion bottle)
Parameter Optimization: Adjust slicing for scaled prints
Phase 2: Print Execution & Monitoring
Printer Control: MQTT connection to Bambu A1/A1 Mini in LAN mode
Camera Streaming: RTSPS feed at 1 FPS
Defect Detection: Layer shifts, stringing, warping, spaghetti detection
Phase 3: Iterative Improvement
Print History: SQLite database of all attempts
Recommendation Engine: Learn from defects to suggest fixes
Quality Scoring: 0-100 score based on detected issues
Novice-Friendly Features (NEW!)
Interactive Wizard: Guided workflow with checkpoints for beginners
Plain Language Support: "heavy duty" → thick walls, high infill
Design Review: Catches issues before you print (thin walls, tight clearances)
Slicing Review: Recommends settings based on use case (functional vs decorative)
Material Optimization: Auto-adjusts for your specific filament
Supported Materials
Pre-configured profiles for:
Bambu Basic PLA - General purpose, 220°C nozzle, up to 300mm/s
Bambu PETG Translucent - Functional parts, 250°C nozzle
Prusament PC Blend - High strength, 270°C nozzle (keep parts small on A1)
Generic PETG - Outdoor/water-resistant, 245°C nozzle
Generic TPU 95A - Flexible, 230°C nozzle, 40mm/s max, NO AMS
Supported Nozzles
All A1/A1 Mini nozzle configurations:
0.2mm Stainless Steel - Fine detail, miniatures
0.4mm Stainless Steel - Default, best all-around
0.4mm Hardened Steel - For carbon fiber/glow filaments
0.6mm Hardened Steel - Faster prints, functional parts
0.8mm Hardened Steel - Draft prints, large parts
Requirements
macOS with BambuStudio installed
Bambu Lab A1/A1 Mini printer in LAN mode
Python 3.10+
Printer access code (from printer settings)
Installation
cd bambustudio-mcp
# Basic installation
pip install -e . --break-system-packages
# With CAD generation (recommended)
pip install -e ".[cad]" --break-system-packages
# With everything
pip install -e ".[all]" --break-system-packagesConfiguration
This project uses 1Password CLI for secure secret management. Never store API keys or credentials in plain text files.
Setting Up 1Password CLI
Install 1Password CLI:
brew install --cask 1password-cliSign in and enable shell integration:
op signinStore your secrets in 1Password. Create items with these fields:
Bambu Printer:
ip_address,access_code,serial_numberMeshy (optional):
api_keyTripo3D (optional):
api_key
Running with 1Password CLI
Use op run to inject secrets as environment variables:
op run --env-file=.env.template -- python -m bambustudio_mcpCreate a .env.template file (safe to commit - contains only references, not secrets):
# Printer connection (required)
BAMBU_PRINTER_IP=op://Personal/Bambu Printer/ip_address
BAMBU_ACCESS_CODE=op://Personal/Bambu Printer/access_code
BAMBU_SERIAL=op://Personal/Bambu Printer/serial_number
# BambuStudio path (usually auto-detected)
BAMBUSTUDIO_PATH=/Applications/BambuStudio.app/Contents/MacOS/BambuStudio
# Optional: AI 3D generation
MESHY_API_KEY=op://Personal/Meshy/api_key
TRIPO3D_API_KEY=op://Personal/Tripo3D/api_keyClaude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"bambustudio": {
"command": "op",
"args": [
"run",
"--env-file=/path/to/bambustudio-mcp/.env.template",
"--",
"python",
"-m",
"bambustudio_mcp"
]
}
}
}This ensures secrets are never stored in plain text and are securely injected at runtime.
Available Tools (33 total)
Novice-Friendly Wizard Tools (NEW!)
Tool | Description |
| Start here! Interactive workflow with checkpoints |
| Translate "heavy duty" → technical parameters |
| Get design suggestions before generating |
| Get quality settings for your material/use case |
| Auto-optimize parameters for your filament |
| List supported filaments with properties |
| List A1 nozzles with recommendations |
| Get best nozzle for your needs |
Model Generation
Tool | Description |
| Parse natural language → structured parameters |
| Extract dimensions from photos |
| List available model templates |
| Generate from customizable template |
| Generate from description (CadQuery) |
| AI text-to-3D (Meshy/Tripo3D) |
| Check AI generation progress |
Model Preparation
Tool | Description |
| Analyze STL/3MF dimensions and quality |
| Scale model to target dimensions |
| Slice with BambuStudio CLI |
| List slicing presets |
Printer Control
Tool | Description |
| Test MQTT connection |
| Get temperatures, progress |
| Pause/resume/stop print |
Camera & Quality
Tool | Description |
| Capture camera frames |
| Detect defects in frame |
Iteration Tracking
Tool | Description |
| Start tracking a print |
| Record result + defects |
| Get parameter fixes |
| View print history |
Architecture
bambustudio_mcp/
├── server.py # MCP server with all 33 tools
├── config.py # Environment configuration
├── materials/ # NEW: Filament & nozzle profiles
│ ├── filaments.py # 5 pre-configured filament profiles
│ └── nozzles.py # A1 nozzle configurations
├── wizard/ # NEW: Novice-friendly workflow
│ ├── guided_workflow.py # Interactive checkpoints
│ ├── design_review.py # Design suggestions
│ ├── slicing_review.py # Quality recommendations
│ ├── novice_parser.py # Plain language → parameters
│ └── material_optimizer.py # Material-based adjustments
├── generator/ # Model generation
│ ├── requirements.py # Natural language parsing
│ ├── image_analyzer.py # Photo dimension extraction
│ ├── parametric.py # CadQuery/OpenSCAD generation
│ ├── templates.py # Template library
│ └── ai_generator.py # Meshy/Tripo3D integration
├── models/
│ ├── analyzer.py # STL/3MF analysis
│ └── scaler.py # Dimension scaling
├── slicer/
│ ├── cli.py # BambuStudio CLI
│ ├── parameters.py # Slicing parameters
│ └── profiles.py # Preset management
├── printer/
│ ├── mqtt_client.py # MQTT communication
│ ├── controller.py # Job control
│ └── status.py # Status parsing
├── camera/
│ ├── stream.py # RTSPS capture
│ └── detector.py # Defect detection
└── iteration/
├── tracker.py # SQLite history
└── recommender.py # Parameter recommendationsNovice-Friendly Usage
For CAD beginners, use the guided workflow:
# Start with your plain language description
workflow = await bambustudio_start_guided_workflow({
"description": "I need a heavy duty squeezer for my 65mm lotion bottle"
})
# The system parses your description:
# - "heavy duty" → wall_thickness: 3mm, infill: 30%
# - "65mm" → tube_diameter: 65mm
# - "squeezer" → category: tube_squeezer
# Then guides you through checkpoints:
# 1. Requirements confirmation
# 2. Design review (catches thin walls, tight tolerances)
# 3. Material selection (suggests TPU if flexible needed)
# 4. Nozzle selection (recommends 0.4mm for standard parts)
# 5. Quality settings (functional vs decorative)
# 6. Final review before generationPlain Language Examples
The system understands:
"heavy duty" → thick walls (3mm), high infill (30%)
"snug fit" → clearance: 0.2-0.3mm
"loose fit" → clearance: 0.8-1.0mm
"flexible" → suggests TPU material
"waterproof" → suggests PETG
"heat resistant" → suggests PC or PETG
Examples
See examples/ directory:
complete_workflow.py- Full end-to-end exampletube_squeezer_workflow.py- Scaling examplegeneration_tools_reference.md- Generation tool docsmcp_tools_reference.md- All tools reference
License
MIT
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.