Skip to main content
Glama

Finish the open nets

finish_board

Close what the router left open the way a designer does: for each open net the diagnosis names the copper boxing it in; that copper is ripped (never a poured net), the open nets are routed FIRST into the space, then the ripped nets go back around them; up to rounds rounds, each kept only if KiCad counts fewer unconnected items. Use it after route_board leaves a handful of nets open; repair_board never moves the blockers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roundsNoRip-and-reroute rounds (default 3).
routerNo
wait_sNoSeconds to wait for the job (default 55). A job still running comes back with status "running": follow it with get_board_job.
reach_mmNoRadius cleared of tracks and vias around a pad with no way out (default 1.5).
design_idYesThe design id returned by import_kicad_project or list_designs.
class_viasNoRoute with the Default class's via instead of the board's smallest legal one.
ml_optionsNo
vias_in_padsNo'allow': vias may sit in pin pads (the board must be ordered with filled and capped vias).
time_budget_sNoRouter budget per routing call (default 120).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=false; the description adds real behavior beyond that: the rip/re-route ordering, the safety carve-out (never a poured net), the improvement-gating ('each kept only if KiCad counts fewer unconnected items'), and the multi-round loop. It does not mention that the call is an async job followed via get_board_job, which is a notable behavioral gap for a mutating 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?

Front-loads the mechanism then ends with the usage/routing statement; every clause carries informational weight with no filler. The first sentence is a dense run-on, which slightly hurts readability, but nothing is padded.

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 9-parameter mutating routing tool with no output schema, the description covers the crucial what/how/when and the key safety constraint. The remaining gaps are the async job model (wait_s / get_board_job), the undocumented nested `ml_options`, and implied prerequisites, so it is complete enough to invoke correctly but not fully self-contained.

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 78%, so most parameters are already documented. The description adds genuine meaning to `rounds` (a round is kept only if KiCad counts fewer unconnected items), but it adds nothing for `router`, `ml_options`, `class_vias`, `vias_in_pads`, `reach_mm`, or `time_budget_s`, which the schema covers. This is the baseline 3 for a mostly-schema-documented tool.

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 (closing/rerouting open nets after routing) and describes the exact mechanism: rip the copper blocking each open net, route the open nets first, then re-route the ripped nets. It explicitly distinguishes itself from siblings by naming route_board as the predecessor and repair_board as the contrast that never moves blockers.

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 a clear trigger ('Use it after route_board leaves a handful of nets open') and an alternative contrast ('repair_board never moves the blockers'), which tells the agent when this tool is the right pick over repair_board. It stops short of an explicit when-not-to-use list or named prerequisites (e.g. board must already be routed), so it is strong but not exhaustive.

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