Fusion 360 MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FUSION_MCP_HOST | Yes | The host address for the MCP socket bridge (e.g., 127.0.0.1). | |
| FUSION_MCP_PORT | Yes | The port for the MCP socket bridge (e.g., 9876). |
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 |
| 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 |
| draw_rectangleA | Draw a rectangle in the most recent sketch |
| draw_circleB | Draw a circle in the most recent sketch |
| draw_lineB | Draw a line in the most recent sketch |
| extrudeC | Extrude a sketch profile |
| revolveB | Revolve a sketch profile around an axis |
| filletB | Round edges of a body |
| chamferC | Chamfer edges of a body |
| shellB | Hollow out a body by removing a face |
| mirrorB | Mirror a body across a construction plane |
| rename_bodyA | Rename a body (searches root and all components) |
| move_bodyB | Translate a named body by (x, y, z) |
| export_stlB | Export a named body as an STL file |
| boolean_operationB | Combine two named bodies (join/cut/intersect) |
| 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. |
| sweepB | Sweep a sketch profile along a path (sketch curve) |
| loftB | Loft between two or more sketch profiles |
| create_polygonB | Draw a regular polygon in the most recent sketch |
| draw_arcB | Draw an arc in the most recent sketch (center + start point + sweep angle) |
| create_holeB | Create a hole feature on a body face |
| rectangular_patternB | Pattern a body in rows and columns |
| circular_patternC | Pattern a body around an axis |
| 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_parameterC | Create a new user parameter |
| set_parameterA | Update the value of an existing user parameter |
| 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. |
| create_construction_planeB | Create a construction plane for sketching |
| create_construction_axisC | Create a construction axis |
| 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. |
| 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. |
| offset_curveB | Offset connected sketch curves by a distance. Direction is determined by the direction_point. |
| trim_curveA | Trim a sketch curve at its intersections. The segment nearest to the given point is removed. |
| extend_curveA | Extend a sketch curve to the nearest intersection. The end nearest to the given point is extended. |
| create_threadA | Add threads to a cylindrical face (cosmetic or modeled) |
| draft_facesB | Add a draft angle to faces of a body (for mold release / injection molding) |
| 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 |
| scale_bodyB | Scale a body uniformly or non-uniformly |
| create_boxC | Create a box primitive (non-parametric via TemporaryBRepManager) |
| 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. |
| create_cylinderC | Create a cylinder primitive (non-parametric via TemporaryBRepManager) |
| create_sphereB | Create a sphere primitive (non-parametric via TemporaryBRepManager) |
| create_torusB | Create a torus primitive (non-parametric via TemporaryBRepManager) |
| create_as_built_jointC | Create a joint from components' current positions (easier than geometric joints) |
| create_rigid_groupB | Lock multiple components together |
| measure_distanceB | Measure minimum distance between two entities |
| measure_angleB | Measure angle between two entities |
| get_physical_propertiesB | Get mass, volume, surface area, center of mass, and density of a body |
| create_section_analysisB | Cut a section plane through the model |
| check_interferenceB | Detect collisions between components/bodies |
| 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. |
| project_geometryB | Project edges or bodies onto the active sketch plane |
| suppress_featureB | Suppress (disable) a feature in the timeline |
| unsuppress_featureB | Unsuppress (re-enable) a feature in the timeline |
| patch_surfaceB | Create a patch surface from boundary edges |
| stitch_surfacesB | Stitch surface bodies into a single body |
| thicken_surfaceB | Thicken a surface body into a solid |
| ruled_surfaceB | Create a ruled surface from an edge or sketch curve |
| trim_surfaceB | Trim a surface body with another body |
| create_flangeA | Create a sheet metal flange on an edge |
| create_bendB | Add a bend to a sheet metal body |
| flat_patternB | Create a flat pattern from a sheet metal body |
| unfoldB | Unfold specific bends in a sheet metal body |
| cam_create_setupB | Create a manufacturing setup for a body. Defines the stock, coordinate system, and operation type (milling/turning/cutting). |
| cam_create_operationC | Add a machining operation to a setup. Strategy determines the toolpath type. |
| cam_generate_toolpathB | Generate toolpaths for a specific operation or all operations in a setup |
| cam_post_processA | 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. |
| start_renderA | Start a raytraced render; poll get_render_status. Jobs die if Fusion exits. Use render_view for previews. |
| get_render_statusA | Poll photorealistic render jobs. Omit job_id for all jobs. Set include_image=true to get the finished PNG base64-encoded so you can visually verify the result. |
| set_scene_environmentC | Adjust render brightness. Unsupported settings are reported. |
| create_drawingB | Create a native drawing from a cloud-saved Design. EXPERIMENTAL preview API; may time out while succeeding. Never blind-retry. |
| fetch_api_docA | Look up official Autodesk API docs and report preview status. Examples: Rendering, DrawingManager.createDrawing. |
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 | Full design tree: bodies, sketches, features, components |
| User Parameters | All user-defined parameters in the design |
TDQS
Scored across 98 tools
Most tools target distinct operations, but several clusters overlap: export vs export_stl/step/f3d, set_appearance vs set_color, split_body vs split_face, render_view vs start_render vs export_view_sheet, and get_scene_info vs get_object_info vs list_components. The individual descriptions clarify boundaries, but with 98 tools an agent faces real misselection risk between these near-neighbors.
The surface is predominantly snake_case verb_noun (create_sketch, get_parameters, set_parameter) with a well-executed cam_ prefix group. Deviations include bare-verb modeling commands (extrude, fillet, sweep, loft), noun-style oddballs (boolean_operation, flat_pattern), and create_polygon breaking the draw_* sketch convention. Largely predictable, but not uniform.
At 98 tools, this nearly doubles the rubric's 50+ threshold for extreme mismatch. While Fusion 360 is a genuinely broad CAD/CAM domain, the surface could be consolidated substantially (e.g., one create_primitive with a type parameter, export as the sole export entry point, fewer measurement tools), making the count far more than an agent can effectively navigate.
Coverage is impressively broad across sketching, solid and surface modeling, sheet metal, CAM, rendering, parameters, measurement, and import/export. Minor gaps exist: no save/open/new document management, no individual body or feature deletion (only delete_all), no mesh-to-solid conversion, and drawing automation is experimental. Core design-to-manufacture workflows are fully covered.