Skip to main content
Glama
Avinash1286

KiCAD MCP Server

by Avinash1286

Autoroute

autoroute
Destructive

Automatically route PCB traces by running Freerouting on the current board, exporting to Specctra DSN and importing the routed result. Supports best-of-N attempts to maximize routed nets.

Instructions

Run Freerouting autorouter on the current PCB. Exports to Specctra DSN, runs Freerouting CLI, and imports the routed SES result. Requires Java 11+ and freerouting.jar (see check_freerouting). Set attempts > 1 to run best-of-N: Freerouting is invoked multiple times with varied --max-passes, each result is scored by (nets_routed * 1000 + segments, +50000 bonus when every targetNets entry routed), and the winning SES is imported. Single-attempt behaviour is unchanged when attempts is omitted.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeoutNoPer-attempt timeout in seconds (default: 300)
attemptsNoNumber of Freerouting runs to try (default: 1 — backward-compatible). When > 1, runs best-of-N: scores each attempt by routing completeness and keeps the SES with the highest score. Recommended: 3–5 for dense boards.
boardPathNoPath to .kicad_pcb file (default: current board)
maxPassesNoMaximum routing passes for single-attempt mode (default: 20). Ignored when `attempts` > 1; use `passSchedule` instead.
targetNetsNoOptional list of critical net names. An attempt that routes all of them earns a 50,000-point scoring bonus, breaking ties in favour of designs that include the must-have nets.
passScheduleNoPer-attempt `--max-passes` values to cycle through (default: [50, 60, 65, 70, 75, 80, 85, 90, 55, 95]). The list wraps if `attempts` exceeds its length.
freeroutingJarNoPath to freerouting.jar (default: ~/.kicad-mcp/freerouting.jar or FREEROUTING_JAR env)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Annotations already indicate destructiveHint=true, but the description adds valuable context: it exports to DSN and imports routed SES, which could overwrite the board, and explains the best-of-N scoring mechanism including the 50,000-point bonus for targetNets. It lacks explicit warning about destructive effects, but the workflow disclosure and scoring details go beyond the annotations without contradicting them.

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 substantial but well-organized and front-loaded with the core behavior. Every sentence earns its place: the workflow, the prerequisite, the best-of-N behavior, and scoring details. Slightly long but appropriate for the tool's complexity.

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

Completeness5/5

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

The tool is complex (export, run external CLI, import, best-of-N mode) and the description covers the key aspects: prerequisites, workflow, mode behavior, scoring, and parameter interactions. An output schema exists but isn't shown here, so the description doesn't need to explain return values. For this complexity, the description is complete enough for an agent to invoke it correctly.

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

Parameters4/5

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

With 100% schema description coverage, the baseline is 3, but the description adds meaningful context beyond the schema: it explains how attempts > 1 changes behavior (best-of-N), how maxPasses is ignored when attempts > 1 in favor of passSchedule, and clarifies the scoring formula. These cross-parameter interactions and the recommended attempts range are only in the 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 states a specific verb ('Run Freerouting autorouter') and resource ('current PCB'), and details the full workflow: export to Specctra DSN, run Freerouting CLI, import routed SES. It clearly distinguishes itself from related tools like check_freerouting and import_ses by explaining the end-to-end process.

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

Usage Guidelines5/5

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

The description gives explicit context: requires Java 11+ and freerouting.jar (referencing check_freerouting). It also explains when to use different modes: set attempts > 1 for best-of-N, recommends 3–5 for dense boards, and notes single-attempt behavior is unchanged when attempts is omitted. This provides clear situational guidance.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Avinash1286/KiCAD-MCP-Server-THEAVI'

If you have feedback or need assistance with the MCP directory API, please join our Discord server