self-host-fusion360-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FUSION_MCP_MOCK | No | Run without Fusion. Set to '1' to enable mock mode. | 0 |
| FUSION_ADDIN_URL | No | Where the server reaches the add-in | http://127.0.0.1:9000 |
| FUSION_MCP_TOKEN | No | Shared bearer token (or specify via FUSION_MCP_TOKEN_FILE) | |
| FUSION_MCP_HTTP_HOST | No | HTTP bind host (http transport) | 0.0.0.0 |
| FUSION_MCP_HTTP_PORT | No | HTTP bind port (http transport) | 8765 |
| FUSION_MCP_TRANSPORT | No | Transport method: 'stdio' or 'http' | stdio |
| FUSION_MCP_TOKEN_FILE | No | Path to file containing the shared bearer token | ~/.fusion-mcp/token |
| FUSION_MCP_ALLOW_ARBITRARY_CODE | No | Expose fusion_run_script (risky). Set to '1' to enable. | 0 |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| fusion_new_documentA | Create a new, empty Fusion 360 design document and make it active. Call this first if no design is open. |
| fusion_document_infoA | Summarize the active document: display units and counts of bodies, components, sketches, and parameters. |
| fusion_list_documentsA | List the names of all currently open Fusion documents. |
| fusion_save_documentA | Save the active document. The document must have been saved once interactively in Fusion first (the first save picks a project folder). |
| fusion_list_bodiesA | List all solid/surface bodies with index, name, volume (mm³), and bounding box (mm). Use the index or name to target a body in other tools. |
| fusion_list_componentsA | List all components in the design with their body counts. |
| fusion_list_sketchesA | List sketches with index, name, and number of closed profiles. |
| fusion_bounding_boxA | Get the overall bounding box of the whole design, in millimetres. |
| fusion_summaryA | High-level snapshot of the design: units, counts, and a body list. A good first call to understand the current model. |
| fusion_get_bodyA | Detailed info for one body (by index or name): volume, area, face/edge/ vertex counts, and bounding box. |
| fusion_list_facesA | List a body's faces (index, area mm², is_planar, centroid, normal). Use a planar face's index to sketch/drill on it (fusion_create_sketch_on_face, fusion_hole with on_body/on_face). |
| fusion_physical_propertiesA | Mass (g), volume (mm³), area (mm²), density, and center of mass for a body (by index/name) or the whole design if omitted. |
| fusion_measure_distanceB | Minimum distance in millimetres between two bodies. |
| fusion_measure_angleA | Angle (degrees) between the first faces of two bodies. |
| fusion_interferenceA | Check interference between 2+ bodies (list of indices/names); returns the overlapping volumes (mm³). Use to validate clearances/fits in an assembly. |
| fusion_list_parametersA | List all parameters (user + model) with expression, value, and unit. |
| fusion_get_parameterC | Get one parameter by name. |
| fusion_set_parameterA | Set a parameter's expression, e.g. '25 mm' or 'width * 2'. This is the preferred way to resize an existing parametric model. |
| fusion_create_parameterB | Create a new user parameter (e.g. name='width', expression='40 mm'). |
| fusion_delete_parameterA | Delete a user parameter by name (model parameters cannot be deleted). |
| fusion_create_sketchA | Create an empty sketch on a construction plane (xy/xz/yz). |
| fusion_create_sketch_on_faceA | Create a sketch ON a planar face of a body. Get the face index from fusion_list_faces (is_planar=true). Sketch coordinates are then local to that face. |
| fusion_sketch_rectangleA | Draw a rectangle (mm). mode='corner' treats (x,y) as a corner;
mode='center' treats (x,y) as the center. Creates a new sketch on |
| fusion_sketch_circleA | Draw a circle (mm) by center (x,y) and radius OR diameter. |
| fusion_sketch_lineB | Draw a single line segment from (x1,y1) to (x2,y2), in mm. |
| fusion_sketch_arcA | Draw a 3-point arc (mm): from start (x1,y1), through (x2,y2), to end (x3,y3). Useful as a sweep/revolve path. |
| fusion_sketch_polygonB | Draw a regular polygon (mm) by center, circumradius, and side count (>=3). |
| fusion_sketch_splineB | Draw a spline through points [[x,y],...] (mm). type 'fit_points' or 'control_points' (uses degree). |
| fusion_sketch_constrainB | Add a geometric constraint between sketch entities (by curve index). type: coincident/parallel/perpendicular/tangent/equal/horizontal/vertical/ concentric/collinear/midpoint/symmetry. For coincident/midpoint, entity_one is a sketch-point index. This is the key to robust, editable parametric sketches. |
| fusion_sketch_dimensionA | Add a driving dimension. type: distance/horizontal/vertical/angular/radial/ diameter. value is mm (degrees for angular). Drives parametric sizing. |
| fusion_sketch_offsetB | Offset a sketch curve (by index) by distance mm toward (dir_x, dir_y). |
| fusion_sketch_projectA | Project a body's edges onto a sketch (linked reference geometry). |
| fusion_extrudeB | Extrude a sketch profile by |
| fusion_revolveB | Revolve a sketch profile around axis x/y/z by |
| fusion_filletA | Round edges of a body by |
| fusion_chamferB | Chamfer edges of a body by |
| fusion_shellC | Hollow out a body to a wall |
| fusion_rectangular_patternA | Pattern a body in a line along axis x/y/z: |
| fusion_circular_patternA | Pattern a body around axis x/y/z: |
| fusion_mirrorB | Mirror a body across plane xy/xz/yz. |
| fusion_sweepA | Sweep a profile (from profile_sketch) along the first curve of path_sketch. Draw the path as an open sketch (line/arc/spline) and the profile as a closed sketch, then sweep. |
| fusion_loftA | Loft a smooth solid between profiles taken from a list of sketch indices/ names (>=2), in order. Each sketch should contain one closed profile. |
| fusion_holeA | Drill a circular hole (cut) of |
| fusion_scale_bodyB | Uniformly scale a body by |
| fusion_draftA | Apply draft to faces of a body. angle deg; pull-direction plane xy/xz/yz. faces is a list of face indices (from fusion_list_faces) or omitted for all. |
| fusion_split_bodyB | Split a body by a plane (xy/xz/yz) or by another body (tool_body). |
| fusion_split_faceB | Split faces of a body by a plane (xy/xz/yz). |
| fusion_offset_facesB | Offset faces of a body by distance mm (creates an offset surface body). |
| fusion_threadA | Add a thread to a cylindrical face (face index from fusion_list_faces, the non-planar one). internal=True for a hole; modeled=True for real geometry. |
| fusion_list_featuresA | List timeline features in creation order. |
| fusion_boxA | Create a box (cuboid): width(X) x depth(Y) x height(Z) in mm, centered on
the XY origin and rising in +Z. Auto-creates a document if none is open.
For a cube, pass equal width/depth/height. Pass |
| fusion_cylinderA | Create a cylinder of |
| fusion_sphereA | Create a sphere of |
| fusion_rename_bodyC | Rename a body. |
| fusion_set_body_visibleC | Show or hide a body. |
| fusion_delete_bodyC | Delete a body. Destructive. |
| fusion_move_bodyA | Translate a body by (dx, dy, dz) millimetres. |
| fusion_combineA | Boolean-combine a target body with one or more tool bodies (by index or name). operation: join (union), cut (subtract tools from target), or intersect. Set keep_tools=true to preserve the tool bodies. |
| fusion_offset_planeA | Create a construction plane offset from a base plane (xy/xz/yz) by
|
| fusion_list_appearancesA | List available appearance names (optionally filtered by substring). |
| fusion_set_appearanceA | Apply an appearance (by name) to a body. Use fusion_list_appearances to discover valid names (e.g. 'Steel', 'Aluminum', 'ABS'). |
| fusion_export_stlA | Export to STL (for 3D printing). Optional |
| fusion_export_stepB | Export the whole design to STEP (.step), the best format for CAD interchange. |
| fusion_export_igesA | Export the whole design to IGES (.igs). Note: IGES export is restricted on personal-use Fusion licenses — prefer STEP for CAD interchange. |
| fusion_export_f3dC | Export a native Fusion archive (.f3d), preserving the full design tree. |
| fusion_export_dxfB | Export a sketch to a 2D DXF file (e.g. for laser cutting / drawings). |
| fusion_screenshotB | Capture the active Fusion viewport and return it as a PNG image so you can visually inspect the model. Set fit=False to keep the current camera. |
| fusion_fit_viewA | Zoom/fit the view to show the whole model. |
| fusion_set_viewA | Set a named camera orientation: home/iso/top/bottom/front/back/left/right. |
| fusion_get_unitsB | Get the document's default length unit. |
| fusion_set_unitsA | Set the document's display length unit: mm/cm/m/in/ft. (Note: tool inputs are always in millimetres regardless of this display setting.) |
| fusion_create_componentB | Create a new (empty) component as an occurrence in the design. Build geometry, then joint components together to form an assembly. |
| fusion_list_occurrencesA | List component occurrences: name, grounded, visible, body count. |
| fusion_list_jointsA | List joints (name, type), plus as-built-joint and rigid-group counts. |
| fusion_move_componentB | Translate a component occurrence by (dx, dy, dz) millimetres. |
| fusion_ground_componentC | Ground (lock in place) or unground a component occurrence. |
| fusion_jointA | Create a joint between two components. type: rigid / revolute / slider / cylindrical / planar; axis (x/y/z) is the motion axis. By default it joins at the component origins; pass face_one/face_two (planar face indices on each component's first body) to mate specific faces. |
| fusion_create_flat_patternA | Create a flat pattern from an EXISTING sheet-metal body. Note: Fusion's API cannot create sheet-metal flanges/bends (model those interactively). |
| fusion_as_built_jointB | Create an as-built joint (keeps both components in their current place). |
| fusion_rigid_groupB | Lock 2+ components together as a rigid group (pass a list of names). |
| fusion_cam_list_setupsA | List CAM setups and their operations. Requires the Manufacturing workspace to have been opened once in Fusion. |
| fusion_cam_list_operationsA | List operations in a CAM setup (name, has_toolpath, is_valid). |
| fusion_cam_list_toolsB | List cutting tools from the local tool library (for assigning to operations). |
| fusion_cam_create_setupC | Create a CAM setup around a body. operation_type: milling/turning/cutting. |
| fusion_cam_create_operationA | Add an operation to a setup by |
| fusion_cam_generateA | Generate toolpaths: one |
| fusion_cam_post_processC | Post-process a setup (or one operation) to a G-code file on the host (default ~/fusion-mcp-exports/nc). post_processor is a generic post name. |
| fusion_undoA | Undo the last operation (guards against a parametric->direct design flip). |
| fusion_redoA | Redo the last undone operation. |
| fusion_delete_allA | Delete every timeline feature, clearing the design. Destructive. |
| fusion_suppress_featureB | Suppress a timeline feature by name (from fusion_list_features). |
| fusion_unsuppress_featureB | Unsuppress a timeline feature by name. |
| fusion_surface_thickenB | Thicken a (surface) body's faces into a solid by thickness mm. direction 'positive' or 'symmetric'. |
| fusion_surface_patchC | Patch a closed sketch profile into a surface body. |
| fusion_surface_ruledA | Create a ruled surface from a body edge (by index), extended by distance mm. |
| fusion_surface_stitchB | Stitch surface bodies (list of indices/names) into one, with tolerance mm. |
| fusion_api_introspectA | Inspect the live Fusion API: list a class's (or an object path's) properties
and method signatures. |
| fusion_api_docsA | Get the Autodesk cloudhelp URL for an API class or member (e.g. 'ExtrudeFeatures.createInput'). |
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
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/shimmerjordan/self-host-fusion360-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server