Skip to main content
Glama

audit_pcb_dfm_rules

Checks KiCad or Specctra PCB files against standard 2-layer, 4-layer, or fine-HDI fabrication limits for trace width, clearance, via hole diameter, and annular ring.

Instructions

Run a local Design-for-Manufacturing (DFM) rule check on a .kicad_pcb or .dsn file against standard 2-layer or 4-layer fabrication limits (minimum trace width, clearance, via hole diameter, and annular ring width).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "audit_pcb_dfm_rules"
  }
}

Input Schema

NameRequiredDescriptionDefault
fab_tierNostandard_2l
pcb_textNoRaw `.kicad_pcb` or `.dsn` file content
project_pathNoLocal path to `.kicad_pcb` or `.dsn` file

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full disclosure burden. It reveals that the check runs locally against standard fab limits, which is useful, but never states whether the PCB file is modified, what the result contains, or how failures are reported.

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?

A single front-loaded sentence with the verb first and the constraint list appended; no filler. It is tight, though the constraint parenthetical occupies space that parameter or output guidance would better use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter tool with no annotations and no output schema, the definition leaves significant gaps: the return value (violations list? pass/fail?), the fine_hdi tier, and the interaction between pcb_text and project_path are all unaddressed.

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 coverage is 67% and the description adds no parameter guidance: it never mentions fab_tier, and it says the check is against "standard 2-layer or 4-layer" limits while the enum also offers fine_hdi, leaving that option unexplained. It also does not clarify that pcb_text and project_path are alternative input methods.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Run a local Design-for-Manufacturing rule check") on a named file type and enumerates the checked constraints (trace width, clearance, via hole diameter, annular ring). It does not name a sibling to differentiate from, e.g. analyze_kicad_pcb or analyze_specctra_dsn, which share the same file formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

The word "local" hints at an offline, no-upload workflow, but there is no statement of when to choose this over analyze_kicad_pcb or analyze_specctra_dsn, no prerequisites, and no exclusions. An agent must infer the choice from file extensions alone.

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