Skip to main content
Glama
sheares

easyeda-mcp-fix

by sheares

pcb_create_via

Places a via at specified PCB coordinates and net, with hole and pad diameters. Regenerate internal planes afterward to avoid anti-pad DRC fabrication errors.

Instructions

Create a via at the specified position. Warning (upstream EDA bug, pro-api-sdk issue #32): if an internal plane (PLANE layer) has already been generated, a via on a different net created afterwards does NOT get its anti-pad cut. Rebuilding pours does not fix it; DRC reports "Plane Zone to Via". Regenerate the internal plane after placing vias. This is a fabrication risk, so do not ship until that DRC error is clear. Coordinates are PCB canvas coordinates in mil (1 mil = 0.001 inch), relative to the canvas origin: +X = rightward, +Y = upward. Lengths (widths, diameters) are also in mil. Use pcb_canvas_origin to read/set the origin offset and pcb_convert_coordinates to convert between canvas and data coordinates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate
netYesNet name
viaTypeNoVia type (e.g. "Through", "BlindBuried")
diameterYesVia pad diameter
documentYesTarget document UUID — auto-switches to this document before executing. Get UUIDs from list_instances or editor_get_open_tabs.
instance_idNoTarget EasyEDA instance ID (8-char hex). Required when multiple instances are connected. Omit when only one instance is connected (auto-selected). Use list_instances to see connected instances.
holeDiameterYesHole diameter

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.6.5

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare the basic mutation profile (readOnly=false, destructive=false, non-idempotent). The description adds far more: a known upstream bug (pro-api-sdk #32) causing missing anti-pads on non-matching nets, an unfixable-by-rebuild failure mode, a named DRC symptom, and an explicit fabrication risk warning. This is exactly the kind of behavior structured fields cannot convey.

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 core action is front-loaded, followed by the critical warning, then coordinate semantics. Every sentence carries information, though the bug-warning block is dense and could be trimmed slightly without losing meaning.

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 mutating creation tool with full annotation coverage, 100% schema coverage, and no output schema, the description supplies everything an agent needs: units, coordinate system, cross-referenced helper tools, and a critical safety caveat. Nothing essential is missing.

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 the baseline is 3, but the description goes beyond the terse schema labels by defining units (mil, 1 mil = 0.001 inch), the coordinate frame (canvas coordinates relative to origin), axis orientation (+X right, +Y up), and that lengths share the same unit. It does not clarify viaType options or the net/instance relationship.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Create a via") that is unambiguously distinct from sibling creators like pcb_create_track, pcb_create_pad, and pcb_create_pour. It does not explicitly name or contrast a sibling, so it stops short of a 5.

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 strong workflow context: regenerate the internal plane after placing vias, and do not ship until the DRC error clears. It also routes the agent to pcb_canvas_origin and pcb_convert_coordinates for related tasks, though it never states when to prefer this tool over a general primitive creator.

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