Skip to main content
Glama

Run a board's checks

run_checks
Read-only

Use when get_checks reports the checks have not been run for this board's current version and you need a verdict before answering. Runs KiCad's own DRC and ERC, or a fab house's manufacturability rules when vendor is given (list them with list_fab_profiles). EXPENSIVE and shared: this is a real kicad-cli run on one worker that everyone's boards queue behind, so run it when the answer matters, not on every board you look at. It usually returns the result directly; on a busy queue it returns status 'running' and you read the result later with get_checks. Do not use it to re-run a board that already has a result at this version.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
boardYesA board: handle/slug or a boardrepo.com URL. Use search_boards for public boards or list_my_boards for personal and authorised organisation boards. Do not invent references.
rulesNoOptional: YOUR OWN limits in millimetres, when no published fab profile fits - an in-house process, a tier a vendor does not publish, or a house rule tighter than any of them. Keys are the same limit names list_fab_profiles reports (trackWidthOuterMm, clearanceOuterMm, drillPlatedMinMm, annularMinMm and so on); values are millimetres. Mutually exclusive with vendor. The result is never stored as if a fab had published it.
vendorNoOptional fab house id from list_fab_profiles. Omit to run the board's own DRC + ERC.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
statusYes
vendorYes
pollWithYes
rulesetHashYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / board / description
      Previous value: -"A public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one."New value: +"A board: handle/slug or a boardrepo.com URL. Use search_boards for public boards or list_my_boards for personal and authorised organisation boards. Do not invent references."
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint and destructiveHint annotations, the description discloses that this is an expensive, shared kicad-cli run on one worker with a global queue, and that it may return status 'running' asynchronously. This is exactly the kind of behavioral context an agent needs and that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: trigger condition, behavior, cost warning, return behavior, and negative instruction. The most decision-relevant information is front-loaded, and the length is justified by the amount of useful operational guidance packed in.

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?

With an output schema present, return values are already specified, and the description fills the remaining gap by explaining when results are direct vs deferred. It also covers the interaction with get_checks and list_fab_profiles, making the tool fully usable in context.

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 100%, so the parameters are already thoroughly documented, including the meaning of `vendor`, the format and semantics of `rules`, and mutual exclusivity. The prose description adds context about when to use `rules` but does not substantially extend the parameter meaning beyond the schema.

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?

The description states a specific verb and resource: it runs KiCad DRC/ERC, or a fab house's manufacturability rules when `vendor` is given. It clearly differentiates itself from get_checks by positioning itself as the action that produces a result, while get_checks reads that result later.

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

Usage Guidelines5/5

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

The description gives an explicit trigger: use it when get_checks reports checks have not been run for the current version and a verdict is needed. It also names alternatives (get_checks, list_fab_profiles), warns against overuse due to cost, and explicitly says not to re-run a board that already has a result at this version.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.