Skip to main content
Glama
groundplane-studio

fusion-electronics-mcp

route_pair

Routes a differential pair as two coupled traces along a chosen centreline, with gap held through bends and optional skew tuning.

Instructions

Route a differential pair as two coupled traces along a centreline you choose.

centreline_mm: [[x, y], ...] for the middle of the pair, from near the start pads to near the end pads; use 45-degree bends. Each trace is the centreline offset by (width + gap) / 2 with mitred corners, so the gap holds through bends, plus a short 45-degree fan-in to its pad. Which side is P is set by the start pads. If the end pads are the other way round the result says crossed=true: either approach the end pads from the other direction (no via), or pass a tail for one trace, [[x, y], {"via": [x, y]}, [x, y]], which changes layer at the via. p_head_mm / n_head_mm: explicit path from a trace's start pad to the trunk, for pins the automatic 45-degree fan-in cannot reach cleanly (e.g. through a gap in a pin row). Every 90-degree corner (typically where a trace leaves a pin) becomes two 45-degree bends, chamfer_mm along each leg (0 keeps hard corners). The shorter trace gets rounded bumps until the skew is within max_skew_mm. Nothing is written if the plan has conflicts (copper of other nets, holes, keepouts, the partner trace) or dry_run=true; the plan is returned either way.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tuneNo
layerNotop
n_netYes
p_netYes
gap_mmYes
dry_runNo
width_mmYes
n_head_mmNo
n_tail_mmNo
p_head_mmNo
p_tail_mmNo
chamfer_mmNo
max_skew_mmNo
via_drill_mmNo
centreline_mmYes
via_diameter_mmNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only say readOnly=false, destructive=false; the description adds substantial behavioral context: the write gate ('Nothing is written if the plan has conflicts (copper of other nets, holes, keepouts, the partner trace) or dry_run=true; the plan is returned either way'), the skew-tuning bumps, and the layer change at a via. It does not cover rate limits or auth, but it goes well beyond the annotations.

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 purpose is front-loaded and each paragraph carries distinct information (centreline definition, side/crossing handling, explicit heads, chamfering, tuning, write gating). The prose is dense and occasionally run-on, but there is little filler to cut.

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?

With no output schema and a mutation tool, the description does the necessary work: it states the plan is always returned, what crossed=true means, and under what conditions nothing is written. It leaves the overall shape of the returned plan and several parameters implicit, but an agent has enough to invoke it correctly.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 16 parameters, so the description must carry the load. It meaningfully explains centreline_mm, p_head_mm/n_head_mm, the tail form with an embedded via, chamfer_mm, max_skew_mm, width/gap, and dry_run — roughly half the surface. tune, layer, p_net/n_net, and the via dimensions are left with no textual meaning beyond their names.

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?

Opens with a specific verb+resource: 'Route a differential pair as two coupled traces along a centreline you choose.' This clearly distinguishes it from single-ended siblings like route_trace, route_net, and lay_bus without needing to open any 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?

Gives clear operational context: the centreline runs from near start pads to near end pads, and p_head_mm/n_head_mm are for 'pins the automatic 45-degree fan-in cannot reach cleanly (e.g. through a gap in a pin row).' It also explains the crossed=true remedy. However, it never explicitly names an alternative tool (e.g. route_trace for single-ended nets), so routing between siblings remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.