Skip to main content
Glama
tureruygar-glitch

kicad10-mcp

route_pads

Route a PCB track between two named pads, automatically using the net's width and reporting clearance conflicts with other nets.

Instructions

Route a track between two pads by name - no coordinates needed.

Looks up both pads, takes the net from them, uses the netclass track width unless overridden, draws a 45-degree (or orthogonal) path, and then reports clearance conflicts with other nets. A power track wider than a fine-pitch pad is necked down where it leaves the pad (see 'necks' in the result).

Args: from_reference, from_pad: Start pad, e.g. 'U2', '7'. to_reference, to_pad: End pad, e.g. 'J3', '1'. layer: Copper layer. Empty = a layer both pads share (F.Cu preferred). width_mm: Track width; default is the net's netclass width. style: '45' (default), 'manhattan' (90-degree), or 'direct' (straight line). bend: 'straight_first' or 'diagonal_first' - which end gets the bend. via_at: [x_mm, y_mm] to change layer through a via on the way. Required when the pads have no copper layer in common (e.g. one SMD on each side); if omitted in that case the via goes at the midpoint. to_layer: Layer after the via (default: the other outer layer). rollback_on_conflict: Undo the whole route if any clearance problem is found. neck_down: Where the full width would hit the part's other pins, run the stretch next to the pad at the widest width that fits (at most the pad's size) and widen once clear.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bendNostraight_first
layerNo
styleNo45
to_padYes
via_atNo
from_padYes
to_layerNo
width_mmNo
neck_downNo
to_referenceYes
from_referenceYes
rollback_on_conflictNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/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 so well: it discloses the routing pipeline (look up pads, take net, apply netclass width, draw 45-degree path), residual clearance-conflict reporting, and the neck-down side effect. It stops short of stating permissions or reversibility beyond the rollback flag.

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 purpose, then a compact behavioral paragraph, then a justified Args block. The per-parameter list is long but necessary given the schema has no descriptions, and no sentence is filler.

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 12-parameter mutation tool with an existing output schema (so return values need no explanation), it covers inputs, layer/via logic, and conflict handling adequately. Nothing critical to correct invocation 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 compensate, and it documents all 12 parameters with examples and semantics ('from_reference, from_pad: e.g. U2, 7'; style values; via_at requirement; to_layer default). This is the description's strongest contribution.

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 ('Route a track between two pads') with a differentiator ('by name - no coordinates needed') that immediately separates it from siblings like add_track or add_track_path. An agent can identify the tool 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?

Provides clear conditional guidance ('via_at is required when the pads have no copper layer in common', 'empty layer = one both pads share', 'rollback_on_conflict undoes the route'). It never explicitly names a sibling alternative or when-not-to-use it, so it falls short of the top band.

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