inventor-mcp

MCP server for parametric 3D modeling in Autodesk Inventor — drive Inventor with Claude (or any MCP client) in natural language.

Build real parametric parts — flanges, shafts, nuts, brackets, sheet-metal enclosures — by talking to an AI assistant. The server wraps Inventor's COM API with high-level, millimeter-based tools and ships with battle-tested knowledge of Inventor 2026 API quirks that aren't documented anywhere else.

You:    "Build a DIN 934 M16 hex nut with proper conical chamfers"
Claude: creates sketch → hexagon → extrude → tapped M16×2 hole →
        revolve-cut chamfers → done. Fully parametric, dimensioned sketches.

Features

  • 34 MCP tools: sketching, extrude/revolve, native hole features (drilled / tapped / counterbore), fillets, chamfers, circular patterns, sheet metal (Face / Flange / Cut with Flat Pattern support), parameters
  • execute_python power tool — run arbitrary Python against the live COM connection with a persistent namespace (escape hatch for anything not covered by dedicated tools)
  • Auto-reporting — every feature operation returns a volume/topology delta (Hole1 | V 23497 (-503 mm³) | F7 E14), so the AI can self-verify each step
  • Transactions — wrap multi-step builds, roll back everything with one call
  • Hot reload — edit the API wrapper and reload without restarting the MCP client
  • Topology helpers — find edges/faces by coordinates instead of guessing indices
  • Parametric discipline — projected origin points, symmetry constraints, dimensioned sketches that survive parameter changes

Requirements

  • Windows with Autodesk Inventor (developed and tested on Inventor 2026; older versions may need enum adjustments — see docs/inventor-api-notes.md)
  • Python 3.12+
  • pip install "mcp[cli]" pywin32

Installation

  1. Clone this repository:

    git clone https://github.com/NeonGlay/inventor-mcp.git
    
  2. Install dependencies:

    pip install "mcp[cli]" pywin32
    
  3. Register the server with your MCP client. For Claude Code, add to .mcp.json in your project root (see .mcp.json.example):

    {
      "mcpServers": {
        "inventor": {
          "command": "python",
          "args": ["-m", "src.server"],
          "cwd": "C:/path/to/inventor-mcp"
        }
      }
    }
    
  4. Start Inventor, then ask your AI assistant to build something.

Do NOT use win32com.client.gencache.EnsureDispatch in your own scripts against the same Python install — the generated gen_py cache breaks GetActiveObject. If it happens: delete %LOCALAPPDATA%\Temp\gen_py. See the API notes for the full story.

Skills (optional, recommended)

The skills/ directory contains two Agent Skills that teach Claude the workflow and the Inventor 2026 API quirks:

  • inventor-modeling — core patterns: units, sketch discipline, hole placement, sheet metal, diagnostic verification, common failure modes
  • inventor-din-parts — parametric recipes for DIN/ISO standard parts (hex nuts DIN 934, bolts DIN 933, washers DIN 125, flanges DIN 2573) with dimension tables

Install by copying into your skills directory:

cp -r skills/inventor-modeling ~/.claude/skills/
cp -r skills/inventor-din-parts ~/.claude/skills/

Why this exists

Inventor's COM API documentation is wrong or silent about many things in recent versions. This project encodes empirically verified knowledge:

  • Correct Inventor 2026 enum values (kPartDocumentObject = 12290, dimension orientation 19201/19202/19203, …)
  • ChamferFeatures.AddUsingDistance(EdgeCollection, d) — the 2026 replacement for the removed CreateChamferDefinition
  • Sheet-metal FlangeDefinition: the Distance argument is silently ignored; the real height is set via feature.Definition.HeightExtent.Distance.Expression (and the angle is in radians — pass 90 and you get 5156°)
  • CreateLinearPlacementDefinition requires a BiasPoint argument that dynamic dispatch won't tell you about
  • Edge indices renumber after every feature; fillets shift adjacent edges
  • …and more in docs/inventor-api-notes.md

Architecture

src/server.py        FastMCP server — tool definitions (stdio transport)
src/inventor_api.py  InventorConnection — COM wrapper, all geometry logic (mm units)
skills/              Agent Skills for Claude
docs/                Hard-won API knowledge

Contributing

Contributions welcome! Especially valuable:

  • Testing on Inventor 2024/2025 (enum values may differ — please report)
  • Assembly (IAM) and drawing (IDW) support
  • More DIN/ISO part recipes
  • Bug reports with the exact COM error and Inventor version

License

MIT — see LICENSE.