Skip to main content
Glama

pcb_set_text_style

Adjust height and stroke width of PCB silkscreen designators or comments to meet fabrication requirements, optionally targeting specific components.

Instructions

Set the height and stroke width of component designators or comments.

Silkscreen text size is usually a fabrication requirement (for example 0.8 mm high with a 0.1 mm stroke: height_mils=31.5, stroke_mils=3.94). Altium's stroke text has a height and a stroke width and no separate character width: the characters scale with the height.

For free texts use obj_modify on eTextObject with Height and StrokeWidth (filter IsDesignator=false).

Args: height_mils: Text height in mils. None leaves it. stroke_mils: Stroke width in mils. None leaves it. designators: Only these components (e.g. ["U1", "R5"]). None applies to every component. which: "designator" (default), "comment" or "both".

At least one of height_mils / stroke_mils must be given.

Returns: Dict with matched components, changed and failed texts, not_found designators, and texts: each one's height and stroke as read back after the write. success is false when any text did not take or a designator was not found.

Input Schema

NameRequiredDescriptionDefault
whichNodesignator
designatorsNo
height_milsNo
stroke_milsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.5/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden and does well: it discloses the validation constraint (at least one of height/stroke required), that None leaves values untouched, that scope defaults to every component, and that results are read back after write with success=false on failures. It does not mention permission/auth needs or reversibility of the write, which keeps it from a 5.

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?

Front-loaded with the verb and resource, followed by the domain rationale and the mils conversion example, then Args and Returns. The length is justified by the 4 undocumented parameters, and no sentence is filler.

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

Completeness4/5

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

An output schema exists, so the description needn't detail return values, yet it usefully clarifies that success is false when a text did not take or a designator is missing. Covers purpose, alternatives, constraints and failure semantics; only the absence of any note on permissions or undo prevents a 5.

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 carry all semantics, and it does: height_mils/stroke_mils units and None-means-leave-it behavior, designators as a component filter with None meaning all, and which accepting designator/comment/both with the default noted. It also adds the cross-parameter constraint that at least one dimension must be supplied.

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: setting height and stroke width of component designators or comments. It also scopes the behavior (characters scale with height, no separate width) and distinguishes itself from obj_modify for free texts, so an agent can select it without opening the schema.

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?

Explicitly routes free texts to obj_modify on eTextObject with the filter IsDesignator=false, and frames the use case as a fabrication requirement with a concrete mils example. Lacks guidance on when not to restyle text at all, but the alternative path is named with its selecting condition.

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