Skip to main content
Glama

pcb_delete_net

Deletes empty nets from the active PCB to clean up stray nets left after removing components; optionally removes connected nets with force, orphaning their pads and tracks.

Instructions

Delete nets from the active PCB.

By default removes only EMPTY nets (no connected pads / tracks / vias): the cleanup for stray nets left behind after deleting components, e.g. nets created by pcb_place_components' synced mode. A net that still has connections is skipped unless force=True (forcing orphans those pads/tracks, so use it deliberately).

Args: nets: Specific net names to delete. Omit (or pass an empty list) to sweep ALL empty nets on the board. force: Also delete nets that still have connected primitives (orphans them). Default False.

A net name containing a COMMA is refused rather than sent. The list rides one comma-separated field and the handler splits it with Pos(',', ...), so such a name would arrive as two, and the fragments can match real nets: VCC,GND becomes VCC and GND. With force=True that deletes nets nobody named and orphans their pads and tracks.

Returns: Dict with deleted (count removed), skipped_connected (count), and skipped_nets (names skipped because still connected). Or {"ok": False, "reason": ...} if a name contains a comma, in which case nothing is sent.

Input Schema

NameRequiredDescriptionDefault
netsNo
forceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.1

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so: default skip of connected nets, orphan consequences of force=True, the comma-in-name refusal and why it is dangerous (VCC,GND splitting into VCC and GND), and the exact return keys. That is unusually complete hazard disclosure for a destructive 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-loaded with the default behavior, then args, then the comma caveat, then returns – a sensible order. The comma paragraph is longer than needed and the Returns block partly duplicates the existing output schema, costing a little tightness.

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?

For a destructive, parameter-light tool the description covers default scope, escalation path, failure modes, and result keys; even though an output schema exists, the added return details are consistent rather than contradictory. Nothing needed to call it safely is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate and it does: 'nets' is described as specific names with omit/empty meaning sweep-all, and 'force' is described as also deleting connected nets and orphaning them, with its default. Both undocumented schema fields gain real meaning.

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 and resource ('Delete nets from the active PCB') and immediately narrows the scope to empty nets by default, which separates it from sibling reads like pcb_get_nets and from broader mutators like pcb_unroute. The purpose is unambiguous without opening the schema.

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 when-to-use context ('cleanup for stray nets left behind after deleting components, e.g. nets created by pcb_place_components' synced mode') and an explicit when-not ('A net that still has connections is skipped unless force=True... use it deliberately'). It stops short of naming alternative siblings for broader net removal, but the conditional guidance is strong.

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

Deploy Server

Other Tools