Skip to main content
Glama
hellstein-dev

fusion-mcp

assembly_drive_joint

Moves a joint to specified degree-of-freedom values, clamps requests to Fusion joint limits, and reports any clamped DOFs so you can verify the actual position.

Instructions

Move a joint to the given values (e.g. open a hinge to 90 degrees). Fusion keeps values inside the joint limits: dofs whose actual value differs from the request are listed in "clamped" (the actual value is in joint.values). Values are restored if Fusion fails.

Returns {"joint": joint object (see assembly_create_joint), "requested": {dof: value}, "clamped": [dof], "captured": bool}.

Example: assembly_drive_joint(joint="Jt=", values={"rotation": 90}) -> {"joint": {"values": {"rotation_deg": 90.0}, ...}, "requested": {"rotation": 90.0}, "clamped": [], "captured": true}.

Input Schema

NameRequiredDescriptionDefault
jointYesJoint or as-built joint ref (assembly_list_joints)
valuesYesTarget value per degree of freedom: degrees for rotation/pitch/yaw/roll, mm for slides
capture_positionNoFix the new position with a timeline 'Position' snapshot

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses that Fusion clamps values to joint limits, reports offending dofs in 'clamped', and that values are restored if Fusion fails. It also explains the capture_position side effect (a timeline 'Position' snapshot) and the complete return shape.

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 is front-loaded in the first clause, followed by behavioral caveats, return shape, and a worked example — every block earns its place. The parenthesized return-shape enumeration is dense but functional; structure could be slightly tighter.

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

Completeness5/5

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

For a nested-object mutation tool with no output schema and no annotations, the description supplies everything an agent needs: what it does, limit-clamping semantics, failure rollback, the exact return keys, and a worked call/response pair. Nothing essential is missing.

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

Parameters4/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, but the description adds meaning beyond the schema by explaining the clamped/requested relationship and by showing in the example how the request key 'rotation' surfaces as 'rotation_deg' with the actual applied value. It does not add much on capture_position beyond what the schema states.

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 and resource ('Move a joint to the given values') and immediately grounds it with a concrete example ('open a hinge to 90 degrees'). This is clearly distinguishable from assembly_create_joint, assembly_set_joint_limits, and assembly_list_joints, which each operate on different aspects of joints.

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?

Usage is only implied by the verb 'move' and the hinge example; there is no explicit statement of when to prefer this over siblings like assembly_set_joint_limits or assembly_create_as_built_joint. Useful behavioral context (limit clamping, rollback on failure) is present but is not framed as guidance on choosing the tool.

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

Deploy Server

Other Tools