Skip to main content
Glama
DMontgomery40

MCP 3D Printer Server

upload_gcode

Upload G-code content or a local file to a 3D printer. When printing, it inspects heater targets, tool changes, and material limits, then asks for confirmation.

Instructions

Upload 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), printer state is checked, and a human confirmation is requested before the print starts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hostNoHostname or IP address of the printer (default: value from env)
portNoPort of the printer API (default: value from env)
typeNoType of printer management system (octoprint, klipper, duet, repetier, bambu, prusa, creality) (default: value from env)
gcodeNoG-code content, or a local path to a G-code file.
printNoStart printing after upload when the printer backend supports it. Printing requires a declared material from slicer metadata (; filament_type = PLA) or the material argument.
api_keyNoAPI key for authentication (default: value from env)
filenameNoFilename to use on the printer. Defaults to the basename of gcode_path when omitted.
materialNoDeclared filament material (for example PLA, PETG, ABS, ASA, TPU, PA, PC) when the G-code has no slicer filament_type metadata. Must not contradict the file. Material ceilings limit nozzle targets.
gcode_pathNoLocal path to a G-code file to upload.
bambu_modelNoRequired for Bambu print operations unless BAMBU_MODEL is configured. Must match the printer and pre-sliced G-code.
bambu_tokenNoAccess token for Bambu Lab printers (default: value from env)
bambu_serialNoSerial number for Bambu Lab printers (default: value from env)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.9

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does substantial work: it discloses that with print=true the exact bytes are inspected (S/R heater targets, tool changes, hardware and material ceilings), printer state is checked, and human confirmation is required. That is meaningful behavioral context beyond the schema. It still omits auth/credential requirements and failure behavior, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what is uploaded and then the conditional safety behavior. The second sentence is dense but every clause (byte inspection, state check, confirmation) earns its place by conveying risk-relevant behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter, annotation-free tool with no output schema, the description covers the highest-risk aspect (printing after upload) thoroughly. Since no output schema exists, return values need not be described, but it could say more about the non-print upload path and credential handling to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 12 parameters in detail. The description reinforces that print=true requires a declared material from slicer metadata or the material argument, adding light emphasis but no syntax or format detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Upload) and resource (G-code content or local file path to the printer), covering both input modes in one sentence. This separates it from start_print (prints an existing file) and process_and_print_stl (slices then prints) without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies the semantics of the print=true flag and the safety pipeline that then applies, which implicitly tells the agent when the risky path is taken. However, it never explicitly contrasts this tool with sibling alternatives like start_print or process_and_print_stl, leaving the use-this-vs-that decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.