fusion-reconstruct-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mesh_summaryB | Overall size, volume and sanity-check info for an STL/3MF file. |
| list_planar_facetsA | List coplanar face groups (flat regions) large enough to matter, each with its normal, area and in-plane footprint size - useful for spotting the flat faces that become sketch planes (top/bottom/side walls, bosses, counterbore floors). |
| find_circular_holesA | Detect circular through-holes / blind-hole rims sitting inside a flat facet (e.g. a bolt hole in a plate). Each result is one inner boundary loop of a facet that fits a circle well. min_loop_points guards against a false positive that is easy to fall into: any rectangle's 4 corners lie exactly on a circle (a rectangle is a cyclic quadrilateral), so a plain 4-sided quad facet can look like a perfect circle fit. Real circular boundaries coming from a tessellated mesh have one segment per tessellation facet (a few dozen, typically), so requiring at least min_loop_points boundary vertices filters out straight-edged quads/triangles while keeping genuine circles. min_area skips facets too small to contain a min_radius-sized hole before tracing their boundary (the expensive step) - default is 4pimin_radius**2, i.e. a facet at least ~4x the hole's own area. Without this, a mesh with tens of thousands of small tessellation facets (common on any curved/filleted surface) makes this call slow enough to time out an MCP client, since every facet's boundary gets traced regardless of whether it could possibly contain a hole. |
| find_circular_facesA | Detect facets whose entire boundary is itself a circle - typically the flat top of a cylindrical boss/pad, or the flat bottom of a blind hole. See find_circular_holes' docstring for why min_loop_points and min_area matter (false positives from cyclic quads; timeouts from tracing every facet's boundary on a mesh with tens of thousands of them). |
| get_cross_sectionA | Slice the mesh with a plane and return the resulting 2D profile(s) - exactly what you need to know to draw the matching Fusion sketch on that plane. Each polygon has an outer loop and zero or more hole loops, given as 2D points in the plane's own (u, v) coordinate system (same plane_u_axis/plane_v_axis convention fusion_create_sketch's origin+normal uses, so these coordinates drop straight into sketch_add_line/etc.). Raw tessellation gives a mesh's cross-section thousands of near-collinear points even for a simple flat-sided shape - simplify_tolerance_mm runs a Douglas-Peucker simplification (points contributing less than this distance to the outline are dropped) so the result is small enough to read and close enough to straight-line/arc-fittable for sketching. Set to 0 to get the raw, unsimplified outline instead. |
| render_orthographic_viewsA | Render front/top/right/isometric silhouette views to PNG files so a vision-capable LLM can look at the part's overall shape before deciding how to reconstruct it. Returns paths, not image bytes - open them with a file-reading / vision tool. |
| check_solidA | For each (x, y, z) point (mm), report whether it's inside the solid or outside it (mesh.contains, ray-casting based). get_cross_section only ever traces the outer boundary at a given slice
|
| compare_meshesA | Compare a reconstructed model (exported from Fusion as STL) against the original mesh: volume/bounding-box deltas plus an approximate two-sided surface distance (mean and max, in mm) computed by sampling points on one surface and measuring distance to the nearest point on the other. |
| fusion_pingA | Check whether Fusion 360 is running with the bridge add-in started. |
| fusion_new_documentB | Create a new, empty Fusion design document to reconstruct the part in. |
| fusion_create_sketchA | Create a sketch on a plane. Either pass |
| fusion_sketch_add_lineA | Add a straight line segment to a sketch, in the sketch's own mm coordinates. |
| fusion_sketch_add_rectangleC | Add a rectangle to a sketch defined by two opposite corners (mm). |
| fusion_sketch_add_circleA | Add a circle to a sketch, center (cx, cy) and radius in mm. |
| fusion_sketch_add_arc_three_pointB | Add a 3-point arc (start, end, point-on-arc) to a sketch, in mm. |
| fusion_list_sketch_profilesA | List the closed regions (profiles) Fusion has found in a sketch, with
their index, area and centroid - use this to pick the right
|
| fusion_extrudeB | Extrude a sketch profile. operation: "new_body" | "join" | "cut" | "intersect". "join"/"cut"/
"intersect" combine into |
| fusion_revolveB | Revolve a sketch profile around an axis line given by two 2D points in the sketch's own coordinate system (mm). |
| fusion_loftA | Loft through 2+ sketch profiles to build a shape that tapers/morphs
between cross-sections, e.g. a wedge or a rounded-to-square transition -
use this instead of extrude when the profile isn't constant along its
length. Each entry in |
| fusion_add_filletA | Round edges with a fillet. edge_selector: {"kind": "all_edges"} for every edge of the body, or {"kind": "near_points", "points": [[x,y,z], ...], "max_distance_mm": 1.0} to select edges whose midpoint lies within max_distance_mm of any given point (get candidate points from mesh_tools.find_circular_holes/faces or fusion_get_body_info). |
| fusion_add_chamferC | Chamfer edges. Same edge_selector format as fusion_add_fillet. |
| fusion_pattern_rectangularC | Rectangular pattern of the body/feature produced by feature_id, along the body's own X and Y directions. |
| fusion_pattern_circularB | Circular pattern of the body/feature produced by feature_id, around the given base-plane axis ("x", "y" or "z"). |
| fusion_mirrorA | Mirror the body/feature produced by feature_id across a base plane ("XY", "XZ" or "YZ"), optionally offset along that plane's normal by offset_mm - use this for a mirrored pair that isn't touching along the mirror line (e.g. two parts with a real gap between them). |
| fusion_combineC | Boolean-combine bodies: operation "join" | "cut" | "intersect". |
| fusion_shellA | Hollow out a solid body into a shell. Pass remove_face_indices (from fusion_get_body_info's face_index, matched by its normal/point_on_face_mm) to leave those faces open - e.g. remove the top face of a box to turn it into an open-top container. Omit for a fully closed hollow shell. direction: "inside" | "outside" | "both" - which way the wall thickness is measured from the original surface. |
| fusion_set_parameterA | Create (or update) a Fusion user parameter, e.g. name="wall_thickness", expression="3 mm". Reference it in later calls' numeric fields is not supported over this bridge (those stay plain numbers) - this is for keeping the design's parameter table meaningful for a human opening it afterwards. |
| fusion_list_parametersA | List all user parameters currently defined in the design. |
| fusion_list_bodiesA | List all solid bodies in the design with their id, name, volume and bounding box - use this to get a body_id for combine/fillet/export. |
| fusion_get_body_infoA | Detailed geometry of one body: every face (type, area) and every edge (type, length, midpoint) - use the edge midpoints to build an edge_selector for fusion_add_fillet/fusion_add_chamfer. |
| fusion_get_timelineA | List the feature timeline (creation order, name, type, suppressed state) - Fusion's own record of every feature created so far. |
| fusion_export_stlA | Export one body to an STL file, e.g. so mesh_tools.compare_meshes() can check the reconstruction against the original. |
| fusion_screenshotA | Save a screenshot of the current Fusion viewport to file_path (PNG). |
| fusion_fit_viewA | Zoom/fit the Fusion viewport to the visible geometry (call before fusion_screenshot for a useful picture). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ab7646/fusion-reconstruct-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server