Skip to main content
Glama
hellstein-dev

fusion-mcp

feature_web

Creates a web from open sketch curves and joins it to a target body, ideal for building stiffener grids inside shelled housings.

Instructions

Add a web - a network of thin walls from several open sketch curves (e.g. a grid of stiffeners inside a shelled housing), joined to the body it meets.

Units: thickness and depth.distance are in units (default mm), a string is a Fusion expression. Refs: open sketch curves from sketch_draw, all in one sketch inside the body; circles and closed splines are refused. 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); a Fusion API version without web features -> FUSION_API_ERROR "not available" with no change (use execute_python then); a web 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 web joins), "removed_bodies": [...]}.

Example: feature_web(curves=[, , ], thickness=2, depth={"type": "distance", "distance": 15})

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
thicknessYesWall thickness of the web
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.3/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 thoroughly: no operation parameter, the join target is implicit, defaults resolve to the single touched solid body, and each failure mode is enumerated with its consequence (INVALID_PARAMS with nothing changed, INVALID_PARAMS with details.candidates, FUSION_API_ERROR plus timeline rollback). The side2 API limitation and version fallback are disclosed, which the agent could not otherwise know.

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 one-line definition, then logically grouped Units / Refs / Errors / Returns / Example blocks. Dense but every block is functional; the errors paragraph is long yet each clause is a distinct failure mode an agent must handle.

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 7-parameter geometry mutation with no annotations and no output schema, the description supplies the missing pieces: return shape is stated inline, error taxonomy maps to remediation, default target resolution is explained, and the recovery path (execute_python) is named. Nothing material is left for the agent to guess.

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 description coverage is 100%, so baseline is 3, and the description adds real semantics beyond it: thickness and depth.distance are interpreted in `units`, a string value is a Fusion expression, and curves must be open sketch entities from sketch_draw in one sketch. The worked example ties the parameters together with a concrete depth object.

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?

Opens with a concrete verb plus resource and a precise physical definition ('a network of thin walls from several open sketch curves ... joined to the body it meets'), including a parenthetical use case. It implicitly separates itself from a single-curve rib via 'network of thin walls' and the 'rib/web' phrasing in params, but never names the sibling feature_rib, so the differentiator must be inferred.

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?

Establishes clear prerequisites (curves must come from sketch_draw, all in one sketch inside the body) and an explicit exclusion (circles and closed splines are refused). It also routes the agent to execute_python when the Fusion API version lacks web features. What is missing is an explicit 'use feature_rib instead when you have a single curve' statement.

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