Skip to main content
Glama
Fusion Native MCP

Fusion Native MCP

Fusion Native MCP

Control Autodesk Fusion through its native MCP endpoint: mechanical modeling, existing assemblies, and CAM workflows.

Fusion Native MCP connects an MCP-compatible assistant to the Fusion desktop application. It provides 39 tools for inspecting designs, creating features, editing existing components, exporting models, and generating toolpaths. A persistent operation journal tracks writes and prevents blind retries after a disconnect.

Version 0.2.0 · Python 3.11+ · MIT · Windows live-tested

This is an independent community project, not an Autodesk product. It is under active development; tool coverage is not equivalent to complete Fusion API coverage.

Installation guide · Cheat sheet · Quick start · Existing assemblies · Tool reference · Roadmap · Contributing

What it can do

Area

Available workflows

Validation status

Mechanical parts

Constrained rectangle/circle sketches, extrude, revolve, sweep, loft, fillet, chamfer, shell, combine, patterns, holes

Live-tested on generated fixtures

Existing assemblies

Nested occurrence paths, shared-definition discovery, component parameter edits with ownership and stale-state checks

Live-tested, including F3D export/reopen

Assembly creation

Components, instances, as-built joints, BOM and interference

Rigid joint tested; revolute/slider experimental

Inspection and export

Entity queries, parameters, feature health, numerical geometry checks, screenshots, STEP/F3D/DXF

Live-tested; STL experimental

CAM

Tool libraries, milling setup, face operation, asynchronous toolpath generation

Face workflow live-tested

NC and drawings

NC program creation, post-processing, automatic cloud drawings

Implemented, not live-validated

Custom operations

Execute trusted Python through the installed Fusion API

General execution tested; individual scripts require verification

Making one shared instance independent, automatic linked-source editing, CAM simulation, and arbitrary broken-topology repair are not implemented. See the validation record for the tested environment and limits.

Related MCP server: self-host-fusion360-mcp

How it works

MCP-compatible client
    | stdio
Fusion Native MCP (Python)
    | document checks + SQLite operation journal
    | local HTTP
Autodesk Fusion native MCP
    | Fusion Python API
Open Fusion document

No custom Fusion add-in is required. Fusion must be running with its native MCP server enabled. This adapter currently handles JSON HTTP responses; SSE responses are unsupported.

Quick start

For complete client configuration, skill installation, updates, and troubleshooting, follow the installation guide. For everyday prompts and tool sequences, keep the cheat sheet handy.

1. Prepare Fusion

Install Fusion and enable its native MCP server using the Autodesk MCP overview. Keep Fusion open and note its local endpoint. The default used here is http://127.0.0.1:27182/mcp.

You also need Python 3.11 or newer and an MCP client capable of launching a stdio server. Windows is the tested platform; macOS setup and live behavior are not yet validated.

2. Install this checkout

Download or clone this repository, open PowerShell in its root, and run:

./setup.ps1

The script creates .venv, installs the package and test dependencies, and generates mcp-config.json with absolute paths for this checkout. Rerunning it regenerates that local configuration.

For manual installation:

python -m venv .venv
./.venv/Scripts/python.exe -m pip install ".[test]"

3. Connect your MCP client

Import the fusion-native server entry from the generated mcp-config.json into your client's MCP settings. For clients with a different configuration format, use its command, args, and environment values. Restart or reconnect the client after changing its configuration.

The portable configuration example uses placeholder paths; replace them with your checkout's absolute paths. The real configuration stays local and is ignored by Git.

Environment variable

Default

Purpose

FUSION_MCP_ENDPOINT

http://127.0.0.1:27182/mcp

Native endpoint; only loopback HTTP URLs are accepted

FUSION_MCP_STATE_DIR

.fusion-mcp in the working directory

Durable journal; use one shared absolute directory across clients

4. Verify the connection

Ask your client to call fusion_capabilities, fusion_documents, then fusion_inspect. Confirm that the returned document is the one you intend to work on. Tools are discoverable through MCP; full argument schemas are supplied by the server.

An example first prompt:

Inspect the active Fusion design. List its component hierarchy, shared definitions, and unhealthy features. Do not modify it.

For a first modeling task, create a separate design and verify the resulting dimensions and feature health. Example Python scripts demonstrate modeling, rigid assemblies, and CAM inspection. They are scripts for execution inside Fusion, not standalone Python programs.

Working on an existing multi-component document

  1. List and activate the intended document, then obtain its current creation ID.

  2. Call fusion_assembly_tree and choose an exact occurrence path, such as Module:1+Pin:1.

  3. Call fusion_component_context to inspect parameters, geometry, shared instances, and the definition fingerprint.

  4. Call fusion_edit_component_parameters with those fresh references. Explicitly allow a shared-definition edit only when every listed instance should change.

  5. Reinspect the component, validate the design, and check relevant downstream geometry.

An occurrence places a component definition in an assembly. Editing that definition changes every instance. External linked definitions are rejected by the typed editing tools. References must be rediscovered after reopening a document or restarting Fusion. Read the complete existing-model guide for an argument example and recovery behavior.

Execution and recovery

Mutations require an operation ID and a document identity guard. Reusing an ID with the identical request returns its recorded result; changing the request under that ID is rejected. A timeout or ambiguous execution blocks new writes until you inspect Fusion and record recovery with fusion_acknowledge_operation.

Acknowledgement does not undo, cancel, or retry an operation. Keep the journal: deleting it removes duplicate protection. A successful script result is not proof of correct geometry or valid machining output.

fusion_execute_python runs with Fusion's local Python privileges. Its read-only flag guards design changes; it is not a filesystem or operating-system sandbox. Use trusted clients and scripts. See architecture and recovery and security.

Workflow skills

The package includes ten assistant skills for documents, mechanical modeling, existing assemblies, CAM, drawings, advanced geometry, rendering/animation, simulation/generative design, electronics, and custom API/recovery workflows. Each identifies whether it uses typed tools, experimental operations, or capability discovery.

See the skill catalog and installation notes. Skills ship in the source checkout/archive and guide existing tools; they do not add unsupported Fusion capabilities.

Development

Continuing this project in a new agent session? Start with the development handoff for architecture, recorded validation, local setup, known pitfalls, and next priorities.

./.venv/Scripts/python.exe -m pip install -e ".[test]"
./.venv/Scripts/python.exe -m pytest tests -q

Offline tests do not require Fusion. Live scripts are opt-in and can modify documents; read testing before running them. GitHub Actions is configured to run offline tests and package builds on Windows with Python 3.11 and 3.12.

src/fusion_native_mcp/  Protocol adapter, typed tools, and Fusion runtimes
tests/                 Offline tests and explicit live acceptance scripts
examples/              Scripts intended to run inside Fusion
skills/                Self-contained assistant workflow instructions
docs/                  Architecture, existing models, tools, testing, validation
.github/               CI, issue forms, and pull request template

See CONTRIBUTING.md, ROADMAP.md, and CHANGELOG.md. Source distributions include the guides and examples; local journals, credentials, environments, and generated CAD artifacts are excluded.

License and references

Released under the MIT License. Autodesk Fusion and third-party dependencies remain subject to their own terms.

Available Tools

39 tools
fusion_acknowledge_operationA

After inspecting/recovering uncertain effects, record the outcome and unblock later edits.

This neither cancels execution nor undoes changes. Verify that Fusion has finished first.

Inputs: resolution (required), operation_id (required).

fusion_activate_documentA

Activate exactly one already-open document by creation ID. Reject duplicate IDs; never save or close other documents.

Inputs: operation_id (required), target_document_id (required), current_document_id (required).

fusion_active_commandB

Inspect any active command dialog and its current inputs.

Inputs: no named parameters.

fusion_api_docsA

Search the installed Fusion API docs by regular expression, including adsk.cam.

Inputs: search_pattern (required), category, namespace_filter.

fusion_assemblyC

Create/instance components or add rigid, revolute or slider as-built joints with optional motion limits.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_assembly_treeB

Read exact nested occurrence paths, component definitions, repeated-instance counts and external-link flags.

Inputs: document_id (required), limit, offset.

fusion_bomB

Return a flattened component bill of materials and occurrence quantities.

Inputs: document_id (required).

fusion_cam_browse_libraryC

Browse tool/post library folders and asset URLs; omit URL for the Fusion library root.

Inputs: kind (required), document_id (required), url.

fusion_cam_create_nc_programC

Experimental, not yet live-validated: prepare an NC program with a chosen post and empty output folder; does not post-process yet.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_cam_create_operationB

Create a CAM operation with an explicitly selected tool and parameter expressions. Valid toolpaths must be generated and checked separately.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_cam_create_setupA

Activate Manufacture and create a milling setup with relative-box stock and a box-point WCS origin. Machine and fixtures are not automatically selected.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_cam_generateA

Start asynchronous toolpath generation and return a job ID. Poll fusion_cam_job; do not resubmit on timeout.

Inputs: document_id (required), operation_id (required), cam_operation_ids (required).

fusion_cam_inventoryC

Read CAM setups, operations, errors, toolpath validity and NC programs.

Inputs: document_id (required).

fusion_cam_jobA

Poll generation completion and toolpath validity without blocking Fusion's main thread. Jobs become unknown after a Fusion restart.

Inputs: job_id (required), document_id (required).

fusion_cam_parametersB

Inspect installed CAM parameter names and expressions on an operation or setup.

Inputs: cam_id (required), document_id (required), setup.

fusion_cam_post_processC

Experimental, not yet live-validated: post-process the explicitly configured NC program to its empty output folder. Inspect results and machine/post suitability before machining.

Inputs: program_id (required), document_id (required), operation_id (required).

fusion_cam_toolsC

Read tool definitions with fingerprints to detect changes between selection and use.

Inputs: document_id (required), library_url (required), limit, offset.

fusion_capabilitiesA

Discover native tool schemas from the running Fusion installation.

Inputs: no named parameters.

fusion_check_interferenceC

Analyze interference between explicit bodies/occurrences, excluding coincident faces.

Inputs: entities (required), document_id (required).

fusion_component_contextB

Inspect an existing component's native/proxy geometry, model parameters, feature origins, state fingerprint and all affected occurrence paths.

Inputs: document_id (required), occurrence_path (required).

fusion_constrain_sketchA

Apply Fusion AutoConstrain to an existing sketch and report whether it became fully constrained. Geometry may be adjusted.

Inputs: document_id (required), operation_id (required), sketch_token (required), allow_shared_definition_edit.

fusion_create_drawingA

Experimental, not yet live-validated: create an automatic cloud drawing from an already saved design, with configurable standard, sheet and auto-dimensions. Requires the installed Drawing API; may start a cloud job.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_create_featureA

Create extrude/revolve/sweep/loft, fillet/chamfer/shell, booleans, or patterns. Query entity tokens first; supply their owning component. Inspect feature health after edits.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_create_holesC

Create depth-limited simple holes at selected sketch points.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_create_sketchA

Create a dimension-driven rectangle or circle at the component origin, and require full constraint. Returns profile references.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_documentsA

List open documents with creation IDs for explicit activation and edit targeting.

Inputs: no named parameters.

fusion_edit_component_parametersA

Edit only the selected component's existing model parameters. Reject stale state, foreign parameters, external links and unacknowledged repeated instances. Recompute and check new feature errors; return before/after definition states.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_execute_pythonA

Run Python defining run(context) inside Fusion. Supports all installed API namespaces.

Mutations require document id from fusion_inspect and a unique operation_id. Repeat the same id/request to retrieve its prior result without executing again. Exceptions may leave partial changes. Inspect results separately; succeeded means the script returned, not that geometry or machining correctness was verified. Script code is trusted local code, not sandboxed. Use explicit units in scripts.

Inputs: script (required), read_only, operation_id, expected_document_id.

fusion_exportA

Export STEP, STL, F3D archive, sketch DXF, or BOM JSON to a new absolute path. Existing destinations are rejected.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_inspectB

Read active document identity, design counts, parameters, feature health and CAM counts.

Inputs: no named parameters.

fusion_model_overviewA

Read parameter expressions, timeline, feature diagnostics and component structure. For large designs prefer paginated entity queries.

Inputs: document_id (required).

fusion_new_designB

Create a separate unsaved design. Supply the current document ID if one is open; the default requires no open active document.

Inputs: operation_id (required), name, expected_document_id.

fusion_open_archiveA

Open a local F3D/F3Z archive in a new document; preserve other open documents. Reinspect returned document identity before editing.

Inputs: path (required), operation_id (required), expected_document_id.

fusion_operation_statusC

Retrieve persisted operation status without retrying it.

Inputs: operation_id (required).

fusion_query_entitiesA

Discover geometry and re-usable entity tokens. Faces/edges require a body scope; profiles/points/curves require sketch scope. Filters are exact, never choose an ambiguous result silently.

Inputs: query (required), document_id (required).

fusion_recomputeB

Recompute the design and report remaining problems; does not invent replacements for broken references.

Inputs: document_id (required), operation_id (required).

fusion_screenshotC

Capture the current viewport without changing its direction.

Inputs: width, height.

fusion_set_parameterC

Create a user parameter or edit an existing user/model parameter expression, then recompute.

Inputs: spec (required), document_id (required), operation_id (required).

fusion_validate_designB

Report unhealthy features, underconstrained sketches and numeric body checks. This does not certify manufacturability.

Inputs: document_id (required), checks.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.6/5.0

    Scored across 39 tools

    Disambiguation2/5

    While many tools are distinct, several overlap in purpose: fusion_inspect and fusion_model_overview both read design health and parameters; fusion_create_sketch and fusion_constrain_sketch both affect sketches; fusion_cam_inventory and fusion_cam_parameters both inspect CAM data. Additionally, fusion_cam_create_nc_program and fusion_cam_post_process are experimental with unclear boundaries, and fusion_create_feature and fusion_create_holes both create geometry.

    Naming Consistency1/5

    The naming is inconsistent: most tools follow the fusion_verb_noun pattern (e.g., fusion_screenshot, fusion_create_sketch), but there are deviations like fusion_bom and fusion_documents, which are nouns rather than verb-object. Also, fusion_cam_create_setup vs fusion_create_feature mixes 'cam_create' and 'create' prefixes, and fusion_cam_browse_library uses a bare verb 'browse' without a noun suffix, breaking the pattern.

    Tool Count2/5

    With 39 tools, the server is heavily overloaded for a CAD/CAM MCP. The scope is broad (design, CAM, drawings, assembly), but the tool count far exceeds the typical well-scoped MCP, and several experimental tools (fusion_cam_create_nc_program, fusion_cam_post_process, fusion_create_drawing) are not live-validated, padding the count. A more modular design with separate design and CAM servers would be more appropriate.

    Completeness3/5

    The tool set covers core design (sketch, feature, parameters, assembly) and CAM workflows (setup, operation, toolpath generation, NC), but there are notable gaps: no explicit delete/cleanup operations, no direct sketch editing beyond auto-constrain, no material specification, and no inspection tools for assembly constraints beyond creation. Experimental tools like drawing creation lack verification steps, leaving dead ends in workflows.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to inspect and automate Autodesk Fusion 360 through MCP, providing tools for CAD modeling, CAM manufacturing, and document management.
      -
    • A
      license
      B
      quality
      B
      maintenance
      Enables any MCP client to drive Autodesk Fusion 360 locally, with ~100 tools for modeling, assemblies, CAM, inspection, and verification, plus enhanced component targeting and explicit thread creation.
      108
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables controlling Autodesk Fusion 360 from any MCP-compatible AI client through natural language. Exposes tools for creating sketches, drawing rectangles and circles, extruding, revolving, filleting, shelling, drilling holes and bolt-circle patterns, managing user parameters, and exporting STEP/STL files, plus batch generation of parametric variants.
      15
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP-compatible coding agents to inspect and automate Autodesk Fusion designs through a local add-in, with whole-task approval, recovery checkpoints, undoable transactions, and geometry validation.
      Apache 2.0