app
Fusion - the Fusion 360 Bridge
Public Made by Adomby adom
Drive Autodesk Fusion 360 from the cloud via Adom Bridge: component libraries, IPC package generation, board layout, exports (STEP/Gerbers/BOM/CPL), fast APS cloud search, and parametric modeling.
← Commit history
fusion-mcp-server.mdadded+135@@ -0,0 +1,135 @@+# Autodesk's Fusion MCP server++Autodesk and Anthropic shipped a **Fusion MCP server**: Fusion's own text-to-CAD surface, exposed+over MCP. This bridge proxies it, so an Adom AI running in the cloud can use it.++## Why the bridge has to proxy it++The MCP server is a **local HTTP/JSON-RPC endpoint**:++```+http://127.0.0.1:27182/mcp+```++It binds **loopback on the user's machine** and was designed for Claude Desktop running on that+same machine. An Adom AI runs in a **cloud container** and cannot reach the user's `127.0.0.1` at+all.++The bridge already runs on that machine. So it is exactly the right proxy: these verbs hand a cloud+AI Autodesk's MCP tools without reimplementing any of them.++## Turning it on++It is **off by default**, and there is **no API for the toggle** (verified by enumerating every+attribute on `apiPreferences`). The bridge turns it on for the user by driving the Preferences UI:++```bash+adom-desktop fusion_mcp_enable '{}'+```++which opens Preferences, expands General, selects API, ticks+`Fusion MCP Server (runs locally on this device)`, clicks Apply then OK, and then **verifies the+port is listening** before reporting success.++++Manual path, if you would rather: profile icon (top right) -> Preferences -> General -> API -> tick+the box -> Apply.++> ⛔ **The setting is discarded unless Apply is clicked.** Restarting or killing Fusion with the+> dialog open reverts it, and the port stays closed while the checkbox *looked* right. This is a+> real trap, it cost a debugging cycle here.++See [driving Fusion's preferences](fusion-preferences.md) for the general technique.++## The handshake, which the bridge handles for you++The server speaks MCP **streamable-HTTP**, so a bare POST fails:++```+400 {"error": "Missing MCP-Session-Id header"}+```++You must `initialize`, capture the `MCP-Session-Id` **response header**, send+`notifications/initialized`, then pass that header on every later call. The bridge does all of it+and silently re-establishes a dropped session, so you never see it.++Handshake confirmed live: protocol `2024-11-05`, serverInfo `MCP Server Adapter 1.0.0`.++## The verbs++| verb | what it does |+|---|---|+| `fusion_mcp_status` | is it up? serverInfo + live tool list |+| `fusion_mcp_enable` | turn it on via the Preferences UI, then verify the port |+| `fusion_mcp_tools` | full tool list **with input schemas**, for building a valid call |+| `fusion_mcp_call` | call any tool: `{tool, arguments, timeout}` |+| `fusion_mcp_resources` | list resources, or read one by `uri` |++## What Autodesk exposes++Four tools:++| tool | args | what it does |+|---|---|---|+| `fusion_mcp_read` | `queryType`, `apiCategory`, `filter`, `name`, `operation`, `project`, `direction`, `height`, `antiAliasing` | read geometric properties and data from the active model |+| `fusion_mcp_update` | `featureType` | update the active model |+| `fusion_mcp_execute` | `featureType`, `object` | execute operations in the active model |+| `fusion_mcp_electronics_read` | `entity_type`, `object` | read Electronics design data (schematic, board, library) |++`fusion_mcp_electronics_read` is the interesting one for us. Its `entity_type` covers the whole+EAGLE-derived object model: `electronics.Board`, `electronics.Element`, `electronics.Contact`,+`electronics.ContactRef`, `electronics.Device`, `electronics.DeviceSet`, `electronics.Gate`,+`electronics.Bus`, `electronics.Error` (ERC/DRC), `electronics.Frame`, `electronics.Grid`,+`electronics.Attribute`, `electronics.Dimension`, `electronics.Circle` and more.++Plus resources describing those schemas:++```+resource://mcp.electronics_entity_types+resource://mcp.electronics_schema_board+resource://mcp.electronics_schema_contact+...+```++```bash+adom-desktop fusion_mcp_resources '{}'+adom-desktop fusion_mcp_resources '{"uri":"resource://mcp.electronics_entity_types"}'+```++## Calling a tool++```bash+adom-desktop fusion_mcp_tools '{}' # get the input schemas first+adom-desktop fusion_mcp_call '{"tool":"fusion_mcp_electronics_read",+ "arguments":{"entity_type":"electronics.Element"}}'+```++MCP acts on the **active Fusion document**, so open one first (`fusion_aps_open`). A complaint about+no active document usually means nothing is open, not that the call was malformed.++## MCP tools vs this bridge's verbs++They complement each other; neither replaces the other.++**Prefer a native `fusion_*` verb when one exists.** They are tested here, they carry hints that+teach the calling AI what to do next, they handle the awkward parts (kit-aware BOM counting, the+2-minute sign-in clock, GLB optimization), and they work whether or not the user has enabled MCP or+holds a Fusion subscription.++**Reach for MCP** when you want Autodesk's own text-to-CAD surface: natural-language geometry+creation, feature execution, and the structured Electronics object model, which is richer for+querying a board than anything hand-rolled here.++## Requirements and limits++- **Fusion subscription.** Autodesk gates the MCP server to subscribers.+- **Fusion must be running.** The server lives inside Fusion; if it is not running, the port is+ closed.+- **Loopback only**, hence this proxy.+- The toggle is UI-only, so `fusion_mcp_enable` briefly uses the foreground and says why.++## Sources++- [Fusion MCP server, Autodesk developer blog](https://blog.autodesk.io/fusion-mcp-server/)+- [Bringing Fusion onto Claude for Creative Work, APS blog](https://aps.autodesk.com/blog/bringing-fusion-claude-creative-work)