Skip to main content
Glama

pcb_get_fab_stats

Computes PCB fabrication statistics—board size, layers, vias, pads, minimum annular ring and track width, and hole sizes—so you can catch process-minimum issues before sending Gerbers to a fab.

Instructions

DFM (Design For Manufacturing) summary -- the numbers fab houses ask for on their quote forms.

One IPC call returns:

  • board_width_mm, board_height_mm, board_area_mm2

  • num_copper_layers

  • vias_total, vias_through, vias_blind, vias_buried

  • pads_plated, pads_unplated, pads_slotted

  • min_annular_ring_mils -- across all plated holes (vias + plated pads). Most fabs need ≥ 4 mil for the standard process; sub-4-mil bumps to HDI.

  • min_track_width_mils -- minimum across all copper layers. Standard fabs offer 4-5 mil; sub-3 mil is HDI.

  • smallest_hole_mils, largest_hole_mils, distinct_hole_count -- the drill bit story. Fab houses charge per distinct drill diameter; collapsing from 7 distinct sizes to 4 can shave noticeable cost.

Useful before sending gerbers to the fab: the agent can spot sub-process-minimum values and warn the user. Aspect-ratio check (depth / drill) is NOT included here because it requires layer-stack walking; if you need it, fetch pcb_get_layer_stackup separately.

Returns: Dict with all keys above. All linear measurements use the stated unit suffix (_mm vs _mils).

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, so the description carries the burden and does reasonably well: it discloses that this is a single IPC call, how values are aggregated (min annular ring across vias + plated pads, min track width across all copper layers), and what it deliberately does not compute. Read-only nature and any cost/latency expectations are only implied.

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 purpose sentence, then a scannable field list, then usage and exclusion notes. Slightly verbose in the fab-cost commentary (drill bit story, HDI thresholds), though that context is genuinely interpretive rather than 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?

An output schema exists, so explaining return values is optional; the description goes further by telling the agent how to interpret thresholds (4 mil annular ring, 3-4 mil track width → HDI) and where to get the omitted aspect ratio. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Zero parameters, so the baseline is 4. The description correctly reflects that no arguments are needed and spends its words on the returned measures instead.

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?

Names the specific resource (DFM/fab statistics: board size, layer count, via/pad counts, min annular ring, min track width, hole sizes) and frames it as the numbers fab houses ask for on quote forms. That framing distinguishes it from the many sibling stats tools (pcb_get_board_statistics, proj_get_stats, get_board_info).

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 states the moment to use it ('before sending gerbers to the fab' so the agent can spot sub-process-minimum values) and names an alternative for the excluded metric ('if you need aspect ratio, fetch pcb_get_layer_stackup separately'). Lacks an explicit statement of when NOT to use it versus pcb_get_board_statistics, which is the nearest sibling.

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