Skip to main content
Glama

design_suggest_diff_pair_traces

Detects differential pairs in a PCB plan and recommends controlled-impedance trace widths for each using target ohms, stackup, and spacing.

Instructions

Recommend a controlled-impedance trace width for every differential pair in a plan.

Detects the differential pairs (nets with role differential) and sizes each to target_ohms (90 USB / 100 HDMI/LVDS) for the supplied stackup and edge-to-edge spacing_mils via the IPC-2141 impedance inverse -- the trace geometry for every pair in one call instead of identifying pairs and running pcb_calc_trace_width_for_impedance by hand. The stackup and target are board-level decisions you supply; pure Python, no Altium.

Returns {"ok": True, "pairs": [{nets, endpoints, width_mils, spacing_mils, target_ohms, feasible}]} or {"ok": False, ...}.

Input Schema

NameRequiredDescriptionDefault
geometryNomicrostrip_diff
copper_ozNo
plan_jsonYes
target_ohmsNo
spacing_milsNo
dielectric_constantNo
dielectric_height_milsNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden and discloses key traits: pure Python, no Altium dependency, IPC-2141 inverse calculation, and a return structure including ok/feasible flags. It implies a read-only recommendation but does not explicitly state that it does not modify the design, leaving a minor gap.

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 description is front-loaded with its main purpose and remains reasonably efficient. The two-paragraph structure separates behavior/return from the core recommendation. It could be tightened slightly but no sentence is wasted.

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?

Given the complexity (7 parameters, no schema descriptions, no annotations, output schema present), the description covers the high-level behavior well. However, it does not fully compensate for the missing parameter documentation, particularly plan_json structure and geometry options, leaving an agent to guess on non-default calls.

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

Parameters2/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 compensate. It explains target_ohms with practical examples and mentions spacing_mils as edge-to-edge, and refers generically to 'supplied stackup'. However, it leaves plan_json format, geometry options, copper_oz, dielectric_constant, and dielectric_height_mils largely undocumented, so several parameters remain opaque.

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: 'Recommend a controlled-impedance trace width for every differential pair in a plan.' It clearly distinguishes itself from sibling pcb_calc_trace_width_for_impedance by noting it handles all pairs in one call instead of by hand. The core function is unmistakable.

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 frames usage: use this tool when you need widths for all differential pairs in a plan, and names the alternative (running pcb_calc_trace_width_for_impedance manually). It also notes that stackup and target are board-level inputs you supply. No explicit when-not conditions are given, but the context is clear.

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