MCP server for Bambu Lab 3D printing — mesh repair, slicing, and printer control
Server has 11 well-structured tools with explicit FastMCP registration. All tools have descriptions (range 40-200 chars, compliant with 10-1024 char baseline). All tools have documented input parameters with types and descriptions. However, there are significant gaps: (1) Output schemas are not documented, tools return JSON strings but the structure of that JSON is never declared, forcing LLMs to infer response fields. (2) No enums for constrained parameters like 'axis' (x/y/z), 'profile_type' (machine/filament/process/all), and 'vendor', these invite hallucinated values. (3) Parameter descriptions lack format constraints (e.g., no mention of path validation, no file format restrictions beyond examples). (4) Error handling is not visible in source, no indication of retryability, validation, or recovery guidance. (5) Two tools (mesh_repair, mesh_scale, mesh_rotate, mesh_mirror, slicer_slice, slicer_export_3mf) modify files but descriptions do not explicitly state 'modifies state' per pattern:command-tool. (6) No parameter bounds for numeric inputs (e.g., clearance_pct, angle_degrees, plate index). Tools are named well (verb_noun pattern) and descriptions cover WHAT and sometimes WHEN, but lack the full pattern:tool-description completeness.
Analyze a 3D model file (STL/OBJ/3MF). Returns dimensions, vertex/face count, watertight status, non-manifold edge count, and volume.
Calculate ideal scale factor for a model given real-world measurements. Useful for scaling braces, splints, cases, or any object that must fit a specific body part or target dimension.
Mirror a 3D model along an axis (e.g. right hand to left hand). Flips the model and fixes inverted normals.
Repair a 3D model — fix non-manifold edges, holes, and normals. Uses pymeshfix for robust mesh repair. Returns before/after stats.
Rotate a 3D model around an axis.
Scale a 3D model uniformly by factor or to fit target dimensions. If factor is given, applies uniform scaling (e.g. 0.591 = 59.1%). If target dimensions are given, scales uniformly to fit the smallest ratio. Automatically converts from meters to mm if needed.
Detect Bambu Studio installation, version, and profile locations. Returns installation status, CLI path, version, and profile directories.
Output schemas not documented. All tools return JSON strings, but the structure/fields of that JSON are never declared. LLMs cannot plan downstream tool calls or extract specific fields without inferring the response schema.
String parameters that accept only a fixed set of values (axis: x/y/z, profile_type: machine/filament/process/all, vendor: BBL/all) are not declared as enums. This invites hallucinated values like 'axis: diagonal' or 'profile_type: custom'.
Numeric parameters lack bounds or format constraints. angle_degrees has no min/max (could be negative, exceed 360, or be absurdly large). clearance_pct defaults to 5.0 but no bounds stated. plate index has no validation range. target_*_mm parameters unbounded.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 39 | - | v1 |
Export/package a model as 3MF with embedded print settings. Creates a 3MF file that can be opened in Bambu Studio or sent directly to a Bambu Lab printer.
List available printing profiles (machine, filament, process).
Get model information from Bambu Studio CLI (dimensions, printability).
Slice a 3D model (STL/3MF) to G-code using Bambu Studio CLI. Requires Bambu Studio installed. Use slicer_detect to verify installation and slicer_list_profiles to find available profiles.
State-modifying tools (mesh_repair, mesh_scale, mesh_rotate, mesh_mirror, slicer_slice, slicer_export_3mf) do not explicitly state in descriptions that they modify files. Per pattern:command-tool, descriptions of state-modifying operations must declare this so agents know which calls are irreversible.
No error handling guidance visible in source. No indication of retryability, validation rules, or recovery suggestions. When tools fail (e.g., invalid file path, missing Bambu Studio installation), the error responses are not documented.
Parameter descriptions lack actionable format/constraint details. E.g., file_path is just 'Absolute path to the 3D model file', no mention of required formats (STL/OBJ/3MF only), file size limits, or path length restrictions. LLMs cannot validate inputs without explicit constraints.
mesh_rotate and mesh_mirror descriptions are vague. mesh_rotate is only 'Rotate a 3D model around an axis' (34 chars, below baseline avg of 194 chars). These lack WHEN to use, prerequisite context, or distinction from other mesh tools.