Fusion Native MCP
This server provides a Fusion 360 MCP interface for programmatic CAD/CAM workflows. It can inspect and validate designs, edit components and parameters, create sketches and features (extrude, revolve, sweep, fillet, shell, holes, patterns), manage assemblies (components, joints, BOM), and run CAM operations (create setups, operations, post-process, and poll jobs). It also offers design validation (entity measurements/stale-state checks), export to STEP/F3D/DXF, BOM export, and an arbitrary Python execution hook with operation IDs for safe, retryable mutations.
Controls Autodesk Fusion through its native MCP endpoint, providing tools for mechanical modeling (sketches, extrude, revolve, fillet, etc.), working with existing assemblies, CAM setup and toolpath generation, design inspection, export (STEP, F3D, DXF, BOM), and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fusion Native MCP Extrude the selected sketch profile by 10 mm"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 documentNo 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.ps1The 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 |
|
| Native endpoint; only loopback HTTP URLs are accepted |
|
| 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
List and activate the intended document, then obtain its current creation ID.
Call
fusion_assembly_treeand choose an exact occurrence path, such asModule:1+Pin:1.Call
fusion_component_contextto inspect parameters, geometry, shared instances, and the definition fingerprint.Call
fusion_edit_component_parameterswith those fresh references. Explicitly allow a shared-definition edit only when every listed instance should change.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 -qOffline 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 templateSee 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 toolsfusion_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
Scored across 39 tools
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.
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.
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.
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
Related MCP Connectors
Build and run AI workflows, agents, data tables and 1000+ API integrations from any MCP client.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to inspect and automate Autodesk Fusion 360 through MCP, providing tools for CAD modeling, CAM manufacturing, and document management.-
- AlicenseBqualityBmaintenanceEnables 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.1081MIT
- AlicenseAqualityCmaintenanceEnables 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.15MIT
- AlicenseNot gradedqualityCmaintenanceEnables 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