Skip to main content

MCP server for Autodesk Fusion 360 — bridges Claude to the Fusion360MCP add-in

Project description

Fusion360 MCP Server

Beta — This project is under active development. APIs and tool behavior may change between releases. Use at your own discretion. Feedback and bug reports welcome via GitHub Issues.

MCP server that connects AI coding agents to Autodesk Fusion 360 for CAD automation.

Tested with Claude Code. Works with any MCP-compatible client — OpenCode, Codex, Cursor, or anything that speaks the Model Context Protocol.

How it works

Any MCP Client ←(stdio MCP)→ This Server ←(TCP :9876)→ Fusion360MCP Add-in ←(CustomEvent)→ Fusion Main Thread

Two components:

  1. MCP Server (this repo) — Python process that speaks MCP protocol to Claude and forwards commands over TCP
  2. Fusion360MCP Add-in (installed in Fusion's AddIns folder) — runs inside Fusion 360, executes API calls safely on the main thread

Prerequisites

  • uv (Python package manager)
  • Autodesk Fusion 360
  • An MCP-compatible client (Claude Code, OpenCode, Codex, Cursor, etc.)

Installation

1. Clone the repo

git clone https://github.com/faust-machines/fusion360-mcp-server.git
cd fusion360-mcp-server
uv sync

2. Install the Fusion 360 Add-in

The add-in lives in the Fusion360MCP/ directory at the repo root (or wherever you keep it). Copy it into Fusion's AddIns folder:

macOS:

cp -r Fusion360MCP ~/Library/Application\ Support/Autodesk/Autodesk\ Fusion\ 360/API/AddIns/

Windows (PowerShell):

Copy-Item -Recurse Fusion360MCP "$env:APPDATA\Autodesk\Autodesk Fusion 360\API\AddIns\"

Then start it in Fusion: Shift+S → Add-Ins → Fusion360MCP → Run

You should see [MCP] Server listening on localhost:9876 in the TEXT COMMANDS window.

3. Configure your MCP client

Claude Code

claude mcp add fusion360 -- uvx fusion360-mcp-server --mode socket

Other MCP clients

The server runs over stdio, so any MCP-compatible client can launch it. The command is:

uvx fusion360-mcp-server --mode socket
Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "fusion360": {
      "command": "uvx",
      "args": [
        "fusion360-mcp-server",
        "--mode", "socket"
      ]
    }
  }
}

4. Verify

Call the ping tool from your client. If it returns {"pong": true}, everything is connected.

Uninstalling

  1. Remove the fusion360 entry from your MCP client config
  2. Stop the add-in in Fusion (Shift+S → Add-Ins → Fusion360MCP → Stop)
  3. Delete the add-in folder from Fusion's AddIns directory

Available Tools (80)

Scene & Query

Tool Description
ping Health check (instant, no Fusion API)
get_scene_info Design name, bodies, sketches, features, camera
get_object_info Detailed info about a named body or sketch
list_components List all components in the design

Sketching

Tool Description
create_sketch New sketch on xy/yz/xz plane, optional offset
draw_rectangle Rectangle in most recent sketch
draw_circle Circle in most recent sketch
draw_line Line in most recent sketch
draw_arc Arc (center + start + sweep angle)
draw_spline Fit-point or control-point spline
create_polygon Regular polygon (3–64 sides)
add_constraint Geometric constraint (coincident, parallel, tangent, etc.)
add_dimension Driving dimension (distance, angle, radial, diameter)
offset_curve Offset connected sketch curves
trim_curve Trim at intersections
extend_curve Extend to nearest intersection
project_geometry Project edges/bodies onto sketch plane

Features

Tool Description
extrude Extrude a sketch profile
revolve Revolve a profile around an axis
sweep Sweep a profile along a path
loft Loft between two or more profiles
fillet Round edges (all/top/bottom/vertical)
chamfer Chamfer edges
shell Hollow out a body
mirror Mirror a body across a plane
create_hole Hole feature on a body face
rectangular_pattern Pattern in rows and columns
circular_pattern Pattern around an axis
create_thread Add threads (cosmetic or modeled)
draft_faces Draft/taper faces for mold release
split_body Split a body using a plane
split_face Split faces of a body
offset_faces Push/pull faces by a distance
scale_body Scale uniformly or non-uniformly
suppress_feature Suppress a timeline feature
unsuppress_feature Re-enable a suppressed feature

Body Operations

Tool Description
move_body Translate a body by (x, y, z)
boolean_operation Join/cut/intersect two bodies
delete_all Clear the design
undo Undo last operation

Direct Primitives

Tool Description
create_box Box (via TemporaryBRepManager)
create_cylinder Cylinder
create_sphere Sphere
create_torus Torus

Surface Operations

Tool Description
patch_surface Create a patch surface from boundary edges
stitch_surfaces Stitch surface bodies into one
thicken_surface Thicken a surface into a solid
ruled_surface Ruled surface from an edge
trim_surface Trim a surface with another body

Sheet Metal

Tool Description
create_flange Create a flange on an edge
create_bend Add a bend
flat_pattern Create flat pattern
unfold Unfold specific bends

Construction Geometry

Tool Description
create_construction_plane Offset, angle, midplane, 3-point, tangent
create_construction_axis Two-point, intersection, edge, perpendicular

Assembly

Tool Description
create_component Create a sub-assembly component
add_joint Joint between two components
create_as_built_joint Joint from current positions
create_rigid_group Lock components together

Inspection & Analysis

Tool Description
measure_distance Minimum distance between entities
measure_angle Angle between entities
get_physical_properties Mass, volume, area, center of mass
create_section_analysis Section plane through model
check_interference Detect collisions between components

Appearance

Tool Description
set_appearance Assign material appearance from library

Parameters

Tool Description
get_parameters List all user parameters
create_parameter Create a new parameter
set_parameter Update a parameter value
delete_parameter Remove a parameter

Export

Tool Description
export_stl Export body as STL
export_step Export body as STEP
export_f3d Export design as Fusion archive

CAM / Manufacturing

Tool Description
cam_create_setup Create a manufacturing setup (milling/turning/cutting)
cam_create_operation Add a machining operation (face, contour, adaptive, drilling, etc.)
cam_generate_toolpath Generate toolpaths for operations
cam_post_process Post-process to G-code (fanuc, grbl, haas, etc.)
cam_list_setups List all manufacturing setups
cam_list_operations List operations in a setup
cam_get_operation_info Get operation details (strategy, tool, parameters)

Code Execution

Tool Description
execute_code Run arbitrary Python in Fusion (REPL-style)

MCP Protocol Features

  • Tool annotations — each tool is tagged with readOnlyHint, destructiveHint, and idempotentHint so MCP clients can auto-approve safe operations
  • Resourcesfusion360://status, fusion360://design, fusion360://parameters for passive state inspection
  • Resource templatesfusion360://body/{name}, fusion360://component/{name} for dynamic entity lookup
  • Promptscreate-box, model-threaded-bolt, sheet-metal-enclosure workflow templates
  • Structured errors — tool results include isError=True when the add-in reports failures
  • Mock mode--mode mock returns plausible test data without Fusion running (all responses include "mode": "mock")

Development

uv sync --dev       # install deps
uv run pytest -v    # run tests
uv run ruff check   # lint

Notes

  • All Fusion API units are centimeters (Fusion's internal unit).
  • One operation per tool call. Batching multiple operations crashes the add-in.
  • Commands time out after 30 seconds.
  • Add-in logs to ~/fusion360mcp.log.

Acknowledgements

Inspired by BlenderMCP — the socket bridge architecture originated there.

Also built on ideas from the existing Fusion 360 MCP ecosystem:

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fusion360_mcp_server-0.1.0.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fusion360_mcp_server-0.1.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file fusion360_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: fusion360_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fusion360_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fd648f47d95ce9f46167d4e4009e271b169ef0ad760bf768061444527fd1e5e9
MD5 07da490b0f46bbc91fdfae7a08080290
BLAKE2b-256 14440bed115efdb82fcc6f079cb6b6408506a43ff1d5944ef5cc848cd0a00590

See more details on using hashes here.

File details

Details for the file fusion360_mcp_server-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fusion360_mcp_server-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for fusion360_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1aab72b2a7c4f970993d74b55226438d6a313f7ad4a7853d50cba58392010dd
MD5 01594251b5cce3c406d7c5642079b064
BLAKE2b-256 82ef6c28af85807865329a30c18597ac65a65cf1c0449780db146ab2ddf5696d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page