Skip to main content
Glama
Aaradhya-Dev-Tamrakar

Autodesk Unified MCP Gateway

README.md
# Autodesk Unified MCP Gateway ๐ŸŒ

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![Model Context Protocol](https://img.shields.io/badge/MCP-2024--11--05-emerald.svg)](https://modelcontextprotocol.io/)

A universal, zero-dependency **Model Context Protocol (MCP)** STDIO Gateway that bridges AI assistants (**Google Antigravity**, **Claude Desktop**, **Cursor**, etc.) with the entire Autodesk desktop software ecosystem.

---

## โšก The Architectural Problem & Solution

### The Problem: Port Clashes & Static Config
AI clients configure MCP servers statically with fixed ports. In real-world desktop environments:
- Fixed ports cause collisions when multiple sessions or products run concurrently.
- Re-configuring Claude Desktop every time a CAD application picks a new port is unmaintainable.

### The Solution: Dynamic Ephemeral Registry + Unified STDIO Gateway
1. **Desktop Add-Ins** (Fusion, Maya, Revit, 3ds Max, AutoCAD) bind to OS ephemeral ports (`port = 0`) on boot.
2. They atomically write their active port and process ID to `%LOCALAPPDATA%\AutodeskMCP\registry.json`.
3. This **Gateway** is the **only** server configured in your AI assistant. It reads the local registry in real time, routes commands dynamically to active software, and prunes dead processes automatically.

```
+-------------------------------------------------------------------------+
| AI Assistant / MCP Client (Antigravity, Claude Desktop, Cursor)         |
| Config: python -m autodesk_mcp (via STDIO)                              |
+-----------------------------------+-------------------------------------+
                                    | STDIO (JSON-RPC 2.0)
                                    v
+-------------------------------------------------------------------------+
| autodesk-mcp Gateway                                                    |
|  - Auto-discovers active Autodesk products                              |
|  - Reads: %LOCALAPPDATA%\AutodeskMCP\registry.json                      |
|  - Prunes dead PIDs and probes health endpoints                         |
|  - Routes: fusion_*, maya_*, max_*, revit_*, autocad_*                 |
+------------------+-------------------+--------------------+-------------+
                   |                   |                    |
        HTTP :51280|        HTTP :51281|         HTTP :51282|
                   v                   v                    v
          +-----------------+ +-----------------+ +-----------------+
          | Autodesk Fusion | |  Autodesk Maya  | | Autodesk Revit  |
          |  (CustomEvent)  | | (mainThread)    | | (ExternalEvent) |
          +-----------------+ +-----------------+ +-----------------+
```

---

## ๐Ÿš€ Quick Setup

### 1. Installation
Clone or install the gateway:
```powershell
git clone https://github.com/Aaradhya-Dev-Tamrakar/autodesk-mcp.git
cd autodesk-mcp
pip install -e .
```

### 2. Configure Your AI Assistant

#### Claude Desktop (`%APPDATA%\Claude\claude_desktop_config.json`)
```json
{
  "mcpServers": {
    "autodesk": {
      "command": "python",
      "args": ["-m", "autodesk_mcp"]
    }
  }
}
```

#### Google Antigravity (`~/.gemini/antigravity/mcp/autodesk.json`)
```json
{
  "command": "python",
  "args": ["-m", "autodesk_mcp"],
  "env": {}
}
```

---

## ๐Ÿ› ๏ธ CLI Fleet Diagnostics

Check the status of your Autodesk desktop applications anytime from your terminal:

```powershell
python -m autodesk_mcp --status
```

Output:
```text
=== Autodesk Desktop MCP Fleet Status ===
Registry Location: C:\Users\Aaradhya\AppData\Local\AutodeskMCP\registry.json

[ONLINE (Healthy)] Autodesk Fusion
  โ€ข Port: 51280 (PID: 8812)
  โ€ข Endpoint: http://127.0.0.1:51280/mcp

[OFFLINE] Autodesk Maya (Not running)
[OFFLINE] Autodesk 3ds Max (Not running)
[OFFLINE] Autodesk Revit (Not running)
[OFFLINE] Autodesk AutoCAD & Civil 3D (Not running)
```

---

## ๐Ÿ“ฆ Dedicated Product Repositories

Each desktop application has its own dedicated open-source add-in repository:

| Application | Dedicated Repository | Main-Thread Dispatch Pattern |
| :--- | :--- | :--- |
| **Autodesk Fusion** | [Aaradhya-Dev-Tamrakar/fusion360-mcp](https://github.com/Aaradhya-Dev-Tamrakar/fusion360-mcp) | `CustomEventHandler` |
| **Autodesk Maya** | [Aaradhya-Dev-Tamrakar/maya-mcp](https://github.com/Aaradhya-Dev-Tamrakar/maya-mcp) | `maya.utils.executeInMainThreadWithResult` |
| **Autodesk 3ds Max** | [Aaradhya-Dev-Tamrakar/3dsmax-mcp](https://github.com/Aaradhya-Dev-Tamrakar/3dsmax-mcp) | PySide `QTimer` + `pymxs` |
| **Autodesk Revit** | [Aaradhya-Dev-Tamrakar/revit-mcp](https://github.com/Aaradhya-Dev-Tamrakar/revit-mcp) | .NET 8 `IExternalEventHandler` |
| **Autodesk AutoCAD** | [Aaradhya-Dev-Tamrakar/autocad-mcp](https://github.com/Aaradhya-Dev-Tamrakar/autocad-mcp) | .NET 8 `LockDocument` |

---

## ๐Ÿงช Testing & Verification

Run the test suite:
```powershell
pytest -v
```

---

## ๐Ÿ“„ License

MIT License © 2026 Aaradhya Dev Tamrakar