Skip to main content
Glama
hellstein-dev

fusion-mcp

assembly_create_as_built_joint

Join two existing occurrences in a Fusion assembly without moving either, creating an as-built joint at their current position. Specify joint type and optional geometry to lock motion.

Instructions

Join two occurrences where they already are (nothing moves), in the root component. geometry gives the joint position and axis (required except for rigid; refs inside occurrences look like '@'). motion keys as in assembly_create_joint.

Returns {"joint": joint object as in assembly_create_joint}.

Example: assembly_create_as_built_joint(type="revolute", occurrence_one="occurrence:Lid:1", occurrence_two="occurrence:Box:1", geometry={"kind": "curve", "entity": "E2=@Box:1"}) -> {"joint": {"type": "revolute", ...}}.

Input Schema

NameRequiredDescriptionDefault
nameNoJoint name
typeYesJoint type (degrees of freedom)
motionNoMotion axes, same keys as assembly_create_joint
geometryNoJoint position/axis; required for every type except rigid
occurrence_oneYesOccurrence: 'occurrence:<fullPathName>' (e.g. 'occurrence:Box:1', nested 'occurrence:Box:1+Hinge:1') as returned by assembly_list
occurrence_twoYesOccurrence: 'occurrence:<fullPathName>' (e.g. 'occurrence:Box:1', nested 'occurrence:Box:1+Hinge:1') as returned by assembly_list

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses that no geometry is moved (the defining behavior of an as-built joint), that both occurrences must live in the root component, and that geometry is optional only for rigid joints. It omits failure modes — duplicate or conflicting joints, permission/activation preconditions, and whether an existing joint blocks creation.

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?

Four short, front-loaded sentences plus a compact worked example — the key constraint ('nothing moves') and the rigid/geometry rule come first. The telegraphic style ('refs inside occurrences look like...') costs a little readability but contains no filler.

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 mutation tool with no annotations and no output schema, it supplies the missing return shape ('Returns {"joint": ...}') and a concrete end-to-end example, which is exactly the gap left by the absence of an output schema. What remains unstated — preconditions around document activation and error behavior — matters but is secondary for a straightforward creation call.

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 occurrence refs, the geometry union, and the type enum; a baseline of 3 applies. The description restates the rigid-joint exception and the '<token>@<path>' ref shape that the schema already covers, adding only the pointer that motion keys follow assembly_create_joint, which is genuine but marginal added meaning.

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 ('Join two occurrences') plus the distinguishing behavioral trait ('where they already are (nothing moves)'), which separates it cleanly from assembly_create_joint, the sibling that positions components. The creation scope ('in the root component') further narrows it so an agent can select it without opening the schema.

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 phrase 'where they already are (nothing moves)' implicitly defines the use case versus assembly_create_joint, and it repeatedly cross-references that sibling for shared semantics (motion keys, return shape). It does not explicitly state the inverse condition ('use assembly_create_joint when you need to place/position an occurrence'), so the exclusion is inferable rather than spelled out.

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