Skip to main content
Glama
README.md
# Fusion 360 MCP

Host-local MCP bridge for Autodesk Fusion, maintained for the [agentic product-development workspace](https://github.com/nvsdef/fusion-product-development).

**Experimental prerelease.** This is a derivative of [Faust Machines' MIT-licensed server](https://github.com/faust-machines/fusion360-mcp-server), not an Autodesk product. It adds raytraced rendering and experimental native drawing automation. The agent writes geometry through `execute_code`; this server contains no SLAB build script.

## Requirements

- Windows desktop with Autodesk Fusion installed, licensed, signed in, and usable interactively.
- Python 3.11+, Git, and [uv](https://docs.astral.sh/uv/getting-started/installation/).
- A local MCP client (Hermes or another client with stdio support).
- Network access for dependencies, Autodesk cloud saves, and optional API documentation lookup.

## Install

From PowerShell, after reviewing the scripts:

```powershell
git clone https://github.com/nvsdef/fusion360-mcp.git
cd fusion360-mcp
.\setup.ps1
```

Setup uses `uv sync --frozen`, negotiates MCP over stdio, and installs the add-in. **Close Fusion before installation.** An existing different add-in is preserved: setup refuses to replace it unless you pass `-Replace`, which retains a sibling backup. No administrator access, firewall change, or global Python package installation is needed. Do not move the checkout after registering its interpreter path.

Then open Fusion: **Utilities > Scripts and Add-Ins > Add-Ins > Fusion360MCP > Run**. Enable **Run on Startup**, then close the dialog. Autodesk login and this first activation are human steps, not silently automated.

For an isolated install test without touching Fusion's installed add-in:

```powershell
.\setup.ps1 -Target "$env:TEMP\fusion-mcp-test\Fusion360MCP"
```

## Connect your client

Setup prints an absolute-path configuration file (`mcp-client.json`, ignored by Git). The equivalent MCP entry is:

```json
{"mcpServers":{"fusion360":{"command":"C:/path/to/fusion360-mcp/.venv/Scripts/python.exe","args":["-m","fusion360_mcp","--mode","socket"],"env":{"FUSION_MCP_HOST":"127.0.0.1","FUSION_MCP_PORT":"9876"}}}}
```

For Hermes use its MCP setup/consent UI or `hermes mcp add fusion360 --command <python-path> --args -m fusion360_mcp --mode socket`. Select these tools for the product workflow: `ping`, `get_design_type`, `execute_code`, `render_view`, `start_render`, `get_render_status`, `set_scene_environment`, `create_drawing`. Keep GUI calls serialized and set the client tool timeout to **360 seconds**. The connection waits 330 seconds; the add-in bridge waits 300 seconds. Never retry an uncertain mutation automatically.

## Verify

```powershell
uv run python scripts/smoke.py         # MCP protocol/schema test, explicitly mock
uv run python scripts/smoke.py --live  # ping + read-only main-thread scene query
uv run pytest -q
```

The mock test produces no CAD/render artifacts and does not prove live Fusion readiness. The live probe may fail when a Drawing is active: select a Design document first.

## Render and drawing extensions

- `start_render`: defaults to `view='current', fit=False`; preserves deliberate camera framing. Specify an absolute output filename. Poll the returned job ID.
- `get_render_status`: state, path, bytes; elapsed time is submission age, not precise render duration. Jobs die with Fusion. Verify the image file after completion.
- `set_scene_environment`: reports applied and unsupported properties. Do not mistake a wrapper limitation for a missing Fusion capability.
- `create_drawing`: **experimental Autodesk preview API**, cloud-saved Design required. Defaults ISO/A3ISO/no center marks. Can time out while completing. Run it last; independently inspect the native sheets. API availability and Autodesk preview terms must be reviewed before production use.
- `fetch_api_doc`: official Autodesk documentation lookup.
- `export_drawing_pdf` is deliberately not exposed or included: the tested implementation opened a blocking modal.

## Safety and provenance

Read [SECURITY.md](SECURITY.md) and [PROVENANCE.md](PROVENANCE.md). Arbitrary Python runs as your logged-in user inside Fusion. Any local process can reach the unauthenticated add-in socket; never expose it beyond loopback. Save work and use a disposable demo document.

The extension's predecessor completed a SLAB rehearsal on Fusion 2705.1.11. This release combines that extension with newer upstream code. Automated tests do **not** establish that this exact combination works on every Fusion release or clean machine. No production-readiness or zero-error guarantee is made.

## Development

`uv sync --frozen`, `uv run ruff check src/ tests/`, `uv run pytest -q`, `uv build`. Dependencies are locked; upgrade intentionally and rerun tests. The add-in must be installed from the same checkout as the client. Changes do not hot-reload an already running Fusion process. The upstream history and MIT copyright notice are retained.

TDQS

B3/5.0

Scored across 98 tools

Disambiguation3/5

Most tools target distinct operations, but several clusters overlap: export vs export_stl/step/f3d, set_appearance vs set_color, split_body vs split_face, render_view vs start_render vs export_view_sheet, and get_scene_info vs get_object_info vs list_components. The individual descriptions clarify boundaries, but with 98 tools an agent faces real misselection risk between these near-neighbors.

Naming Consistency4/5

The surface is predominantly snake_case verb_noun (create_sketch, get_parameters, set_parameter) with a well-executed cam_ prefix group. Deviations include bare-verb modeling commands (extrude, fillet, sweep, loft), noun-style oddballs (boolean_operation, flat_pattern), and create_polygon breaking the draw_* sketch convention. Largely predictable, but not uniform.

Tool Count1/5

At 98 tools, this nearly doubles the rubric's 50+ threshold for extreme mismatch. While Fusion 360 is a genuinely broad CAD/CAM domain, the surface could be consolidated substantially (e.g., one create_primitive with a type parameter, export as the sole export entry point, fewer measurement tools), making the count far more than an agent can effectively navigate.

Completeness4/5

Coverage is impressively broad across sketching, solid and surface modeling, sheet metal, CAM, rendering, parameters, measurement, and import/export. Minor gaps exist: no save/open/new document management, no individual body or feature deletion (only delete_all), no mesh-to-solid conversion, and drawing automation is experimental. Core design-to-manufacture workflows are fully covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues