Skip to main content

fusion360-mcp

Lets Claude Code drive Fusion 360: runs Python inside the live session with the full API available — build geometry, read dimensions, walk the timeline.

Leia em português Buy Me A Coffee

result = snapshot()
# doc: bearing.f3d  [mm]  sketches:7  timeline:16
# bodies: 11
#   outer_ring_flanged       173.978 mm3  17x17x4.6  faces:10
#   ball x7                    2.572 mm3  1.7x1.7x1.7  faces:1

Install

uvx fusion360-mcp install

Installs all three pieces: the add-in inside Fusion, the fusion360-api skill in ~/.claude/skills/, and the MCP entry in Claude Code.

Then in Fusion: Utilities → ADD-INS → Add-Ins, select "Claude MCP" and press Run. Tick Run on Startup to skip this next time. The add-in has to be running for the bridge to answer.

uvx fusion360-mcp status      # what is installed where
uvx fusion360-mcp uninstall   # take it back out

Close Fusion before installing — it holds the add-in files open. The installer detects this and tells you rather than corrupting the copy.

Requirements

  • Fusion 360 (Windows or macOS)
  • Claude Code
  • Python 3.9+

No runtime dependencies: the MCP server speaks JSON-RPC using only the standard library.

How it works

Fusion only accepts API calls on its main thread. The add-in runs an HTTP server on a background thread and hands each request to the main thread via a CustomEvent; the HTTP thread blocks until the result comes back.

Claude Code  --stdio-->  server.py  --HTTP:8766-->  add-in  -->  Fusion

Requests carry a bearer token from ~/.claude-fusion-secret, created on first run. Without it any local process could execute Python in your Fusion session.

The tool

fusion_eval takes Python source and returns whatever you assign to result. adsk, app, ui, design and root are pre-bound, plus three helpers:

snapshot() Model state as compact text. Identical bodies collapse into one line, so a 50-instance pattern costs the same as one body.
screenshot(w, h, view) Renders the viewport and returns the image inline. Expensive (~10k tokens) — prefer snapshot() when numbers are what matter.
undo() Reverts the last call that changed the model. One level. A call that raises is rolled back automatically.

The skill

The package also installs the fusion360-api skill, which documents the API's traps — internal units in cm and radians, signatures that vary per feature, material names that follow the UI language. Every section came from a real mistake.

The skill is the part that compounds. Code gets written once; the traps keep being discovered, and each one someone writes down is a trap nobody after them loses an hour to.

Found a trap? Send it back

If the API surprised you, that's worth a PR. A method whose real name differs from the obvious one, a signature that changes per feature, an operation that fails silently, a value that only works in one unit — that is exactly what belongs in the skill, and it's the kind of thing no documentation lists because it only shows up in practice.

The bar is low on purpose. You don't need to fix anything or write well:

  • Two calls are enough — the one that failed and the one that worked. Paste the real fusion_eval output, including the error message; that's what someone will search for when they hit the same wall.
  • Say what you were building. Context separates a general trap from a one-off accident, and it's usually the difference between a note that helps and one that confuses.
  • One PR per finding. Unrelated findings on separate branches review faster and don't block each other.
  • Corrections beat additions. If something in the skill is wrong or went stale, saying so is more valuable than a new section — a skill that describes the tool wrongly is worse than an incomplete one. Put it in the title and it gets reviewed first.

The file is src/fusion360_mcp/skill/SKILL.md; the full rules are at the top of it. It's written in English so contributors anywhere can maintain it.

Not sure it's worth reporting? Open the PR anyway. Deciding is the maintainer's job, and an unreported trap costs the next person the same hour it cost you.

Contributing code

git clone https://github.com/artapo/fusion360-mcp
cd fusion360-mcp
python test_mcp_server.py    # passes whether Fusion is open or closed

The test runs without Fusion installed — it accepts either a live answer or "Cannot reach Fusion". CI runs it on Linux, macOS and Windows.

License

Apache 2.0 — as permissive as MIT, plus an explicit patent grant that protects both users and contributors.

Fusion 360 is a trademark of Autodesk, Inc. This project is not affiliated with or endorsed by Autodesk.

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-0.1.0.tar.gz (95.2 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-0.1.0-py3-none-any.whl (93.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fusion360_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 95.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fusion360_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4e45f860d334444ab92503cca3af06d1b932816cb26d839a88a0b45060c86bc7
MD5 9a280e7018a550af4e46d4ccab0b48ce
BLAKE2b-256 131e7f6cb1a67b04c77c74af589847f33c528491d96de25b61312e325b855be6

See more details on using hashes here.

Provenance

The following attestation bundles were made for fusion360_mcp-0.1.0.tar.gz:

Publisher: publish.yml on artapo/fusion360-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: fusion360_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 93.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fusion360_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 470f4e138d567d798500e555b5bbebf33e0c8e4a313fb5881756d01618db906b
MD5 2667680a542b679bca84a3c1c24fc652
BLAKE2b-256 6408a76b3b2a90f1265a2225c1f3d463671c0c423ca6e2fb4708d39e8d617749

See more details on using hashes here.

Provenance

The following attestation bundles were made for fusion360_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on artapo/fusion360-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page