Connects Claude to a live Fusion 360 session via two MCP tools:
fusion_execute— run any Python script inside Fusion with fulladsk.*API accessfusion_screenshot— capture the active viewport as a PNG for visual verification
Claude ←→ MCP Server (Python) ←→ Fusion Add-in (HTTP) ←→ Fusion 360 API
The bridge is intentionally minimal — a thin connection layer. All Fusion API knowledge lives in CLAUDE.md, which Claude reads automatically at the start of every session.
| Requirement | Notes |
|---|---|
| Fusion 360 | Free personal licence is sufficient |
| Claude (Code or desktop) | See installation options below |
| Python 3.9+ | macOS 12+ built-in; brew install python otherwise. Windows: python.org or winget install Python.Python.3 |
Claude Code (CLI) — pick one:
# Homebrew (recommended on macOS)
brew install --cask claude-code
# npm
npm install -g @anthropic-ai/claude-code
# Official installer
curl -fsSL https://claude.ai/install.sh | bashNote: Homebrew installs do not auto-update. Run
brew upgrade claude-codeperiodically.
Claude desktop app (GUI): Download and install from claude.ai/download. MCP configuration differs slightly — see Configure the Claude desktop app below.
Clone the repo anywhere you like, then run the one-shot setup script:
git clone https://github.com/ndoo/fusion360-mcp-bridge.git
cd fusion360-mcp-bridge
bash scripts/quickstart-mac.shThe script installs Python dependencies, generates a shared secret token,
copies the add-in into Fusion 360's add-in folder, and patches
~/.claude/settings.json automatically (Claude Code only — desktop app users
see Configure the Claude desktop app).
After it finishes, follow the two manual steps it prints:
- In Fusion 360 — Tools → Add-Ins (
Shift+S) → select FusionMCPBridge → click Run (check Run on Startup to make this permanent). - Restart Claude so the MCP server is picked up.
Clone the repo anywhere you like, then run the setup script from PowerShell:
git clone https://github.com/ndoo/fusion360-mcp-bridge.git
cd fusion360-mcp-bridge
powershell -ExecutionPolicy Bypass -File scripts\quickstart-windows.ps1If you see a "running scripts is disabled" error, either use the
-ExecutionPolicy Bypassflag shown above, or runSet-ExecutionPolicy -Scope CurrentUser RemoteSignedonce.
The script installs Python dependencies (mcp + httpx), generates a shared
secret token, copies the add-in into Fusion 360's add-in folder, and patches
%USERPROFILE%\.claude\settings.json automatically (Claude Code only — desktop
app users see Configure the Claude desktop app).
No elevation/UAC is required — everything writes to user-owned directories.
After it finishes, follow the two manual steps it prints:
- In Fusion 360 — Tools → Add-Ins (
Shift+S) → select FusionMCPBridge → click Run (check Run on Startup to make this permanent). - Restart Claude so the MCP server is picked up.
macOS — virtual environment (recommended with Homebrew Python)
python3 -m venv ~/venv
source ~/venv/bin/activate
pip install -r mcp-server/requirements.txtThe quickstart script and Claude settings will automatically use ~/venv/bin/python3
as the MCP server interpreter when that venv exists.
macOS — user install
pip3 install -r mcp-server/requirements.txt --userWindows — user install
python -m pip install -r mcp-server\requirements.txt --usermacOS
python3 -c "import secrets; print(secrets.token_hex(32))" > ~/.fusion-mcp-secret
chmod 600 ~/.fusion-mcp-secretWindows (PowerShell)
python -c "import secrets; print(secrets.token_hex(32))" |
Set-Content "$HOME\.fusion-mcp-secret"
# Restrict to current user (equivalent of chmod 600, no elevation needed)
$acl = Get-Acl "$HOME\.fusion-mcp-secret"
$acl.SetAccessRuleProtection($true, $false)
$acl.SetAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule(
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name,
"FullControl", "None", "None", "Allow")))
Set-Acl "$HOME\.fusion-mcp-secret" $aclBoth the add-in and MCP server read ~/.fusion-mcp-secret at startup. The
add-in rejects any HTTP request that does not carry a matching Bearer token,
ensuring only the MCP server process (which holds the same file) can call
/execute and /screenshot.
Copy the add-in folder into Fusion's add-in directory:
macOS
cp -r fusion-addin/FusionMCPBridge \
~/Library/Application\ Support/Autodesk/Autodesk\ Fusion\ 360/API/AddIns/Windows
%APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\
Copy the fusion-addin/FusionMCPBridge folder there.
Then in Fusion 360:
- Tools → Add-Ins (or press
Shift+S) - Select FusionMCPBridge under My Add-Ins
- Click Run
- A dialog confirms the bridge started and whether token auth is enabled
To start automatically on every launch, check Run on Startup.
Add the mcpServers block to your Claude settings file (create it if it doesn't exist):
- macOS/Linux:
~/.claude/settings.json - Windows:
%USERPROFILE%\.claude\settings.json
{
"mcpServers": {
"fusion360": {
"command": "python3",
"args": ["/ABSOLUTE/PATH/TO/fusion360-mcp-bridge/mcp-server/server.py"]
}
}
}On Windows, use python instead of python3, and backslash-escaped paths:
{
"mcpServers": {
"fusion360": {
"command": "python",
"args": ["C:\\Users\\you\\fusion360-mcp-bridge\\mcp-server\\server.py"]
}
}
}Replace the path with the absolute path to your clone. Restart Claude Code — the MCP server starts fresh each session.
Open Claude → Settings → Developer → Edit Config and add the same mcpServers block to claude_desktop_config.json:
macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
Windows — %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fusion360": {
"command": "python3",
"args": ["/ABSOLUTE/PATH/TO/fusion360-mcp-bridge/mcp-server/server.py"]
}
}
}Save the file and restart the Claude desktop app.
With Fusion open and the add-in running:
# Health check (requires secret token)
curl -H "Authorization: Bearer $(cat ~/.fusion-mcp-secret)" \
http://localhost:7654/healthOr ask Claude: "Check the Fusion 360 connection status"
| Tool | Description |
|---|---|
fusion_execute |
Run arbitrary Python scripts inside Fusion with full adsk.* API access |
fusion_screenshot |
Capture the active viewport as a base64 PNG |
Create a 50 × 30 × 20 mm box centred on the origin
Make a 6 cm diameter sphere
Show me what's in the active design
Take an isometric screenshot
List all bodies and their volumes
Create a truncated icosahedron (soccer ball) 6 cm across
The add-in binds to 127.0.0.1 only and requires a Bearer token on every
request. The token is stored in ~/.fusion-mcp-secret — permissions are
restricted to the current user only (mode 600 on macOS/Linux; NTFS ACL on
Windows). Any request without a valid token receives a 401 Unauthorized response.
If you see a "WARNING: no secret file" message when the add-in starts, re-run the quickstart script or create the secret file manually (see step 2 above).
The shim has two files that may need updating over time: the Fusion add-in and
CLAUDE.md. The add-in's API surface is intentionally minimal (execute +
screenshot), so it rarely needs changes. CLAUDE.md holds all the scripting
knowledge and can be updated without touching any code.
Read CLAUDE.md in this repo.
Then use fusion_execute to probe the running Fusion instance:
print(adsk.core.Application.get().version)
Check whether any patterns documented in CLAUDE.md produce deprecation warnings
or errors against the current Fusion version. Report findings and update
CLAUDE.md only — no code changes needed.
Autodesk has shipped native MCP support for Fusion 360.
1. Read .mcp.json, mcp-server/server.py, CLAUDE.md, and README.md in this repo.
2. List which of our two tools (fusion_execute, fusion_screenshot) are now
available natively in Autodesk's MCP, and what their tool names/schemas are.
3. For tools now provided natively:
- Update .mcp.json to point at Autodesk's MCP server
- Remove mcp-server/ and fusion-addin/ directories
- Remove scripts/quickstart-mac.sh
4. Update CLAUDE.md:
- Remove workarounds for things now handled natively
- Add any new native tool names or patterns worth knowing
- Keep all Fusion API knowledge (units, revolve rules, TBrepM, etc.) —
it is still valid regardless of the transport layer
5. Update README.md to reflect the simplified setup.
Do not delete CLAUDE.md. The scripting knowledge is transport-independent.
Fusion's Python API must only be called on the main thread. The add-in uses
Fusion's CustomEvent system to marshal every HTTP request from the background
thread onto the main thread, then blocks with a threading.Event until the
result is ready.
Default port is 7654. Override with an environment variable before launching Fusion 360:
# macOS/Linux
export FUSION_MCP_PORT=7655# Windows
$env:FUSION_MCP_PORT = "7655"Pass the same variable to the MCP server via env in your Claude config.
"Cannot connect to Fusion 360"
- Ensure Fusion 360 is open with a design loaded
- Ensure the FusionMCPBridge add-in is running (Tools → Add-Ins)
- Check nothing else is using port 7654:
- macOS/Linux:
lsof -i :7654 - Windows:
netstat -ano | findstr 7654
- macOS/Linux:
"Unauthorized (401)"
- The secret in
~/.fusion-mcp-secretdoesn't match what the add-in loaded at startup - Re-run the quickstart script to regenerate a fresh shared secret, then restart both Fusion and Claude
"No active document"
- Open or create a Fusion design before using the tools
Add-in won't load
- Check Fusion's script console: Tools → Scripts and Add-Ins → Script Console
- The add-in folder must be named exactly
FusionMCPBridgeand contain both.pyand.manifestfiles
MCP server not found by Claude
- Confirm the absolute path in your Claude settings file is correct
- Run
python3 mcp-server/server.pymanually to check for import errors
MIT — see LICENSE.