Skip to main content
Glama
sheares

easyeda-mcp-fix

by sheares

pcb_create_via

Create a PCB via at given X/Y coordinates with net, hole, and pad dimensions. Regenerate internal planes afterward to clear plane-zone-to-via DRC 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

NameRequiredDescriptionDefault
xYesX coordinate
yYesY coordinate
netYesNet name
viaTypeNoVia type: "through" (0, default), "blind" (1, blind/buried) or "suture" (2, stitching), or the number. Names are converted to the numeric value EasyEDA requires.
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. Changed2 schema fields changedv1.6.9
    • changedInput schema / properties / viaType / description
      Previous value: -"Via type (e.g. \"Through\", \"BlindBuried\")"New value: +"Via type: \"through\" (0, default), \"blind\" (1, blind/buried) or \"suture\" (2, stitching), or the number. Names are converted to the numeric value EasyEDA requires."
    • changedInput schema / properties / viaType / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "number"
      +]
  2. First observedv1.6.5

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing a specific upstream EDA bug (pro-api-sdk #32) where vias on other nets fail to get anti-pads cut after internal planes are generated, causing a 'Plane Zone to Via' DRC error and a fabrication risk. It also gives the remediation (regenerate the plane) and an explicit ship/no-ship warning, none of which the readOnly/destructive hints 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?

Front-loaded with the action, then the bug warning, then the coordinate conventions – a sensible order with no filler. The bug paragraph is dense but every clause (symptom, cause, remediation, DRC string) carries actionable information, so it earns its length.

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 an 8-parameter mutation tool with no output schema, the description covers the highest-risk operational concerns (coordinate conventions, plane/DRC interaction, cross-references to origin/convert tools). It does not describe the return value or multi-instance/document targeting behavior, leaving modest gaps.

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 meaningfully augments the bare 'X coordinate' / 'Y coordinate' / 'Via pad diameter' schema text with the coordinate frame and units: canvas coordinates in mil relative to the canvas origin, +X right, +Y up, lengths in mil. It does not clarify net, document, or instance_id, but the added unit/frame semantics are real value.

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 first sentence states a specific verb and resource ('Create a via at the specified position'), which cleanly separates it from sibling creation tools like pcb_create_pad and pcb_create_track. An agent knows exactly which primitive this produces.

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

Usage Guidelines3/5

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

The description gives important workflow guidance ('Regenerate the internal plane after placing vias') and points to pcb_canvas_origin and pcb_convert_coordinates for setup, but it never contrasts this tool with alternatives (e.g. pad vs via vs track) or states when a via is the right primitive. Usage is inferred from context rather than spelled out.

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