Skip to main content
Glama

pcb_place_embedded_board

Place an embedded-board array referencing a child PCB to create multi-up panels with configurable rows, columns, spacing, mirroring, and placement layer.

Instructions

Place an embedded-board array (panel) referencing a child PCB.

An embedded board is a grid of copies of a child .PcbDoc file, used for panelization (multi-up arrays, step-and-repeat).

Args: child_path: Full path to the child .PcbDoc file. x, y: Bottom-left corner of the array in mils. rows, cols: Grid size (default 1x1). row_spacing_mils, col_spacing_mils: Gap between array cells. mirror: Flip the child board over when True. layer: Placement layer for the embedded-board primitive.

Returns: Dict with success, child_path, rows, cols, x, y.

Input Schema

NameRequiredDescriptionDefault
xYes
yYes
colsNo
rowsNo
layerNoTopLayer
mirrorNo
child_pathYes
col_spacing_milsNo
row_spacing_milsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses units (mils), defaults (1x1 grid, TopLayer), and a return dict shape, but says nothing about whether the current document is mutated, what happens on an invalid child_path, or whether the embedded board can later be updated when the child changes.

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 conceptual definition followed by a compact Args block — well ordered and easy to scan. The Returns section is slightly redundant since an output schema exists, but it is short and does not crowd out the useful content.

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?

A mutation tool with nine params, no annotations, and an output schema. Parameters and return values are covered well, but the description omits operational preconditions (target board open, child file present) and the relationship to pcb_panelize, which are the main things an agent could get wrong.

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 0%, so the description must do the work — and it documents all nine parameters with meaning beyond the bare names: x/y as the bottom-left corner in mils, rows/cols as grid size, spacing as gaps between cells, mirror as flipping the child. Only gap is no elaboration on valid layer values or whether spacing matters when a dimension is 1.

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 ('Place an embedded-board array referencing a child PCB') and explains what an embedded board is (grid of copies for panelization). An agent can distinguish it from generic placement tools, but it never names the closely related sibling pcb_panelize, so the differentiation is implicit.

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?

Usage is implied by the panelization framing (multi-up arrays, step-and-repeat), but there are no explicit when-to-use/when-not conditions, no prerequisites such as the child .PcbDoc needing to exist, and no pointer to pcb_panelize as the alternative for panelizing the current board.

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