Skip to main content
Glama

pcb_autoplace_silkscreen

Reposition PCB reference designators that violate silkscreen or solder-mask clearance, leave already-clear ones untouched, and report any that cannot be placed.

Instructions

Move designators that break silk clearance to a clear position.

A visible designator that is closer than the silk clearance to anything else on its overlay layer (component outlines, texts, fills), closer than the mask clearance to a pad's mask opening on its side, or off the board, is tried at a ring of auto-position anchors and left on the first that clears. A designator that is already clear is not touched, and one no anchor clears goes back where it was and is listed in unplaced_designators for a person. First-fit on bounding rectangles, so it errs towards "blocked"; run DRC after.

Args: silk_clearance_mils: Silk to silk clearance. None reads the board's Silk To Silk rule. mask_clearance_mils: Silk to solder mask clearance. None reads the board's Silk To Solder Mask rule. mask_expansion_mils: How far a pad's mask opening extends past its copper (default 4, Altium's default). designators: Only these components. None means all.

Refused with NO_CLEARANCE, moving nothing, when a clearance is neither given nor readable from an enabled rule.

Returns: placed, already_clear, unplaced, hidden, total, the placed and unplaced designators, and each clearance used with its source (argument or the rule's name). skipped is unplaced + hidden.

Input Schema

NameRequiredDescriptionDefault
designatorsNo
mask_clearance_milsNo
mask_expansion_milsNo
silk_clearance_milsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

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 carries the full burden and does it well: it discloses the mutation (moves designators), the first-fit-on-bounding-box approximation ('errs towards blocked'), the safe fallback (unplaceable designators revert and are listed for a person), the NO_CLEARANCE refusal that moves nothing, and the DRC follow-up caveat. Missing only things like prerequisite document/lock state, which keeps it below 5.

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 core action, then a dense but informative behavioral paragraph, followed by Args and Returns blocks. Well organized and mostly earns its length, though the Returns block partly duplicates the existing output schema.

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?

For a mutation tool with no annotations, the description covers behavior, approximation caveat, failure/refusal modes, parameter fallbacks, and a post-run DRC recommendation. With an output schema present, the return explanation is a bonus rather than a gap. Nothing an agent needs to invoke it safely 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 coverage is 0%, so the description must compensate, and it does: each of the four parameters is explained beyond its type, notably that None reads the board's Silk To Silk / Silk To Solder Mask rules, that mask_expansion defaults to 4 (Altium's default), and that designators=None means all components. This fully closes the schema-description gap.

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: 'Move designators that break silk clearance to a clear position.' An agent can immediately tell this relocates silkscreen designators, not traces or components. It stops short of naming the sibling that handles generic placement (pcb_autoplace / pcb_autoplace_apply), so it's clear but not fully differentiated.

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 strong context on when the tool matters: designators closer than silk/mask clearance or off-board. States that already-clear designators are untouched and advises running DRC afterward, which frames appropriate use. It does not explicitly compare against alternatives like pcb_autoplace or manual nudging, so no exclusion 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