Fusion360 MCP Server
Last updated: 2026-09-16
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:
- MCP Server (this repo) — Python process that speaks MCP protocol to Claude and forwards commands over TCP
- 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. Install the Fusion 360 Add-in
Quick install (symlink for development):
./scripts/install-addon.sh
Manual install:
# macOS
cp -r addon ~/Library/Application\ Support/Autodesk/Autodesk\ Fusion\ 360/API/AddIns/Fusion360MCP
# Windows (PowerShell)
Copy-Item -Recurse addon "$env:APPDATA\Autodesk\Autodesk Fusion 360\API\AddIns\Fusion360MCP"
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.
2. Connect your MCP client
The MCP server is published on PyPI — no need to clone this repo.
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
{
"mcpServers": {
"fusion360": {
"command": "uvx",
"args": [
"fusion360-mcp-server",
"--mode", "socket"
]
}
}
}
Cross-machine setup (LAN)
If the MCP server and Fusion 360 run on different machines (e.g. MCP server on a Mac Mini, Fusion on a Windows PC), override the bind/connect address via environment variables on both sides.
On the Fusion host (where the add-in runs), bind to all interfaces before starting Fusion:
# Windows
$env:FUSION_MCP_HOST = "0.0.0.0"
# macOS / Linux
export FUSION_MCP_HOST=0.0.0.0
Then start Fusion and run the Fusion360MCP add-in. The log line Server listening on 0.0.0.0:9876 confirms the bind.
On the MCP-server host, point the client at the Fusion host's LAN IP:
# Either via CLI flag
uvx fusion360-mcp-server --mode socket --host 192.168.1.42
# Or via env var (useful in MCP client configs)
FUSION_MCP_HOST=192.168.1.42 uvx fusion360-mcp-server --mode socket
Security note: the TCP socket has no authentication. Only expose it on a trusted LAN — never bind to 0.0.0.0 on a host reachable from the public internet.
3. Verify
Call the ping tool from your client. If it returns {"ok": true, "status": "pong"}, everything is connected.
Uninstalling
- Remove the
fusion360entry from your MCP client config - Stop the add-in in Fusion (Shift+S → Add-Ins → Fusion360MCP → Stop)
- Delete the add-in folder from Fusion's AddIns directory
Available Tools (93)
Tools marked (2026+) require a recent Fusion build — they use APIs introduced in the January–July 2026 releases and are live-tested on Fusion 2705 (arm64).
Scene & Query
Design Type Safety
Sketching
Features
Body Operations
Direct Primitives
Surface Operations
Sheet Metal
Construction Geometry
Assembly
Inspection & Analysis
Appearance
Parameters
Import / Export
CAM / Manufacturing
Code Execution
Perception
MCP Protocol Features
- Tool annotations — each tool is tagged with
readOnlyHint,destructiveHint, andidempotentHintso MCP clients can auto-approve safe operations - Resources —
fusion360://status,fusion360://design,fusion360://parametersfor passive state inspection - Resource templates —
fusion360://body/{name},fusion360://component/{name}for dynamic entity lookup - Prompts —
create-box,model-threaded-bolt,sheet-metal-enclosureworkflow templates - Structured errors — failures carry
isError=Trueplus a stableerror_kind(e.g.BODY_NOT_FOUND,TIMEOUT), contextualhints, and a traceback; infrastructure errors (bridge timeout, unknown command) are classified the same way, not flattened to a generic message - Mock mode —
--mode mockreturns plausible test data without Fusion running (all responses include"mode": "mock")
Development
uv sync --dev # install deps
uv run pytest -v # run tests (363 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.
- Timeouts: the add-in's main-thread bridge times out after 30s and cancels the queued command; the client waits up to 45s so it receives that structured
TIMEOUTerror. Mutation commands are never auto-retried — after a timeout, callget_scene_infoto check whether anything was applied before retrying. - Add-in logs to
~/fusion360mcp.log. - The
undotool includes a design-type safety guard — it checks before/after and auto-redoes if the undo would switch from parametric to direct mode. - Tested on Fusion 2705.1.15 (macOS arm64). Tools marked (2026+) need a build from 2026 or later.
Acknowledgements
Inspired by BlenderMCP — the socket bridge architecture originated there.
Also built on ideas from the existing Fusion 360 MCP ecosystem:
- ArchimedesCrypto/fusion360-mcp-server
- Joe-Spencer/fusion-mcp-server
- JustusBraitinger/FusionMCP
- zkbkb/fusion-mcp
- mycelia1/fusion360-mcp-server
- sockcymbal/autodesk-fusion-mcp-python
License
MIT