Skip to main content
Glama
hellstein-dev

fusion-mcp

feature_hole

Drills simple, counterbore, or countersink holes—optionally tapped—into Fusion 360 bodies using face, sketch-point, center, or offset placements.

Instructions

Drill simple, counterbore or countersink holes - optionally tapped - into a body.

Units: diameters, depths, offsets and points are in units (default mm); angles in degrees; a string is a Fusion expression ("bolt_d + 0.5"). Refs: planar faces and edges from inspect_query (refs go stale after later features - use the latest results), sketch points from sketch_draw (all points of one call in one sketch on the face), construction planes from construction_plane.

Kinds: simple needs only diameter; counterbore needs cb_diameter and cb_depth; countersink needs cs_diameter (cs_angle default 90). Fields of another kind are refused. tip_angle defaults to 118 deg (180 = flat bottom). The hole always cuts; participant_bodies limits which bodies.

Tapped hole: thread={"designation": "M6x1"} (ThreadSpec: thread_type default "ISO Metric profile", designation, thread_class, modeled=false (cosmetic), full_length=true or length + offset, location high|low). Drill the tap-drill diameter (M6x1 -> 5). If the thread cannot be created the whole call fails and neither the hole nor the thread stays. See feature_thread_options for valid designations.

Errors: a missing kind field, a non-planar face, a non-circular center edge, an unknown designation (details.available) -> INVALID_PARAMS (nothing changed); a hole or thread Fusion computes with an error -> FUSION_API_ERROR and the timeline is rolled back.

Returns {"feature": {ref, type, name}, "health": {"state", "message"}, "created_bodies": [], "modified_bodies": [{ref, type, name}] (the drilled body), "removed_bodies": [], "holes": , "thread"?: {"type", "designation", "class", "internal": true, "modeled", "feature": {ref, type, name}, "health", "faces"}}.

Examples:

  • feature_hole(placement={"type": "sketch_points", "points": [p1, p2, p3, p4]}, kind="counterbore", diameter=5.5, cb_diameter=10, cb_depth=5.5, extent={"type": "through_all"})

  • feature_hole(placement={"type": "point", "face": , "point": [10, 10, 20]}, diameter=5, extent={"type": "distance", "depth": 12}, thread={"designation": "M6x1"})

Input Schema

NameRequiredDescriptionDefault
flipNoDrill the other way from the face
kindNosimple (default), counterbore or countersinksimple
unitsNoUnit of plain-number lengths and pointsmm
extentYesHow deep: {"type": "distance", "depth"} | {"type": "through_all"} | {"type": "to_entity", "entity"}
threadNoTapped hole: thread on the bore in the same call, e.g. {"designation": "M6x1"}; omit designation to let Fusion pick it from the bore diameter
cb_depthNocounterbore only: counterbore depth
cs_angleNocountersink only: included angle, degrees (default 90)
diameterYesHole (bore) diameter
placementYesWhere: {"type": "point", "face", "point": [x,y,z]} | {"type": "sketch_points", "points": [refs]} (one hole per point) | {"type": "face_offsets", "face", "point", "edge1", "offset1", "edge2", "offset2"} | {"type": "center", "face", "edge"} (circular edge)
tip_angleNoDrill point angle at the bottom, degrees
cb_diameterNocounterbore only: counterbore diameter
cs_diameterNocountersink only: countersink diameter
participant_bodiesNoBody refs the hole may cut (default: every body it meets)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/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 behavioral burden and does so well. It states that the hole always cuts, participant_bodies limits cutting, thread failure rolls back the entire call, and Fusion errors cause the timeline to roll back. It also distinguishes cosmetic versus modeled threads and gives the return shape.

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 and organized into units, refs, kinds, tapped holes, errors, returns, and examples. It is long, but the length is largely justified by the complex 13-parameter tool and the absence of an output schema; some material overlaps schema descriptions, preventing a higher conciseness score.

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?

Given the tool's complexity, lack of annotations, and lack of an output schema, the description is unusually complete. It covers references, units, kind-specific requirements, thread behavior, failure modes, rollback semantics, return payload, and concrete examples, leaving little an agent needs to infer before calling it.

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 100%, so the baseline is 3, but the description adds meaningful semantics beyond the schema. It explains cross-field dependencies such as simple needing only diameter, counterbore needing cb_diameter and cb_depth, countersink needing cs_diameter, rejection of another kind's fields, and the tap-drill relation M6x1 -> 5.

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 first sentence gives a specific verb and resource: drilling simple, counterbore, or countersink holes, optionally tapped, into a body. It immediately distinguishes the operation from generic thread creation by describing both the hole and optional thread behavior, and it names the affected resource clearly.

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 description gives clear context for use: references come from inspect_query, sketch_draw, or construction_plane; stale refs must be avoided; and kind-specific fields are required. It does not explicitly state when to choose feature_hole versus the sibling feature_thread or timeline_edit_hole, so it lacks full alternative-selection guidance.

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