Skip to main content
Glama
hellstein-dev

fusion-mcp

feature_rib

Adds a rib (thin stiffening wall) from open sketch curves and joins it to the target body to reinforce housings, brackets, and bosses.

Instructions

Add a rib (a thin stiffening wall) from open sketch curves, joined to the body it meets - gussets in housings, brackets, bosses.

Units: thickness and depth.distance are in units (default mm), a string is a Fusion expression ("wall"). Refs: open sketch curves from sketch_draw (a line or arc drawn in a sketch on a plane cutting the body, e.g. a construction_plane through the corner); circles and closed splines are refused. The rib is always joined to target_body (no operation parameter); without it, to the one solid body of the curves' component that a curve touches.

Errors: closed curve, wrong thickness_location or depth -> INVALID_PARAMS (nothing changed); no target_body and the curves touch no body or several -> INVALID_PARAMS with details.candidates (body refs to pass as target_body); thickness_location "side2" is not available in the current Fusion API (FUSION_API_ERROR, no change): use "side1" with the curve drawn the other way; a Fusion API version without rib features -> FUSION_API_ERROR "not available" with no change (use execute_python then); a rib Fusion computes with an error -> FUSION_API_ERROR and the timeline is rolled back.

Returns {"feature": {ref, type, name}, "health": {"state": ok|warning|error|unknown, "message"}, "created_bodies": [...], "modified_bodies": [{ref, type, name}] (the body the rib joins), "removed_bodies": [...]}.

Example: feature_rib(curves=[], thickness=3)

Input Schema

NameRequiredDescriptionDefault
flipNoGrow the other way from the sketch plane
depthNo{"type": "to_next"} (default, up to the next face) | {"type": "distance", "distance"}
unitsNoUnit of plain-number lengths and pointsmm
curvesYesOpen sketch curve refs (sketch_draw), drawn on a plane through the body, ending at or near its walls
thicknessYesRib thickness
target_bodyNoBody the rib/web is built on and joined to; default: the one solid body the curves touch
thickness_locationNosymmetric (default) about the curves, or side1 / side2 of themsymmetric

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations available, the description carries the full behavioral burden and does so thoroughly: it explains that the rib is always joined, how target_body defaults, unit and expression handling, specific failure modes, API limitations for side2, and rollback behavior on Fusion errors. This is the kind of mutation and error context an agent needs before invoking the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: purpose first, then units/refs, joining behavior, errors, returns, and an example. Every section contributes actionable information, and the front-loaded definition lets the agent quickly understand what the tool does.

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 mutation tool with no annotations and no output schema, the description is complete: it covers required inputs, joining semantics, default resolution, unit handling, error conditions, API limitations, rollback behavior, and return shape. Nothing critical for correct invocation is obviously missing.

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

Parameters5/5

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

Although schema coverage is already 100%, the description adds meaningful semantics beyond the schema: it identifies curves as open sketch entities from sketch_draw, rejects circles and closed splines, clarifies that thickness and depth.distance accept Fusion expressions, explains the default target_body resolution, and warns that thickness_location "side2" is unavailable despite being present in the schema enum.

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 description names a specific verb and resource: adding a rib, defined as a thin stiffening wall from open sketch curves joined to a body. The examples (gussets in housings, brackets, bosses) make the purpose concrete and distinguishable from unrelated feature tools.

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 the required input context: open sketch curves from sketch_draw, drawn on a plane through the body, and notes that circles and closed splines are refused. However, it does not explicitly compare this tool to similar siblings such as feature_web or feature_extrude, so the agent is left to infer when a rib is preferred over those alternatives.

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