Skip to main content
Glama

get_part_orientation

Read-onlyIdempotent

Resolve a Stormworks part’s local mounting, motion, and function axes to the rotation and mirror needed for requested world directions, returning values for edit_parts or XML.

Instructions

Explain a part's local mounting, motion and function axes and solve the rotation that points them in the requested world directions. Example Fin Rudder targets: mount_normal=[0,0,1], span_axis=[0,1,0]. Road wheel targets should include axle_axis, wheel_reference_up and wheel_forward; right placements can require mirror. Returns the effective rotation plus the proper r and mirror for edit_parts or XML. Read-only; arrow signs still need checking in game.

Input Schema

NameRequiredDescriptionDefault
targetsNoWanted world direction per local axis, as integer unit vectors, e.g. {"mount_normal": [0,0,1], "span_axis": [0,1,0]}; omit to see the axes and the default solution.
definitionYesDefinition id, e.g. "rudder"; find ids with search_parts.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.0
    • addedInput schema / properties / definition / description
      Added value: +"Definition id, e.g. \"rudder\"; find ids with search_parts."
    • addedInput schema / properties / targets / description
      Added value: +"Wanted world direction per local axis, as integer unit vectors, e.g. {\"mount_normal\": [0,0,1], \"span_axis\": [0,1,0]}; omit to see the axes and the default solution."
  2. Addedv0.1.1

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish read-only/idempotent/non-destructive, and the description adds real value beyond them: it discloses that 'right placements can require mirror' and that the returned arrow signs 'still need checking in game' — an honest limitation an agent would otherwise not know. It also states the output contract (effective rotation plus proper r and mirror).

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?

The purpose and outcome are front-loaded in the first sentence, followed by compact examples and a caveat. It is dense with domain terms but nearly every clause carries usable information; the road-wheel sentence is the only one that could be tightened.

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?

With an output schema and full annotation coverage, the description only needs to supply intent, examples and limits — which it does, including the in-game verification caveat and downstream consumers. What it omits (return structure, unit-vector constraints) is already covered by structured fields.

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 coverage is 100%, so the baseline is 3. The description does add non-trivial meaning: it explains that targets are a per-local-axis world-direction map and identifies which axis keys matter for different part families, plus the mirror caveat for mirrored placements. It stops short of format details (integer unit vectors are only stated 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?

The first sentence names a specific verb and resource ('Explain a part's local mounting, motion and function axes') and states the computational outcome ('solve the rotation that points them in the requested world directions'). It also positions the result relative to a sibling ('proper r and mirror for edit_parts or XML'), so an agent can tell this apart from edit_parts itself.

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

Usage Guidelines4/5

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

The description gives concrete usage context via worked examples for two part classes (Fin Rudder needs mount_normal/span_axis; road wheels need axle_axis, wheel_reference_up, wheel_forward). It implies this is a pre-edit analysis step but never explicitly says when NOT to use it or names an alternative for a different need.

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