Skip to main content
Glama

pcb_replicate_layout

Copy a routed channel's tracks, arcs, vias, polygons and fills onto matching channels, remapping each net to the destination. Automates the multi-channel PCB replicate workflow end to end.

Instructions

Replicate a routed channel's ROUTING onto a matching channel.

Where pcb_copy_component_placement only relocates components, this copies the source group's routing -- tracks, arcs, vias, polygons, regions, fills -- onto the destination group and remaps each copy's net from the source net to the corresponding destination net. The classic multi-channel "lay out channel 1, replicate to channels 2..N" workflow, end to end.

Positioning: one rigid transform is derived from the FIRST mapping pair (the anchor) -- the copied routing is rotated by dstRot - srcRot about the source anchor, then translated by dstAnchor - srcAnchor, so it lands on the destination components where they already sit. The destination components are left in place unless move_components=True.

Which routing is copied (naming-agnostic): routing on nets INTERNAL to the source group -- every component pad on the net belongs to a mapped source component. Nets that escape the group (a shared GND / power pour) are deliberately left alone. Pass an explicit nets list to override and copy exactly those.

Preconditions: the destination components must already be placed congruently with the source (e.g. run pcb_copy_component_placement first, or pass move_components=True). congruence_warnings in the result counts destination parts that do not match the anchor transform -- their routing may not line up.

Args: mapping: {source_designator: dest_designator}. The first pair is the transform anchor; include every component in the channel so its internal nets are recognised. nets: Optional explicit source net names to copy, instead of the internal-net auto-detection. move_components: Also relocate the destination components onto the rigid transform, guaranteeing the routing aligns. Default False (destination stays where it is).

Returns: Dict with: - copied: routing primitives replicated - net_assigned: copies given a destination net - internal_nets: source nets selected for copying - shared_nets_skipped: group nets left alone (escape the group) - congruence_warnings: destination parts off the anchor transform (routing may not align) - notes: any caveats

Input Schema

NameRequiredDescriptionDefault
netsNo
mappingYes
move_componentsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the rigid-transform derivation from the first mapping pair, which primitives are copied (tracks, arcs, vias, polygons, regions, fills), that nets escaping the group are deliberately skipped, and that congruence_warnings flags misaligned destination parts. It stops short of saying what happens to pre-existing routing at the destination (overwrite vs. coexist) and whether permissions or locked objects block the operation.

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?

The prose sections are front-loaded with the contrast against the sibling and the transform model, and the whole thing is well-organized. The Args block, however, largely restates points already made in the prose (anchor pair, nets override, move_components default), which is duplicated content in a fairly long definition.

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?

An output schema exists, yet the description still adds value by interpreting the fields that matter operationally (congruence_warnings means routing may not line up, shared_nets_skipped means group-escaping nets were left alone). Combined with the precondition and transform sections, nothing an agent needs to call this correctly is missing.

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 description coverage is 0%, so the description must fully compensate, and it does: mapping is explained as source-to-dest designators whose first pair is the transform anchor, nets as an explicit override of internal-net auto-detection, and move_components as an opt-in that guarantees alignment with its default stated. All three parameters gain meaning beyond the bare schema types.

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 ('replicate a routed channel's ROUTING onto a matching channel') and immediately distinguishes itself from the nearest sibling by contrast with pcb_copy_component_placement, which 'only relocates components.' An agent can pick between the two without opening either schema.

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?

Names the canonical workflow ('lay out channel 1, replicate to channels 2..N'), states preconditions explicitly (destination parts must be congruent, run pcb_copy_component_placement first or pass move_components=True), and gives an override path with the nets list. When-to-use, prerequisite ordering, and the alternative tool are all spelled out.

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