Skip to main content
Glama

add_assembly_part

Read-only

Append a new part to an existing 3D assembly by parsing its JSON state, adding the mesh file with position, material, and role, and returning the updated assembly.

Instructions

Add a part to an existing assembly.

        Parses the assembly from its JSON representation, appends
        the new part, and returns the updated assembly state.

        Args:
            assembly_json: JSON string of the current assembly state
                (as returned by create_assembly or a previous tool call).
            part_id: Unique identifier for this part within the assembly.
            file_path: Path to the STL/OBJ mesh file for the part.
            position_x: X position offset in mm (default 0.0).
            position_y: Y position offset in mm (default 0.0).
            position_z: Z position offset in mm (default 0.0).
            material: Filament material for the part (default ``"PLA"``).
            role: Structural role of the part (default ``"structural"``).
        

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "assembly_json": "<assembly_json>",
      "part_id": "<part_id>",
      "file_path": "<file_path>"
    },
    "name": "add_assembly_part"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleNoStructural role of the part (default ``"structural"``). Default: "structural".
part_idYesUnique identifier for this part within the assembly.
materialNoFilament material for the part (default ``"PLA"``). Default: "PLA".
file_pathYesPath to the STL/OBJ mesh file for the part.
position_xNoX position offset in mm (default 0.0). Default: 0.0.
position_yNoY position offset in mm (default 0.0). Default: 0.0.
position_zNoZ position offset in mm (default 0.0). Default: 0.0.
assembly_jsonYesJSON string of the current assembly state (as returned by create_assembly or a previous tool call).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.5.1
    • addedInput schema / properties / assembly_json / description
      Added value: +"JSON string of the current assembly state (as returned by create_assembly or a previous tool call)."
    • addedInput schema / properties / file_path / description
      Added value: +"Path to the STL/OBJ mesh file for the part."
    • changedInput schema / properties / material / description
      Previous value: -"Default: \"PLA\"."New value: +"Filament material for the part (default ``\"PLA\"``). Default: \"PLA\"."
    • addedInput schema / properties / part_id / description
      Added value: +"Unique identifier for this part within the assembly."
    • changedInput schema / properties / position_x / description
      Previous value: -"Default: 0.0."New value: +"X position offset in mm (default 0.0). Default: 0.0."
    • changedInput schema / properties / position_y / description
      Previous value: -"Default: 0.0."New value: +"Y position offset in mm (default 0.0). Default: 0.0."
    • changedInput schema / properties / position_z / description
      Previous value: -"Default: 0.0."New value: +"Z position offset in mm (default 0.0). Default: 0.0."
    • changedInput schema / properties / role / description
      Previous value: -"Default: \"structural\"."New value: +"Structural role of the part (default ``\"structural\"``). Default: \"structural\"."
  2. Changed12 schema fields changedv1.5.0
    • addedInput schema / properties / assembly_json / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / assembly_json / type
      Removed value: -"string"
    • removedInput schema / properties / material / default
      Removed value: -"PLA"
    • addedInput schema / properties / material / description
      Added value: +"Default: \"PLA\"."
    • removedInput schema / properties / position_x / default
      Removed value: -0
    • addedInput schema / properties / position_x / description
      Added value: +"Default: 0.0."
    • removedInput schema / properties / position_y / default
      Removed value: -0
    • addedInput schema / properties / position_y / description
      Added value: +"Default: 0.0."
    • removedInput schema / properties / position_z / default
      Removed value: -0
    • addedInput schema / properties / position_z / description
      Added value: +"Default: 0.0."
    • removedInput schema / properties / role / default
      Removed value: -"structural"
    • addedInput schema / properties / role / description
      Added value: +"Default: \"structural\"."
  3. First observedv0.1.0

TDQS

C2.9/5.0
Behavior1/5

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

The description says the tool appends a part and returns updated assembly state, which is a mutation of the assembly, yet annotations declare readOnlyHint=true. This is a direct conflict about whether state changes. The description also does not say whether the original assembly_json is mutated in place or whether the caller must persist the returned object.

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

Conciseness3/5

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

The opening sentence and the parse-and-return sentence are useful and front-loaded, but the Args block duplicates parameter text that is fully present in the schema. Roughly half the description is redundant with structured data.

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

Completeness3/5

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

For an 8-parameter assembly mutation with no output schema, the description should explain the returned structure, persistence expectations, and any validation failures. It says only 'returns the updated assembly state', and the readOnly annotation conflict further muddies the behavioral picture.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (part_id, file_path, position offsets, material, role) is already documented in the schema. The description's Args block largely restates those descriptions and adds no units, constraints, or uniqueness rules beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Add a part to an existing assembly', then clarifies it parses the assembly JSON, appends the part, and returns updated state. It is unambiguous what the tool does, but it never contrasts itself with nearby siblings like create_assembly or compose_assembly_parts.

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

Usage Guidelines3/5

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

Implied usage is clear from 'existing assembly', and the assembly_json param note points back to create_assembly or a previous tool call, giving a hint about sequence. There is no explicit when-not guidance or statement about alternatives such as compose_assembly_parts.

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

Deploy Server

Other Tools