
3D Printer Manager
Remotely control 3D printers, manage print files, and manipulate STL models through multiple printer management systems. Supports automated print job scheduling and custom model modifications.
Integrates with multiple 3D printer management systems to enable remote control, file handling, and advanced STL manipulation for automated print job management and custom model modifications.
What it does
- Control 3D printers remotely via OctoPrint and Bambu systems
- Upload and manage STL/3MF print files
- Monitor print job status and temperatures
- Manipulate STL models with scaling and rotation
- Start and stop print jobs automatically
- Edit models through Blender integration
Best for
About 3D Printer Manager
3D Printer Manager is a community-built MCP server published by dmontgomery40 that provides AI assistants with tools and capabilities via the Model Context Protocol. 3D Printer Manager enables remote control, file handling, and advanced STL editing with seamless integration for better It is categorized under developer tools.
How to install
You can install 3D Printer Manager in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
3D Printer Manager is released under the GPL-2.0 license.
MCP 3D Printer Server
✨ What's New / Significant Updates (as of last session)
- Dual Local Transports: Added explicit
stdioandstreamable-httpruntime modes with environment-based transport selection. - Bambu Reliability Pass: Fixed Bambu argument wiring bugs, added FTP-backed file operations, improved status refresh behavior, and implemented practical command paths for
startJob,setTemperature, andprint_3mf. - Blender Bridge Tooling: Added
blender_mcp_edit_modelwith optional execution mode for model-edit collaboration workflows. - Transport Behavior Tests: Added real behavior tests for both transports (
initialize,tools/list, success + failingtools/call, origin rejection). - Docker Modernization: Updated Docker build flow to work without BuildKit-specific features and verified streamable HTTP initialization in container smoke testing.
🗺️ Roadmap / TODO
- Achieve Feature Parity: Bring functionality (status detail, file operations, direct printing where possible, preset handling) for OctoPrint, Klipper, Duet, Repetier, Prusa Connect, and Creality Cloud up to the level of robustness planned for the Bambu implementation.
- Implement Full Bambu MQTT Status: Refactor
getStatusfor Bambu to subscribe to MQTT reports and maintain real-time state. - Implement Robust AMS Mapping: Replace placeholder logic; correctly parse and use AMS mapping from
.3mfslicer config or user overrides for the MQTT print command. - Implement
.3mfPrint Overrides: Add logic to theprint_3mftool to handle user-provided overrides (e.g., calibration flags) and potentially common slicer settings if feasible via MQTT/G-code. - Calculate MD5 Hash: Add logic to calculate and include the MD5 hash of the
.3mffile in the MQTT print command (optional but recommended by protocol). - Refactor Bambu File Ops: Investigate replacing
bambu-jsFTP operations (getFiles,uploadFile) with direct MQTT methods if possible/stable, or contribute FTPS support tobambu-js. - Add Preset Discovery Logic: Improve preset resource listing (currently lists based on potential filenames, could parse index files if they exist).
- Expand
.3mfSupport: Add.3mfprinting support for other printer types where applicable. - Error Handling & Reporting: Enhance MQTT error handling and reporting of print progress/completion.
- Testing: Conduct thorough runtime testing of all new Bambu features.
Click to expand Table of Contents
Table of Contents
- Description
- Features
- Installation
- Configuration
- Usage with Claude Desktop
- Supported Printer Management Systems
- Available Tools
- Available Resources
- Example Commands for LLM
- Bambu Lab Printer Limitations
- Limitations and Considerations
- Appendix: MCP in Practice (Code Execution, Scale, and Safety)
- Badges
- License
Description
This is a server that allows MCP users to connect with the API endpoints of these 3D Printers:
- OctoPrint
- Klipper (Moonraker)
- Duet
- Repetier
- Bambu Labs
- Prusa Connect
- Creality/Ender
This server is a Model Context Protocol (MCP) server for connecting Claude with 3D printer management systems. It allows MCP to interact with 3D printers through the APIs of various printer management systems such as OctoPrint, Klipper (via Moonraker), Duet, Repetier, and Bambu Labs printers.
Note on Resource Usage: This MCP server includes advanced 3D model manipulation features that can be memory-intensive when working with large STL files. Please see the "Limitations and Considerations" section for important information about memory usage and performance.
Features
- Get printer status (temperatures, print progress, etc.)
- List files on the printer
- Upload G-code files to the printer
- Start, cancel, and monitor print jobs
- Set printer temperatures
- Advanced STL file manipulation:
- Extend base for better adhesion
- Scale models uniformly or along specific axes
- Rotate models around any axis
- Translate (move) models
- Modify specific sections of STL files (top, bottom, center, or custom)
- Comprehensive STL analysis with detailed model information
- Generate multi-angle SVG visualizations of STL files
- Real-time progress reporting for long operations
- Error handling with detailed diagnostics
- Slice STL files to generate G-code
- Confirm temperature settings in G-code files
- Complete end-to-end workflow from STL modification to printing
- Print
.3mffiles directly on Bambu Lab printers (via MQTT command) - Read Bambu Studio preset files (printer, filament, process) as resources
Installation
Prerequisites
- Node.js 18 or higher
- npm or yarn
Install from npm
npm install -g mcp-3d-printer-server
Install from source
git clone https://github.com/dmontgomery40/mcp-3d-printer-server.git
cd mcp-3d-printer-server
npm install
npm link # Makes the command available globally
Running with Docker
You can also run the server using Docker and Docker Compose for a containerized environment.
- Ensure you have Docker and Docker Compose installed.
- Copy
.env.exampleto.envand configure your settings. - Build and run the container:
docker-compose up --build -d
Using Slicers with Docker
Please note that the default Docker setup cannot directly use a slicer installed on your host machine. Mounting the slicer executable directly from the host into the container is unreliable due to operating system and library differences between your host and the container.
The recommended approach is to install your preferred slicer inside the Docker image. This makes the container self-sufficient.
To do this, you will need to modify the Dockerfile. Here's a conceptual example of how you might add PrusaSlicer or OrcaSlicer (specific commands may vary depending on the slicer, its dependencies, and current Alpine packages):
# ... other Dockerfile commands ...
# Example: Install PrusaSlicer or OrcaSlicer (adjust command as needed)
# Check Alpine package repositories first (e.g., apk add prusaslicer or apk add orcaslicer)
# If not available, download and install manually (e.g., AppImage):
# RUN apk add --no-cache fuse # FUSE might be needed for AppImages
# RUN wget https://example.com/path/to/OrcaSlicer_Linux_Vxxxx.AppImage -O /usr/local/bin/orcaslicer && \
# chmod +x /usr/local/bin/orcaslicer
# Set the SLICER_PATH env var accordingly in docker-compose.yml or when running
# Example for installed executable:
ENV SLICER_PATH=/usr/local/bin/orcaslicer
# ... rest of Dockerfile ...
After modifying the Dockerfile, rebuild your image (docker-compose build). You'll also need to ensure the SLICER_PATH environment variable in your .env file or docker-compose.yml points to the correct path inside the container (e.g., `/usr/local/bin/orcasl
README truncated. View full README on GitHub.
Alternatives
Related Skills
Browse all skillsUI design system toolkit for Senior UI Designer including design token generation, component documentation, responsive design calculations, and developer handoff tools. Use for creating design systems, maintaining visual consistency, and facilitating design-dev collaboration.
Manage MCP (Model Context Protocol) servers in Claude Code projects. Use this skill when the user requests enabling, installing, disabling, or removing specific MCP servers like context7 or chrome-devtools. Always operates at project level (local scope only).
Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: "AI SDK", "Vercel AI SDK", "generateText", "streamText", "add AI to my app", "build an agent", "tool calling", "structured output", "useChat".
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.
Use when working with the OpenAI API (Responses API) or OpenAI platform features (tools, streaming, Realtime API, auth, models, rate limits, MCP) and you need authoritative, up-to-date documentation (schemas, examples, limits, edge cases). Prefer the OpenAI Developer Documentation MCP server tools when available; otherwise guide the user to enable `openaiDeveloperDocs`.
Guide for building TypeScript CLIs with Bun. Use when creating command-line tools, adding subcommands to existing CLIs, or building developer tooling. Covers argument parsing, subcommand patterns, output formatting, and distribution.