Fusion360 Live 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 |
|---|---|
| get_scene_infoB | Get design name, bodies, sketches, features, camera info |
| get_object_infoB | Get detailed info about a named body or sketch. Bounding box in cm. |
| get_bounding_boxA | Axis-aligned bounding box for a body or component by name. Returns min, max, size, and center in cm (Fusion internal units). For components, unions bounding boxes of all contained bodies. Useful for measuring imported reference geometry. |
| create_sketchB | Create a new sketch on xy/yz/xz plane, optionally offset. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draw_rectangleB | Draw a rectangle in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draw_circleB | Draw a circle in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draw_lineB | Draw a line in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| extrudeA | Extrude a sketch profile. For operation cut/intersect, pass target_body_name whenever the document has more than one body — confirmed live that leaving it unset cuts EVERY body the tool geometrically reaches, not just an intended target. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| revolveB | Revolve a sketch profile around an axis. For operation cut/intersect, pass target_body_name whenever the document has more than one body — confirmed live that leaving it unset cuts EVERY body within the revolve's sweep, not just an intended target (it sliced two unrelated bodies elsewhere in the document purely because they sat within the sweep radius). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| filletB | Round edges of a body. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| chamferB | Chamfer edges of a body. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| shellA | Hollow out a body, removing the selected planar face(s) as the opening. top/bottom = the +Z/-Z facing face(s) at the body's extreme Z; up_facing/down_facing = every +Z/-Z facing planar face (e.g. a stepped rim), optionally limited by z_min/z_max. Returns faces_removed and removed_face_z. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| mirrorB | Mirror a body across a construction plane |
| delete_bodyA | Delete one named body (searches root and all components). Use this instead of undo to remove a body: API-created features are not reliably on Fusion's UI undo stack. |
| rename_bodyA | Rename a body (searches root and all components) |
| move_bodyA | Move a named body: optional rotation (angle, degrees) about an axis parallel to x/y/z through (pivot_x, pivot_y, pivot_z), then translation by (x, y, z). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| export_stlB | Export a named body as an STL file |
| boolean_operationA | Combine two named bodies (join/cut/intersect). For 'join', target_body and tool_body must actually touch or overlap — confirmed live that Fusion silently discards the tool body's geometry (no error, no merge) when they don't, so this refuses up front with the real minimum distance between them instead of reporting a false success. |
| delete_allA | Clear the design (delete all timeline items) |
| undoB | Undo the last operation |
| execute_codeA | Run arbitrary Python in Fusion 360. The last expression's value is returned (REPL-style). Pre-defined names: app, ui, design, component, adsk, math, late_results. The add-in waits 30 s by default; pass timeout_s (max 600) for a script that runs many features on a large timeline. A command that times out while running still finishes; its result is kept and late_results() returns it. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| sweepC | Sweep a sketch profile along a path (sketch curve) |
| loftC | Loft between two or more sketch profiles |
| create_polygonB | Draw a regular polygon in the most recent sketch. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draw_arcA | Draw an arc in the most recent sketch (center + start point + sweep angle) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_holeB | Create a hole feature on a body face. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| rectangular_patternA | Pattern a body in rows and columns. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| circular_patternA | Pattern a body OR a feature around an axis. Without feature_name, this duplicates the whole body N times as separate overlapping bodies (correct for copying a whole part, e.g. around a turntable) — it does NOT add copies of a feature to the same body. For the common case — a bolt circle, repeating a single hole around one part — pass feature_name (the feature that created it, e.g. from create_hole's feature_name) so the result stays one body with N holes. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_componentB | Create a new component (sub-assembly) in the design |
| add_jointB | Add a joint between two components |
| list_componentsB | List all components in the design |
| export_stepB | Export a body or component as a STEP file |
| export_f3dA | Export the design as a native Fusion 360 archive (.f3d) |
| export_view_sheetA | Render canonical orthographic + isometric views as PNGs and emit a self-contained HTML sheet suitable for sharing with a mechanical engineer. Opens in any browser; Print -> Save as PDF for a static artifact. Restores the viewport camera after rendering. |
| exportA | Unified export wrapper — dispatches to export_stl / export_step / export_f3d based on format or file extension. Format is auto-detected from file_path extension if not specified. STL and STEP require body_name; F3D exports the whole design. |
| import_meshA | Import a mesh file (STL, OBJ, or 3MF) as a mesh body. Returns the mesh name and bounding box. Use for reference geometry (e.g. exported SketchUp model). |
| get_parametersB | List all user parameters in the design |
| create_parameterA | Create a new user parameter. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| set_parameterA | Update the value of an existing user parameter. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| delete_parameterB | Remove a user parameter |
| add_constraintB | Add a geometric constraint in the active sketch. Entities are referenced by index within the sketch. |
| auto_constrainA | Automatically add geometric constraints and dimensions to fully constrain a sketch (Fusion 2026+ AutoConstrain API). result_option: 1 = thorough/slow (default), 2 = fast, 3 = may move geometry within tolerance. |
| add_dimensionB | Add a driving dimension to constrain sketch geometry. Value is in cm for distances, degrees for angles. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_construction_planeB | Create a construction plane for sketching. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_construction_axisB | Create a construction axis. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_ucsA | Create a UCS at (x, y, z) with optional rotation (Fusion 2026+ UCS API, preview). A hidden reference sketch is created to anchor the UCS — do not delete it. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draw_splineA | Draw a spline in the most recent sketch. Use fit_points for a curve through points, or control_points for a control-polygon spline. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| offset_curveB | Offset connected sketch curves by a distance. Direction is determined by the direction_point. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| trim_curveA | Trim a sketch curve at its intersections. The segment nearest to the given point is removed. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| extend_curveB | Extend a sketch curve to the nearest intersection. The end nearest to the given point is extended. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_threadB | Add threads to a cylindrical face (cosmetic or modeled) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| draft_facesB | Add a draft angle to faces of a body (for mold release / injection molding) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| split_bodyB | Split a body using a plane or face |
| split_faceB | Split faces of a body using a plane |
| offset_facesB | Push/pull faces of a body by a distance. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| scale_bodyB | Scale a body uniformly or non-uniformly. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_boxA | Create a box primitive (non-parametric via TemporaryBRepManager). center_x/center_y are the box CENTER, but center_z is its BOTTOM face: the box spans center_z .. center_z + height (confirmed live: center_z=6, height=12 gave Z 6..18). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_box_parametricA | Create a history-based rectangular box via sketch rectangle + extrude (unlike create_box which uses TemporaryBRepManager). length/width/height accept a number (cm, Fusion internal unit) or a string expression referencing User Parameters (e.g. 'boxL', '56 mm', 'outer - 2 * wall_t'). Call create_parameter first to define named parameters. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_cylinderA | Create a cylinder (or cone, with top_radius) primitive (non-parametric via TemporaryBRepManager). The base circle is centred at (base_x, base_y, base_z); the body extends |
| create_sphereB | Create a sphere primitive (non-parametric via TemporaryBRepManager) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_torusA | Create a torus primitive (non-parametric via TemporaryBRepManager) Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| create_as_built_jointC | Create a joint from components' current positions (easier than geometric joints) |
| create_rigid_groupB | Lock multiple components together |
| measure_distanceA | Measure minimum distance between two entities. Returns the distance and closest points in cm. |
| measure_angleA | Measure the angle between one face of each of two bodies (picked by index — defaults to each body's first face). |
| get_physical_propertiesB | Get mass, volume, surface area, center of mass, and density of a body. Returns mass in kg, volume in cm³, area in cm², density in kg/cm³ and center of mass in cm. |
| create_section_analysisB | Cut a section plane through the model. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| check_interferenceA | Detect collisions between components/bodies. Interference volumes in cm³. |
| compare_meshesA | Compare two mesh bodies and return deviation statistics (min/max/mean/RMS signed distance in cm) — e.g. validate an imported STL against a reference mesh. Requires Fusion 2026+. |
| set_appearanceB | Assign a material appearance to a body, face, or component from the Fusion appearance library |
| set_colorA | Assign a flat RGB color to a body (creates/reuses a design-local appearance). Useful for visually distinguishing parts before render_view. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| project_geometryB | Project edges or bodies onto the active sketch plane |
| suppress_featureA | Suppress (disable) one or more timeline features. Pass feature_names for a batch: it recomputes the timeline ONCE (one call per feature costs a full recompute each — ~2.5 s apiece on a 200+ item timeline). Suppressing a Combine cut/join brings its tool body back; the result lists bodies_appeared so you can suppress the feature that made it. |
| unsuppress_featureB | Unsuppress (re-enable) one or more timeline features; feature_names recomputes once for the whole batch. |
| patch_surfaceB | Create a patch surface from boundary edges |
| stitch_surfacesB | Stitch surface bodies into a single body. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| thicken_surfaceB | Thicken a surface body into a solid. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| flat_patternA | Create the flat pattern of a sheet metal body (run convert_to_sheet_metal first) |
| cam_create_setupB | Create a manufacturing setup for a body. Defines the stock, coordinate system, and operation type (milling/turning/cutting). Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| cam_create_operationB | Add a machining operation to a setup. Strategy determines the toolpath type. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| cam_generate_toolpathB | Generate toolpaths for a specific operation or all operations in a setup |
| cam_post_processC | Post-process toolpaths to generate NC code (G-code) |
| cam_list_setupsB | List all manufacturing setups in the document |
| cam_list_operationsA | List operations within a setup |
| cam_get_operation_infoB | Get details about a specific operation (strategy, tool, parameters, toolpath status) |
| pingA | Health check — returns immediately without touching Fusion API |
| get_design_typeA | Check if the design is in parametric or direct mode. Use this to detect accidental mode switches. |
| set_design_typeA | Switch design type between 'parametric' and 'direct'. Use 'parametric' to recover from accidental direct-mode switches (equivalent to Capture Design History in the UI). |
| render_viewA | Capture the active viewport as a PNG so you can visually verify the model. Pass a canonical view (iso/front/top/etc.) to reposition the camera first, or 'current' to keep it as is. Returns base64-encoded image bytes alongside metadata; the MCP server delivers it as an image content block. |
| convert_to_sheet_metalA | Convert a solid body of uniform thickness into sheet metal. Thickness is taken from the geometry, not from the rule. This replaces flange creation, which the Fusion API does not expose: model the shape with extrude/shell, then convert. |
| fold_sheet_metalA | Bend a sheet metal body along a line of the last sketch. Draw the line on the sheet face with draw_line first. Unless a parameter says otherwise, lengths and coordinates are in cm (not mm) and angles in degrees. |
| export_flat_pattern_dxfA | Export the flat pattern of a sheet metal body as DXF, for laser, plasma or waterjet cutting (run flat_pattern first) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-box | Guide for creating a parametric box in Fusion 360 |
| model-threaded-bolt | Step-by-step guide for modeling a threaded bolt in Fusion 360 |
| sheet-metal-enclosure | Guide for creating a sheet metal enclosure |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Connection Status | Check whether Fusion 360 is reachable |
| Design Tree | Design summary: bodies, sketches, counts, camera |
| User Parameters | All user-defined parameters in the design |
TDQS
Scored across 92 tools
The set covers many distinct CAD operations, but there is significant overlap: multiple export tools (export, export_stl, export_step, export_f3d), two box creation tools (create_box, create_box_parametric), multiple joint tools (add_joint, create_as_built_joint, create_rigid_group), and both render_view and export_view_sheet produce images. Descriptions help resolve most cases, but an agent must read carefully to avoid misselection.
Names are consistently snake_case and mostly follow a verb_noun pattern (split_body, create_sketch, get_parameters). A few single-verb names (extrude, mirror, loft) are conventional CAD terms and do not break the pattern; minor deviations like 'export' vs 'export_stl' and 'boolean_operation' are acceptable.
92 tools is far beyond the 3–15 typical range and exceeds even the 25+ 'too many' threshold. While the domain is broad, many operations could be consolidated (e.g., export variants, primitive creation, sketch drawing tools), indicating an over-exposed surface that increases cognitive load.
The surface covers modeling, sketching, constraints, assemblies, measurement, export/import, sheet metal, CAM, and rendering—nearly all of Fusion 360's major workflows. Minor gaps exist (e.g., importing STEP/IGES, creating engineering drawings), but execute_code provides an escape hatch for missing operations.