inventor-mcp-server 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- inventor_mcp_server-0.3.0/LICENSE +21 -0
- inventor_mcp_server-0.3.0/PKG-INFO +183 -0
- inventor_mcp_server-0.3.0/README.md +156 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server/__init__.py +0 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server/__main__.py +4 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server/inventor_api.py +1622 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server/server.py +765 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/PKG-INFO +183 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/SOURCES.txt +13 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/dependency_links.txt +1 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/entry_points.txt +3 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/requires.txt +4 -0
- inventor_mcp_server-0.3.0/inventor_mcp_server.egg-info/top_level.txt +1 -0
- inventor_mcp_server-0.3.0/pyproject.toml +43 -0
- inventor_mcp_server-0.3.0/setup.cfg +4 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 inventor-mcp contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: inventor-mcp-server
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: MCP server for parametric 3D modeling in Autodesk Inventor (parts, sheet metal, assemblies)
|
|
5
|
+
Author: inventor-mcp contributors
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/cenitu/inventor-mcp-server
|
|
8
|
+
Project-URL: Issues, https://github.com/cenitu/inventor-mcp-server/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/cenitu/inventor-mcp-server/blob/main/CHANGELOG.md
|
|
10
|
+
Project-URL: Upstream, https://github.com/NeonGlay/inventor-mcp
|
|
11
|
+
Keywords: mcp,model-context-protocol,autodesk-inventor,cad,sheet-metal,llm
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Manufacturing
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Requires-Python: >=3.12
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: mcp[cli]>=1.0.0
|
|
25
|
+
Requires-Dist: pywin32>=306; sys_platform == "win32"
|
|
26
|
+
Dynamic: license-file
|
|
27
|
+
|
|
28
|
+
# inventor-mcp-server
|
|
29
|
+
|
|
30
|
+
<!-- mcp-name: io.github.cenitu/inventor-mcp-server -->
|
|
31
|
+
|
|
32
|
+
[](https://pypi.org/project/inventor-mcp-server/)
|
|
33
|
+
[](https://github.com/cenitu/inventor-mcp-server/actions/workflows/ci.yml)
|
|
34
|
+
[](LICENSE)
|
|
35
|
+
[](CONTRIBUTING.md)
|
|
36
|
+
|
|
37
|
+
> **Maintained continuation of [NeonGlay/inventor-mcp](https://github.com/NeonGlay/inventor-mcp).**
|
|
38
|
+
> The original repository has had no activity since its initial release (June 2026), and fresh
|
|
39
|
+
> installs there fail on MCP SDK 2.x. This repo carries the full original history plus the fixes
|
|
40
|
+
> and features that were submitted upstream as PRs and never reviewed. If the original author
|
|
41
|
+
> returns, everything here is available to be merged back. See [CHANGELOG.md](CHANGELOG.md).
|
|
42
|
+
|
|
43
|
+
**MCP server for parametric 3D modeling in Autodesk Inventor — drive Inventor with Claude (or any MCP client) in natural language.**
|
|
44
|
+
|
|
45
|
+
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.
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
You: "Build a DIN 934 M16 hex nut with proper conical chamfers"
|
|
49
|
+
Claude: creates sketch → hexagon → extrude → tapped M16×2 hole →
|
|
50
|
+
revolve-cut chamfers → done. Fully parametric, dimensioned sketches.
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Features
|
|
54
|
+
|
|
55
|
+
- **49 MCP tools**: sketching, extrude/revolve, native hole features (drilled / tapped / counterbore), fillets, chamfers, circular patterns, sheet metal (named rules / Face / Flange / Cut with Flat Pattern support), parameters
|
|
56
|
+
- **Assemblies (IAM)**: place components, ground them, constrain by origin geometry (mate / flush / angle) or drop a bolt into a hole with a single Insert constraint
|
|
57
|
+
- **`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)
|
|
58
|
+
- **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
|
|
59
|
+
- **Transactions** — wrap multi-step builds, roll back everything with one call
|
|
60
|
+
- **Hot reload** — edit the API wrapper and reload without restarting the MCP client
|
|
61
|
+
- **Topology helpers** — find edges/faces by coordinates instead of guessing indices
|
|
62
|
+
- **Parametric discipline** — projected origin points, symmetry constraints, dimensioned sketches that survive parameter changes
|
|
63
|
+
|
|
64
|
+
## Requirements
|
|
65
|
+
|
|
66
|
+
- Windows with **Autodesk Inventor** (developed on Inventor 2026, also verified on **Inventor 2027**; older versions may need enum adjustments — see [docs/inventor-api-notes.md](docs/inventor-api-notes.md))
|
|
67
|
+
- **Python 3.12+**
|
|
68
|
+
- `pip install "mcp[cli]" pywin32` — MCP Python SDK **1.x and 2.x** are both supported (2.x renamed `FastMCP` to `MCPServer`; the server detects which is installed)
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
1. Clone this repository:
|
|
73
|
+
```
|
|
74
|
+
git clone https://github.com/cenitu/inventor-mcp-server.git
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
2. Install dependencies:
|
|
78
|
+
```
|
|
79
|
+
pip install "mcp[cli]" pywin32
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
3. Register the server with your MCP client. For Claude Code, add to `.mcp.json` in your project root (see `.mcp.json.example`). Use the **absolute path** to `inventor_mcp_server/server.py`:
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"mcpServers": {
|
|
86
|
+
"inventor": {
|
|
87
|
+
"command": "python",
|
|
88
|
+
"args": ["C:/path/to/inventor-mcp-server/inventor_mcp_server/server.py"]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
> **Don't use `"cwd"` with `-m inventor_mcp_server`.** Claude Code ignores `cwd` and starts the server from
|
|
95
|
+
> your project root, where the package can't be found — the process exits immediately and the client only
|
|
96
|
+
> reports `Connection closed`. Pointing at the script by absolute path works from any directory.
|
|
97
|
+
|
|
98
|
+
> Configs written for 0.2.x that point at `src/server.py` still work — that file now forwards to the
|
|
99
|
+
> `inventor_mcp_server` package — but please update them; the shim will be removed in a later release.
|
|
100
|
+
|
|
101
|
+
**Alternatively, install it as a package** — no clone needed, and the config gets a plain command:
|
|
102
|
+
```
|
|
103
|
+
pip install git+https://github.com/cenitu/inventor-mcp-server.git
|
|
104
|
+
```
|
|
105
|
+
```json
|
|
106
|
+
{ "mcpServers": { "inventor": { "command": "inventor-mcp-server" } } }
|
|
107
|
+
```
|
|
108
|
+
(If your MCP client can't find the command, use the full path printed by `where inventor-mcp-server`.)
|
|
109
|
+
|
|
110
|
+
4. Restart the MCP client (MCP servers load at session start), start Inventor, then ask your AI assistant to build something.
|
|
111
|
+
|
|
112
|
+
> **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.
|
|
113
|
+
|
|
114
|
+
## Smoke test
|
|
115
|
+
|
|
116
|
+
`tests/smoke_test.py` exercises every geometry-creating code path once against a live
|
|
117
|
+
Inventor and reports PASS/FAIL per step — the quickest way to qualify a new Inventor
|
|
118
|
+
release or verify your install:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
python tests/smoke_test.py # starts Inventor if needed; closes only the docs it created
|
|
122
|
+
python tests/smoke_test.py --keep # leave the test documents open for inspection
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
It also checks every hard-coded enum constant against the live COM type library, so a
|
|
126
|
+
renumbered enum in a future release shows up as a named failure instead of a cryptic
|
|
127
|
+
COM error. Exit code = number of failed steps.
|
|
128
|
+
|
|
129
|
+
Current results: **61/61 pass on Inventor 2027 and 2027.1** (Python 3.12, mcp 2.0).
|
|
130
|
+
|
|
131
|
+
`tests/assembly_smoke_test.py` does the same for the assembly tools — it builds a
|
|
132
|
+
plate and a pin on disk, places them, and exercises mate / flush / angle / insert
|
|
133
|
+
constraints (29/29 pass on Inventor 2027).
|
|
134
|
+
|
|
135
|
+
## Skills (optional, recommended)
|
|
136
|
+
|
|
137
|
+
The `skills/` directory contains two [Agent Skills](https://code.claude.com/docs/en/skills) that teach Claude the workflow and the Inventor 2026 API quirks:
|
|
138
|
+
|
|
139
|
+
- **inventor-modeling** — core patterns: units, sketch discipline, hole placement, sheet metal, diagnostic verification, common failure modes
|
|
140
|
+
- **inventor-din-parts** — parametric recipes for DIN/ISO standard parts (hex nuts DIN 934 / 439, bolts DIN 933, socket head cap screws DIN 912, countersunk screws DIN 7991, washers DIN 125, flanges DIN 2573) with dimension tables
|
|
141
|
+
|
|
142
|
+
Install by copying into your skills directory:
|
|
143
|
+
```
|
|
144
|
+
cp -r skills/inventor-modeling ~/.claude/skills/
|
|
145
|
+
cp -r skills/inventor-din-parts ~/.claude/skills/
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Why this exists
|
|
149
|
+
|
|
150
|
+
Inventor's COM API documentation is wrong or silent about many things in recent versions. This project encodes empirically verified knowledge:
|
|
151
|
+
|
|
152
|
+
- Correct Inventor 2026 enum values (`kPartDocumentObject = 12290`, dimension orientation `19201/19202/19203`, …)
|
|
153
|
+
- `ChamferFeatures.AddUsingDistance(EdgeCollection, d)` — the 2026 replacement for the removed `CreateChamferDefinition`
|
|
154
|
+
- 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°)
|
|
155
|
+
- `CreateLinearPlacementDefinition` requires a `BiasPoint` argument that dynamic dispatch won't tell you about
|
|
156
|
+
- Edge indices renumber after every feature; fillets shift adjacent edges
|
|
157
|
+
- …and more in [docs/inventor-api-notes.md](docs/inventor-api-notes.md)
|
|
158
|
+
|
|
159
|
+
## Architecture
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
inventor_mcp_server/server.py MCP server (FastMCP / MCPServer) — tool definitions (stdio transport)
|
|
163
|
+
inventor_mcp_server/inventor_api.py InventorConnection — COM wrapper, all geometry logic (mm units)
|
|
164
|
+
skills/ Agent Skills for Claude
|
|
165
|
+
docs/ Hard-won API knowledge
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Contributing
|
|
169
|
+
|
|
170
|
+
Contributions welcome — see **[CONTRIBUTING.md](CONTRIBUTING.md)** for setup, the fast
|
|
171
|
+
edit → `reload_api` loop, and how to add a tool. Especially valuable:
|
|
172
|
+
- **Testing on Inventor 2024/2025** — run `tests/smoke_test.py` and file an
|
|
173
|
+
*Inventor version test report* (no code needed)
|
|
174
|
+
- Drawing (IDW) support, and more modeling tools (shell, loft, sweep)
|
|
175
|
+
- More DIN/ISO part recipes
|
|
176
|
+
- Bug reports with the exact COM error and Inventor version
|
|
177
|
+
|
|
178
|
+
Start with a [`good first issue`](https://github.com/cenitu/inventor-mcp-server/labels/good%20first%20issue),
|
|
179
|
+
or ask and share what you built in [Discussions](https://github.com/cenitu/inventor-mcp-server/discussions).
|
|
180
|
+
|
|
181
|
+
## License
|
|
182
|
+
|
|
183
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# inventor-mcp-server
|
|
2
|
+
|
|
3
|
+
<!-- mcp-name: io.github.cenitu/inventor-mcp-server -->
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/inventor-mcp-server/)
|
|
6
|
+
[](https://github.com/cenitu/inventor-mcp-server/actions/workflows/ci.yml)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](CONTRIBUTING.md)
|
|
9
|
+
|
|
10
|
+
> **Maintained continuation of [NeonGlay/inventor-mcp](https://github.com/NeonGlay/inventor-mcp).**
|
|
11
|
+
> The original repository has had no activity since its initial release (June 2026), and fresh
|
|
12
|
+
> installs there fail on MCP SDK 2.x. This repo carries the full original history plus the fixes
|
|
13
|
+
> and features that were submitted upstream as PRs and never reviewed. If the original author
|
|
14
|
+
> returns, everything here is available to be merged back. See [CHANGELOG.md](CHANGELOG.md).
|
|
15
|
+
|
|
16
|
+
**MCP server for parametric 3D modeling in Autodesk Inventor — drive Inventor with Claude (or any MCP client) in natural language.**
|
|
17
|
+
|
|
18
|
+
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.
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
You: "Build a DIN 934 M16 hex nut with proper conical chamfers"
|
|
22
|
+
Claude: creates sketch → hexagon → extrude → tapped M16×2 hole →
|
|
23
|
+
revolve-cut chamfers → done. Fully parametric, dimensioned sketches.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
|
|
28
|
+
- **49 MCP tools**: sketching, extrude/revolve, native hole features (drilled / tapped / counterbore), fillets, chamfers, circular patterns, sheet metal (named rules / Face / Flange / Cut with Flat Pattern support), parameters
|
|
29
|
+
- **Assemblies (IAM)**: place components, ground them, constrain by origin geometry (mate / flush / angle) or drop a bolt into a hole with a single Insert constraint
|
|
30
|
+
- **`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)
|
|
31
|
+
- **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
|
|
32
|
+
- **Transactions** — wrap multi-step builds, roll back everything with one call
|
|
33
|
+
- **Hot reload** — edit the API wrapper and reload without restarting the MCP client
|
|
34
|
+
- **Topology helpers** — find edges/faces by coordinates instead of guessing indices
|
|
35
|
+
- **Parametric discipline** — projected origin points, symmetry constraints, dimensioned sketches that survive parameter changes
|
|
36
|
+
|
|
37
|
+
## Requirements
|
|
38
|
+
|
|
39
|
+
- Windows with **Autodesk Inventor** (developed on Inventor 2026, also verified on **Inventor 2027**; older versions may need enum adjustments — see [docs/inventor-api-notes.md](docs/inventor-api-notes.md))
|
|
40
|
+
- **Python 3.12+**
|
|
41
|
+
- `pip install "mcp[cli]" pywin32` — MCP Python SDK **1.x and 2.x** are both supported (2.x renamed `FastMCP` to `MCPServer`; the server detects which is installed)
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
1. Clone this repository:
|
|
46
|
+
```
|
|
47
|
+
git clone https://github.com/cenitu/inventor-mcp-server.git
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
2. Install dependencies:
|
|
51
|
+
```
|
|
52
|
+
pip install "mcp[cli]" pywin32
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. Register the server with your MCP client. For Claude Code, add to `.mcp.json` in your project root (see `.mcp.json.example`). Use the **absolute path** to `inventor_mcp_server/server.py`:
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"mcpServers": {
|
|
59
|
+
"inventor": {
|
|
60
|
+
"command": "python",
|
|
61
|
+
"args": ["C:/path/to/inventor-mcp-server/inventor_mcp_server/server.py"]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
> **Don't use `"cwd"` with `-m inventor_mcp_server`.** Claude Code ignores `cwd` and starts the server from
|
|
68
|
+
> your project root, where the package can't be found — the process exits immediately and the client only
|
|
69
|
+
> reports `Connection closed`. Pointing at the script by absolute path works from any directory.
|
|
70
|
+
|
|
71
|
+
> Configs written for 0.2.x that point at `src/server.py` still work — that file now forwards to the
|
|
72
|
+
> `inventor_mcp_server` package — but please update them; the shim will be removed in a later release.
|
|
73
|
+
|
|
74
|
+
**Alternatively, install it as a package** — no clone needed, and the config gets a plain command:
|
|
75
|
+
```
|
|
76
|
+
pip install git+https://github.com/cenitu/inventor-mcp-server.git
|
|
77
|
+
```
|
|
78
|
+
```json
|
|
79
|
+
{ "mcpServers": { "inventor": { "command": "inventor-mcp-server" } } }
|
|
80
|
+
```
|
|
81
|
+
(If your MCP client can't find the command, use the full path printed by `where inventor-mcp-server`.)
|
|
82
|
+
|
|
83
|
+
4. Restart the MCP client (MCP servers load at session start), start Inventor, then ask your AI assistant to build something.
|
|
84
|
+
|
|
85
|
+
> **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.
|
|
86
|
+
|
|
87
|
+
## Smoke test
|
|
88
|
+
|
|
89
|
+
`tests/smoke_test.py` exercises every geometry-creating code path once against a live
|
|
90
|
+
Inventor and reports PASS/FAIL per step — the quickest way to qualify a new Inventor
|
|
91
|
+
release or verify your install:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
python tests/smoke_test.py # starts Inventor if needed; closes only the docs it created
|
|
95
|
+
python tests/smoke_test.py --keep # leave the test documents open for inspection
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
It also checks every hard-coded enum constant against the live COM type library, so a
|
|
99
|
+
renumbered enum in a future release shows up as a named failure instead of a cryptic
|
|
100
|
+
COM error. Exit code = number of failed steps.
|
|
101
|
+
|
|
102
|
+
Current results: **61/61 pass on Inventor 2027 and 2027.1** (Python 3.12, mcp 2.0).
|
|
103
|
+
|
|
104
|
+
`tests/assembly_smoke_test.py` does the same for the assembly tools — it builds a
|
|
105
|
+
plate and a pin on disk, places them, and exercises mate / flush / angle / insert
|
|
106
|
+
constraints (29/29 pass on Inventor 2027).
|
|
107
|
+
|
|
108
|
+
## Skills (optional, recommended)
|
|
109
|
+
|
|
110
|
+
The `skills/` directory contains two [Agent Skills](https://code.claude.com/docs/en/skills) that teach Claude the workflow and the Inventor 2026 API quirks:
|
|
111
|
+
|
|
112
|
+
- **inventor-modeling** — core patterns: units, sketch discipline, hole placement, sheet metal, diagnostic verification, common failure modes
|
|
113
|
+
- **inventor-din-parts** — parametric recipes for DIN/ISO standard parts (hex nuts DIN 934 / 439, bolts DIN 933, socket head cap screws DIN 912, countersunk screws DIN 7991, washers DIN 125, flanges DIN 2573) with dimension tables
|
|
114
|
+
|
|
115
|
+
Install by copying into your skills directory:
|
|
116
|
+
```
|
|
117
|
+
cp -r skills/inventor-modeling ~/.claude/skills/
|
|
118
|
+
cp -r skills/inventor-din-parts ~/.claude/skills/
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Why this exists
|
|
122
|
+
|
|
123
|
+
Inventor's COM API documentation is wrong or silent about many things in recent versions. This project encodes empirically verified knowledge:
|
|
124
|
+
|
|
125
|
+
- Correct Inventor 2026 enum values (`kPartDocumentObject = 12290`, dimension orientation `19201/19202/19203`, …)
|
|
126
|
+
- `ChamferFeatures.AddUsingDistance(EdgeCollection, d)` — the 2026 replacement for the removed `CreateChamferDefinition`
|
|
127
|
+
- 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°)
|
|
128
|
+
- `CreateLinearPlacementDefinition` requires a `BiasPoint` argument that dynamic dispatch won't tell you about
|
|
129
|
+
- Edge indices renumber after every feature; fillets shift adjacent edges
|
|
130
|
+
- …and more in [docs/inventor-api-notes.md](docs/inventor-api-notes.md)
|
|
131
|
+
|
|
132
|
+
## Architecture
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
inventor_mcp_server/server.py MCP server (FastMCP / MCPServer) — tool definitions (stdio transport)
|
|
136
|
+
inventor_mcp_server/inventor_api.py InventorConnection — COM wrapper, all geometry logic (mm units)
|
|
137
|
+
skills/ Agent Skills for Claude
|
|
138
|
+
docs/ Hard-won API knowledge
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Contributing
|
|
142
|
+
|
|
143
|
+
Contributions welcome — see **[CONTRIBUTING.md](CONTRIBUTING.md)** for setup, the fast
|
|
144
|
+
edit → `reload_api` loop, and how to add a tool. Especially valuable:
|
|
145
|
+
- **Testing on Inventor 2024/2025** — run `tests/smoke_test.py` and file an
|
|
146
|
+
*Inventor version test report* (no code needed)
|
|
147
|
+
- Drawing (IDW) support, and more modeling tools (shell, loft, sweep)
|
|
148
|
+
- More DIN/ISO part recipes
|
|
149
|
+
- Bug reports with the exact COM error and Inventor version
|
|
150
|
+
|
|
151
|
+
Start with a [`good first issue`](https://github.com/cenitu/inventor-mcp-server/labels/good%20first%20issue),
|
|
152
|
+
or ask and share what you built in [Discussions](https://github.com/cenitu/inventor-mcp-server/discussions).
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
MIT — see [LICENSE](LICENSE).
|
|
File without changes
|