Skip to main content
Glama
biosshot

kicad-copilot

by biosshot

KiCad Copilot

AI-powered MCP server for KiCad. Create and modify schematics from natural language, search real components, work with hierarchical projects, generate PCB placement, route boards locally, and create simple copper pours directly through an AI agent.

KiCad Copilot is the KiCad counterpart to EasyEDA Copilot. It provides the same core circuit-generation and PCB automation capabilities—and goes further with file-oriented hierarchical projects, recoverable checkpoints, native kicad-cli integration, and fully local PCB routing.

Integrated analysis: KiCad Copilot downloads a pinned, verified kicad-happy v2.2.0 release on first use of analyze_schematic or analyze_pcb. The MCP tools return compact, token-efficient actionable findings and focused design data.

What it does

KiCad Copilot gives AI agents a high-level, file-oriented interface to KiCad:

  • Generate and modify schematics: add, remove, replace, and connect real components without editing every KiCad object individually.

  • Rebuild schematic blocks: reorganize selected components while preserving their electrical connections.

  • Search components and reusable blocks: resolve components by MPN or part UUID and insert proven functional circuits.

  • Work with KiCad projects: inspect project trees and create projects, standalone schematics, hierarchical sheets, and PCB files.

  • Preserve recoverable checkpoints: save, list, and restore exact versions of individual KiCad files.

  • Synchronize schematic and PCB: explicitly import schematic changes into the associated board.

  • Generate PCB placement: describe board constraints in a compact JavaScript DSL, review PNG/SVG previews, and apply the approved result.

  • Route locally: use eda-copilot-router with its managed KRT backend without sending routing work to an external service.

  • Create copper pours: add simple full-board zones with optional stitching vias.

  • Use native KiCad tooling: discover kicad-cli for ERC, DRC, previews, exports, manufacturing files, and other native operations.

KiCad Copilot works directly with saved .kicad_pro, .kicad_sch, and .kicad_pcb files. It does not require KiCad IPC or a plugin installed inside KiCad.

Related MCP server: KiCad MCP Server

Examples

These projects were generated and iterated through KiCad Copilot. The complete KiCad source files are available in the examples directory.

ATmega328P development board

A hierarchical ATmega328P design with the MCU core, clock, reset, decoupling, USB-UART power, Nano-compatible headers, and debug connections split across functional sheets.

Download the ATmega328P project

Geiger high-voltage supply

A larger multi-sheet design covering power input, 3.3 V regulation, the high-voltage generator, flyback stage, feedback, detector, controller, and user interface.

Download the Geiger high-voltage project

RP2350 development board

A hierarchical RP2350 design with power, clock, flash, USB/debug, GPIO headers, and an AI-generated PCB placement. The example includes the placement DSL and an editable KiCad board.

Download the RP2350 project

Installation

Add the MCP server to your AI agent.

Codex:

codex mcp add kicad-copilot -- npx -y kicad-copilot-mcp

Claude Code:

claude mcp add kicad-copilot -- npx -y kicad-copilot-mcp

Generic MCP configuration:

{
  "mcpServers": {
    "kicad-copilot": {
      "command": "npx",
      "args": ["-y", "kicad-copilot-mcp"]
    }
  }
}

Restart the MCP client after adding the server. KiCad Copilot includes local workflow documentation for the agent; tool descriptions expose its installed path automatically.

Requirements

  • Node.js 20 or newer

  • KiCad 9 or 10

  • Python 3 for managed EasyEDA2KiCad installation and kicad-happy analysis

KiCad Copilot searches for kicad-cli in PATH and standard KiCad installation locations, preferring KiCad 10 when multiple supported versions are installed. Set KICAD_CLI_PATH when the executable is stored elsewhere.

The first real-component conversion uses an existing EasyEDA2KiCad installation or installs it automatically into a managed local virtual environment.

The first design-analysis call downloads the pinned kicad-happy release into the shared EDA Copilot asset cache after verifying its archive size and SHA-256 hash. Set KICAD_HAPPY_DIR to use a trusted local checkout instead.

Schematic workflow

Ask the agent to inspect a KiCad project or give it the path to a target .kicad_sch file. A typical request can be as simple as:

Open D:\Projects\sensor\sensor.kicad_pro and add a 3.3 V regulator block to the Power sheet.

The agent can inspect the project tree, read the target sheet as compact component/net JSON, find exact components, assemble the requested change, and validate the saved result through KiCad.

Hierarchical projects remain file-oriented: each physical schematic sheet is modified through its own .kicad_sch path, while project-wide context is used where the operation requires the complete signal map.

File synchronization

KiCad Copilot changes files on disk. KiCad does not reliably merge those changes with newer unsaved edits in an already open editor.

Before a write:

  1. Save intentional changes in KiCad.

  2. Avoid keeping the only copy of newer work in the editor buffer.

After a write:

  1. Reload, revert, or reopen the document in KiCad.

  2. Do not overwrite the updated file with an older editor buffer.

PCB workflow

PCB placement and routing use an explicit review flow:

  1. Import schematic changes into the target .kicad_pcb file.

  2. Describe the outline, holes, constraints, regions, and important components in the placement DSL.

  3. Generate a mechanical preview without modifying the PCB.

  4. Review the returned PNG or SVG preview.

  5. Generate and approve the complete placement.

  6. Apply the stored placement to the PCB.

  7. Route the remaining connections locally.

  8. Inspect the result and run final KiCad DRC.

Every placement response containing a PCB is checkpointed and applied atomically, including preview and issue-bearing results. The agent inspects the returned preview or PCB analysis and can roll back through checkpoints when needed; no separate assembly tool call is required.

Placement and router DSL execution remain separate operations. This keeps schematic-to-PCB synchronization explicit and makes it possible to clear or rebuild routing without deleting placed components.

KiCad CLI

get_project_info reports the discovered kicad-cli path and version. Agents should use the native CLI whenever KiCad already provides the operation, including:

  • schematic ERC and PCB DRC;

  • schematic and PCB PDF/SVG exports;

  • 3D PCB renders;

  • Gerber and drill generation;

  • BOM, position, STEP, STL, GLB, and VRML exports;

  • project jobsets and format upgrades.

See KiCad CLI workflow for ready-to-use commands.

Design analysis

analyze_schematic runs the offline schematic checks and can return focused top-level overview, hierarchy, block, connectivity, power, bus, BOM, assembly, and verification data. analyze_pcb automatically enriches PCB analysis from the associated schematic, runs cross-domain checks, and optionally adds thermal, EMC, or trace-proximity analysis. Individual boolean flags control each optional report field; compact findings are enabled by default. Long-running PCB layout, PCB routing, and lifecycle audits return a prefixed operation_id such as pcb-dsl:1a2b3c4d. Continue any of them with wait_operation; stop obsolete work with cancel_operation. The tools omit internal rule identifiers, runtime metrics, and coordinate-level copper from the LLM response.

See design analysis for the exact compact result contract and workflow.

Compatibility

KiCad version

Status

KiCad 10

Supported

KiCad 9

Supported

Other major versions are rejected because their file formats and CLI behavior are not covered by the current implementation.

Documentation

Development

git clone https://github.com/biosshot/kicad-copilot.git
cd kicad-copilot
npm install
npm run check
npm start

Run the MCP Inspector with:

npm run inspect

The repository also contains focused schematic, PCB, and routing test scripts for development against disposable files.

License

MIT

Available Tools

22 tools
assemble_pcb_layoutAssemble PCB LayoutB

Apply a stored placement to one KiCad PCB. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
layout_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It fails to mention whether applying the placement overwrites the existing layout, requires a specific file state, or has any side effects. This is a mutation tool on a KiCad PCB, but no behavioral traits are disclosed.

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 one front-loaded sentence stating the core action, followed by a useful pointer to instructions. It is compact with no redundant information, achieving maximum efficiency.

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 tool that modifies a PCB file, with no annotations, no output schema, and one undocumented parameter, the description is too sparse. It omits behavioral context, parameter meaning for 'layout_id', and usage guidance. The reference to instructions.md is a crutch, but the description itself is incomplete.

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 only 50%; 'path' has a description but 'layout_id' does not. The description adds no meaning for 'layout_id' or any parameter details. It does not compensate for the undocumented parameter, leaving a gap in the tool's invocation semantics.

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 uses a specific verb 'Apply' and identifies the resource 'a stored placement to one KiCad PCB'. This clearly distinguishes the tool from siblings like 'make_pcb_layout', which would imply creating a placement. The purpose is unambiguous.

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 description provides no guidance on when to use this tool versus alternatives such as 'make_pcb_layout'. It only states what it does without mentioning contexts, prerequisites, or exclusions. The reference to instructions.md is external and not a substitute for inline usage guidance.

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

auto_route_pcbAuto Route PCBC

Route a KiCad PCB with the bundled local WASM router and apply it atomically. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
wait_msNo
pour_gndNo
stitch_gndNo
ignore_netsNo
timeout_secNo
route_layersNo
routing_effect_priorityNoCOMPLETION_FIRST

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses atomicity and local execution, which are valuable, but it does not mention that routing may be async (implied by wait_auto_route sibling), that it modifies the PCB file, or how timeouts behave. The external instructions reference partially compensates but is not a substitute for explicit disclosure.

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 description is a single sentence that front-loads the core action and provides a pointer to detailed instructions. It is appropriately brief and every word earns its place, though the brevity limits the amount of information conveyed.

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?

With 8 parameters, no annotations, and no output schema, the description is far from complete. The reference to instructions.md adds a useful resource, but the description itself does not cover the workflow, return values, or parameter semantics, leaving significant gaps for the agent.

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

Parameters1/5

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

Schema description coverage is only 13%, with 7 of 8 parameters lacking descriptions. The tool description does not compensate for this gap; it only implicitly mentions the PCB path and says nothing about wait_ms, route_layers, ignore_nets, or other parameters.

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 routes a KiCad PCB using a bundled local WASM router and applies it atomically. This specific verb+resource combination distinguishes it from sibling tools like make_pcb_layout or wait_auto_route.

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 description provides no explicit when-to-use or alternative comparison. The pointer to instructions.md is a vague hint but does not explain prerequisites, whether this should be used after make_pcb_layout, or when manual routing is preferred.

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

beautify_schematicBeautify SchematicA

Reassemble selected KiCad components into named functional blocks while preserving their electrical connections. Recoverable item errors are returned (max 36). For circuit workflow docs, read: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesExisting target .kicad_sch path.
blocksYesComponent groups keyed by block name.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It discloses useful traits: preservation of electrical connections and recoverable error returning (max 36). However, it does not mention whether the file is modified in place, reversibility, or permission requirements, leaving notable gaps.

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?

Two concise sentences front-load the core purpose and then add important behavioral details (error limit, docs). No redundancy or filler, making it easy for an agent to quickly parse.

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

Completeness3/5

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

The tool has nested object parameters and no output schema, so more context would be beneficial. The description mentions recoverable errors and provides a docs pointer, but does not describe the expected return value on success, side effects on the schematic file, or how it fits into the workflow relative to sibling tools.

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% and the parameters (path, blocks) are clearly described in the schema. The description adds no additional parameter-level details, so the baseline of 3 applies.

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 action: 'Reassemble selected KiCad components into named functional blocks while preserving their electrical connections.' This clearly distinguishes it from sibling tools like extract_circuit or component_search by describing its unique output and preservation guarantee.

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?

No explicit guidance on when to use this tool versus alternatives is provided. The pointer to '/app/docs/SKILL.md' suggests a workflow but does not articulate conditions or exclusions. There is no mention of alternatives or 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.

cancel_auto_routeCancel Auto RouteA

Cancel a running local PCB auto-route operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It only states the operation is canceled, but fails to mention consequences such as partial routing left behind, whether cancellation is immediate, or any required permissions. This leaves important behavioral context undisclosed.

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 a single, concise, front-loaded sentence with no filler. Every word contributes to the core purpose.

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

Completeness3/5

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

For a simple one-parameter cancel operation, the description provides the essential action and target. However, with no annotations or output schema, it lacks details about the effect on the existing routing state and any response or error conditions, making it only minimally complete.

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?

The schema has 0% description coverage for parameters. The description does not explain the operation_id parameter at all, relying on the param name and schema format. Since the description must compensate for low coverage but doesn't, it adds minimal semantic value 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 clearly states the specific action ('Cancel') and resource ('running local PCB auto-route operation'), using a precise verb and object. It distinguishes from sibling tools like auto_route_pcb (start) and wait_auto_route (wait) by targeting a running operation.

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?

The description implies the tool should be used when a local PCB auto-route is running and needs to be stopped. It doesn't explicitly mention alternatives or when not to use it, but the context is clear enough for selection among siblings.

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

cancel_pcb_layoutCancel PCB LayoutA

Request cancellation of an active make_pcb_layout operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
operation_idYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions 'request' and 'active operation' but doesn't clarify whether the cancellation is asynchronous, what happens if no operation is active, or the success/failure response. This is insufficient for a state-changing tool.

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 a single, focused sentence with no redundant words. It front-loads the action and target, making it highly concise and efficient.

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?

Despite the tool's apparent simplicity, the description is too terse. It omits critical operational details: where operation_id comes from, whether the tool blocks or returns immediately, and what the outcome looks like. With no annotations or output schema, the description alone is insufficient for reliable use.

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?

The schema has one required parameter (operation_id) with 0% description coverage. The description doesn't mention this parameter or explain how to obtain it, leaving the agent to infer its meaning from context. This is a significant gap.

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's action ('request cancellation') and its target ('an active make_pcb_layout operation'), distinguishing it from sibling cancellation tools like cancel_auto_route. The verb is specific and the resource is 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?

The description gives clear context by specifying it applies to an active make_pcb_layout operation, which guides when to invoke it. However, it doesn't explicitly mention alternatives or when not to use, though the narrow scope makes this less critical.

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

clear_pcb_routingClear PCB RoutingA

Delete PCB tracks, track arcs, and vias while preserving placement, zones, and outline. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
only_netsNo
ignore_netsNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses what is deleted and what remains, which is good. However, it does not mention the behavior of the optional 'only_nets' and 'ignore_nets' parameters, which could affect the deletion scope. The blanket statement 'Delete PCB tracks...' might mislead an agent into thinking all routing is always cleared, ignoring net filtering.

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 extremely concise: two sentences. The first states the core function clearly, and the second provides a pointer to detailed instructions. No wasted words, and the most important information is front-loaded.

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?

This is a mutation tool with three parameters, no output schema, and no annotations. The description explains the destructive scope but omits crucial details about the optional net-filtering parameters, potential side effects, or return values. The pointer to instructions helps but does not make the description self-sufficient. Overall, the description is incomplete for an agent to safely invoke the tool with only_nets/ignore_nets.

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 description coverage is only 33% (only 'path' is described). The description does not compensate for the undocumented parameters 'only_nets' and 'ignore_nets', offering no explanation of their meaning, format, or interaction with the deletion behavior. The description adds no value beyond the minimal path description.

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's function with a specific verb ('Delete') and defines the exact scope: PCB tracks, track arcs, and vias. It also explicitly notes what is preserved (placement, zones, outline), which differentiates it from routing tools like auto_route_pcb and layout tools.

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?

The description implies usage (clearing routing before re-routing) but does not explicitly state when to use this tool versus alternatives. There is no mention of exclusions or prerequisites, though referencing the instructions document provides some context. However, no direct guidance is given about when to prefer this over auto_route_pcb or other PCB tools.

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

create_docCreate KiCad DocumentA

Create a KiCad project, schematic, hierarchical page, or empty PCB without overwriting files. Agent instructions: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
docYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses an important non-destructive behavior ('without overwriting files'), but does not mention success/error responses, permission requirements, or whether parent directories are created. This is useful but incomplete for a creation tool.

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 a single front-loaded sentence with no redundancy. The second sentence is a useful pointer to external instructions and does not detract from the clarity.

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

Completeness3/5

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

Given no output schema and no annotations, the description adequately explains the tool's primary purpose and a key behavioral guarantee. However, it lacks details about return values, error conditions, or post-creation behavior. The input schema is detailed, but the overall package is only partially complete.

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 top-level parameter 'doc' has no schema description (0% coverage), so the description should compensate. It lists the supported doc types, but does not explain the structure of the 'doc' object or the special parent_path requirement for hierarchical pages. The nested schema does document these, but the description adds only partial value.

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 a specific verb ('Create') with a precise resource list ('KiCad project, schematic, hierarchical page, or empty PCB') and a key constraint ('without overwriting files'). This distinguishes it from sibling tools focused on PCB layout or extraction.

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?

The description gives clear context for when to use the tool (creating various KiCad document types) and a safety constraint (no overwriting). It does not explicitly mention alternatives or when not to use it, but the context is sufficient for an agent to decide.

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

extract_circuitExtract CircuitB

Apply circuit changes to a KiCad .kicad_sch file. Every added component must include part_uuid. Recoverable item errors are returned (max 36). For circuit modification docs, read: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesExisting target .kicad_sch path.
rm_componentsYesComponents to remove from the circuit
add_componentsYesComponents to add
external_connectYesUse only when you need to connect to a pin of an external component that you have not modified and that does not have a signal_name
add_reused_blocksYesreuded blocks to add
external_rm_connectYesUse only if you need to remove/break the connection from an external component's pin. Remember to remove external_rm_connect first and then add external_connect.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It mentions that added components must include part_uuid and that recoverable errors are returned (max 36), but it does not disclose whether the file is overwritten in place, whether changes are transactional, authentication requirements, or the nature of the response. For a mutation tool, this is a significant gap.

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 sentences, front-loaded with the main purpose, and includes a key constraint and error behavior. No redundant wording; every sentence earns its place.

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?

This is a complex tool with 6 required parameters including nested objects, no output schema, and no annotations. The description omits return value format, detailed operation semantics (add, remove, connect), and failure handling beyond max 36 errors. It is too sparse for an agent to fully understand the tool's behavior from the description alone.

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 baseline is 3. The description adds emphasis on part_uuid being mandatory and error limits, but it does not add significant meaning beyond the schema for individual parameters. It references SKILL.md for further details, but the schema already documents each parameter.

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 clearly states the tool applies circuit changes to a KiCad .kicad_sch file, which is a specific verb+resource. It distinguishes from read-only and search tools, though it doesn't explicitly contrast with beautify_schematic which also modifies the schematic.

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?

The description implies the tool is for circuit modification and points to SKILL.md for documentation, but it doesn't explicitly say when to use this tool versus siblings like beautify_schematic or when not to use it. No explicit alternatives are mentioned.

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

get_pcb_component_sizesGet PCB Component SizesC

Return server placement footprint sizes and compact board estimate. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
designatorsNo
include_allNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only mentions 'Return' and a pointer to instructions. It does not state whether the operation is read-only, side effects, or error conditions, leaving the agent uninformed.

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 description is concise, with only two sentences and no wasted words. The mention of the instructions file adds context, though it could arguably be external.

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?

Without an output schema, the description should clarify return values and usage context, but it only gives a high-level summary. It omits parameter behavior and prerequisites, making it inadequate for a tool with three parameters.

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

Parameters1/5

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

Schema coverage is only 33% (only 'path' is documented), and the description does not mention any parameters. It fails to explain how 'designators' or 'include_all' influence the result, providing no added meaning beyond the schema.

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 uses a specific verb ('Return') and resource ('server placement footprint sizes and compact board estimate'), making the tool's function clear. It has a distinct purpose among PCB-related siblings, though it doesn't explicitly differentiate itself.

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?

No guidance is provided on when to use this tool versus alternatives like make_pcb_layout or auto_route_pcb. The description only states the function without any context or exclusions.

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

get_project_infoGet KiCad Project InfoB

Build KiCad project and hierarchical schematic trees from a file or directory path. Agent instructions: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to a KiCad file or directory.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It says 'build' but does not clarify whether this is a read-only operation or has side effects. No information about permissions, return format, or safety is given. The pointer to SKILL.md is external and not part of the description here.

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 description is short and front-loaded with the core purpose in the first sentence. The second sentence references an external SKILL.md file, which is a slight distraction but does not significantly reduce clarity. Overall, it is efficient and appropriately sized.

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

Completeness3/5

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

The tool is relatively simple (one parameter, no output schema). The description states the input and output at a high level, but does not explain what the tree structure contains or whether the operation is safe. Given the moderate complexity and lack of annotations, it is adequate but incomplete, leaving room for additional behavioral detail.

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 coverage is 100% with the parameter 'path' described as 'Path to a KiCad file or directory.' The description repeats this without adding details like path formats, required permissions, or examples. Therefore, it does not add significant meaning beyond the schema, meeting the 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 clearly states a specific verb ('Build') and resource ('KiCad project and hierarchical schematic trees') with an input path. This distinguishes it from siblings like get_schematic, which focus on a single schematic, and extract_circuit, which extracts circuit data.

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?

No explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or reference sibling tools. The description implies usage by stating its purpose, but does not provide context or exclusions.

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

get_schematicGet KiCad SchematicA

Get exactly one KiCad .kicad_sch file as a compact component and net list. For circuit workflow docs, read the local docs folder: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_sch file path.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the 'exactly one' constraint and the compact output format, but does not mention error behavior, permissions, or side effects. For a read-only getter, this is adequate but not rich.

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 description is concise at two sentences, front-loaded with the core purpose. The second sentence about docs is somewhat tangential but still relevant and brief.

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

Completeness4/5

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

For a simple one-parameter read tool with no output schema, the description adequately summarizes the output and scope. It could mention error handling or path format, but the complexity is low and the description is sufficient.

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 coverage is 100% with a clear path description. The description adds the 'exactly one' scope but does not provide additional syntax or format details beyond the schema, making it 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 clearly states the tool gets exactly one .kicad_sch file and produces a compact component and net list, specifying the verb, resource, and output. This distinguishes it from sibling tools like extract_circuit or component_search.

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?

The description implies usage for retrieving a single schematic file but does not explicitly compare with alternatives or state exclusions. The pointer to /app/docs/SKILL.md provides general workflow context but not direct selection guidance.

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

import_pcb_changesImport PCB ChangesC

Synchronize one KiCad PCB from its associated schematic. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
schematic_pathNoOptional root .kicad_sch override.

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'Synchronize' with no mention of side effects, destructive actions (e.g., overwriting PCB edits), required access, or what changes occur. This is a significant transparency gap for a tool that likely modifies the PCB file.

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 description is very concise, with one functional sentence and a pointer to a relevant instructions file. It is front-loaded with the main purpose and does not waste words. The instruction file reference could be seen as extra, but it is useful and does not bloat the description.

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

Completeness1/5

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

For a synchronization tool that likely needs to handle conflicts, file paths, and schematic-PCB relationships, the description provides almost no context. With no output schema and no annotations, the agent has no idea what success looks like, what errors can occur, or what the instruction file contains. It is far from complete.

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 input schema already provides 100% coverage with descriptions for both parameters ('Target .kicad_pcb path' and 'Optional root .kicad_sch override'). The description does not add additional meaning about how these parameters interact or what values are expected, so it does not exceed the schema baseline.

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 uses the specific verb 'Synchronize' with a clear resource ('one KiCad PCB from its associated schematic'), which conveys the tool's core function. It does not explicitly name sibling tools but the callback to 'associated schematic' differentiates it from other PCB layout tools. However, the term 'Synchronize' could be interpreted more clearly, and the instruction file reference is not part of the purpose.

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 description gives no guidance on when to use this tool versus alternatives like make_pcb_layout or auto_route_pcb. The reference to an instruction file implies there are detailed usage rules, but the description itself does not state prerequisites, typical scenarios, or alternatives. This leaves the agent to infer usage context.

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

list_checkpointsList KiCad CheckpointsB

List file checkpoints saved by KiCad Copilot. Agent instructions: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting from 1.
pathYesTarget KiCad file path.
limitNoMaximum checkpoints per page.

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It states that it lists checkpoints, which indicates a read-only operation, but does not disclose details such as pagination behavior, sorting, or what happens if the path is invalid. It adds the context that it's specific to KiCad Copilot, but lacks depth.

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 description is very concise: one sentence clearly stating purpose. The reference to agent instructions adds a bit of overhead but is harmless. It is front-loaded with the key action and resource.

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?

Given no output schema and no annotations, the description does not explain what the response looks like or how pagination works. The tool is relatively simple (list operation), but with three parameters and no return information, the description is incomplete for an agent to fully understand the outcome.

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 coverage is 100%, so all parameters (path, page, limit) have descriptions in the schema. The description does not add extra meaning beyond the schema, but since the schema is thorough, a baseline of 3 is appropriate.

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 'List file checkpoints saved by KiCad Copilot', which clearly identifies the action (list) and resource (file checkpoints), and names the source ('KiCad Copilot'). It does not explicitly distinguish itself from sibling tools like save_checkpoint or restore_checkpoint, but the verb 'list' and resource 'checkpoints' make the purpose clear enough.

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?

There is no guidance about when to use this tool versus alternatives. The description only mentions the purpose and refers to an agent instructions file, which is not accessible to the model. No exclusions or alternative tool references are provided.

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

make_pcb_layoutMake PCB LayoutA

Create placement without changing the PCB and return PNG/SVG preview paths. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesJavaScript PCB layout DSL file path.
pathYesTarget .kicad_pcb path.
wait_msNo

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full transparency burden. It discloses that the tool does not change the PCB and that it returns PNG/SVG preview paths, which is useful. However, it does not mention potential asynchronous behavior (indicated by wait_ms parameter) or any side effects beyond what is stated.

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 two concise sentences, front-loaded with the primary action and output. The pointer to instructions.md is a useful addition without unnecessary verbosity. Every sentence earns its place.

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

Completeness3/5

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

The description gives the core purpose and points to a detailed instructions file, which adds context. However, it omits the asynchronous workflow implied by sibling tools (wait_pcb_layout, cancel_pcb_layout) and the wait_ms parameter. No output schema exists, so the description could do more to explain the overall process.

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 67%, with clear descriptions for the two required parameters (file and path). The description itself adds no parameter-specific meaning, but the schema already documents the key inputs. The wait_ms parameter lacks a description but is self-explanatory with its name and constraints.

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 creates a PCB placement without modifying the actual board and returns PNG/SVG preview paths. This distinguishes it from siblings like assemble_pcb_layout or auto_route_pcb by emphasizing the non-destructive preview nature.

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?

No guidance is provided on when to use this tool compared to alternatives. It does not mention any prerequisites, exclusions, or scenarios where another sibling tool would be more appropriate.

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

pour_pcb_layersPour PCB LayersB

Create managed full-board copper zones and optional stitching vias. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
netYes
pathYesTarget .kicad_pcb path.
layersYes
max_viasNo
stitch_viasNo
via_drill_mmNo
edge_margin_mmNo
stitch_grid_mmNo
via_diameter_mmNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It does not disclose that this modifies the .kicad_pcb file, whether it requires existing nets, or what 'managed' means regarding zone behavior. The mention of 'full-board' implies it covers the entire board, but potential side effects are not described.

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 a single sentence plus a reference to instructions. It is front-loaded with the core action and contains no redundant information. The reference to the instructions file is a useful pointer for additional details.

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?

Given the tool has 9 parameters, no output schema, and no annotations, the description is insufficient. It lacks information about return values, synchronous behavior, prerequisites (e.g., net must exist), and the effects of the parameters. The external instructions file is referenced but not included, so the AI agent has no direct access to that context.

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?

With only 11% schema description coverage, the description should compensate by explaining parameters, but it only mentions copper zones and stitching vias in general terms. It does not clarify the meaning of edge_margin_mm, stitch_grid_mm, max_vias, or the relationship between via_drill_mm and via_diameter_mm.

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 creates managed full-board copper zones and optional stitching vias, using a specific verb ('create') and resource ('copper zones'). This distinguishes it from sibling PCB tools like auto_route_pcb and set_pcb_stack_layers.

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?

The description does not explicitly state when to use this tool versus alternatives, but the action of creating copper zones and stitching vias implies its use for power/ground pours. It references an instructions file, which could provide more guidance, but the description itself lacks explicit when/when-not conditions.

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

restore_checkpointRestore KiCad CheckpointA

Restore one exact file checkpoint by id. Agent instructions: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCheckpoint id from list_checkpoints.
pathYesTarget KiCad file path.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits itself. It only states the action (restore) and scope (one exact file by id) but does not mention consequences such as overwriting the target file, whether it's reversible, required permissions, or what the tool returns. This is a significant gap for a mutation tool.

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 description is one clear sentence followed by a pointer to /app/docs/SKILL.md. The main sentence is efficient and front-loaded, and the skill pointer is brief. Not every word earns its place, but it's well-structured.

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

Completeness3/5

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

The tool has two well-documented parameters and a clear purpose; the description is minimally sufficient for an agent to identify inputs and what action is taken. However, without annotations or an output schema, it fails to clarify behavioral effects or return values, leaving uncertainty for a mutating operation.

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 coverage is 100%, so the baseline is 3 even without extra param info. The description adds little beyond the schema: 'by id' mirrors the schema's 'Checkpoint id from list_checkpoints,' and 'one exact file checkpoint' adds slight emphasis but no new semantic detail.

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 uses a specific verb and resource: 'Restore one exact file checkpoint by id.' This clearly states what the tool does and differentiates it from sibling tools like list_checkpoints and save_checkpoint. The qualifier 'exact' adds precision.

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?

The description implies the tool is used to restore a single, specific checkpoint identified by an id, which sets clear context for when to use it. It doesn't explicitly name alternatives or exclusions, but the uniqueness of restore among siblings and the 'by id' qualifier give sufficient guidance.

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

save_checkpointSave KiCad CheckpointB

Save an exact checkpoint of one KiCad file. Agent instructions: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget KiCad file path.
descriptionNoShort checkpoint description.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but only states 'Save an exact checkpoint'. It does not explain overwrite behavior, naming conventions, or failure modes, leaving significant behavioral ambiguity for a mutating operation.

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 description is concise at two short sentences and front-loaded with the core purpose. The second sentence referencing SKILL.md is a minor addition but does not bloat the description.

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?

Given the absence of annotations and output schema, the description is too sparse. It omits critical context about how checkpoints are stored, how this tool relates to restore_checkpoint/list_checkpoints, and any side effects, making it incomplete for a tool in a workflow.

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 input schema already provides descriptions for both parameters (path and description), so the baseline is 3. The description adds no additional parameter semantics beyond implying 'one KiCad file' maps to the path parameter.

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 uses a specific verb 'Save' and a specific resource 'exact checkpoint of one KiCad file', clearly distinguishing it from sibling tools like list_checkpoints and restore_checkpoint. This is a clear, unambiguous statement of the tool's purpose.

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 description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or typical workflows. The 'Agent instructions' reference is not a substitute for in-description usage context.

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

search_reused_blockSearch Reused BlockB

Search reusable circuit blocks by function. For circuit workflow docs, read: /app/docs/SKILL.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoCurrent results page.
limitNoNumber of results per page.
queryYesQuery example: "3.3V power regulator"

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of disclosing behavioral traits. It only states the search intent, but does not mention read-only nature, pagination behavior, result format, or any side effects. The reference to external docs does not disclose specific tool behavior, leaving significant ambiguity.

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 description is concise and front-loaded, with the core purpose in the first sentence. The second sentence pointing to SKILL.md is informative but somewhat outside the tool's direct functionality. It holds attention well without unnecessary verbosity, though the external doc reference could be considered non-essential.

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?

While the tool is simple and schema covers parameters well, the description omits usage context (e.g., when to use vs. component_search) and behavioral expectations (e.g., results format, pagination implications). With no output schema, a bit more detail on return value or typical use cases would improve completeness.

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 coverage is 100%, with clear descriptions for all three parameters, including a query example. The description's phrase 'by function' adds marginal context to the query parameter but does not meaningfully extend beyond the schema's example. The baseline score of 3 is appropriate since the schema already handles parameter 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 clearly states the tool's function: 'Search reusable circuit blocks by function.' This provides a specific verb (search), resource type (reusable circuit blocks), and search criterion (by function). It effectively distinguishes the tool from siblings like component_search by specifying 'reusable circuit blocks' rather than generic components.

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 description offers no guidance on when to use this tool versus alternatives. It only points to external workflow documentation ('For circuit workflow docs, read: /app/docs/SKILL.md'), which is not a substitute for explicit usage context or exclusions. With sibling tools like component_search present, the lack of comparative guidance is a clear gap.

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

set_pcb_stack_layersSet PCB Stack LayersB

Set the PCB copper layer count while preserving F.Cu and B.Cu. PCB instructions: /app/docs/pcb-layout/instructions.md

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesTarget .kicad_pcb path.
copper_layer_countYes

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states that F.Cu and B.Cu are preserved, but omits side effects on inner layers/routing, reversibility, or prerequisites. This is insufficient for a mutation tool.

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 a single efficient sentence with a reference, no wasted words, and is front-loaded with the core action.

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 mutation tool with no annotations and no output schema, the description is under-specified. It lacks information about effects on existing routing, whether inner layers are added/removed destructively, and any preconditions. The external instruction link is a weak substitute.

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 documents path but not copper_layer_count, giving 50% coverage. The description adds the preservation context but doesn't explain parameter semantics further; the parameter name is self-explanatory. Baseline is near 3 for moderate 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 uses a specific verb ('Set') and resource ('PCB copper layer count'), with an additional constraint ('preserving F.Cu and B.Cu') that clearly differentiates this stack-up tool from the routing/layout siblings.

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?

The description implies its use for changing layer count but provides no explicit context about when to choose this tool over siblings or any exclusions. The reference to instructions is helpful but not in-line guidance.

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

wait_auto_routeWait Auto RouteB

Wait for a running local PCB auto-route operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_msNo
operation_idYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral disclosure burden. It only states 'wait' but does not describe blocking behavior, timeout handling, what happens if the operation is not found, or whether it polls. Key behavioral traits are undisclosed.

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 a single concise sentence that communicates the essential purpose without wasted words. It is front-loaded and appropriately sized for the tool's simplicity.

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?

Despite being a simple wait tool, the absence of annotations and output schema means the description must provide context about return values, timeout behavior, and error cases. It does not. The description is too minimal to fully inform an agent on how to invoke and interpret the tool reliably.

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 description coverage is 0%, and the description does not explain operation_id or wait_ms. While the schema provides type/constraint information, the description adds no meaning about what these parameters represent or how they relate to the routing operation. The parameter names are somewhat self-explanatory but the description fails to compensate for the lack of schema descriptions.

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 action ('Wait for') and the specific target ('a running local PCB auto-route operation'). This distinguishes it from sibling tools like auto_route_pcb (which initiates routing) and cancel_auto_route (which cancels). The inclusion of 'local' also adds scope clarity.

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?

The description implies usage after starting an auto-route operation, but it does not explicitly state when to use this tool versus alternatives like wait_pcb_layout or cancel_auto_route. No explicit exclusions or alternative guidance is provided, so usage context is only implied.

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

wait_pcb_layoutWait PCB LayoutB

Wait for an active make_pcb_layout operation and return its PNG/SVG preview paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
wait_msNo
operation_idYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions waiting and returning preview paths, but fails to disclose critical traits such as the wait_ms timeout, blocking behavior, or error handling for invalid/expired operation IDs. It also doesn't clarify whether the operation is read-only or has side effects.

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 a single, focused sentence with no redundant content. It is front-loaded with the action (wait) and concisely states the output (PNG/SVG preview paths).

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?

With no annotations and no output schema, the description must provide more context to be complete. It omits crucial details like timeout behavior, error conditions, and how parameters influence execution. For a tool that blocks for a significant time (up to 180 seconds), this minimal description is insufficient for reliable agent use.

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?

The schema has zero description coverage for its two parameters (operation_id and wait_ms). The description does not explain that operation_id identifies the make_pcb_layout operation to wait for, nor does it mention that wait_ms controls the maximum wait time. The only indirect reference is to the operation itself, which is insufficient.

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 waits for an active 'make_pcb_layout' operation and returns PNG/SVG preview paths. It uses a specific verb (wait) and resource (make_pcb_layout operation), distinguishing it from sibling tools like wait_auto_route and cancel_pcb_layout.

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?

The description implies it is used after initiating a make_pcb_layout operation (by referencing an 'active' operation), but provides no explicit when-to-use guidance, exclusions, or alternatives. An agent must infer that this is the waiting companion to make_pcb_layout, which is not clearly stated.

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.

  1. 22 tool updatesv0.1.0
    • First observedassemble_pcb_layout
    • First observedauto_route_pcb
    • First observedbeautify_schematic
    • First observedcancel_auto_route
    • First observedcancel_pcb_layout
    • First observedclear_pcb_routing
    • First observedcomponent_search
    • First observedcreate_doc
    • First observedextract_circuit
    • First observedget_pcb_component_sizes
    • First observedget_project_info
    • First observedget_schematic
    • First observedimport_pcb_changes
    • First observedlist_checkpoints
    • First observedmake_pcb_layout
    • First observedpour_pcb_layers
    • First observedrestore_checkpoint
    • First observedsave_checkpoint
    • First observedsearch_reused_block
    • First observedset_pcb_stack_layers
    • First observedwait_auto_route
    • First observedwait_pcb_layout

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation5/5

Each tool targets a distinct operation: schematic editing, project queries, checkpoint management, and PCB layout/routing phases. The wait/cancel pairs for long-running operations are clearly separated from the operations themselves, and no two tools appear to perform the same task.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_schematic, save_checkpoint, auto_route_pcb). Even compound verbs like auto_route and pour_pcb_layers maintain the convention, and wait_/cancel_ prefixes are systematically used for async operations.

Tool Count4/5

At 22 tools, the count is on the higher end, but the server spans three major subdomains (schematic, project/checkpoints, PCB layout/routing), and each tool addresses a concrete need. The count is slightly above the 'ideal' range but not excessive for this scope.

Completeness4/5

The toolset covers schematic retrieval and modification, project inspection, checkpointing, and a full PCB workflow from layer setup to routing and copper pour. Minor gaps exist (e.g., no direct manual editing of individual tracks or component placements), but the automated workflow is well-covered and agents can work around these limitations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for creating, modifying, and analyzing KiCAD schematic files using natural language.
    20
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that enables AI assistants to analyze schematics, inspect PCBs, trace connections, validate designs, and generate embedded code for KiCad projects.
    39
    125
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server providing full control over KiCad 10, enabling PCB editing, schematic editing, design data, and production output via natural language.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that gives AI agents end-to-end control of KiCad 9+ for rule checks, manufacturing exports, production-readiness certification, and live PCB editor control.
    MIT