MCP 3D Printer Server
Connects MCP to major 3D printer APIs (Orca, FULU's Orca/Bambu, OctoPrint, Klipper, Duet, Repetier, Prusa, Creality). Control prints, monitor status, and perform advanced STL operations like scaling, rotation, sectional editing, and base extension. Includes slicing and visualization.
MCP 3D Printer Server is an open-source mcp server by DMontgomery40, written mainly in TypeScript, with 257 GitHub stars and the GPL-2.0 license. Its code was last updated Oct 30, 2026.
Scan summary: scanned Nov 5, 2026 at commit 6e3dc5a. Seen able to read environment and secrets, connect to the internet. Scan policy
What MCP 3D Printer Server can touch
- Our checks did not find this. The tool may still do it.Run shell commandsNot seen in this scan
- Our checks did not find this. The tool may still do it.Run dynamic codeNot seen in this scan
- Our checks did not find this. The tool may still do it.Read or write filesNot seen in this scan
- Seen in this scan, either in the code or while it ran.Read environment and secretsFound in the code by our scan
- Our checks did not find this. The tool may still do it.Control a web browserNot seen in this scan
- Our checks did not find this. The tool may still do it.Connect to databasesNot seen in this scan
- Our checks did not find this. The tool may still do it.Read or send messagesNot seen in this scan
- Our checks did not find this. The tool may still do it.Touch money or tradingNot seen in this scan
- Seen in this scan, either in the code or while it ran.Connect to the internetFound in the code by our scan
"Not seen" means our checks did not find it, and the tool may still do it. Covers commit 6e3dc5a, Nov 5, 2026. See the scan policy.
Before you install MCP 3D Printer Server
AgenticMart scanned MCP 3D Printer Server on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What it can access
- An MCP server is a program your AI app starts and talks to. A local one runs with your user's permissions: it can see the files, environment variables and network your account can.
- Based on its description and topics, it likely needs to read and write files on your machine.
Before you install
- Point it at one project folder, never your home directory.
- Pin the version you reviewed instead of always installing the latest release.
- Read the tool list or scripts before the first run, and keep approval prompts on for actions that write, send or delete.
- Maintained by DMontgomery40 on GitHub, 257 stars and 50 forks. Popularity is not proof of safety.
- Last code change: Oct 30, 2026.
- Open-source license: GPL-2.0.
Tools MCP 3D Printer Server exposes (48)
Listed by the server itself during our scan of commit 6e3dc5a.
get_printer_statusGet the current status of the 3D printer
list_printer_filesList files available on the 3D printer
upload_gcodeUpload G-code content or a local G-code file path to the printer. With print=true the exact uploaded bytes are inspected first (every S/R heater target, tool changes, hardware and material ceilings) and printer state is checked before the print starts.
start_printStart printing a G-code file already stored on the printer. The server downloads and inspects the exact file, then starts a uniquely named checked copy after printer-state checks. Printers whose API cannot download files (Repetier, Prusa, Creality) refuse; use upload_gcode with print=true instead.
cancel_printCancel the current print job
camera_stream_startStart or renew one persistent camera connection for this printer. Call only while watched; it closes automatically after idle_timeout_ms without a viewer request. camera_snapshot then reuses its latest frame. No printer motion or print commands.
camera_frameRead the shared camera stream, optionally waiting up to 10 seconds. Returns JPEG only when newer than since_seq and visibly changed (32×18 grayscale difference). Retain the last delivered frame's seq on unchanged. max_width resizes JPEG to the viewer. Does not start a stopped stream.
camera_stream_stopClose this printer's camera connection and free its cached frames. Other printers keep their own streams. Active viewers may restart it; normally let the idle timeout close a shared stream.
counterpart_print_routeCounterpart contract (counterpart/1), Bambu: how this server reaches the printer for prints and for Stop/Pause/Resume. route is "lan" (the local network through FULU's BambuNetwork bridge), "cloud" (Bambu Cloud through FULU's bridge) or "developer" (the local network straight to a printer in LAN Onl
counterpart_printer_infoDescribe this printer for the counterpart/1 contract: server name and version, printer kind and identity, and which features work (progress, layers, camera, filaments, pause, resume, cancel, print_3mf, G-code), detected from the firmware. Read-only.
counterpart_print_progressRead the printer's state and current job in the counterpart/1 shape: state, job name, progress (0-100), elapsed and remaining seconds, layers when the firmware reports them, temperatures and problems. job.name matches the jobName that upload_gcode and start_print return. Read-only.
camera_snapshotCapture one JPEG frame from the printer's camera: OctoPrint's configured snapshot URL (Classic Webcam on 1.9+, webcam.snapshotUrl on 1.8, then /webcam/?action=snapshot), Moonraker's first enabled webcam, or Repetier's webcam staticUrl. PrusaLink and Duet have no local snapshot API. PRINTER_CAMERA_SN
counterpart_discover_printersCounterpart contract (counterpart/1): printers on the local network. Bambu Lab printers from their own SSDP announcements (UDP 2021), with serial, model (as bambu_model names it), name and firmware; OctoPrint, Klipper (Moonraker) and PrusaLink hosts from their Bonjour adverts (dns-sd on macOS, avahi
counterpart_setup_fieldsCounterpart contract (counterpart/1): the printers this server drives (each PRINTER_TYPE) and the settings it reads for each, by .env variable name: label, hint, whether required, the fixed values a kind needs (PRINTER_TYPE), the Bambu model choices and the model each serial-number prefix names. Pas
counterpart_propose_filamentsCounterpart contract (counterpart/1): which loaded spool prints each of a model's colours, before slicing. Reads the printer's filaments once (Bambu: the AMS and external spools). trays lists the spools a person may choose (label like "A2" or "External", a person-readable name, colour, material, fee
get_printer_filamentsReport the loaded filament. Bambu: the live AMS and external-spool inventory over MQTT, as bambu-printer-mcp reports it (trays with absolute slot, loaded state, material, colour, tray_info_idx and resolved slicer profile path; summary; recommended load_filaments), plus counterpart/1 slots for every
pause_printPause the current print (Bambu Lab, OctoPrint, Klipper/Moonraker, PrusaLink, Duet M25, Repetier, and Creality printers that run Moonraker). Bambu pauses over the same connection that prints. Pause is never gated.
resume_printResume a paused print. Resume reheats and moves the printer, so it only resumes a job this server instance inspected and started, and only when the printer freshly reports that job paused. Bambu re-reads the job over FTPS (or the plate G-code the printer extracted) and compares its SHA-256, and resu
set_printer_temperatureSet the temperature of a printer component. Temperature 0 switches a heater off and is never gated. Positive targets are validated before connecting, limited by independent hardware and material ceilings, and require a ready printer.
extend_stl_baseExtend the base of an STL file by a specified amount
slice_stlSlice an STL or 3MF file to generate G-code or a sliced 3MF. For Bambu-compatible CLI slicing (bambustudio, orcaslicer-bambulab, or orcaslicer with bambu_model), the exact bambu_model/nozzle machine preset from the selected slicer installation is required, profile inheritance is resolved before the
slice_with_templateSlice an STL or 3MF with a named template from the local template registry (BAMBU_TEMPLATE_DIR). The template supplies process settings; the machine preset still comes from bambu_model and nozzle_diameter.
list_templatesList saved slicing templates (.3mf, .json, .config) in the local template registry directory.
save_templateCopy a .3mf, .json, or .config file into the local template registry under a template name.
get_slice_settingsInspect slicer settings in a 3MF template or JSON/config profile without slicing (layer height, infill, walls, supports, brim, bed, printer, filaments). For a 3MF, own_process is true when slice_stl, given the same slicer_type and bambu_model and no slicer_profile or template, slices it with the pro
confirm_temperaturesReport every heater target in a G-code file (S and R forms, tool-addressed, RepRapFirmware G10/M568 and Klipper SET_HEATER_TEMPERATURE). An expected temperature matches only when it equals the file's highest target. Read-only; printing tools enforce their own safety gate.
process_and_print_stlProcess an STL file (extend base), slice it, and start printing through the same checked print gate as upload_gcode/print_3mf. Expected temperatures are enforced: a mismatch refuses before upload.
get_stl_infoGet detailed information about an STL file
scale_stlScale an STL model uniformly or along specific axes
rotate_stlRotate an STL model around specific axes
translate_stlMove an STL model along specific axes
modify_stl_sectionApply a specific transformation to a selected section of an STL file
generate_stl_visualizationGenerate an SVG visualization of an STL file from multiple angles
inspect_print_fileInspect an exact private snapshot of a prepared sliced 3MF or textual G-code file and selected plate without contacting a printer. Returns versioned file-only evidence; no printer readiness or permission to dispatch is established. Does not auto-slice.
print_3mfPrint a 3MF file on a Bambu Lab printer. The exact selected plate is inspected (model, nozzle, bed type, materials, every heater target) and checked against a fresh MQTT report of the printer's identity, nozzle, state, errors and loaded filament before upload and start.
check_fulu_orca_setupInspect a FULU OrcaSlicer-bambulab install, platform runtime payload, setup commands, and optionally probe the BambuNetwork bridge.
fulu_bambu_network_rpcAdvanced FULU bridge RPC for BambuNetwork diagnostics and development. Read-only methods are allowed by default. Agent/session setup methods require allow_mutating_method=true. Raw print methods, printer messages, file transfers and unknown methods are refused because they would bypass the print saf
merge_verticesMerge vertices in an STL file that are closer than the specified tolerance.
center_modelTranslate the model so its geometric center is at the origin (0,0,0).
lay_flatRotate the model so a face rests on the bed (Z=0), choosing the orientation with the least part and support volume per mm² of bed contact. A face counts only if nothing hangs below it. Returns the new STL path; structuredContent.laid_flat is false, with the input path, when no orientation qualifies.
MCP 3D Printer Server is an open-source mcp server by DMontgomery40, written mainly in TypeScript. Connects MCP to major 3D printer APIs (Orca, FULU's Orca/Bambu, OctoPrint, Klipper, Duet, Repetier, Prusa, Creality). Control prints, monitor status, and perform advanced STL operations like scaling, rotation, sectional editing, and base extension. Includes slicing and visualization.
At a glance
- Stars
- 257
- Forks
- 50
- Language
- TypeScript
- License
- GPL-2.0
- Created
- Feb 2025
- Last update
- Oct 30, 2026
- Type
- MCP Server
- Price
- Free
Topics
Questions about MCP 3D Printer Server
What is MCP 3D Printer Server?
Connects MCP to major 3D printer APIs (Orca, FULU's Orca/Bambu, OctoPrint, Klipper, Duet, Repetier, Prusa, Creality). Control prints, monitor status, and perform advanced STL operations like scaling, rotation, sectional editing, and base extension. Includes slicing and visualization.
Who maintains MCP 3D Printer Server?
MCP 3D Printer Server is maintained by DMontgomery40 on GitHub (DMontgomery40/mcp-3D-printer-server). AgenticMart lists it from public repository data.
Is MCP 3D Printer Server safe to use?
AgenticMart scanned MCP 3D Printer Server on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What license does MCP 3D Printer Server use?
It is published under the GPL-2.0 license.
MCP 3D Printer Server alternatives
View more →Similar mcp servers in Design & Media, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| MCP 3D Printer Server (this page) DMontgomery40 | 257 | GPL-2.0 | Oct 30, 2026 | Scanned, no flagged issues |
| Next AI Draw Io DayuanJiang | 37k | Apache-2.0 | Nov 1, 2026 | Scanned, no flagged issues |
| MCP For Blender ahujasid | 33k | MIT | Oct 29, 2026 | Scanned, no flagged issues |
| Figma Context MCP GLips | 16k | MIT | Oct 27, 2026 | Scanned, no flagged issues |
| Nginx UI 0xJacky | 12k | AGPL-3.0 | Nov 1, 2026 | Scanned, no flagged issues |
| Lamda firerpa | 8.7k | MIT | Sep 27, 2026 | Scanned, no flagged issues |