Master Control Program (MCP) server for Autodesk Fusion 360 that enables remote control and automation of Fusion 360 operations.
This project implements a client-server architecture that allows external applications to interact with Fusion 360. The server acts as a bridge between clients and the Fusion 360 API, enabling remote execution of commands and retrieval of model information.
The project consists of three main components:
-
MCP Server (
server.py): A standalone Python server that listens for connections from clients and communicates with Fusion 360. -
MCP Client (
client.py): A Python client library that connects to the MCP server and provides methods for sending commands and receiving responses. -
Fusion 360 Add-in (
fusion360_mcp_addin.py): A Fusion 360 add-in that connects to the MCP server and provides the actual integration with the Fusion 360 API.
-
Clone this repository or copy the files to your desired location.
-
Make sure you have Python 3.6+ installed.
-
No additional Python packages are required for basic functionality as the implementation uses only standard library modules.
-
To enable LLM features, install the optional
openaipackage:pip install openai
- Copy the entire folder containing
fusion360_mcp_addin.py,client.py, and theresourcesdirectory to your Fusion 360 AddIns directory. Ensure theresources/MCPIconfolder contains the required icon files (32x32-normal.pngand16x16-normal.png). - In Fusion 360, open the "Scripts and Add-ins" dialog (press
Shift+Sor find it in the "Design" workspace under "Utilities"). - On the "Add-ins" tab choose Load from my computer ("Load from Device" on some versions) and select this folder. Selecting the folder starts the add-in.
- Click "Run" or enable "Run on Startup" to have it automatically load when Fusion 360 starts.
- Open a command prompt or terminal.
- Navigate to the directory containing the server files.
- Run the server:
python server.py
By default, the server will listen on 127.0.0.1:8080. You can modify the host
and port in the code if needed. Set the OPENAI_API_KEY environment variable if
you plan to use the LLM integration.
- Start Fusion 360 and make sure the MCP add-in is running.
- In Fusion 360, look for the "MCP Controls" panel.
- Click the "Connect to MCP Server" button.
- Enter the server host and port, then click OK.
- If successful, you will see a confirmation message.
You can use the provided client implementation to connect to the server and interact with Fusion 360:
from client import MCPClient
# Create and connect the client
client = MCPClient('127.0.0.1', 8080)
if client.connect():
# Get model information
client.get_model_info()
# Execute a Fusion 360 command
client.execute_fusion_command('create_circle', {
'center': [0, 0, 0],
'radius': 10
})
# Disconnect when done
client.disconnect()The server and clients communicate using a simple JSON-based protocol over TCP sockets. Each message is a JSON object with at least a type field indicating the message type.
fusion_command: Execute a command in Fusion 360get_model_info: Request information about the current modelcommand_result: Response containing the result of a command executionmodel_info: Response containing model informationllm_request: Request text generation from the configured LLMllm_result: Response containing LLM output
You can extend the server and add-in to support additional functionality:
- Add new message types to the protocol
- Implement handlers for these message types in the server
- Add corresponding methods to the client
- Implement the actual functionality in the Fusion 360 add-in
This project is licensed under the MIT License. See the
Contributions are welcome! Please feel free to submit a Pull Request.
- Fusion 360 (2601.1.34)MCP Add-in refuses to install with errors indicating more than one file.
- Create a new add-in (python), edit, copy the fusion360_mcp_addin.py source to the new file, save, open the new file location and copy the client.py and resource folder to that location, restart Fusion 360.