Skip to main content
Glama
mostodont01

prusa-workbench-mcp

by mostodont01

transform

Rotate, scale, lay flat, or move 3D-print objects to prepare models for slicing, with reset to restore loaded orientation and size.

Instructions

Rotate, scale, lay flat or move objects. Steps run in this order: reset, scale, rotate, lay_flat, move.

Args: objects: object ids (or names); ["all"] for every object. rotate: degrees about the bed's X, Y, Z axes, e.g. [90, 0, 0] tips it over towards the back, [0, 0, 45] turns it on the bed. scale: factor (1.1 = 110 %) or [x, y, z] factors. lay_flat: put the object on its largest stable flat face. move_to: [x, y] of the footprint center on the bed, mm. move_by: [dx, dy] mm. reset: back to the loaded orientation and size (position is kept).

Input Schema

NameRequiredDescriptionDefault
resetNo
scaleNo
rotateNo
move_byNo
move_toNo
objectsYes
lay_flatNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose real behavior: deterministic step ordering and that reset restores orientation/size but keeps position. It omits whether changes are undoable, whether they persist to the job or only the session, and whether downstream preview/slice state is invalidated.

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?

Purpose and ordering are front-loaded, and each arg line earns its place with units or examples rather than restating the field name. The docstring 'Args:' formatting is a little verbose for a tool description but wastes no sentences.

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 seven-parameter mutation tool with no annotations, the description covers every argument and the interaction between them; the existing output schema relieves it of explaining return values. It stops short of stating preconditions (objects must be loaded/selected) and side effects on slicing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate, and it documents all seven parameters: accepted id/name forms plus the ["all"] shorthand, degree axes with concrete examples, scalar vs per-axis scale, mm units for move_to/move_by, and reset semantics. This adds meaning well beyond the bare titles in the schema.

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?

Opens with a specific verb list (rotate, scale, lay flat, move) applied to a named resource (objects), which is far more precise than the bare name 'transform'. It is distinguishable from siblings like copy_objects, remove_objects and arrange, though the overlap with move_to_bed is left for the reader to infer.

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 stated execution order (reset, scale, rotate, lay_flat, move) is genuinely useful guidance for combining steps in one call. However, it never says when to use this tool instead of move_to_bed or arrange, nor whether a preview/re-slice is required afterwards — usage is implied rather than stated.

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