Autodesk Inventor
PYPI · INVENTOR-MCP-SERVER
Parametric 3D modeling in Autodesk Inventor: sketches, features, sheet metal, assemblies
Available components
Last scanned (1 day ago)
Scores higher than 70% of PyPI servers
Category Design and Media
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to cenitu/inventor-mcp-server). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability56
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 12186 tokens (~213/item across 57 items; 57 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability check failed: the tool surface changed between 0.9.0 and 1.0.1: 53 tool removals, 1 breaking changes, 28 additions. See how to fix → Fail
Tool Coverage77
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 19% of tool parameters carry a description.Partial
- Structured output schemas are declared (98% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_python" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 58 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 3 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- Security disclosure: unverified → fail ▼ functional
- 2 Nov 26 0
- Security disclosure: fail → unverified ▼ functional
- 1 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- Package version: 0.4.0 → 1.0.1 functional
- 31 Oct 26 −16
- Stability: unverified → fail ▼ security
- Malware scan: pass → unverified ▼ security
- Schema quality: 162 → 213 ▼ functional
- Schema quality: 162 → 205 ▼ functional
- Package version: 0.9.0 → 1.0.1 functional
- Package version: 0.9.0 → 1.0.0 functional
- 30 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 29 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 28 Oct 26 +15
- Malware scan: unverified → pass ▲ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed pypi/inventor-mcp-server@1.0.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | cenitu/inventor-mcp-server |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/cenitu/inventor-mcp-server/.github/workflows/publish.yml@refs/tags/v1.0.1 |
| Rekor log index | 3614953532 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:3c7d1bd9c3ffec124b63a2727c925a50c4a7d2b6e929e83748e8c9b4fc68fe88 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | setuptools.build_meta |
Background: Why install scripts are a supply-chain risk →
Dependencies 28 packages
| Packages resolved | 28 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_circular_pattern ~163
Create a circular (rotational) pattern of a feature around a work axis. Ideal for bolt holes around a flange — one hole + add_circular_pattern instead of 8 holes. Args: feature_index: Index of the feature to pattern (from list_features()). count: Number of instances (total including the original). angle: Total span angle in degrees (360 = full circle). axis: Rotation axis — X, Y, or Z (default Z for flanges).
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | – |
| axis | string | – | – |
| count | integer | – | – |
| feature_index | integer | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_corner_round ~106
Round sharp sheet metal corners (Corner Round — carried into the flat pattern). Use on exposed corners people handle, e.g. mounting plate tabs. Args: edge_indices: Comma-separated indices of the short edges through the thickness at the corners. radius: Corner radius in mm.
| Name | Type | Req | Description |
|---|---|---|---|
| edge_indices | string | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| radius | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_flange ~318
Add a Sheet Metal Flange (bent wall) to one or more edges. Real sheet-metal feature (vs Extrude) — supports Flat Pattern unfolding, has proper bend radius, depth ties to Thickness. Put ALL edges of a loop (e.g. the 4 edges of a base panel) in ONE call so the corners are auto-mitered; separate calls leave open corners. The flange bends toward the side of the face the edge belongs to: for an inward flange on a wall, pick the wall's inner-face edge. Args: edge_indices: Comma-separated edge indices (use find_edges to locate). distance: Flange height in mm (default 25 = Inventor default). angle: Bend angle in degrees (default 90 = perpendicular). auto_miter: Miter the corners between the edges (default True). miter_gap: Corner gap expression; "GapSize" = from the sheet metal rule (default). height_datum: "outer" (from outer intersection, default), "inner", "tangent", "outer_ortho" or "inner_ortho".
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | – |
| auto_miter | boolean | – | – |
| distance | number | – | – |
| edge_indices | string | yes | – |
| height_datum | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| miter_gap | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_frame_members ~347
Build a steel frame: structural profiles laid along skeleton lines in the active assembly — what Frame Generator does (it has no API). Each member is a Content Center custom-length part (one file per profile and length, reused), turned so its length runs from start to end. Returns the placements and a saw cut list. Check with capture_view. Args: members: [{"start": [0,0,0], "end": [0,0,2000], "name": "Post_1"}, ...] in mm. Per member, optional: "family", "size", "category" (override the call's), "roll" (degrees, turns the section about its line), "anchor" ("center" = the section's middle on the line, default; "origin" = the profile's own origin), "extend" ([at start, at end] mm, negative to shorten — e.g. to stop at a crossing member). Horizontal members keep their section level; roll 90 turns a U to face sideways. category, family, size: Default profile, as use_content_center lists them, e.g. "Structural Shapes/Channels", "DIN 1026-1", "U 100". folder: Where the member files go (default: project workspace /Content Center Custom).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| family | string | – | – |
| folder | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| members | array | yes | – |
| size | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_hole ~383
Add a native hole feature to the active part (drilled, tapped ISO metric 6H, counterbored). Fails — instead of leaving an empty feature — if no material was removed. Placed one of three ways: - `point` + `direction`: absolute model coordinates, e.g. point=[30,0,12], direction=[0,0,-1] (the way the drill travels). Safest: no sketch axes involved. - `linear`: dimensioned from two edges of a face, associative — preferred for fastener holes: {"face_axis": "Z", "face_value": 20, "ref1_axis": "X", "ref1_value": 0, "dist1": 10, "ref2_axis": "Y", "ref2_value": 0, "dist2": 15}. - `x`, `y`: on the XY plane, drilling into +Z. Args: diameter: mm (thread nominal if tapped, e.g. 5 for M5). depth: mm; 0 = through all. tapped: Thread it. pitch: mm; 0 = standard coarse. cbore_diameter, cbore_depth: Counterbore seat (with linear), e.g. 10 and 5.5 for M5.
| Name | Type | Req | Description |
|---|---|---|---|
| cbore_depth | number | – | – |
| cbore_diameter | number | – | – |
| depth | number | – | – |
| diameter | number | – | – |
| direction | – | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| linear | – | – | – |
| pitch | number | – | – |
| point | – | – | – |
| tapped | boolean | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
add_sheet_metal_face ~140
Create the first flat panel of a sheet metal part from a closed sketch profile; add_flange bends walls from its edges, sheet_metal_cut opens holes in it. Needs a part made with create_document(kind="sheet_metal"). Set the rule first (manage_sheet_metal_rules): the panel takes its thickness from the active rule, so it has none of its own to pass here. Args: sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
capture_view ~347
Look at the model: pictures of the active document, returned as images you can see. Use it to check your work — a flange on the wrong side, a door opening the wrong way, a part floating off the frame — which the numbers alone don't show. Args: views: Comma-separated: iso, iso_left, iso_bottom, front, back, top, bottom, left, right, current (the user's view). E.g. "iso,front,top". width, height: Pixels per picture (keep them modest — each picture costs tokens). background: "inventor" (its gradient) or "white". fit_to: Assembly component paths, ","-separated — zoom to them, keeping each view's direction. isolate: Component paths, ","-separated — show only these (and what is inside them); the others are hidden for the picture. For details buried in an assembly. sketches: Show sketches and work features too (hidden by default; restored after). up: "y" = Inventor's own view names (its default templates have Y up); "z" for a model built with Z up (frames, buildings): front looks along +Y, top down -Z.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string | – | – |
| fit_to | string | – | – |
| height | integer | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| isolate | string | – | – |
| sketches | boolean | – | – |
| up | string | – | – |
| views | string | – | – |
| width | integer | – | – |
No output schema declared.
No examples provided.
chamfer ~152
Add an equal-distance chamfer to edges of the active part's first body. For rounded edges use fillet; on sheet metal corners, add_corner_round. Give ALL edges in one call: edge numbers change after every feature, so a second call with old numbers hits the wrong edges. Returns the feature name. Args: distance: Chamfer distance in mm, e.g. 2. edge_indices: Comma-separated edge numbers from find_edges, e.g. "1,2,3".
| Name | Type | Req | Description |
|---|---|---|---|
| distance | number | – | – |
| edge_indices | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_interference ~196
Check overlap between occurrences of the active assembly: full paths of both, volume and bounding box of each. Touching faces are not reported. Intended overlaps (gasket compression, thread in thread) show up too — read the volume and bbox. Args: set_a: Comma-separated names, paths or patterns: "DOOR:1", "Sub:1/Part:2", "*BRACKET*". set_b: The same, to test against; empty = everything else. ignore_fasteners: Set aside overlaps with small Content Center members (bolts, nuts, washers, under 150 mm) — threads overlap by design. They are counted.
| Name | Type | Req | Description |
|---|---|---|---|
| ignore_fasteners | boolean | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| set_a | string | yes | – |
| set_b | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
check_sketch ~136
Why won't it extrude? Checks a sketch for what a closed profile needs: open ends, gaps (two ends a hair apart, not joined), points where 3+ curves meet (overlaps, stray lines), lines drawn twice — with sketch coordinates in mm — and whether Inventor builds a profile, with how many closed loops. extrude / revolve report the same when they fail. Args: sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
connect ~251
Connect to Autodesk Inventor. Starts Inventor if none is running. Working on a project? Pass project=<full path of its .ipj>: the server uses the Inventor that already has it — also one a previous server started (after a restart of Claude Desktop) — or the running one if it is free to switch, or else starts a separate Inventor for it — so two agents on two projects each get their own. The answer names the instance; when several Inventors are connected, pass instance=<that name> to every later call. Args: visible: Show Inventor window (default True). project: Full path of an .ipj to work in. new_instance: Always start a separate Inventor. pid: Connect to this kept Inventor (list_instances shows them) — e.g. two in one project.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Name for this Inventor — pass the same name to later calls. Default: 'default', or the project's name when the server starts one for it. |
| new_instance | boolean | – | – |
| pid | integer | – | – |
| project | string | – | – |
| visible | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
constrain ~381
Constrain two components, at any depth — by origin geometry, faces or circular edges. Prefer origin geometry: it survives part edits; face and edge numbers change with the topology. References: "Part:1#XY" / "#XZ" / "#YZ" / "#X" / "#Y" / "#Z" / "#ORIGIN" (origin geometry), "Sub:1/Part:1#F12" (face, from find_faces), "Sub:1/Bolt:1#E4" (edge, from find_edges). A list index works as the component: "2#XY". Says which OTHER components the constraint moved — one can drag parts you didn't mean to touch. Args: a, b: References; a is the one meant to move. kind: "mate" (faces against each other, axes in line), "flush" (faces the same way), "angle", or "insert" (two circular edges: a bolt into a hole). offset: mm for mate / flush / insert. Its sign is easy to get wrong — give a_at too. angle: Degrees for kind="angle". a_at: Where a's face must end up, e.g. {"Z": 182.5}. If it lands elsewhere, the offset is tried with the other sign. axes_opposed: For insert: True = the components face each other (normal bolt / hole case).
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | – |
| a_at | – | – | – |
| angle | number | – | – |
| axes_opposed | boolean | – | – |
| b | string | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| kind | string | – | – |
| offset | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
convert_surfaces_to_solid ~233
Turn surfaces into solids — imported vendor models (x_t, IGES, STEP) that came in as faces with no volume, so no mass and no booleans. Stitches the part's visible surfaces, patches the holes left in the shell, and closes it into a solid; a shell that is already closed becomes a solid directly. Reports each step, the solids' volumes, and the open edges it couldn't close (coordinates in mm). Run it in the part that holds the surfaces. Args: work_surfaces: "all", or WorkSurface numbers "1,2,5" to convert one group at a time (e.g. one component of a multi-part import). tolerance: Largest gap to stitch over, mm. patch_holes: Fill loops of open edges with a boundary patch.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| patch_holes | boolean | – | – |
| tolerance | number | – | – |
| work_surfaces | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_document ~190
Create a new document — a part with its material and part number right away, so no part is left "Generic" for the BOM and the mass. Args: kind: "part", "sheet_metal" or "assembly". name: Display name (optional). template: "metric" (mm, default), "english" (inches), or a full path to a template file. material: Parts: from the library, e.g. "Steel, Mild". part_number, description: Parts: iProperties for the BOM.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| kind | string | – | – |
| material | string | – | – |
| name | string | – | – |
| part_number | string | – | – |
| template | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_drawing ~301
2D drawing of the active part or assembly (saved to disk) → PDF for the shop floor. A base view, projected views around it, overall dimensions on the base view (between its outermost straight edges — check them on assemblies), the model dimensions Inventor can retrieve, and the template's title block (filled from properties()). Read the PDF back to check the layout. Args: pdf_path: Output .pdf. views: First is the base view (front/top/right/left/back/bottom); the rest are projected from it: top (placed below), right (beside), iso (shaded, half scale). template: Drawing template name (ISO, DIN, ANSI (mm) …) or a full .idw path. scale: 0 = largest standard scale that fits; or e.g. 0.2 for 1:5. flat: Sheet metal part: draw the flat pattern (one view). drawing_path: Also keep the drawing as .idw / .dwg (otherwise it is closed).
| Name | Type | Req | Description |
|---|---|---|---|
| drawing_path | string | – | – |
| flat | boolean | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| pdf_path | string | yes | – |
| scale | number | – | – |
| template | string | – | – |
| views | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_sketch ~183
Create a new sketch on a work plane, a body face, or an offset work plane. Args: plane: Work plane — XY, XZ, or YZ. Ignored if face_index > 0. face_index: Index of body face to sketch on (1-based). 0 = use work plane. Use list_faces() to locate. offset: mm — sketch on a hidden work plane parallel to 'plane' at this distance (positive = along plane normal: XY→+Z, XZ→+Y, YZ→+X). For ribs/bosses at a height.
| Name | Type | Req | Description |
|---|---|---|---|
| face_index | integer | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| offset | number | – | – |
| plane | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_arc ~227
Draw an open arc from (x1, y1) to (x2, y2) in mm — e.g. to close a profile drawn with draw_line. Either through a point on it (xm, ym), or around its center (cx, cy) running counter-clockwise in sketch coordinates. For closed shapes prefer draw_closed_profile. Args: x1, y1, x2, y2: Start and end. xm, ym: A point on the arc between them. cx, cy: The center (start and end must be equally far from it). sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| cx | – | – | – |
| cy | – | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| x1 | number | yes | – |
| x2 | number | yes | – |
| xm | – | – | – |
| y1 | number | yes | – |
| y2 | number | yes | – |
| ym | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_circle ~164
Draw a circle in a sketch with an automatic diameter dimension. Dimensions in mm. Args: x: Center X coordinate in mm. y: Center Y coordinate in mm. diameter: Diameter in mm. A diameter constraint is added automatically. sketch_index: Sketch number (0 = latest sketch). construction: If True, draws a reference (construction) circle — not part of profile. Useful for showing bolt PCD (pitch circle diameter) without cutting.
| Name | Type | Req | Description |
|---|---|---|---|
| construction | boolean | – | – |
| diameter | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_closed_profile ~272
Draw a closed profile of lines AND arcs. All coordinates in mm. Segments share their end points, so Inventor sees one closed loop for extrude/revolve. Never approximate a curve with many short lines — round corners and arcs are built in: [x, y] a corner [x, y, r] a corner rounded with radius r (tangent arc, lines trimmed) {"through": [x, y]} the segment from the corner before to the corner after is an arc through this point (after the last corner: the closing one) Examples: plate with R10 corners "[[0,0,10],[200,0,10],[200,100,10],[0,100,10]]"; a D shape "[[0,-50],[0,50],{"through":[50,0]}]". Arcs go through three points, so the sketch's axis directions can't flip them. Args: points: JSON array (or list) of the entries above. sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| points | – | yes | – |
| sketch_index | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_line ~202
Draw one straight line in a sketch, in the sketch's coordinates — an open line, or a construction line for a revolve axis. Lines drawn one by one don't join into a profile: for a closed shape use draw_closed_profile or draw_rectangle. Args: x1: Start X in mm. y1: Start Y in mm. x2: End X in mm. y2: End Y in mm. sketch_index: Sketch number (0 = latest sketch). construction: If True, line becomes a construction line (used as revolve axis, not part of profile).
| Name | Type | Req | Description |
|---|---|---|---|
| construction | boolean | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| x1 | number | – | – |
| x2 | number | – | – |
| y1 | number | – | – |
| y2 | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_pattern ~309
Many copies of one shape in one sketch — vent slots, hole grids, bolt circles — then one cut makes them all. mm. Grid: the first copy at (x, y), `rows` x `columns`, pitch `dx` (between columns) and `dy` (between rows). Circle: `count` copies on a circle of diameter `pcd` around (x, y), the first at `start_angle` degrees; slots and rectangles turn with the circle. Args: shape: circle (diameter), slot (length, width — overall), rectangle (length, width, corner_radius). angle: Turn every slot / rectangle by this many degrees (length along X at 0). sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | – |
| columns | integer | – | – |
| corner_radius | number | – | – |
| count | integer | – | – |
| diameter | number | – | – |
| dx | number | – | – |
| dy | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| length | number | – | – |
| pcd | number | – | – |
| rows | integer | – | – |
| shape | string | – | – |
| sketch_index | integer | – | – |
| start_angle | number | – | – |
| width | number | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_polygon ~136
Draw a regular polygon in a sketch. Dimensions in mm. Args: x: Center X in mm. y: Center Y in mm. radius: Circumscribed radius in mm. sides: Number of sides (e.g. 6 for hexagon). sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| radius | number | – | – |
| sides | integer | – | – |
| sketch_index | integer | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_rectangle ~154
Draw a centered rectangle in a sketch. Dimensions in mm. Args: x: Center X coordinate in mm. y: Center Y coordinate in mm. width: Width in mm. height: Height in mm. sketch_index: Sketch number (0 = latest sketch). corner_radius: Round all four corners with real arcs (half the short side = a slot).
| Name | Type | Req | Description |
|---|---|---|---|
| corner_radius | number | – | – |
| height | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| sketch_index | integer | – | – |
| width | number | – | – |
| x | number | – | – |
| y | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
draw_slot ~153
Draw a slot (oblong hole / rounded-end profile) centered on (x, y), mm. Args: x, y: Center. length: Overall length, end to end. width: Width (= the end radius x 2). angle: Direction of the length in degrees, in sketch coordinates. sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| angle | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| length | number | yes | – |
| sketch_index | integer | – | – |
| width | number | yes | – |
| x | number | yes | – |
| y | number | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
edit_properties ~221
Read — and optionally set — the active document's iProperties: part number, description, stock number, vendor, revision, title, cost center, material, mass and custom properties. These feed the BOM and the drawing's title block. Args: values: e.g. {"part_number": "BRS-101", "description": "Side panel 2 mm", "stock_number": "DKP-2.0"}. Unknown keys become custom properties. material: Material name as in Inventor's library (e.g. "Steel, Mild"; manage_materials(action='list')). mass_kg: Override the mass — for vendor models made of surfaces, which have no volume (a 1.23 kg motor showed 0.23 kg). manage_materials lists them.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| mass_kg | number | – | – |
| material | string | – | – |
| values | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
execute_python ~515
Execute Python code against the live Inventor connection. Pre-bound objects (re-resolved fresh on every call): inv — InventorConnection wrapper (all high-level methods, mm units) app — Inventor.Application COM object doc — active document comp — its ComponentDefinition body — comp.SurfaceBodies.Item(1) (or None) tg — TransientGeometry math — math module progress(msg) — status line manage_call shows while a long job runs cancelled() — True once manage_call(action='cancel') asked to stop: poll it in long loops Variables you assign persist between calls until the server restarts or reload_api runs — get_status shows the namespace's age and names. Each connected Inventor has its own namespace. Helpers you need every time: put them in a file and load_library it (or in ~/.inventor-mcp/startup.py) — they come back by themselves in a new namespace. Internal COM units are CENTIMETERS — divide mm by 10. Objects are late-bound: a Document from Documents.Open exposes ComponentDefinition directly. Don't use CastTo / gencache.EnsureDispatch (they create a gen_py cache). Runs with SilentOperation on, so Inventor answers its own prompts instead of opening a dialog. Save with the save_document tool or inv.save_document(): a plain doc.SaveAs also writes every dirty dependent, protected and Content Center files included. A call longer than the wait limit keeps running; follow it with manage_call(wait_seconds=30), which shows the prints so far; manage_call(action='cancel') stops it. Returns captured stdout + stderr (print your results!), or the traceback from your own code down on error (COM errors named: E_INVALIDARG, RPC_E_DISCONNECTED …). Args: code: Python source. undo_on_error: Run inside one undo transaction on the active document and roll it back if the code raises — no half-built sketches or work planes left behind. timeout: Seconds; then cancelled() turns True, and the run is interrupted CANCEL_GRACE s later i…
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| timeout | number | – | – |
| undo_on_error | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
export_bom ~146
Bill of materials of the active assembly: item, quantity, part number, description, material, stock number, mass, file. For purchasing / ERP — set part numbers and descriptions first with properties(). Args: view: "parts_only" (every part once with its total quantity) or "structured" (sub-assemblies with their parts indented). path: Also write a CSV (UTF-8, ';'-separated) — opens in Excel.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| path | string | – | – |
| view | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
export_document ~152
Write the active document to a neutral CAD file, for a customer, a vendor or a printer. An existing file at path is replaced; the file is checked afterwards and its size returned. The Inventor document itself is unchanged — save_document saves that. For the laser use export_flat_pattern, for a parts list export_bom, for a PDF create_drawing. Args: path: Output file, e.g. "D:/export/part.step". format: STEP, IGES, SAT or STL.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
export_flat_pattern ~177
Flat pattern of the active sheet metal part: flat size, thickness, bend count — and with a path, a DXF/DWG for the laser / punch (layers OUTER = contour, INNER = holes and cut-outs, IV_BEND* = bend lines; tangent lines, sketches etc. left out). Creates the flat pattern if the part has none. Args: path: Output file (.dxf or .dwg). Empty: just report the flat size. format: DXF or DWG. bend_lines: Include the bend lines (on their own layers).
| Name | Type | Req | Description |
|---|---|---|---|
| bend_lines | boolean | – | – |
| format | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
extrude ~285
Turn a sketch's closed profile into 3D: add material, cut it, or start a new body. For a turned shape use revolve; for sheet metal, add_sheet_metal_face and sheet_metal_cut. Returns the feature name and the change, e.g. "V 23497 (-503 mm³) | F7 E14": read it — a cut showing no volume change went the wrong way or missed the body; try the other direction. Without a closed profile it fails and says where the gap is (as check_sketch does). Args: distance: mm. Ignored when extent_type="all". direction: "positive" (along the sketch normal: +Z on the XY plane), "negative" or "symmetric". operation: "join" (add), "cut", "intersect", "surface" or "new" (a separate body). sketch_index: Sketch number (0 = latest sketch). extent_type: "distance", or "all" to go through the entire body.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | – | – |
| distance | number | – | – |
| extent_type | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| operation | string | – | – |
| sketch_index | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
fillet ~183
Round edges of the active part's first body. For an angled edge use chamfer; to round a profile's corners before extruding, use draw_closed_profile radii. Edge numbers change after every feature: run find_edges again before the next fillet, and give all edges of one radius in one call. Tangent edges are followed automatically. Fails if the radius doesn't fit the geometry — fillet the big radii first. Returns the feature name. Args: radius: Fillet radius in mm, e.g. 2. edge_indices: Comma-separated edge numbers from find_edges, e.g. "1,2,3".
| Name | Type | Req | Description |
|---|---|---|---|
| edge_indices | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| radius | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
find_edges ~232
Find edges, filtered by position or type. Without `path`: the active part (the `index` feeds add_flange, fillet, chamfer). With `path`: a component at any depth, with a `ref` ("Sub:1/Bolt:1#E4") — circular ones feed constrain(kind="insert"). Args: path: Component path (manage_occurrences list, depth=2). Empty = the active part. at: Edge midpoint coordinates to match (circle: its center), e.g. {"X": 50, "Z": 1.5}. circular: Only circular edges. diameter: Circle diameter in mm. min_length: Skip edges shorter than this (mm). max_count: Most results to return.
| Name | Type | Req | Description |
|---|---|---|---|
| at | – | – | – |
| circular | boolean | – | – |
| diameter | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| max_count | integer | – | – |
| min_length | number | – | – |
| path | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
find_faces ~285
Find faces, filtered by type, direction, position or size. Without `path`: the active part (the `index` feeds create_sketch, sheet_metal_cut). With `path`: a component of the active assembly at any depth, in TOP assembly coordinates, with a `ref` ("Sub:1/Part:1#F12") for constrain; a sub-assembly path searches every part in it. Args: path: Component path (manage_occurrences list, depth=2). Empty = the active part. surface: "plane", "cylinder", "cone", … (empty = any). normal: Outward normal of a plane, e.g. [0, 0, 1] for faces looking up. at: Face center coordinates to match, e.g. {"Z": 182.5}. diameter: Cylinder diameter in mm. min_area: Skip faces smaller than this (mm²). max_count: Most results to return.
| Name | Type | Req | Description |
|---|---|---|---|
| at | – | – | – |
| diameter | number | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| max_count | integer | – | – |
| min_area | number | – | – |
| normal | – | – | – |
| path | string | – | – |
| surface | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_status ~76
Check connection status, active document info, and the execute_python namespace (age, names you defined — gone after a server restart or reload_api). If Inventor is busy or showing a dialog, says so instead.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
import_step ~191
Import a vendor STEP file (hinge, lock, gland...) as Inventor files in dest_folder. The STEP is copied into dest_folder first, because Inventor writes the parts of an imported assembly next to the .step file (e.g. into Downloads or a synced folder). Returns path, type, overall bbox and per-component bbox/volume — use them to find mounting faces and axes before placing it with place_components. Args: step_path: The downloaded .step / .stp file. dest_folder: Project folder to hold the Inventor files. name: Base name for the .iam/.ipt (default: the STEP file name).
| Name | Type | Req | Description |
|---|---|---|---|
| dest_folder | string | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| name | string | – | – |
| step_path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
inspect_model ~87
Snapshot of the active document in one call. Part: volume, bounding box, face and edge counts, feature tree, sketches, sheet metal thickness, warnings (faceted curves, surface bodies). Assembly: components with positions, constraint count, mass, volume.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_instances ~46
The Inventors this server is connected to — name, project, open documents — and any other running Inventor it can't reach (opened by hand). Answers even while they are busy.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
load_library ~141
Run a Python file into this Inventor's execute_python namespace and keep it there: after reload_api, a new namespace or a new server it is loaded again by itself (remembered per project). For helper functions you would otherwise redefine every time. Says how long it took and which lines were slowest — a COM call at module level is the usual culprit. A file at ~/.inventor-mcp/startup.py (or INVENTOR_MCP_STARTUP) is loaded for every Inventor.
| Name | Type | Req | Description |
|---|---|---|---|
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| path | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_call ~204
Follow or stop a call that outlived the wait — a long execute_python, a Content Center scan, one stuck behind an Inventor dialog. "status": elapsed time, any open dialog's text, output so far, progress() line — and the result once it has finished. wait_seconds waits (at most 45 s) and returns as soon as it ends. "cancel": cancelled() in execute_python code turns True at once; code still running after 2 s gets a KeyboardInterrupt, repeated until it stops. That lands at the next Python line: a call stuck INSIDE one COM operation or behind a dialog stops only once that returns. Args: action: "status" or "cancel". wait_seconds: For "status".
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| wait_seconds | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_constraints ~123
List the active assembly's constraints with their numbers, flagging any in an error state; or delete one. To add one use constrain. Deleting frees the components it held, and the numbers after it shift — list again before deleting another. Args: action: "list" or "delete". index: For "delete": the constraint's number from list.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| index | integer | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_documents ~273
Open documents of this Inventor. "list": name, type, dirty, active; protected (library / Content Center) ones marked. "open": a file by path. "activate": switch by name or path. "close": one, without saving unless it is yours and dirty (discard=True closes it anyway). "close_unsaved": documents never saved (Part12… left by failed attempts). "close_all": everything; refuses while your own files have unsaved changes, listing them (discard=True closes anyway; protected files never count). quit_inventor=True quits after. Args: action: "list", "open", "activate", "close", "close_unsaved" or "close_all". name_or_path: For open / activate / close. include_active: "close_unsaved" also closes the active document. discard: Close without saving your changes. quit_inventor: "close_all" then quits this Inventor.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| discard | boolean | – | – |
| include_active | boolean | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| name_or_path | string | – | – |
| quit_inventor | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_features ~98
List, delete or suppress the active part's features. Args: action: "list", "delete", "suppress" or "unsuppress". indices: Feature indices from list, comma-separated, e.g. "3,4,5".
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| indices | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_materials ~306
Materials of many parts at once. "report": material and mass of every part of the active assembly (or part): counts per material, total mass, and what needs a look — parts left on Generic, vendor models made of surfaces (no volume, mass too low), parts with no mass. "list": material names in Inventor's libraries (`search` narrows them). "set": give `material` to every part whose name matches `parts`. Content Center and library parts are left alone. Save afterwards. Args: action: "report", "list" or "set". material: From the library, e.g. "Steel, Mild". search: For "list", e.g. "steel". parts: Name patterns, ","-separated, e.g. "*PLATE*,*BRACKET*". only_generic: "set" only parts still on Generic / Default. path: Limit "report" / "set" to a sub-assembly. only_problems: "report" without the per-part rows.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| material | string | – | – |
| only_generic | boolean | – | – |
| only_problems | boolean | – | – |
| parts | string | – | – |
| path | string | – | – |
| search | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_occurrences ~369
Components of the active assembly. "list": a table with positions; depth=2 also lists what is inside sub-assemblies, with paths. "find": components by what they are and where — definition name pattern, the direction of their Z axis, distance from a point. E.g. definition="*ISO 4017*M8*", axis=[0,0,1]. "ground": fix a component in space (grounded=False releases it). Ground the first one. "delete": says first what depends on it (patterns, constraints) and stops; force=True deletes, cascade=True also deletes pattern members. Reports components that moved. Args: action: "list", "find", "ground" or "delete". path: Component name, path ("Sub:1/Part:1") or list index. depth: For "list". definition: For "find": name pattern on the part / file name. axis: For "find": direction of the component's Z axis, either way along it. near: For "find": a point [x, y, z] in mm. within: For "find": largest distance from `near`, mm. grounded: For "ground". cascade: For "delete". force: For "delete".
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| axis | – | – | – |
| cascade | boolean | – | – |
| definition | string | – | – |
| depth | integer | – | – |
| force | boolean | – | – |
| grounded | boolean | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| near | – | – | – |
| path | string | – | – |
| within | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_parameters ~137
Read, change or add parameters of the active document. Args: action: "get" (all), "set" or "add". name: Parameter name, e.g. "width". expression: Value or expression, e.g. "50 mm", "width * 2". units: For "add": mm, cm, m, deg, …
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| expression | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| name | string | – | – |
| units | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
manage_sheet_metal_rules ~158
Sheet metal rules of the active part. Shops encode their tooling in rule names (e.g. 'T15-V10' = 1.5 mm sheet, V10 die): prefer "set" — it sets thickness, bend radius and unfold method together; "thickness" changes only the thickness. Args: action: "list", "set" or "thickness". name: Rule name for "set" (case-insensitive). thickness: mm, for "thickness".
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| name | string | – | – |
| thickness | number | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
measure_distance ~84
Minimum distance in mm between two occurrences (0 = touching/overlapping). Names as in manage_occurrences; "Asm:1/2" reaches a part inside a sub-assembly.
| Name | Type | Req | Description |
|---|---|---|---|
| a | string | yes | – |
| b | string | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
offset_profile ~133
Offset every closed loop of a sketch by `distance` mm — a gasket groove, a wall, a lip, an inner cut-out with a margin. Lines, arcs and circles stay lines, arcs and circles. Args: distance: Offset in mm. side: "inside" or "outside" of each loop. sketch_index: Sketch number (0 = latest sketch).
| Name | Type | Req | Description |
|---|---|---|---|
| distance | number | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| side | string | – | – |
| sketch_index | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
place_components ~255
Place parts / sub-assemblies into the active assembly — one or hundreds in one call. Files must exist on disk (save_document first); all are checked before anything is placed. Args: components: [{"path": "C:/.../beam.ipt", "x": 0, "y": 0, "z": 0, "x_axis": [1,0,0], "y_axis": [0,1,0], "grounded": false, "name": "Beam_A1"}, ...]. mm. "origin": [x,y,z] works too. Axes and name are optional (where the part's own X/Y point; give both). Ground the first component of every assembly. atomic: One undo step: if any placement fails, none stay. skip_if_exists: Don't place one where the same file already sits at the same place — safe to run a list again after an error.
| Name | Type | Req | Description |
|---|---|---|---|
| atomic | boolean | – | – |
| components | array | yes | – |
| instance | string | – | Which connected Inventor to use (list_instances). Leave empty when only one is connected. |
| skip_if_exists | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
How do I install the Autodesk Inventor MCP server?
Autodesk Inventor runs locally as a PyPI package, launched with uvx inventor-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · inventor-mcp-server
claude mcp add cenitu-inventor-mcp-server -- uvx inventor-mcp-server
What is the Autodesk Inventor MCP server?
Autodesk Inventor is an MCP server listed in the public MCP registry as io.github.cenitu/inventor-mcp-server. Parametric 3D modeling in Autodesk Inventor: sketches, features, sheet metal, assemblies. This page covers its PyPI package (inventor-mcp-server).
Is the Autodesk Inventor MCP server safe to use?
Autodesk Inventor scores 74 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Autodesk Inventor MCP server expose?
Autodesk Inventor exposes 57 tools: execute_python, load_library, reload_api, capture_view, transaction, and 52 more. Their descriptions and schemas cost roughly 11,998 tokens of context every time the server is loaded.
Is the Autodesk Inventor MCP server still maintained?
Autodesk Inventor is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Autodesk Inventor MCP server under?
Autodesk Inventor declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.