Skip to main content
Glama
hellstein-dev

fusion-mcp

assembly_create_joint_origin

Create reusable joint origins as snap points stored in the owning component, so they move with the part and can be referenced by assembly joints.

Instructions

Create a joint origin: a reusable snap point for joints, stored in the component that owns the geometry (so it moves with the part). Geometry refs seen through an occurrence ('@Lid:1') are fine: the origin is still created in component Lid. Use it later as {"kind": "joint_origin", "entity": } in assembly_create_joint.

Returns {"joint_origin": {"ref" (in the occurrence context, '@', when the component has one), "native_ref" (inside the component), "name", "component": "component:"}}.

Example: assembly_create_joint_origin(geometry={"kind": "planar_face", "entity": "Fc=@Lid:1", "key_point": "center"}, offset_mm=[0, 0, 5]) -> {"joint_origin": {"ref": "Jo=@Lid:1", "native_ref": "Jo=", "name": "Joint Origin1", "component": "component:Lid"}}.

Input Schema

NameRequiredDescriptionDefault
flipNoFlip the origin's Z axis
nameNoJoint origin name
angleNoRotation about the origin's Z: degrees or expression
geometryYesWhere the origin snaps (kind joint_origin refused)
offset_mmNo[x, y, z] offset of the origin along its own axes: mm numbers or Fusion expressions

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/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 the non-obvious storage semantics (origin is created in the owning component, so it moves with the part) and that occurrence-scoped refs like '<token>@Lid:1' are accepted and normalized. It omits mutation side effects, whether creation is idempotent, and what happens on failure, so it is not fully transparent.

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?

Front-loaded with the purpose and the key structural behavior, then supporting detail. The return-value JSON and the worked example are somewhat verbose but both convey information an agent needs; little is wasted.

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?

No output schema exists, and the description compensates by spelling out the return shape (ref, native_ref, name, component) and the distinction between occurrence-context and in-component refs. Combined with the example and the downstream usage note, an agent has everything needed to call and consume the result.

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 already 100%, so the baseline is 3. The description adds genuine meaning beyond the schema by explaining how entity refs are interpreted across occurrence context and by walking through a concrete call with geometry, key_point, and offset_mm. It does not elaborate on flip/angle/name beyond the schema, so it is incremental rather than comprehensive.

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 ('Create a joint origin') and immediately defines what it is ('a reusable snap point for joints') and where it lives (component that owns the geometry). It explicitly distinguishes itself from the sibling assembly_create_joint by describing the downstream consumption pattern.

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?

Explains the intended lifecycle: create here, then reference as {"kind": "joint_origin", ...} in assembly_create_joint. That is clear guidance on when this tool is the right one. It does not state exclusions or when-not-to-use (e.g., why not create the joint directly), so it stops short of full alternative routing.

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