Autodesk Fusion
Parametric modelling in a live Fusion session, through Fusion's own MCP server.
Kind: App MCP · Document: model.f3d · Install: brew install --cask autodesk-fusion · Override: CXDDIE_FUSION, CXDDIE_FUSION_MCP_URL
Cxddie connects to Fusion's own MCP server and serves the usual CAD session on the workspace's port, so agents get the same tools as everywhere else.
One-time setup
Turn on Fusion's MCP server under Preferences → General → API, or install the Fusion MCP add-in. Fusion has to stay open while agents work. If Fusion isn't running, Start launches it and waits for the server.
Cxddie tries Autodesk's built-in server at http://127.0.0.1:27182/mcp, then the add-in's http://127.0.0.1:9100/. If your Fusion shows a different port, set CXDDIE_FUSION_MCP_URL.
One design per workspace
Every workspace gets its own design in the running Fusion. Cxddie tags it with the workspace's id and makes it active before every call. Workspaces using Fusion take turns, so several agents and a fan-out can share one Fusion safely.
save writes the design to the worktree as a Fusion archive (model.f3d), so Keep this commits and merges it like any other CAD file. An existing .f3d in the repo is opened when the workspace starts.
What agents get
run_code runs a Fusion API Python script in the workspace's design, as one undo step. These are in scope:
adsk(core,fusion),app,uidesign— the workspace'sadsk.fusion.Designroot— its root component
Plain statements are fine. A script that defines run(context) itself also works.
Fusion's other tools, such as its API documentation search, are offered too, as fusion_<tool>.
Conventions agents are told
- Fusion's API works in centimetres. Divide millimetres by 10.
- Prefer parametric features (sketches, extrudes, fillets) on
root, and name them.
sketch = root.sketches.add(root.xYConstructionPlane)
sketch.sketchCurves.sketchLines.addTwoPointRectangle(
adsk.core.Point3D.create(0, 0, 0), adsk.core.Point3D.create(6, 3, 0))
root.features.extrudeFeatures.addSimple(
sketch.profiles.item(0), adsk.core.ValueInput.createByString("6 mm"),
adsk.fusion.FeatureOperations.NewBodyFeatureOperation)Fusion support is new and has been tested against a stand-in server, not yet against every Fusion release. If something doesn't work, please let us know.