Skip to main content
Glama

Add your own footprint

add_custom_footprint

Give the design a footprint of your own: a KiCad .kicad_mod (the file's text) for a package KiCad's libraries lack. It joins the design's "custom" footprint library and is used as "custom:": pass that to create_custom_symbol (footprint=) or name it in the SKiDL script's footprint=; the board builder loads it like a library footprint and the KiCad project download carries it. The pads must be numbered like the pins. The CLI: koppar footprint <design> part.kicad_mod.

Input Schema

NameRequiredDescriptionDefault
nameNoThe footprint name (default: the name inside the file).
design_idYesThe design id returned by create_design or list_designs.
kicad_modYesThe .kicad_mod file, as text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only declare the safety profile (not read-only, not destructive, closed-world); the description adds real behavioral context beyond them: the footprint joins the design's 'custom' library, is addressable as custom:<name>, is loaded by the board builder like a library footprint, and is carried into the KiCad project download. It does not cover overwrite/name-collision behavior.

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?

Front-loaded with the purpose, then downstream usage, then constraints, then the CLI equivalent. Dense but essentially waste-free; the embedded CLI line is the only element that could be seen as optional.

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?

No output schema exists, and the description compensates by explaining where the artifact lands and how it is referenced later. Only minor gaps remain around failure modes and whether re-adding a same-named footprint overwrites.

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 coverage is 100%, so baseline is 3, but the description adds genuine meaning: the resulting name maps to the 'custom:<name>' handle used downstream, and the kicad_mod content must have pads numbered like the pins — a constraint 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?

States a specific verb+resource (add a KiCad .kicad_mod footprint to the design) and scopes it to 'a package KiCad's libraries lack', which implicitly separates it from search_kicad_footprint and get_kicad_symbol. An agent can tell exactly what artifact this produces and how it is identified (custom:<name>).

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?

Gives clear context: use it when KiCad's libraries lack the package, and then consume the result via create_custom_symbol(footprint=) or the SKiDL script's footprint=. It does not explicitly tell the agent to try search_kicad_footprint first, so it stops short of full when/when-not routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources