Skip to main content
Glama

Server Details

Search and review real KiCad and Altium PCB designs: schematics, BOMs, netlists, DRC/ERC.

Ownership verified
Status
Healthy
OAuth
Not checked
Last Tested
Transport
Streamable HTTP
URL
Repository
flintt-dev/boardrepo-plugin
GitHub Stars
0

Available Tools

11 tools
get_boardGet a board overviewA
Read-onlyIdempotent
Inspect

Use when the user names a specific public board, gives a boardrepo.com URL, or picks a search_boards result. Returns its metadata, a bounded README excerpt, tags, license, source EDA format and detected KiCad version, the capabilities it offers (schematic, pcb, bom, gerbers), file count, and canonical URL. Accepts handle/slug or a boardrepo.com URL; do not invent one. For the design itself, chain to read_schematic (wiring), get_bom (parts), or list_board_files then read_file (source).

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds meaningful behavioral specifics beyond annotations: bounded README excerpt, detected KiCad version, capability flags, and the instruction not to invent a board. This is useful context without contradicting the annotations.

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?

Three sentences cover usage triggers, return contents, and routing to sibling tools with no filler. The structure front-loads the when-to-use condition and each sentence earns its place.

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?

The description is complete for an agent to select and call the tool: it gives input forms, output categories, discovery method, and follow-up tool routing. The output schema covers the detailed return structure, so no critical information is missing.

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?

The schema description already covers the parameter at 100%, including the accepted input forms and the 'search_boards' discovery route. The description mostly restates this guidance, adding only the 'do not invent one' caution, so it adds little beyond the schema baseline.

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 names a specific verb and resource ('Returns its metadata, a bounded README excerpt, tags, license, source EDA format...') and clearly distinguishes from siblings by directing design-detail needs to read_schematic, get_bom, or list_board_files. This is a clear, non-tautological definition.

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 first sentence states explicit trigger conditions: when the user names a specific public board, gives a URL, or picks a search_boards result. It also provides alternatives for follow-up actions ('chain to read_schematic...'), making the choice boundary explicit.

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

get_bomGet a board's BOMA
Read-onlyIdempotent
Inspect

Use when the user asks which parts a public board uses: reference designators, quantity, value, footprint, MPN, manufacturer, DNP, and datasheet. Returns up to 200 lines per call (pass the returned cursor for more). Pass include_pricing to also get live best unit price, in-stock quantity, and lifecycle-risk per part. No device pinouts. Search first if the board is unknown; use read_schematic for how the parts connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
cursorNoOpaque pagination cursor from a previous call; pass to fetch the next page.
include_pricingNoWhen true, add live sourcing to each line: best unit price, currency, in-stock quantity, lifecycle-risk band, and whether the price is an estimate. Pass it whenever the user asks about cost, sourcing, availability, or 'how much'. Prices come from distributors and may be partial or absent for obscure parts; this makes the call slower than the static BOM, so leave it off for a plain parts list.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
linesYes
totalYes
nextCursorYes
hasNextPageYes
derivedFromPcbYes
pricingIncludedYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool read-only, idempotent, and non-destructive. The description adds substantial behavioral context beyond that: pagination limit of 200 lines with cursor continuation, performance cost of enabling pricing, and the caveat that pricing may be partial or absent for obscure parts. It also states what the tool does not return (device pinouts). No contradiction with annotations.

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?

Four sentences, each earning its place: the primary use case is first, followed by pagination behavior, pricing behavior, and then exclusions/alternatives. There is zero filler or repetition of schema fields. The most decision-relevant guidance is front-loaded.

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 read-only list tool with three parameters, full schema coverage, an output schema, and rich annotations, the description covers all essential calling contexts: main purpose, pagination, optional pricing behavior, board discovery, and related tools for other intents. Nothing an agent needs to select and invoke this tool correctly is missing.

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 description needs little additional parameter explanation. It subtly reinforces the cursor usage ('pass the returned cursor for more') and references include_pricing's cost/availability trigger, but these are already covered in the schema. The description adds no new parameter-level meaning beyond the schema, which matches the baseline for full coverage.

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 ('get a public board's BOM') and enumerates exactly what the BOM includes (reference designators, quantity, value, footprint, MPN, manufacturer, DNP, datasheet). It distinguishes itself from read_schematic by explicitly excluding pinouts and routing how-parts-connect questions to that sibling.

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 opens with a clear when-to-use trigger ('when the user asks which parts a public board uses'). It gives explicit guidance for the include_pricing parameter (when cost/sourcing/availability is requested) and routes ambiguous board requests to search first. It also names read_schematic as the alternative for connectivity questions, covering when-not-to-use.

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

get_checksGet a board's DRC and ERC resultsA
Read-onlyIdempotent
Inspect

Use when the user asks whether a board passes KiCad's own checks, or before trusting a design: returns the stored DRC (design rules, unconnected copper, schematic-vs-board parity) and ERC (electrical rules) results for the board's current version, with exact error and warning counts per category and paged example violations. These are KiCad's checks as the board's author configured them, so rules they waived were never evaluated and are listed separately. This is not a design review. If the checks have not been run for this version the result says so, and that is NOT the same as passing.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
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.
cursorNoOpaque pagination cursor from a previous call; pass to fetch the next page of violations.
vendorNoOptional fab house id. Returns that fab's manufacturability verdict for this board instead of the board's own DRC/ERC. Do not guess an id - if your tool list includes one for listing fab profiles, get the id from there; if it does not, use `rules` with explicit millimetre limits instead.
categoryNoOptional: return only this category's violation details. Counts for every category are always returned regardless.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ranYes
noteNo
vendorNo
errorCountNo
nextCursorNo
violationsNo
hasNextPageNo
vendorLabelNo
warningCountNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the tool read-only, idempotent, open-world, and non-destructive, and the description adds important behavior beyond that: results are stored rather than freshly computed, waived rules were never evaluated and are listed separately, and an unrun result is explicitly not a pass. This substantially helps an agent interpret the response correctly.

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?

The description is compact, front-loaded with the primary use case, and every sentence adds signal: when to use it, what it returns, how waived rules behave, and the critical caveat that 'not run' is not equivalent to passing. There is no filler or repetition.

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?

Given the five-parameter schema with complete descriptions, an output schema, and safety annotations, the description covers all the contextual information an agent needs: when to select the tool, how to interpret results, and how to avoid confusing missing checks with a pass. No important behavioral gaps remain.

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 all five parameters—board, rules, cursor, vendor, and category—are already documented in the schema. The description adds general output context such as paged example violations and per-category counts, but it does not need to compensate for schema gaps, so baseline 3 is appropriate.

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 names a specific operation—returning stored DRC and ERC results for a board's current version—and lists the categories covered (design rules, unconnected copper, parity, ERC). It distinguishes itself from a design review and implies it is not running checks, making its purpose unambiguous.

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?

It gives explicit entry conditions: use when the user asks whether a board passes KiCad's own checks, or before trusting a design. It also sets boundaries, noting it is not a design review and that a 'checks not run' result is not the same as passing, though it does not explicitly name sibling tools like run_checks or review_board as alternatives.

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

list_board_filesList a board's filesA
Read-onlyIdempotent
Inspect

Use when you need the exact files in a known public board (KiCad source, docs, fabrication outputs, gerbers) before read_file, or to show a project's layout. Returns paths, extensions, sizes, and roles, up to 100 per call; pass the returned cursor only when more are needed. Returns paths only, never contents. Do not guess paths; for wiring prefer read_schematic and for parts prefer get_bom over reading raw files.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
cursorNoOpaque pagination cursor from a previous call; pass to fetch the next page.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
filesYes
nextCursorYes
hasNextPageYes

TDQS

A4.7/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the readOnlyHint and idempotentHint annotations: it returns up to 100 items per call, supports an opaque cursor for pagination, and explicitly states it returns paths only, never file contents. No contradiction with annotations.

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?

The description is compact, front-loaded with the core use case, and every sentence adds value: when to use, what it returns, pagination, and what to prefer instead. No filler or redundancy.

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?

Given the output schema, annotations, and sibling tool context, the description is complete. It tells the agent how to find a board, what results to expect, how pagination works, and which alternative tools to prefer for specific needs.

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 schema already fully documents both 'board' and 'cursor'. The description adds a small amount of operational context around the cursor ('pass the returned cursor only when more are needed') but does not need to compensate for missing schema documentation.

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 names a specific action and resource: listing the exact files in a known public board. It also clarifies what the tool returns (paths, extensions, sizes, roles) and distinguishes it from siblings like read_file, read_schematic, and get_bom.

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 explicitly says when to use this tool ('before read_file, or to show a project's layout'), when not to guess paths, and directs users to read_schematic for wiring and get_bom for parts. It also explains pagination usage with the cursor.

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

list_fab_profilesList fabrication profilesA
Read-onlyIdempotent
Inspect

Use before get_checks(vendor: ...) to see which fab houses a board can be checked against, and exactly which limits each one is checked to (track width, clearance, drill, annular ring, edge clearance, hole spacing). Takes no board. Layer coverage is per profile and is NOT interchangeable: a fab with no profile for a board's layer count cannot answer for it, and get_checks says so rather than guessing. Do not invent a vendor id.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
vendorsYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: takes no board, layer coverage is per profile and not interchangeable, and get_checks reports unsupported cases rather than guessing. No contradiction with annotations.

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?

The description is front-loaded with the primary use case and completes with concise caveats that directly affect correct usage. Every sentence contributes either routing, scope, or a caution; there is no 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?

The description fully covers what the agent needs to use the tool correctly: when to call it, what it returns conceptually, why layer coverage matters, and what not to do. The output schema handles return-structure details, so no critical behavioral information 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?

The tool has zero parameters and the schema already reflects that with 100% coverage. The description reinforces the invocation context by saying 'Takes no board,' which is useful grounding even though there are no parameters to document.

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 action ('list') on a clear resource ('fab profiles') and names the intended use with get_checks. It distinguishes itself by explaining it shows which fab houses and their limits, not just a generic list.

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 instructs to use before get_checks(vendor: ...) and warns not to invent a vendor id. It provides clear when-to-use context but does not explicitly describe when-not-to-use or discuss alternatives beyond the get_checks tie-in.

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

query_designQuery a KiCad file's structureA
Read-onlyIdempotent
Inspect

Use to read a KiCad file as STRUCTURE rather than text: pass a file path from list_board_files and a select path of node names from the root, and get the matching nodes back as data. For example select ["kicad_pcb","layers"] for the layer stack, ["kicad_pcb","footprint"] for the footprints, ["kicad_sch","lib_symbols"] for symbol definitions, or query a .kicad_pro for design rules and net classes. Far cheaper and more reliable than reading a multi-megabyte board as raw text with read_file. For schematic CONNECTIVITY prefer read_schematic, which is already solved; use this for everything the netlist does not carry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe exact file path within the board, as returned by list_board_files. Do not guess.
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
depthNoHow many levels of children to expand (default 2). Keep it small: a deep expansion of a large board is a large response.
cursorNoOpaque pagination cursor from a previous call; pass to fetch the next page of matches.
selectYesNode names from the root downward, e.g. ["kicad_pcb","layers"] or ["kicad_sch","lib_symbols","symbol"]. The first entry is the file's root node.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
pathYes
selectYes
matchesYes
nextCursorYes
hasNextPageYes
totalMatchesYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds value by explaining that the tool interprets the file structurally, returns matching nodes as data, and is cheaper and more reliable than reading large board files as text. This gives a useful behavioral model beyond the annotations.

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?

The description is compact and well-structured: it states the core purpose first, then gives examples, then routes users away from sibling tools. Every sentence contributes useful decision-making or invocation guidance with no 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?

Given the rich input schema, output schema, and strong annotations, the description covers the tool's role, usage context, alternatives, and example selects. Nothing critical is missing for an agent to decide when and how to invoke it.

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?

The input schema already documents all parameters at 100% coverage, so the baseline is 3. The description adds meaningful semantic context by telling users to obtain the file path from list_board_files and by giving realistic select-path examples for layers, footprints, symbols, and net classes.

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 clearly states the tool reads a KiCad file as structured data rather than raw text, with a specific verb and resource. It provides multiple concrete examples for different file types, which makes its purpose immediately distinguishable from siblings like read_file and read_schematic.

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?

It gives explicit when-to-use guidance: when you need structure, not text, and when you already have a file path from list_board_files. It also names alternatives directly—read_file for raw text, read_schematic for connectivity—and says to prefer this when the netlist does not carry the information.

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

read_fileRead a board fileA
Read-onlyIdempotent
Inspect

Use when the user wants the raw contents of a specific file in a public board (a README, config, or a .kicad_sch/.kicad_pcb), by an exact path from list_board_files or one the user gave. Text returns a 128 KiB UTF-8 chunk (pass the returned nextOffset for more); binary returns a download URL, not bytes, so do not claim to have read a binary's contents. Do not guess paths. To understand how a circuit is wired, prefer read_schematic over parsing raw .kicad_sch.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe exact file path within the board, as returned by list_board_files. Do not guess.
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
offsetNoByte offset to start a text file from (default 0); pass the returned nextOffset to continue.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses critical behavior: text files return a 128 KiB UTF-8 chunk requiring nextOffset pagination, binary files return a download URL rather than bytes, and the agent must not claim to have read binary contents. This is valuable operational context not implied by the schema or annotations.

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: use case, return behavior for text and binary, path constraint, and sibling routing. It is front-loaded with the core purpose and contains no 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?

With no output schema, the description fully covers return semantics, pagination, binary handling, and usage boundaries. It also includes guidance about using read_schematic for circuit understanding, making the tool contextually complete for correct invocation.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful semantics by tying path to list_board_files, emphasizing that paths must not be guessed, and explaining that offset accepts the returned nextOffset for continuation.

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 ('read'), a precise resource ('raw contents of a specific file in a public board'), and constrained inputs ('exact path from list_board_files'). It also distinguishes itself from siblings by explicitly excluding raw .kicad_sch parsing in favor of read_schematic.

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?

It explicitly says when to use the tool: when the user wants raw file contents by an exact path. It gives clear exclusions ('Do not guess paths') and directs the agent to read_schematic for understanding circuit wiring, providing a concrete alternative.

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

read_schematicRead a board's schematicA
Read-only
Inspect

Use when the user asks how a public board is wired, what a component (e.g. U1) connects to, or which pins are on a net (e.g. GND), in that design. Returns the board's latest geometry-free connectivity. No focus returns a bounded overview (components + a net index); ref returns one component and the nets it connects to with the other pins on those nets; net returns the pins on that net. These are in-design connections, not an authoritative manufacturer pinout, and a very large design may be truncated (the response flags this). Prefer a focused ref or net over repeated overviews. Use get_bom for purchasing and read_file for raw source. If nets are still computing, continue with the components shown and try again shortly rather than inferring connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
netNoOptional. One net name (e.g. GND, USB_DP): returns the pins on it. Prefer this for 'what is on net X'. Provide at most one of ref or net.
refNoOptional. One reference designator (e.g. U1, J2): returns it plus the nets it connects to and the other pins on those nets. Prefer this over a full overview for a wiring or pin question. Provide at most one of ref or net.
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlNo
noteNo
foundYes
sourceNo
messageNo
netCountNo
truncatedNo
matchStatusNo
requestedNetNo
requestedRefNo
netsAvailableNo
componentCountNo

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, and the description adds valuable non-obvious behavior beyond those: the results are geometry-free in-design connections rather than an authoritative manufacturer pinout, large designs may be truncated with a flag, and nets may still be computing so the agent should not infer connectivity. No contradiction with annotations.

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?

The description is front-loaded with the usage trigger and every sentence adds operational value: output modes, caveats about truncation and manufacturer pinouts, preference guidance, and sibling routing. It is dense but well structured and contains no 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?

Given the output schema exists and annotations cover safety, the description is complete: it explains when to use the tool, how each mode changes the response, what to do while nets are computing, and which sibling tools cover other intents. An agent has everything needed to select and invoke 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?

Although schema coverage is 100%, the description adds meaning beyond the schema by explaining each parameter's return shape: ref returns a component plus its nets and connected pins, net returns the pins on that net, and no focus returns a bounded overview. It also reinforces the 'at most one of ref or net' constraint and gives concrete examples like U1 and GND.

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 clearly states the tool reads a public board's connectivity: how it is wired, component connections, and net pins. It distinguishes itself from siblings by explicitly routing purchasing questions to get_bom and raw source questions to read_file, and by differentiating overview, ref, and net outputs.

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?

It opens with a concrete trigger: 'Use when the user asks how a public board is wired, what a component connects to, or which pins are on a net.' It also provides explicit exclusions and alternatives, such as 'Use get_bom for purchasing and read_file for raw source,' and advises preferring focused ref or net queries over repeated overviews.

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

run_checksRun a board's checksA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
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

ParametersJSON Schema
NameRequiredDescription
noteYes
statusYes
vendorYes
pollWithYes
rulesetHashYes

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses that this is an expensive shared real kicad-cli run, that it can return status 'running' on a busy queue, that results should later be read via get_checks, and that custom rules results are never stored as if published by a fab. These are significant behavioral details the annotations do not convey.

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?

The description is economically written, front-loading the triggering condition and the core action before diving into cost and edge-case behavior. Every sentence adds distinct value: use condition, what it runs, cost/shared nature, possible async result, and an explicit exclusion.

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 tool with an output schema and three parameters, the description covers the invocation trigger, alternative tools, async behavior, cost implications, and parameter relationships. Nothing needed for correct selection or 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?

Even though the schema already documents all parameters, the description adds meaningful semantics: vendor id must come from list_fab_profiles, rules are custom in-house limits expressed in millimetres, and rules and vendor are mutually exclusive. It also explains the storage implication of custom rules, which is not present in 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 opens with a concrete verb-resource pair ('Runs KiCad's own DRC and ERC') and immediately distinguishes the tool from get_checks by stating it is for when checks have not yet been run. It also clarifies the optional fab-house variant, making the purpose unmistakable even among many sibling tools.

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?

It explicitly says when to use the tool ('when get_checks reports the checks have not been run... and you need a verdict') and when not to use it ('Do not use it to re-run a board that already has a result'). It also gives cost-aware guidance, telling the agent to avoid running it on every board, and references list_fab_profiles as the source for vendor ids.

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

search_boardSearch inside a board's filesA
Read-onlyIdempotent
Inspect

Use to find where something appears across a board's text files in ONE call, instead of reading files one by one: give a literal string (a net name, a reference designator, a part number, a footprint) and get back the file, line number and matching line for each hit. Optionally restrict to a file extension with path_suffix. Matching is literal and case-insensitive, not a regular expression. Prefer read_schematic for how a design is wired and query_design for a file's structure; use this when you need to locate something by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
boardYesA public board: handle/slug (e.g. alice/keezyboost40) or a boardrepo.com URL. Discover it with search_boards; do not invent one.
queryYesThe literal text to find, e.g. "USB_DP" or "ATmega328". Not a regular expression.
max_resultsNoOptional cap on matches returned (default 100).
path_suffixNoOptional. Only search files ending with this, e.g. ".kicad_sch" or ".md".

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
queryYes
hasMoreYes
matchesYes
filesScannedYes
filesSkippedYes
filesTruncatedYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive, and the description adds meaningful behavioral detail beyond them: matching is literal and case-insensitive, not a regular expression, and results include file, line number, and matching line. It also clarifies the optional path_suffix restriction, giving the agent a precise model of how the search behaves.

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?

The description is three dense sentences with no filler: it states the action and benefit, defines matching behavior and options, and closes with routing to alternatives. Every sentence adds information an agent needs, and the key purpose is front-loaded.

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 four-parameter search tool with a full output schema and safety annotations, the description is complete: it explains board discovery, query semantics, optional filtering, and the exact return shape. It also covers sibling differentiation, leaving no obvious gap for an agent to select and invoke the tool correctly.

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?

Schema description coverage is 100%, so the baseline is 3, but the description enriches parameter meaning with concrete query examples ('USB_DP', 'ATmega328'), explicit literal-search semantics, and an example path_suffix ('.kicad_sch' or '.md'). This goes beyond the schema's property descriptions without having to restate them.

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 names a specific verb and resource: 'find where something appears across a board's text files' in one call, with concrete examples of search targets and the returned fields (file, line number, matching line). It also explicitly distinguishes itself from siblings read_schematic and query_design, making the tool's role unmistakable.

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 clear when-to-use guidance: use it to locate a literal string across a board's files instead of reading files one by one. It also provides explicit exclusions and alternatives: 'Prefer read_schematic for how a design is wired and query_design for a file's structure; use this when you need to locate something by name.'

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

search_boardsSearch public boardsA
Read-onlyIdempotent
Inspect

Use when the user wants to find real public KiCad/EDA projects: reference designs, or boards using a given component, tag, license, author, or capability (pcb, schematic, bom, gerbers). Searches BoardRepo's public corpus and returns up to 20 board summaries per page (handle/slug, name, description, tags, license, capabilities, saves, stars, URL), ranked by popularity by default so the most-trusted boards come first; pass page for more, or sort:recent for newest. Query is free text plus optional qualifiers: component:esp32 tag:keyboard license:mit has:pcb author:handle. Free-text words are ANDed, so a specific multi-word query narrows fast: if it returns nothing, do not shave one word off and retry — cut straight to the SINGLE most distinctive term (the brand, chip family, or part number) before concluding no board exists. Weigh each result by its saves/stars and completeness rather than trusting it blindly. Do not use for general electronics theory, generic datasheet facts, or the user's own local or private design. Pass a result's handle/slug or URL to get_board; do not guess a handle/slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page; each page returns up to 20 boards.
sortNoResult ordering: popular (default: most saved, then most GitHub-starred) or recent (newest first).
queryNoFree text and/or qualifiers, e.g. "esp32 keyboard component:esp32 tag:keyboard has:schematic author:alice". Free-text words are ANDed, so every extra word can only NARROW the results — measured on the live corpus, "esp32" matches 748 boards, "esp32 keyboard" 23, and "esp32 keyboard lora" 1. Start with the ONE most distinctive word (a part number, chip family, or brand) and add terms only to narrow a result set that is too large. At most 6 distinct free-text words; more is rejected. Omit to list recent public boards.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNo
pageYes
sortYes
totalYes
boardsYes
hasNextPageYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark read-only/idempotent, and the description adds default ranking, pagination cap of 20, ANDed free-text semantics, qualifier syntax, and a caveat to weigh results by saves/stars. No contradiction with annotations.

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?

The description is front-loaded with the use case, then output/behavior, query semantics, and strategy. Every sentence adds distinct value, and the organization matches an agent's decision flow. Slightly dense but not padded.

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?

Given the rich input schema and existing output schema, the description covers pagination, sorting, qualifiers, defaults, and edge-case handling (empty results). Nothing an agent needs to invoke this correctly 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?

Although the schema has 100% coverage, the description adds substantial meaning: qualifier syntax (component:, tag:, license:, has:, author:), AND semantics, the 6-word limit, and a search optimization strategy ('cut straight to the SINGLE most distinctive term'). This goes far beyond the schema description.

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?

The description states a clear verb ('Searches') and resource (BoardRepo's public corpus), and specifies the project types and returned fields. However, it does not explicitly differentiate from the sibling 'search_board', so the agent must infer the plural/scope distinction.

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?

Opens with an explicit 'Use when...' and describes the intended user goal, and it gives a concrete query strategy for handling empty results. It stops short of naming alternatives or when-not conditions, so it is clear context but no exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • Changedsearch_boards2 fields changed
      • changedInput schema / properties / query / description
        Previous value: -"Free text and/or qualifiers, e.g. \"esp32 keyboard component:esp32 tag:keyboard has:schematic author:alice\". Omit to list recent public boards."New value: +"Free text and/or qualifiers, e.g. \"esp32 keyboard component:esp32 tag:keyboard has:schematic author:alice\". Free-text words are ANDed, so every extra word can only NARROW the results — measured on the live corpus, \"esp32\" matches 748 boards, \"esp32 keyboard\" 23, and \"esp32 keyboard lora\" 1. Start with the ONE most distinctive word (a part number, chip family, or brand) and add terms only to narrow a result set that is too large. At most 6 distinct free-text words; more is rejected. Omit to list recent public boards."
      • addedOutput schema / properties / hint
        Added value: +{
        +  "type": "string"
        +}
  2. 4 tool updates
    • Removedget_findings
    • Removedlist_my_boards
    • Removedreview_board
    • Removedverify_claim
  3. 15 tool updates
    • First observedget_board
    • First observedget_bom
    • First observedget_checks
    • First observedget_findings
    • First observedlist_board_files
    • First observedlist_fab_profiles
    • First observedlist_my_boards
    • First observedquery_design
    • First observedread_file
    • First observedread_schematic
    • First observedreview_board
    • First observedrun_checks
    • First observedsearch_board
    • First observedsearch_boards
    • First observedverify_claim

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables natural language interaction with KiCad projects, schematics, and PCBs, supporting project management, design rule checking, netlist extraction, and datasheet RAG search.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language search and exploration of KiCad component symbol libraries with fast full-text search across 20,000+ components including metadata like datasheets, footprints, and descriptions.
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    AI-powered PCB design review MCP server with 93 tools for EMC, signal integrity, power integrity, thermal, and DFM analysis, supporting KiCad, ODB++, Gerber, and more, and generating audit-grade DOCX/HTML reports.
    100
    3
    AGPL 3.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: board metadata, BOM, stored checks, file listing, fab profiles, structured queries, raw file contents, schematic connectivity, running checks, text search within a board, and board search across the corpus. Even similar pairs like get_checks/run_checks and search_board/search_boards are clearly separated by their descriptions and intended use.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern, with get_, list_, read_, query_, run_, and search_ prefixes that accurately signal their behavior. There are no style mixes or ambiguous generic verbs.

Tool Count5/5

Eleven tools is well within the ideal range and each tool earns its place by covering a distinct aspect of board discovery, retrieval, and design inspection. The set feels complete without redundancy or bloat.

Completeness5/5

The tool surface covers the full read-side workflow: searching boards, fetching metadata and BOMs, inspecting schematic connectivity, reading raw or structured files, listing fabrication profiles, and retrieving or running DRC/ERC checks. No obvious gaps exist for a read-only public KiCad board repository browser.