SkillAgentSearch skills...

autodesk-fusion-mcp

MCP server that runs inside Autodesk Fusion (formerly Autodesk Fusion 360) as an add-in, letting AI agents drive your CAD session over Streamable HTTP. Zero external dependencies.

Install / Use

claude mcp add frankhommers -- npx -y github:frankhommers/autodesk-fusion-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

74/100

Category

Automation

Supported Platforms

Claude Code
Claude Desktop

Autodesk Fusion MCP Server

Standalone MCP server that runs inside Autodesk Fusion (formerly Autodesk Fusion 360) as an add-in. AI agents connect over Streamable HTTP -- the current MCP transport specification -- with no external proxy, middleware, or dependencies required.

Highlights

  • Streamable HTTP transport -- implements the MCP Streamable HTTP spec natively; no legacy SSE polling or sidecar servers.
  • Protocol negotiation -- speaks the 2025-11-25, 2025-06-18 and 2025-03-26 revisions and agrees on whichever the client asks for.
  • Zero external dependencies -- uses only Python's standard library and the Fusion SDK (adsk.*).
  • Thread-safe bridge -- HTTP requests are relayed to Fusion's main thread via a Custom Event / work-queue dispatcher, preventing crashes.
  • 11 dedicated MCP tools -- each with a clean, focused schema for better LLM tool selection.

Supported Platforms

  • Windows
  • Mac OS

Installation

Option A: Install from release zip (recommended)

  1. Download AutodeskFusionMCP-v*.zip from the Releases page.
  2. Extract the zip into your Fusion add-ins folder:
    • macOS: ~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/
    • Windows: %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\
  3. Make sure the extracted folder is named AutodeskFusionMCP (rename it if the zip extracts to a different name).
  4. Open Fusion, press Shift+S, select the Add-Ins tab, and run AutodeskFusionMCP.
  5. The server listens on http://127.0.0.1:8765/mcp.

Option B: Clone from source

  1. Clone this repository into your Fusion add-ins folder:
    • macOS: ~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/
    • Windows: %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\
  2. Make sure the directory is named AutodeskFusionMCP.
  3. Open Fusion, press Shift+S, select the Add-Ins tab, and run AutodeskFusionMCP.
  4. The server listens on http://127.0.0.1:8765/mcp.

MCP Client Configuration

Add to your MCP client config (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "autodesk-fusion-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:8765/mcp"
    }
  }
}

Tools

| Tool | Description | |---|---| | call_autodesk_api | Execute a generic Fusion API call via dotted path | | execute_python | Run Python code inside the live Fusion session | | capture_viewport | Capture the viewport as a PNG image | | get_active_selection | Get objects currently selected in the viewport | | fetch_api_documentation | Search Fusion API metadata via runtime introspection | | fetch_online_documentation | Fetch Autodesk cloudhelp docs for a class/member | | fetch_design_guide | Read the bundled design guide | | save_script | Save a reusable Python script | | load_script | Load a previously saved script | | list_scripts | List saved scripts with metadata | | delete_script | Delete a saved script |

Generic API example

{
  "api_path": "rootComponent.sketches.add",
  "args": ["rootComponent.xYConstructionPlane"],
  "remember_as": "my_sketch"
}

Path shortcuts: app, ui, design, rootComponent, $stored_name.

Constructors accepted in args: Point3D, Vector3D, Point2D, ValueInput, ObjectCollection, Matrix3D.

Selection example

The get_active_selection tool returns details of objects selected in the viewport and stores them as $selection_0, $selection_1, etc. for use in follow-up API calls.

Architecture

AI agent
  |  Streamable HTTP (POST/GET/DELETE /mcp)
  v
lib/mcp_server.py           -- HTTP server (threading, stdlib only)
  |
fusion_bridge/dispatch.py   -- Custom Event queue relay
  |
fusion_bridge/operations.py -- per-tool routing
  |
fusion_bridge/selection.py  -- viewport selection reader
fusion_bridge/python_exec.py -- Python execution
fusion_bridge/viewport.py   -- viewport capture
fusion_bridge/doc_lookup.py -- API docs introspection
fusion_bridge/script_store.py -- script CRUD
  |
adsk.core / adsk.fusion     -- Fusion 360 SDK (main thread)

Testing

Unit tests

Run the test suite (no Fusion required):

python3 -m unittest discover -s tests

CI runs these tests on every push and pull request via GitHub Actions.

Protocol compliance with MCP Inspector

The official MCP Inspector can verify Streamable HTTP compliance against a running server.

Against the live Fusion add-in (port 8765):

npx @modelcontextprotocol/inspector --cli http://127.0.0.1:8765/mcp --transport http --method tools/list

Against the standalone test server (no Fusion required):

python3 test_server.py                  # starts a dummy server on port 9765
npx @modelcontextprotocol/inspector --cli http://127.0.0.1:9765/mcp --transport http --method tools/list

Reporting Issues

Please report any issues on the Issues page.

Author

Frank Hommers / Initialize

License

This project is licensed under the terms of the MIT license. See LICENSE.

Changelog

  • v 1.3.0

    • fetch_online_documentation returns a preview flag, so an agent can see that a class is preview API before building on it. Autodesk renames these between releases without a deprecation period
    • Design guide: fixed every example, which wrapped its arguments in an operation field that no tool accepts
    • Design guide: new sections on preview APIs and on sheet metal ordering, covering foldFeatures, joinByBendFeatures, cornerClosureFeatures and flat patterns
  • v 1.2.0

    • fetch_online_documentation now understands all three Autodesk help layouts. Property pages contribute property_type, access and property_description; class pages contribute their methods, properties and accessed_from member lists
    • Property syntax lines are recognised (they carry no argument list, and Autodesk leaves the emphasis tag unclosed)
    • Fixed every sample on a page inheriting the first sample's URL
    • Fixed descriptions coming back empty, as Autodesk emits <p class="api">
  • v 1.1.0

    • Negotiate the MCP protocol version instead of always answering 2025-03-26; 2025-11-25 and 2025-06-18 are now supported, which fixes clients refusing to connect (#1)
    • Tolerate the MCP-Protocol-Version request header introduced in 2025-06-18
    • /health now reports supported_protocols
    • Fixed fetch_online_documentation silently dropping the syntax field after Autodesk changed its help markup from <strong> to <b>
    • Per-command execution duration and ISO 8601 timestamps in the log
    • CI now runs on Python 3.14, matching the interpreter Fusion bundles
  • v 1.0.0

    • Initial release
    • 11 dedicated MCP tools with individual schemas
    • Streamable HTTP transport (MCP spec 2025-03-26)
    • Thread-safe main-thread dispatch
    • Viewport selection reader (get_active_selection)
    • Python code execution with persistent sessions
    • API documentation introspection
    • Script management (save/load/list/delete)
    • Zero external dependencies

Related Skills

View on GitHub
GitHub Stars9
CategoryAutomation
Updated22d ago
Forks0

Languages

Python

Security Score

92/100

Audited on Jul 28, 2026

1 low