Skip to main content
Glama
hram

FreeCAD MCP

by hram

create_fixed_joint

Persists a verified mounting pose as a native fixed joint in an assembly, grounding the fixed part after solver and collision checks; rolls back on failure.

Instructions

Persist verified mounting pose as a native Fixed Joint, grounding the fixed part.

Requires an applied, still-valid plan and both owners directly inside an existing native Assembly with no prior joints. Runs solver then numeric/collision checks; rolls back if they fail. Native joint survives saving/reopening; connectors preserve relative pose, detached from face topology. This is not a general constraint-network editor.

Input Schema

NameRequiredDescriptionDefault
plan_idYes
joint_nameNoMountingJoint
assembly_nameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it discloses persistence as a native joint, grounding of the fixed part, solver and numeric/collision validation, rollback on failure, and survival across save/reopen. It does not cover permissions or return/error details, but it is unusually behavior-rich for an unannotated mutation tool.

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 description is front-loaded with the action and is composed of four dense sentences with no filler. It is concise and structured, though the domain jargon makes it slightly harder to parse than ideal.

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

Completeness3/5

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

For a complex mutation tool with no annotations, no output schema, and 0% schema description coverage, the description covers prerequisites and transactional behavior but omits parameter meanings and does not state what a successful call returns. It is adequate but leaves clear gaps for an agent trying to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain plan_id, assembly_name, or the joint_name default. It only alludes to a 'plan' and an 'Assembly' conceptually, which does not compensate for the undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: persist a verified mounting pose as a native Fixed Joint, grounding the fixed part. It also distinguishes the tool from a general constraint-network editor, though it does not name the sibling alignment or assembly tools it depends on.

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?

It clearly states prerequisites: an applied, still-valid plan and both owners inside an existing native Assembly with no prior joints. It also gives an exclusion (not a general constraint editor), but it does not explicitly name which sibling produces the required plan or compare itself with preview/apply alignment tools.

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