Fusion 360 MCP Server

by ArchimedesCrypto

397 downloads
Not rated
GitHub

Description

# Fusion 360 MCP Server A Model Context Protocol (MCP) server that interfaces between Cline and Autodesk Fusion 360. This server exposes Fusion 360 toolbar-level commands as callable tools that map directly to Fusion's API. ## 🧠 Overview This project allows Cline to: - Parse…

About

# Fusion 360 MCP Server A Model Context Protocol (MCP) server that interfaces between Cline and Autodesk Fusion 360. This server exposes Fusion 360 toolbar-level commands as callable tools that map directly to Fusion's API. ## 🧠 Overview This project allows Cline to: - Parse natural language prompts (e.g., "Make a box…

Details

Author
ArchimedesCrypto
Downloads
397
Categories
Other

- Exposes Fusion 360 toolbar commands as MCP tools
- Generates ready-to-run Python scripts for Fusion 360
- Supports single-tool and multi-tool sequential calls
- Integrates directly with Cline for natural language modeling
- Tool definitions stored in a configurable JSON registry

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Fusion 360 MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Clone the repository, install dependencies, then run python main.py in the src directory to start the HTTP server (default http://127.0.0.1:8000) or python main.py --mcp for MCP mode. Add the server to Cline’s MCP settings via the provided JSON configuration. Use the /tools, /call_tool, and /call_tools API endpoints to list and invoke tools.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "fusion 360 mcp server": {
            "fusion360-mcp-server": {
                "command": "python",
                "args": [
                    "main.py"
                ]
            }
        }
    }
}

McpServers

{
    "fusion360-mcp-server": {
        "command": "python",
        "args": [
            "main.py"
        ]
    }
}

Fusion 360 MCP Server

A Model Context Protocol (MCP) server that interfaces between Cline and Autodesk Fusion 360. This server exposes Fusion 360 toolbar-level commands as callable tools that map directly to Fusion's API.

🧠 Overview

This project allows Cline to: - Parse natural language prompts (e.g., "Make a box with rounded corners") - Resolve them into Fusion tool actions (e.g., CreateSketch → DrawRectangle → Extrude → Fillet) - Call those tools through this MCP server - Return Python scripts that can be executed in Fusion 360

🛠️ Installation

Prerequisites

- Python 3.9 or higher - Autodesk Fusion 360

Setup

1. Clone this repository: ``bash git clone https://github.com/yourusername/fusion360-mcp-server.git cd fusion360-mcp-server ` 2. Install dependencies: `bash pip install -r requirements.txt `

🚀 Usage

Running the HTTP Server

`bash cd src python main.py ` This will start the FastAPI server at http://127.0.0.1:8000.

Running as an MCP Server

`bash cd src python main.py --mcp ` This will start the server in MCP mode, reading from stdin and writing to stdout.

API Endpoints

-
GET /: Check if the server is running - GET /tools: List all available tools - POST /call_tool: Call a single tool and generate a script - POST /call_tools: Call multiple tools in sequence and generate a script

Example API Calls

List Tools

`bash curl -X GET http://127.0.0.1:8000/tools `

Call a Single Tool

`bash curl -X POST http://127.0.0.1:8000/call_tool \ -H "Content-Type: application/json" \ -d '{ "tool_name": "CreateSketch", "parameters": { "plane": "xy" } }' `

Call Multiple Tools

`bash curl -X POST http://127.0.0.1:8000/call_tools \ -H "Content-Type: application/json" \ -d '{ "tool_calls": [ { "tool_name": "CreateSketch", "parameters": { "plane": "xy" } }, { "tool_name": "DrawRectangle", "parameters": { "width": 10, "depth": 10 } }, { "tool_name": "Extrude", "parameters": { "height": 5 } } ] }' `

📦 Available Tools

The server currently supports the following Fusion 360 tools:

Create

- CreateSketch: Creates a new sketch on a specified plane - DrawRectangle: Draws a rectangle in the active sketch - DrawCircle: Draws a circle in the active sketch - Extrude: Extrudes a profile into a 3D body - Revolve: Revolves a profile around an axis

Modify

- Fillet: Adds a fillet to selected edges - Chamfer: Adds a chamfer to selected edges - Shell: Hollows out a solid body with a specified wall thickness - Combine: Combines two bodies using boolean operations

Export

- ExportBody: Exports a body to a file

🔌 MCP Integration

To use this server with Cline, add it to your MCP settings configuration file:
`json { "mcpServers": { "fusion360": { "command": "python", "args": ["/path/to/fusion360-mcp-server/src/main.py", "--mcp"], "env": {}, "disabled": false, "autoApprove": [] } } } `

🧩 Tool Registry

Tools are defined in
src/tool_registry.json. Each tool has: - name: The name of the tool - description: What the tool does - parameters: The parameters the tool accepts - docs: Link to relevant Fusion API documentation Example tool definition: `json { "name": "Extrude", "description": "Extrudes a profile into a 3D body.", "parameters": { "profile_index": { "type": "integer", "description": "Index of the profile to extrude.", "default": 0 }, "height": { "type": "number", "description": "Height of the extrusion in mm." }, "operation": { "type": "string", "description": "The operation type (e.g., 'new', 'join', 'cut', 'intersect').", "default": "new" } }, "docs": "https://help.autodesk.com/view/fusion360/ENU/?guid=GUID-6D381FCD-22AB-4F08-B4BB-5D3A130189AC" } `

📝 Script Generation

The server generates Fusion 360 Python scripts based on the tool calls. These scripts can be executed in Fusion 360's Script Editor. Example generated script:
`python import adsk.core, adsk.fusion, traceback def run(context): ui = None try: app = adsk.core.Application.get() ui = app.userInterface design = app.activeProduct # Get the active component in the design component = design.rootComponent # Create a new sketch on the xy plane sketches = component.sketches xyPlane = component.xYConstructionPlane sketch = sketches.add(xyPlane) # Draw a rectangle rectangle = sketch.sketchCurves.sketchLines.addTwoPointRectangle( adsk.core.Point3D.create(0, 0, 0), adsk.core.Point3D.create(10, 10, 0) ) # Extrude the profile prof = sketch.profiles.item(0) extrudes = component.features.extrudeFeatures extInput = extrudes.createInput(prof, adsk.fusion.FeatureOperations.NewBodyFeatureOperation) distance = adsk.core.ValueInput.createByReal(5) extInput.setDistanceExtent(False, distance) extrude = extrudes.add(extInput) ui.messageBox('Operation completed successfully') except: if ui: ui.messageBox('Failed:\n{}'.format(traceback.format_exc())) `

🧪 Extending the Server

Adding New Tools

1. Add a new tool definition to
src/tool_registry.json 2. Add a script template to SCRIPT_TEMPLATES in src/script_generator.py 3. Add parameter processing logic to _process_parameters in src/script_generator.py`

📚 Documentation Links

- Fusion 360 API Docs - Python API Class Reference - Feature API - Sketch API

🔄 Future Enhancements

- Session state tracking for context-aware operations - Dynamic tool registration - Automation via socket or file polling - More Fusion commands

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.