Skip to main content
Glama
cenitu

inventor-mcp-server

place_many

Place many parts or sub-assemblies into the active Inventor assembly in one call, avoiding slow one-by-one insertion for frames with dozens or hundreds of members.

Instructions

Place many parts / sub-assemblies into the active assembly in one call — for frames of dozens or hundreds of members, where place_component one by one is slow.

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 (axes: where the part's own X/Y point; give both). Files must exist — all are checked before anything is placed.

Input Schema

NameRequiredDescriptionDefault
instanceNoWhich connected Inventor to use (list_instances). Leave empty when only one is connected.
componentsYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description still discloses a real behavioral trait: 'Files must exist — all are checked before anything is placed,' which tells the agent the call pre-validates and is effectively all-or-nothing. It also fixes units (mm) and the axis convention. It does not cover partial-failure semantics beyond file existence, undo/transactionality, or required document state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and the sibling comparison before the argument detail, and every sentence carries information. The trailing parenthetical about axes ('where the part's own X/Y point; give both') is dense and slightly run-on, costing a bit of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch mutation tool with no annotations, the description covers the essentials — units, coordinate frame, optional fields, pre-validation behavior, and the alternative tool — and an output schema exists so return values need not be explained. It stops short of stating the required document state or what a caller should expect if some entries fail validation beyond missing files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50% and the components array is a bare 'additionalProperties: true' object, but the description compensates well by documenting every accepted key (path, x/y/z, origin alternative, x_axis, y_axis, grounded, name) and which are optional. Remaining gaps are minor — no type/default detail for grounded and no statement about unknown keys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Place many parts / sub-assemblies into the active assembly in one call') and explicitly contrasts with the sibling place_component ('where place_component one by one is slow'), so the batch-vs-single distinction is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage trigger — frames of dozens or hundreds of members where per-call placement is slow — and implicitly routes single placements to place_component. It does not state prerequisites explicitly (e.g. that an assembly document must be active) or a hard when-not case, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.