Skip to main content
Glama

SimplyPrint: 3D Print Farm Management

move_printer_axis

Move a printer axis to a relative position

Input Schema

NameRequiredDescriptionDefault
speedNoMovement speed in mm/min. If not specified, uses printer default.
macrosNoPredefined macro names, sent as one G-code block in this order. Either gcode, macro, macros, or snippet_id is required.
distanceYesDistance to move in millimeters
directionYesAxis and direction to move. Use axis letter, optionally with minus for negative. Examples: "X" (+X), "X-" (-X), "Y", "Y-", "Z", "Z-"
printer_idYesThe printer IDs (comma-separated for multiple)
snippet_idNoID of a gcode snippet to send. Either gcode, macro, macros, or snippet_id is required.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / macros
      Added value: +{
      +  "description": "Predefined macro names, sent as one G-code block in this order. Either gcode, macro, macros, or snippet_id is required.",
      +  "items": {
      +    "enum": [
      +      "is_start",
      +      "is_end",
      +      "is_cancel",
      +      "is_pause",
      +      "is_resume",
      +      "move_axis",
      +      "change_print_speed",
      +      "change_flow_rate",
      +      "is_home",
      +      "set_tool_temperature",
      +      "set_bed_temperature",
      +      "set_chamber_temperature",
      +      "motors_onoff",
      +      "fans_onoff",
      +      "baby_stepping",
      +      "z_offset_cal_start",
      +      "z_offset_cal_nudge",
      +      "z_offset_cal_save",
      +      "is_autoprint_clear",
      +      "is_autoprint_on_end"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 5,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / properties / snippet_id / description
      Previous value: -"ID of a gcode snippet to send. Either gcode, macro, or snippet_id is required."New value: +"ID of a gcode snippet to send. Either gcode, macro, macros, or snippet_id is required."
  2. First observed

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so physical movement being non-idempotent is covered. The description adds only "relative," while omitting the significant fact visible in the schema that this tool can also emit arbitrary macro blocks or G-code snippets — behavior that goes well beyond a single axis nudge and carries real risk (collisions, out-of-bounds moves). That gap is not covered by any annotation.

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?

A single eight-word sentence with the core action front-loaded and zero padding. It is efficient, though the brevity edges into under-specification given the tool's six parameters and macro passthrough capability.

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

Completeness2/5

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

For a mutation tool with six parameters — three of which (macros, snippet_id, and the referenced gcode option) allow sending full G-code blocks rather than a simple axis move — the description covers only the trivial case. It says nothing about preconditions, safety limits, or the alternate code-execution path, so an agent cannot tell from the description alone when the tool will do more than nudge one axis.

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 every parameter is already documented, which sets the baseline at 3. The word "relative" does add a small amount of meaning about how distance is applied (offset rather than absolute coordinate), but nothing is said about units interplay with speed, macro ordering, or how the optional gcode/macro/snippet path interacts with direction and distance.

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

Purpose4/5

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

The description states a specific verb and resource ("Move a printer axis") plus the key qualifier "relative position," which separates it from an absolute-position or homing operation like home_printer. It does not explicitly name a sibling as the alternative, but the action is concrete enough that an agent can distinguish it from send_gcode or set_printer_motors.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g., motors must be enabled, axis must be homed, printer must be idle), and no mention of when a different tool such as home_printer or send_gcode would be preferable. The agent must infer all routing decisions from the name alone.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.