Skip to main content
Glama

propose_schematic_import

Read-onlyIdempotent

Preview importing footprints and nets from a KiCad schematic into a PCB: lists additions, stages new footprints, blocks unresolved parts, writes nothing, and returns a revision token.

Instructions

Dry run of importing footprints and nets from the project's schematic into the board (Update PCB from Schematic): lists every footprint and net that would be added and where new footprints are staged; writes nothing and returns a revision_token. Any footprint that cannot be resolved through the project fp-lib-table / installed libraries blocks the proposal (status blocked, no token) and is named. Staged footprints are not placed: placement is a separate step. schematic_path defaults to the board's own .kicad_sch; staging_origin is [x, y] in page mm (default: right of the Edge.Cuts box). Order for a project: import_from_schematic -> board_outline -> board_rules -> input_preparation -> silkscreen_minimums -> pin_rule_baseline -> pour step -> routing. Every confirm writes a NEW board revision beside the source (the source is untouched) and returns it as output_pcb (also pcb_path; the board you passed in is source_pcb): continue from that path. Both gates are stale until verify_board runs; only verify_board certifies.

Input Schema

NameRequiredDescriptionDefault
columnsNo
spacingNo
pcb_pathYes
output_dirNo
schematic_pathNo
staging_originNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

The description reinforces and extends the annotations: no writes, a revision_token is returned, unresolved footprints block with status=blocked and no token, and blocking footprints are named. The one weakness is that it mixes in the confirm_* output convention ("returns it as output_pcb (also pcb_path; the board you passed in is source_pcb)") inside this tool's own description, which risks an agent expecting output_pcb from a dry run that writes nothing.

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

Conciseness3/5

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

The dry-run purpose is front-loaded and no sentence is pure filler, but it is delivered as one dense unbroken paragraph that folds in sibling confirm/verify semantics. The revision/output_pcb sentence is about other tools and dilutes an otherwise tight core.

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?

There is no output schema, and the description does cover the return contract (listed footprints and nets, staging locations, revision_token, blocked status) and the failure mode. Completeness is only dinged by the unexplained columns/spacing/output_dir parameters and the ambiguous statement about output_pcb.

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 0%, so the description carries the burden, and it only covers two of six parameters: schematic_path (defaults to the board's own .kicad_sch) and staging_origin ([x, y] page mm, default right of the Edge.Cuts box). The staging-grid parameters columns and spacing, plus output_dir and pcb_path, are never mentioned, leaving genuinely ambiguous knobs undocumented.

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 first sentence names a specific operation in plain terms ("Dry run of importing footprints and nets from the project's schematic into the board") and immediately defines the scope boundary ("writes nothing"). It also implicitly distinguishes itself from the confirm_* siblings by being the non-writing proposal half of the pair.

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?

Explicit ordering is given for the whole workflow ("import_from_schematic -> board_outline -> board_rules -> ..."), and it names the clarifying sibling constraint ("Staged footprints are not placed: placement is a separate step"). It also states that both gates are stale until verify_board runs, which tells the agent when this result is authoritative.

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