Skip to main content
Glama
ProductOfAmerica

mcp-server-kicad

add_thermal_vias

Add a grid of thermal vias under a footprint pad to improve heat dissipation in KiCad PCB layouts.

Instructions

Add a grid of thermal vias under a footprint pad.

Args:
    reference: Footprint reference (e.g. "U1", "R1")
    pad_number: Pad number to center vias on. If empty, auto-selects largest SMD pad.
    rows: Number of rows in the via grid, at least 1. rows * cols is at most 256.
    cols: Number of columns in the via grid, at least 1.
    spacing: Spacing between vias in mm
    via_size: Via annular ring diameter in mm
    via_drill: Via drill diameter in mm
    net_name: Net to assign to vias. If None, auto-detect from pad.
    pcb_path: Path to .kicad_pcb file. Optional; omit to use the configured default.

Input Schema

NameRequiredDescriptionDefault
colsNo
rowsNo
spacingNo
net_nameNo
pcb_pathNo
via_sizeNo
referenceYes
via_drillNo
pad_numberNo

Output Schema

NameRequiredDescriptionDefault
netYes
padYes
centerYes
referenceYes
vias_addedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.1

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: the rows*cols <= 256 grid limit, automatic net detection from the pad when net_name is None, and the pad auto-selection rule. It does not discuss whether existing vias are replaced or how the mutation interacts with the board, but it materially exceeds the annotation baseline.

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 one-line summary is front-loaded and the Args list is justified given zero schema documentation. Every line adds information an agent needs; the only minor cost is length, but nothing is redundant.

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 9-parameter mutation tool with 0% schema coverage, the description documents all parameters, their units, defaults, and constraints, and an output schema exists so return values need no explanation. An agent has everything required to call it correctly.

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% across 9 parameters, so the description carries the full burden and does so: it defines meaning and units for spacing/via_size/via_drill (mm), documents defaults semantics for pad_number ('empty auto-selects largest SMD pad'), net_name (None = auto-detect), pcb_path (omit = default), and states the rows/cols constraints and minimums.

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 ('Add a grid of thermal vias') with scope ('under a footprint pad'), which separates it cleanly from the sibling add_via (single via) and add_copper_zone. An agent can identify the operation 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrasing 'under a footprint pad', and the pad_number arg says it auto-selects the largest SMD pad when empty. However, there is no explicit when-to-use / when-not-to-use guidance against alternatives such as add_via or add_copper_zone, so the agent must infer routing.

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