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 |
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 |
|---|---|
| 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
- 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/shimmerjordan/self-host-fusion360-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server