Skip to main content
Glama

Copy Shape

copy_shape

Duplicate a shaped object as an independent static solid. Deep-copies geometry so later edits to the original do not affect the copy, ideal for seeding mirrors or standalone instances.

Instructions

Duplicate a shaped object as an INDEPENDENT static solid.

Unlike add_part (which creates an App::Link that tracks the source), this deep-copies the geometry: later edits to the original do NOT propagate to the copy. Use it to seed a mirror/pattern, or to drop a standalone duplicate instance into an assembly.

handle: handle of the source object (must have a Shape). placement: optional absolute [x, y, z] translation in mm applied to the copy's base. Omit to leave the copy coincident with the source. The source object is unchanged and stays visible. name: optional name for the new object (default '_copy').

Returns {handle, name, volume}: handle is a new 'copy_N' handle, name is the FreeCAD object name, volume is the copied solid's volume in mm^3.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
handleYes
placementNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations only state readOnlyHint=false and destructiveHint=false. The description adds essential behavioral context beyond those flags: later edits to the original do NOT propagate, the source stays unchanged and visible, the copy is an independent solid, and the exact output shape is documented. No contradiction with annotations.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then uses a compact contrast with add_part, then parameter details, then return values. Every sentence adds information; there is no filler or redundancy despite covering deep-copy semantics, placement, defaults, and output format.

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

Completeness5/5

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

With no output schema and almost no schema documentation, the description carries full responsibility and meets it: it explains prerequisites, transformation behavior, default naming, output fields, and the distinction from a sibling tool. An agent has everything needed to call the tool correctly.

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

Parameters5/5

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

Schema coverage is 0% and the schema only gives parameter names and types. The description fully compensates: source must have a Shape, placement is an absolute [x, y, z] translation in mm applied to the copy's base, and name has an explicit default. This makes the tool invokable without guessing.

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?

The description states a specific verb and resource ('Duplicate a shaped object') and immediately clarifies the distinguishing property: an 'INDEPENDENT static solid.' It also explicitly contrasts itself with add_part, so an agent can discriminate between the two tools without inspecting schemas.

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

Usage Guidelines5/5

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

It names the alternative tool (add_part) and explains the key difference: this deep-copies geometry while add_part creates a tracking link. It also gives concrete use cases: 'seed a mirror/pattern' or 'drop a standalone duplicate instance into an assembly.' This is explicit when-to-use guidance.

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