Control Fusion with AI !
This add-in for Autodesk Fusion connects to the Aura Friday MCP-Link server, making Fusion available as a remote tool that AI agents can control. Official Store Link
Click above to watch AI create "Fusion Rocks!" in 3D
- π₯ Pre-injected shortcuts -
app,ui,design,rootComponentavailable immediately in Python - π₯ Cross-operation context - Access objects stored via
store_asfrom Python usingfusion_context - π₯ ValueInput support - Generic API now constructs ValueInput objects automatically
- π₯ Triple documentation sources - Introspection + Online docs + Best practices
- π₯ Rich API docs with samples - Fetch from Autodesk's cloudhelp with code examples
- π₯ Automatic updates - Secure, signature-verified updates without reinstalling
- β Rock-solid stability - All Fusion API calls now execute on main thread
- β Zero crashes - Work queue system prevents threading issues
- β Centralized logging - Thread-safe diagnostics from all components
- β Production ready - Handles heavy loads without instability
AI can now run arbitrary Python code directly inside Fusion with full access to:
- β
Entire Fusion API (
adsk.core,adsk.fusion,adsk.cam) - β All loaded add-ins (access your custom add-ins automatically!)
- β SQLite databases (store and query design data)
- β Browser automation (open documentation, extract data)
- β User popups (show results, get input)
- β 500+ AI models via OpenRouter
- β Local AI models (offline inference)
- β Desktop automation (Windows control)
Example: AI analyzes your AirfoilTools add-in, finds the best airfoil from 1,538 profiles, stores results in SQLite, and shows a popupβall in one command!
A Fusion add-in that gives AI unlimited access to Fusion through three powerful capabilities:
Execute any Fusion API command without custom code:
fusion360.execute({
"api_path": "design.rootComponent.sketches.add",
"args": ["design.rootComponent.xYConstructionPlane"]
})Run arbitrary Python with full Fusion access:
fusion360.execute({
"operation": "execute_python",
"code": """
import adsk.core, adsk.fusion
# Create sketch
sketch = design.rootComponent.sketches.add(design.rootComponent.xYConstructionPlane)
# Store in database
mcp.call('sqlite', {
'input': {'sql': 'INSERT INTO designs (name) VALUES (?)',
'params': [sketch.name]}
})
# Show popup
mcp.call('user', {
'input': {'operation': 'show_popup',
'html': f'<h1>Created {sketch.name}!</h1>'}
})
"""
})Access 10+ built-in tools from Fusion:
- SQLite databases
- Browser automation
- User popups
- Python execution
- AI models (local & cloud)
- Desktop automation
- And more!
AI has access to three complementary documentation sources:
Quick Search (Introspection):
fusion360.execute({
"operation": "get_api_documentation",
"search_term": "ExtrudeFeature",
"category": "class_name"
})Rich Docs with Samples (Online):
fusion360.execute({
"operation": "get_online_documentation",
"class_name": "ExtrudeFeatures",
"member_name": "createInput"
})
# Returns: parameter tables, return types, and 8+ working code samples!Best Practices Guide:
fusion360.execute({
"operation": "get_best_practices"
})
# Returns: coordinate systems, body naming, PTransaction patterns, etc.- β Create parametric sketches with precise dimensions
- β Add text and extrude it to 3D
- β Generate mounting holes, brackets, mechanical parts
- β Execute any Fusion API command
- π₯ Access your custom add-ins - AI discovers and uses ANY loaded add-in
- π₯ Store design data - Save analysis results to SQLite
- π₯ Query databases - Find optimal designs from your data
- π₯ Show results - Display popups with charts, tables, forms
- π₯ Automate workflows - Combine Fusion + database + browser + AI
- π₯ Call AI models - Get design suggestions from 500+ models
- π₯ Rich documentation - Access Autodesk's official docs with code samples
- π₯ Auto-updates - Get new features without reinstalling
# AI analyzes AirfoilTools add-in (15,000+ users!)
# Finds best airfoil from 1,538 profiles
# Stores in SQLite
# Shows results in popup
# All in one Python command!Everything you need. Nothing you don't.
These tools ship with MCP-Link and work immediately. No configuration, no API keys, no setup.
| Tool | Description |
|---|---|
| π Browser | Automate Chrome: read, click, type, navigate, extract data |
| π§ SQLite | Database with semantic search and embeddings |
| π Python | Execute code locally with full MCP tool access |
| π€ OpenRouter | Access 500+ AI models (free and paid) |
| π€ HuggingFace | Run AI models offline (no internet needed) |
| π Context7 | Pull live documentation for any library |
| π₯οΈ Desktop | Control Windows apps (click, type, read) |
| π¬ User | Show HTML popups for forms, confirmations |
| π Remote | Let external systems offer tools (like Fusion!) |
| π Connector | Add any 3rd party MCP tools |
Want more? Add any third-party MCP tools or build your own!
-
Download MCP-Link Server
Get the latest release: https://github.com/AuraFriday/mcp-link-server/releases/tag/latest -
Install the Add-In Official link: https://apps.autodesk.com/FUSION/en/Detail/Index?id=7269770001970905100
2b. Clone This Repository
git clone https://github.com/AuraFriday/Fusion-360-MCP-Server.git2c. Load as Fusion Add-in
- Open Fusion
- Press
Shift+Sto open Scripts and Add-Ins - Click the Add-Ins tab
- Click the green + button next to "My Add-Ins"
- Navigate to the cloned repository folder
- Select the folder and click OK
- Click Run to start the add-in
The add-in auto-connects to the MCP server on startup. Check the TEXT COMMANDS window in Fusion to see connection logs.
# Quick search by class name
fusion360.execute({
"operation": "get_api_documentation",
"search_term": "Sketch",
"category": "class_name",
"max_results": 3
})
# Get rich docs with code samples
fusion360.execute({
"operation": "get_online_documentation",
"class_name": "ExtrudeFeatures",
"member_name": "createInput"
})
# Returns: Full parameter descriptions, return types, and 8 working examples!
# Get best practices guide
fusion360.execute({
"operation": "get_best_practices"
})
# Returns: Coordinate systems, body naming, construction planes, PTransaction patterns# Create a sketch
fusion360.execute({
"api_path": "design.rootComponent.sketches.add",
"args": ["design.rootComponent.xYConstructionPlane"],
"store_as": "my_sketch"
})
# Add a rectangle
fusion360.execute({
"api_path": "$my_sketch.sketchCurves.sketchLines.addTwoPointRectangle",
"args": [
{"type": "Point3D", "x": 0, "y": 0, "z": 0},
{"type": "Point3D", "x": 10, "y": 5, "z": 0}
]
})fusion360.execute({
"operation": "execute_python",
"code": """
import adsk.core, adsk.fusion
# Create mounting plate
sketch = design.rootComponent.sketches.add(design.rootComponent.xYConstructionPlane)
lines = sketch.sketchCurves.sketchLines
lines.addTwoPointRectangle(
adsk.core.Point3D.create(0, 0, 0),
adsk.core.Point3D.create(10, 8, 0)
)
# Add mounting holes
circles = sketch.sketchCurves.sketchCircles
for x, y in [(1, 1), (9, 1), (1, 7), (9, 7)]:
circles.addByCenterRadius(adsk.core.Point3D.create(x, y, 0), 0.25)
# Store in database
mcp.call('sqlite', {
'input': {
'sql': 'INSERT INTO parts (name, holes) VALUES (?, ?)',
'params': [sketch.name, 4],
'database': 'designs.db',
'tool_unlock_token': '29e63eb5'
}
})
print(f'Created {sketch.name} with 4 mounting holes')
"""
})fusion360.execute({
"operation": "execute_python",
"code": """
import sys
# Find loaded add-ins
addins = [name for name in sys.modules.keys() if 'addin' in name.lower()]
print(f'Found {len(addins)} add-ins')
# Access AirfoilTools (if loaded)
if 'AirfoilTools' in str(addins):
airfoil_main = sys.modules['...AirfoilTools_py']
foildb = airfoil_main.foildb2020.Foildb2020()
# Find best airfoil
best = max(foildb, key=lambda x: x['clcd'])
print(f'Best L/D ratio: {best["clcd"]:.2f}')
# Store in database
mcp.call('sqlite', {
'input': {
'sql': 'INSERT INTO airfoils (name, ld_ratio) VALUES (?, ?)',
'params': [best['Foil_fn'], best['clcd']],
'database': 'airfoils.db',
'tool_unlock_token': '29e63eb5'
}
})
"""
})- Add-in loads and connects to local MCP-Link server
- Registers itself as a
fusion360tool via reverse connection - AI sends commands with three operation types:
- Generic API calls (simple operations)
- Python execution (complex workflows)
- MCP tool calls (cross-tool integration)
- Generic handler resolves paths, constructs objects, executes API calls
- Python executor runs code with TRUE INLINE access to Fusion environment
- Results returned to AI with full context and type information
- MCP-Link Server - Routes AI requests to the add-in
- Generic API Handler - Dynamically executes any Fusion API call
- Python Executor (NEW!) - Runs arbitrary Python with full access
- MCP Bridge (NEW!) - Allows Python to call other MCP tools
- Context Manager - Stores intermediate objects for multi-step operations
- Enhanced Reporting - Provides detailed success/error information
- Thread-Safe Proxy (NEW!) - Ensures all Fusion API calls happen on main thread
- Centralized Logger (NEW!) - Thread-safe logging from any component
- Documentation System (NEW!) - Three-tier docs: introspection, online, best practices
- Auto-Updater (NEW!) - Secure, signature-verified automatic updates
"design.rootComponent.sketches.add" # Access via app object
"$sketch.sketchCurves.sketchCircles.addByCenterRadius" # Use stored objects
"adsk.core.Point3D.create" # Full module paths
"adsk.core.ValueInput.createByString" # Static methods{"type": "Point3D", "x": 5, "y": 10, "z": 0} # Construct from dict
{"type": "Vector3D", "x": 1, "y": 0, "z": 0} # 3D vector
{"type": "ValueInput", "value": 2.5} # Real value (cm)
{"type": "ValueInput", "expression": "2.5 cm"} # String expression
{"type": "ObjectCollection"} # Empty collection
"$my_sketch.originPoint" # Reference stored object
0 # Enum as integer"store_as": "my_object" # Store result as $my_object
"$my_object.someMethod" # Use in next command"operation": "execute_python" # Run Python code
"code": "import adsk.core\n..." # Python code string
"session_id": "my_session" # Persistent session
"persistent": true # Variables persist
# Pre-injected variables available in your code:
# - app : adsk.core.Application.get()
# - ui : app.userInterface
# - design : Active design (if document open)
# - rootComponent: design.rootComponent (if document open)
# - fusion_context: Dict of objects stored via store_as
# - mcp : MCP bridge for calling other tools"operation": "call_tool" # Call another MCP tool
"tool_name": "sqlite" # Tool to call
"arguments": {"input": {...}} # Tool arguments"operation": "get_api_documentation" # Search API by introspection
"search_term": "ExtrudeFeature" # What to search for
"category": "class_name" # class_name, member_name, description, all
"max_results": 3 # Limit results
"operation": "get_online_documentation" # Fetch rich docs from Autodesk
"class_name": "ExtrudeFeatures" # Required: class name
"member_name": "createInput" # Optional: method/property name
"operation": "get_best_practices" # Get design guidelinesFusion 360 includes complete electronics design capabilities accessible via API:
Workspaces Available:
- β Schematic Editor - Circuit schematic capture
- β PCB Editor - PCB layout with auto-routing
- β 3D PCB - Visualize PCB in mechanical context
- β Symbol/Footprint editors - Create custom components
Use Cases:
- Design PCBs and mechanical enclosures together
- 3D visualization of PCB in product design
- Export Gerber files for manufacturing
- Component library management
Full manufacturing capabilities with 280+ CAM classes:
Capabilities:
- 2D/3D milling toolpaths
- Turning operations (lathe)
- Additive manufacturing (3D printing)
- Post-processing for CNC machines
- Toolpath simulation
Module: adsk.cam fully accessible via Python
Direct access to 500,000+ industrial components:
Command: InsertMcMasterCarrComponentCommand
Categories:
- Bearings, fasteners, gears, motors
- Pneumatics, hydraulics, electronics
- Raw materials, tools, safety equipment
Limitation: Opens interactive dialog (user must select part)
- Static stress analysis
- Modal analysis (vibration)
- Thermal analysis
- Shape optimization
- Event simulation (drop tests)
- AI-driven design exploration
- Hundreds of design alternatives
- Optimization for weight, strength, manufacturing
- Cloud-based computation
- Natural language to CAD: "Create a mounting bracket with 4 holes"
- Design exploration: "Try 10 variations of this part"
- Parameter optimization: "Find the best dimensions for strength"
- Query databases: "Find the best airfoil for Re=500,000"
- Store analysis: "Save this design's mass and volume"
- Compare designs: "Show me all brackets lighter than 100g"
- Multi-tool workflows: Create design β Store in DB β Show popup
- Access custom add-ins: Use your existing add-ins via AI
- Batch operations: Process 100 designs automatically
- Learn Fusion API through AI guidance
- Interactive tutorials with instant feedback
- Explore aerodynamics with AirfoilTools integration
- AI-driven toolpath generation
- Optimize cutting parameters
- Batch process manufacturing jobs
Scenario: You have the AirfoilTools add-in (15,000+ users) loaded in Fusion.
AI can:
- Discover the add-in automatically
- Access 1,538 airfoil profiles
- Find the best airfoil (L/D ratio: 505.02!)
- Store results in SQLite
- Create geometry in Fusion
- Show results in popup
All without any custom integration code!
See AUTODESK_DEMO_AIRFOILTOOLS.md for the complete demo.
- Quick Start Guide - 10 comprehensive tests
- Python Integration - Full capabilities
- Demo Scripts - Working examples
- AirfoilTools Demo - Real-world integration
- Built with Fusion's native Python API
- Uses Server-Sent Events (SSE) for MCP connection
- JSON-RPC protocol for command execution
- TRUE INLINE Python execution (no sandboxing)
- Zero overhead on Fusion performance
- All operations run locally (no cloud dependencies)
- Auto-reconnection with exponential backoff
- Native messaging protocol for server discovery
- Main Thread Execution: All Fusion API calls execute on Fusion's main UI thread
- Work Queue System: Background threads queue work items for safe main thread processing
- Custom Event Handler: Uses Fusion's
CustomEventsystem to safely trigger API calls - Centralized Logging: Thread-safe log buffer ensures reliable diagnostics from any thread
- Crash Prevention: Robust architecture prevents crashes even under heavy load
- Three-Tier Approach: Introspection β Online docs β Best practices
- Introspection: Live API search using Python's
inspectmodule - Online Docs: Fetches from Autodesk's cloudhelp with predictable URLs
- Best Practices: Built-in guide covering coordinate systems, body naming, PTransaction patterns
- Rich Content: Parameter tables, return types, and working code samples
- Secure Updates: RSA signature verification ensures authenticity
- Static Loader: Minimal stub that never updates itself
- Safe Overwrites: Updates applied before modules load
- Background Downloads: Non-blocking update checks
- Version Tracking:
VERSION.txtfor reliable version comparison - Platform-Specific: Separate packages for Windows/Mac
- Enum values must be passed as integers (e.g.,
0forNewBodyFeatureOperation) - Some complex objects need specific construction patterns
- Context is lost when add-in is reloaded (working as intended for session isolation)
- Python execution has FULL system access (use responsibly!)
Semantic search integration for auto-documentationβ DONE (Multi-source docs)Auto-update systemβ DONE (Secure signature-verified updates)- Batch operation optimization
- Extended enum handling
- More intuitive object construction patterns
- Script library for common operations
- Visual workflow builder
- Electronics design automation (PCB layout, schematic capture)
- CAM toolpath generation via AI
Want to contribute? PRs welcome! This is the future of AI-powered CAD.
- Add example workflows
- Improve error messages
- Create tutorial videos
- Test with different add-ins
- Build integration with other CAD tools
Proprietary - See LICENSE file for details
Created by AuraFriday
With 15,000+ users trusting previous Fusion add-ins
- MCP-Link Server: https://github.com/AuraFriday/mcp-link-server
- Offical Store Add-in: https://apps.autodesk.com/FUSION/en/Detail/Index?id=7269770001970905100
- Model Context Protocol: https://modelcontextprotocol.io
- Fusion API: https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-A92A4B10-3781-4925-94C6-47DA85A4F65A
Q: Does this work with my existing add-ins?
A: Yes! AI can discover and use ANY loaded add-in automatically.
Q: Do I need to write custom integration code?
A: No! The generic API handler works with everything.
Q: Can AI access my databases?
A: Yes! Use the SQLite tool to store and query design data.
Q: Is this secure?
A: Python execution has full system access. Only run code you trust.
Q: Does this work offline?
A: Yes! All operations run locally. Optional: use local AI models.
Q: Can I use this with Claude/ChatGPT/etc?
A: Yes! Works with any AI that supports MCP protocol.
Q: Is it stable? Will it crash Fusion?
A: Very stable! Thread-safe architecture ensures all API calls happen on main thread, preventing crashes.
Q: Can I use this in production?
A: Yes! The add-in is production-ready with robust error handling and stability features.
Q: How do updates work?
A: Automatic! The add-in checks for updates in the background and applies them on next restart. All updates are cryptographically signed for security.
Q: Can AI access Fusion's documentation?
A: Yes! Three ways: (1) Live API introspection, (2) Autodesk's official cloudhelp docs with code samples, (3) Built-in best practices guide.
Q: Does this work with electronics design?
A: Yes! Full access to PCB design, schematic capture, 3D PCB visualization, and component libraries.
Q: Can I use this for manufacturing (CAM)?
A: Yes! The adsk.cam module provides 280+ classes for milling, turning, additive manufacturing, and toolpath generation.
If you find this useful, please star the repository and share with the Fusion community!
Questions? Open an issue or check the documentation in docs/
This is the future of AI-powered CAD. π
