Skip to content

MCP Tools Reference

This page details all available Model Context Protocol (MCP) tools exposed by easyeda-mcp-pro. These tools are profile-gated. Set the TOOL_PROFILE environment variable to enable them.

Summary of Tools

Tool NameProfileRiskDescription
easyeda_api_callfullhighControlled call to a documented EasyEDA class method by path, for example SCH_PrimitiveWire.getAll. This is not raw JavaScript execution.
easyeda_api_inventorycorelowInspect the live EasyEDA extension runtime and list available documented API classes, runtime paths, and methods.
easyeda_board_dimensionscorelowGet the PCB board outline dimensions, shape, and mounting hole information.
easyeda_board_featurescorelowGet counts of board features including vias, tracks, copper zones, and pads.
easyeda_board_layerscorelowList all layers in the PCB design including signal, power, plane, and mechanical layers.
easyeda_board_stackupcorelowGet the PCB layer stackup including thickness, material, and dielectric constants.
easyeda_bom_exportcorelowExport the bill of materials to a file on disk in the specified format.
easyeda_bom_generatecorelowGenerate a bill of materials for the project with grouping and formatting options.
easyeda_bom_quality_reportcoremediumGenerate a BOM quality report that identifies unavailable, single-source, missing-MPN, missing-footprint, and low-stock items across configured suppliers.
easyeda_bom_sourcingcoremediumRetrieve pricing and availability information for all parts in the project BOM from specified suppliers.
easyeda_bom_validatecoremediumValidate the project BOM against LCSC inventory to identify missing, obsolete, or alternate parts.
easyeda_bridge_probe_methodsdevmediumQuery the EasyEDA Pro bridge for available API methods. Requires bridge connection. (dev/pro only)
easyeda_bridge_statuscorelowCheck EasyEDA Pro bridge connection status, version, and capabilities.
easyeda_canvas_capturecorelowCapture the currently visible EasyEDA schematic/PCB canvas as a PNG image, so the caller can visually verify the result of a draw/place/route action. Captures the given tab (or last-focused); use easyeda_canvas_capture_region first to frame a specific area. Image is delivered once, as its own content block.
easyeda_canvas_capture_regioncorelowZoom the EasyEDA canvas to a rectangular region (document/canvas coordinates) and capture it as a PNG, so the caller can visually verify a specific area. This moves the user's visible viewport — EasyEDA Pro has no offscreen rendering API. The image is delivered once, as its own content block.
easyeda_canvas_locatecorelowZoom the EasyEDA canvas to a coordinate/scale (document/canvas coordinates), returning the resulting viewport rectangle. Useful to frame a location before calling easyeda_canvas_capture, or standalone to navigate the user's view to a point of interest.
easyeda_catalog_listprolowList devices cached by easyeda_catalog_verify_device, with their validation status and provenance. Optionally filter by status (resolved/partial/unresolved). This is a local cache only — never redistributed.
easyeda_catalog_verify_devicepromediumResolve an LCSC part number into a catalog device entry (keyless LCSC metadata plus an EasyEDA symbol/footprint reference, if already known locally), validate it, and write it to the local device cache (confirmWrite required). Does NOT verify pin/pad geometry — see docs/catalog-ingestion.md.
easyeda_component_probedevlowInspect live schematic component objects, including available methods and state getter values, to validate EasyEDA runtime mappings.
easyeda_design_rules_lookupcorelowLook up generic engineering reference guidance: IPC-2221 trace-width/current-capacity, clearance bands, protocol routing data (USB/RS-485/I2C/SPI/UART/Ethernet), decoupling recipes and bulk capacitance sizing, and a static DFM checklist. Every result cites a source and caveat: these are estimates, not certified values.
easyeda_drc_runcoremediumRun the native design rule check (DRC): same as clicking "Check DRC" in EasyEDA Pro, so the bottom DRC panel opens/refreshes in the user's window as a visible side effect. Returns coarse per-severity counts only — which specific wire/net/component is affected is shown only in EasyEDA Pro's own DRC panel.
easyeda_erc_runcoremediumRun native ERC and supplement its coarse counts with inferred_floating_pins. Only a strict native noConnected=true readback suppresses a pin; unavailable or malformed state remains visible. Native counts remain authoritative for other categories.
easyeda_export_gerberscoremediumExport PCB design to Gerber files for PCB fabrication.
easyeda_export_netlistprolowExport the schematic netlist in a specified EDA tool format (PADS, Allegro, or Altium).
easyeda_export_pdfprolowExport the schematic and/or board layout to PDF.
easyeda_export_pick_placeprolowExport pick-and-place (centroid) file for PCB assembly. Contains component reference, position, rotation, and layer.
easyeda_get_capabilitiescorelowReturn server capabilities, including available profiles, enabled feature flags, and supported operations.
easyeda_get_feature_flagscorelowReturn current feature flag values.
easyeda_get_server_configcorelowReturn safe (redacted) server configuration. Secrets are never exposed.
easyeda_get_tool_profilescorelowList available tool profiles and their descriptions.
easyeda_health_checkcorelowReturn server health status in one call: runtime version, active profile, bridge state, EasyEDA version, keyless sourcing state, and starter catalog size. Intended as the single actionable status check after first connecting the bridge extension.
easyeda_jlcpcb_quote_workflowpromediumPrepare a non-binding JLCPCB quote workflow snapshot with explicit human-review gates and audit evidence. This tool never places orders or performs paid operations.
easyeda_live_smoke_reportdevlowRun a read-only live smoke report against the connected EasyEDA bridge and return status, API inventory, components, wires, and schematic nets in one response.
easyeda_live_write_regressiondevmediumExercise real schematic (and optionally PCB) write paths against the bridge — place, connect, wire, delete — reporting pass/fail per step, then clean up its own scratch primitives. Needs a test device from schematic_search_device and the matching tab focused.
easyeda_observability_reportcorelowReturn latency budgets, runtime metrics, cache/vendor timing snapshot, and storage retention policy for performance diagnostics.
easyeda_pcb_add_silkscreen_linefullmediumDraw a non-electrical line on the PCB (e.g. Top/Bottom Silkscreen) for section dividers or board art — reuses the same PCB_PrimitiveLine primitive as add_track but with an empty net name, so it never appears in the netlist or ratsnest.
easyeda_pcb_add_textfullmediumPlace a text primitive on a PCB layer (typically Top/Bottom Silkscreen) — reference labels, section titles, assembly notes. Signature recovered from PCB_PrimitiveString: fontFamily must be a name the runtime's font list actually contains — "NotoSansMonoCJKsc-Regular" (the default) is live-verified to work.
easyeda_pcb_add_trackfullhighDraw a copper track/trace on the PCB board. A multi-point path is written as one line segment per consecutive point pair (all sharing netName, so they form one electrical track — same coordinate/name merge model as schematic wires).
easyeda_pcb_add_viafullhighPlace a via to connect different copper layers on the PCB board. outerDiameter/holeSize are passed through to the native API unconverted (same native unit as x/y) — their real-world scale was not independently verified against a known physical dimension, so confirm the resulting via size visually before trusting it.
easyeda_pcb_add_zonefullhighCreate a copper pour zone on a layer with clearance settings. CAUTION: the native create() call needs 9 args but this tool sends only 4 (points, layer, netName, clearance) — live-confirmed mismatch, not yet resolved. Verify visually before trusting it.
easyeda_pcb_autorouteprohighDrive EasyEDA Pro's native autorouter (PCB_Document.autoRouting, a @beta API) after a pre-flight constraint check, then run DRC and a constraint report before reporting success. Never reports success without that evidence attached (confirmWrite required).
easyeda_pcb_componentscorelowList components placed on the active PCB layout: primitiveId, designator, footprint identity, position/rotation/layer. Requires a focused PCB tab in EasyEDA Pro — returns an empty list (not an error) if none is active.
easyeda_pcb_constraint_checkcorelowRun PCB constraint validation against the board design. Checks board outline, layer stackup, net classes, clearance rules, keepout areas, placement zones, mounting holes, fiducials, and manufacturing constraints.
easyeda_pcb_constraint_reportcorelowGenerate a human-readable report explaining which PCB constraints were applied and which require manual review.
easyeda_pcb_delete_componentfullhighDelete components, tracks, vias, or other PCB primitives by ID. Checks each id against every deletable PCB class instead of assuming component, since PCB_PrimitiveComponent.delete() reports success for ids it does not own without deleting them.
easyeda_pcb_export_route_contextprolowExport the board as a Specctra DSN file (PCB_ManufactureData.getDsnFile) — an open, vendor-neutral format supported by external autorouters such as FreeRouting. Re-import the routed result through EasyEDA Pro's own SES/DSN import, not through this server.
easyeda_pcb_floorplanfullhighTranslate CircuitIR physical constraints (keepouts, top/bottom side, connector-edge, thermal spacing) into a component group placement plan, then optionally apply it. CircuitIR devices carry no physical dimensions, so widths/heights must be supplied per device (confirmWrite required).
easyeda_pcb_modify_componentfullhighModify component properties in the PCB layout.
easyeda_pcb_place_componentfullhighDirect PCB component creation is unavailable because the verified EasyEDA runtime does not complete PCB_PrimitiveComponent.create(). This tool fails closed. Place the part in the schematic, sync to PCB, confirm the native dialog, then reposition it with easyeda_pcb_modify_component.
easyeda_pcb_place_component_groupfullhighCreate a high-level, constraint-checked placement plan for a group of components and optionally apply it after explicit confirmation.
easyeda_pcb_production_reviewcoremediumRun fabrication, assembly, and testability production review rules for PCB handoff. Reports severity-ranked DFM/DFA/DFT findings with actionable remediation before Gerber export or manufacturing submission.
easyeda_pcb_route_path_planfullhighCreate a high-level, constraint-checked route path plan for one net and optionally apply it after explicit confirmation.
easyeda_pcb_trackscorelowList copper track segments on the active PCB layout: primitiveId, net, layer, start/end coordinates, width. A multi-point track drawn by add_track appears as several consecutive segments sharing one net. Returns an empty list (not an error) if no PCB tab is focused.
easyeda_pcb_viascorelowList vias on the active PCB layout: primitiveId, net, position, hole/outer diameter (native unit, same scale as x/y — not independently verified against a known physical dimension). Requires a focused PCB tab — returns an empty list (not an error) if none is active.
easyeda_post_write_qacoremediumRun and classify post-write schematic QA after generated edits. Combines native DRC/ERC results with policy-aware classification so duplicate net names, free networks, and unconnected pins are reported as pass/fail/inconclusive instead of raw warning counts.
easyeda_power_tree_analyzecoremediumAnalyze supply sources, regulators, loads, protection, bulk capacitance, current budget, dropout, and regulator thermal risk. Returns machine-readable issues and a human-readable summary.
easyeda_production_qa_artifactsprolowGenerate testpoint checklist, assembly notes, bring-up plan, production QA checklist, and machine-readable QA manifest for board handoff.
easyeda_project_begin_transactioncorelowOpen an in-memory, document-scoped transaction for snapshot-backed schematic writes. Only one active transaction is allowed per document. Beginning a transaction does not modify EasyEDA.
easyeda_project_commit_transactioncoremediumFinalize a transaction after its writes and validation gates succeed. Commit removes rollback eligibility and releases the document transaction lock.
easyeda_project_get_transaction_statuscorelowRead transaction state, validation results, operation hashes, and rollback status without exposing captured primitive snapshots.
easyeda_project_rollback_transactioncoremediumControlled write: restore applied schematic primitive snapshots in reverse order, verify each restored hash, and report partial rollback explicitly instead of hiding inconsistencies.
easyeda_project_savecoremediumExplicitly save the current EasyEDA Pro project. This ensures all netlist changes, net flags, pin connections, and other mutations are persisted to the project file. Save is never implicit — the caller must explicitly request it. Requires confirmWrite.
easyeda_project_validate_transactioncorelowRun transaction consistency gates before commit: bridge availability, pending/failed operation checks, optional expected operation count, and optional requirement for at least one applied write.
easyeda_rule_check_summarycorelowGet a summary of all design and electrical rule check results for the project.
easyeda_run_self_testcorelowRun internal self-test to verify server integrity, config, and bridge connectivity.
easyeda_schematic_add_circlecoremediumDraw a circle on the schematic sheet — decorative marker or custom symbol element. Cosmetic only, no electrical meaning. fillColor "none" leaves it unfilled.
easyeda_schematic_add_polygoncoremediumDraw a closed polygon on the schematic sheet from 3+ vertices — custom decorative shapes, callout arrows, or block diagram elements. Cosmetic only, no electrical meaning.
easyeda_schematic_add_rectanglecoremediumDraw a rectangle on the schematic sheet — section dividers/grouping boxes for organizing a busy schematic into labeled functional blocks (pair with add_text for the title). Cosmetic only. x/y is the top-left corner; fillColor "none" leaves it unfilled.
easyeda_schematic_add_textcoremediumPlace free-standing text on the schematic sheet (section headers, notes, block labels) — cosmetic/organizational, not a net label. color must be a hex string and fontName a real font (e.g. "Arial") — untyped placeholders create nothing despite returning ok.
easyeda_schematic_add_wirecoremediumAdd a wire connecting schematic coordinates/pins — real native connectivity. Same netName connects pins globally: separate stubs sharing one name merge into one net (no label needed). NET_COLLISION guards touched points against a foreign net's wire, pin, or flag/port — not mid-segment crossings.
easyeda_schematic_audit_imported_designcorelowRead the live schematic without modifying it, build a canonical model, and report imported net aliases, duplicate or missing references, unresolved metadata expressions, missing values/footprints, and ambiguous BOM classification. Includes a preview only; it never renames nets or changes components.
easyeda_schematic_batch_writecorehighApply up to 200 validated schematic create, modify, pin no-connect, and delete operations in one snapshot-backed transaction. Any failure rolls the whole transaction back. Delete is limited to safely recreatable drawing primitives.
easyeda_schematic_capture_full_pageprolowRead the active schematic sheet geometry, clear selection overlays, frame the complete sheet including its border and title block, and return a deterministic PNG plus the sheet-to-image coordinate transform. Refuses guessed geometry unless explicitly allowed.
easyeda_schematic_check_collisionscorelowScan every component's real pin coordinates and report any (x,y) shared by two or more components — a silent-short risk the native NET_COLLISION guard misses for never-wired pins. Run after manual placement outside easyeda_workflow_* tools (which reconcile this automatically).
easyeda_schematic_check_placementprolowValidate a candidate placement (rendered bounds, clearances, conflicts, deterministic alternatives) or -- when x/y are omitted -- search for a safe region of the given size, against real title-block/page-border/existing-primitive constraints. Read-only, no writes.
easyeda_schematic_component_pinscorelowGet exact pin primitive IDs, numbers, names, coordinates, native no-connect state, and pinType for a schematic component by its primitive ID. pinType is EasyEDA's own symbol-library field and is unreliably authored (often "Undefined" even on real ICs) — treat it as a weak hint, not ground truth.
easyeda_schematic_componentscorelowList schematic components: primitiveId, reference, value, footprint, x/y/rotation, and device identity for cloning — deviceUuid+deviceLibraryUuid (a place_component deviceItem in this project), deviceName, symbolName, lcsc, manufacturerId.
easyeda_schematic_connect_pin_to_netcoremediumCreate real EasyEDA connectivity for a pin: draws a short wire stub from its exact coordinate, tagged with netName. Same-netName wires merge globally, so this joins the pin to everything else on that net — visible to ERC, ratsnest, and autorouting.
easyeda_schematic_connect_pins_by_netcoremediumBulk variant of connect_pin_to_net: draws a real wire stub from each pin, tagged with netName, so all listed pins (and anything else already on that net) merge into one net. Visible to ERC, ratsnest, and autorouting. A pin that fails (e.g. collision) is reported in failures rather than aborting the batch.
easyeda_schematic_connectivity_fingerprintprolowCompute a deterministic connectivity fingerprint (pin/net membership, wire endpoints, labels/ports, no-connects) from the live schematic. Pass the hash as beforeFingerprint/afterFingerprint to easyeda_schematic_layout_qa to prove a cosmetic move left connectivity unchanged.
easyeda_schematic_create_net_flagcoremediumCreate a named net flag/label. With identification (Power/Ground/AnalogGround/ProtectGround) it places a power-flag symbol binding to a coincident pin (use for VCC/GND). Without it, a generic net label — cosmetic only; connect pins with add_wire stubs sharing one netName.
easyeda_schematic_create_net_portcoremediumPlace a hierarchical net port (off-sheet connector) on the schematic. Net ports create named connections that span multiple schematic sheets, appearing as real SCH_Net entries in the netlist.
easyeda_schematic_delete_primitivecoremediumDelete components, wires, or other drawing objects from the schematic by their primitive UUIDs.
easyeda_schematic_layout_autofixprolowDetect title-block overlap, page-boundary overflow, and component-overlap violations from real rendered bounds, and propose cosmetic-only moves that resolve them. Read-only preview only (requiresConfirmWrite=true, no writes) -- confirmWrite apply with connectivity-fingerprint rollback is tracked separately (#273).
easyeda_schematic_layout_autofix_applyprohighApply the layout-autofix cosmetic moves in a snapshot-backed transaction, re-verifying a connectivity fingerprint after every write batch. Any unintended electrical change or write failure rolls the transaction back and is reported, never thrown. dryRun:true previews only.
easyeda_schematic_layout_qaprolowRun a normalized post-write QA pass combining runtime DRC/ERC, expected component/pin topology, rendered primitive bounds, title-block and page constraints, wiring/grouping checks, and connectivity fingerprints, with optional full-page visual evidence. Critical geometry or connectivity findings always block commit.
easyeda_schematic_modify_primitivecoremediumSafely modify a schematic primitive while preserving omitted fields. With transactionId and projectId, capture before/after snapshots and automatically restore the prior state if the write or post-write read fails. Component moves keep connected wires attached.
easyeda_schematic_net_detailcorelowGet full details for a specific net in the schematic including all connected pins and components.
easyeda_schematic_netscorelowList all nets in the schematic with their node connections.
easyeda_schematic_place_componentcoremediumPlace a library component/device on the active schematic sheet. Auto-assigns the next free designator ("R?" → "R1") — check the returned value, duplicate "R?" merge into one node. On a timeout error, auto-reconciles against the sheet before reporting failure (see reconciled/unconfirmed) — do not blindly retry.
easyeda_schematic_plan_layoutprolowDeterministically plan functional-block placement (reserved rectangles, support space, grid-aligned coordinates, occupancy map, A3 fallback, score) from real sheet/primitive geometry -- no writes. Caller supplies roles/blockId/parentId; other primitives read as occupied regions, never overwritten.
easyeda_schematic_plan_safe_regioncorelowCompute a safe schematic drawing region before placing components. Uses live sheet info when available, assumes EasyEDA bottom-left coordinates, reserves the default lower-right title-block keep-out, and returns an anchor/bounds plan that avoids title-block overlap.
easyeda_schematic_preview_imported_normalizationcorelowRead the live schematic and produce a deterministic, read-only normalization plan with a stable plan ID, model hash, proposed net-name/reference/metadata operations, validation gates, warnings, and blockers. This tool never writes to EasyEDA.
easyeda_schematic_primitive_boundsprolowRead real rendered (sheet-space, rotation-aware) component bounding boxes from the live bridge, batched in one call. Origin is not a collision bound -- use combinedBounds for overlap/page/title-block checks. Reference/value text is not independently addressable here and reports not_available.
easyeda_schematic_search_devicecorelowSearch for schematic symbols/devices in the EasyEDA library by keywords. Full results carry the library's complete metadata object per device; pass minimal:true to get back only uuid/libraryUuid/name/pin_count/symbol_type when that is all you need.
easyeda_schematic_set_pin_no_connectcoremediumSet or clear EasyEDA Pro's native No Connect marker on one exact component pin. This changes the component pin noConnected state; it does not create a net, label, power flag, or short-circuit flag. The bridge rejects missing/ambiguous pins and verifies the native readback after the write.
easyeda_schematic_set_title_blockcoremediumUpdate schematic title block text fields (Company, Version, Drawn, Reviewed, Page Size). Only these 5 are exposed — writing Symbol/Border/Device/etc once corrupted a real title block; those are read-only natively and must be fixed via the EasyEDA Pro UI.
easyeda_schematic_sheet_infocorelowReturn read-only active schematic sheet metadata including page size, frame, origin, and grid hints for safer component placement.
easyeda_schematic_sync_to_pcbcoremediumRequest a schematic-to-PCB sync (SCH_Document.importChanges). CAUTION (live-verified): opens a confirmation dialog in EasyEDA Pro's UI a HUMAN must approve — success here only means the request was sent, not that components appeared. Ask the user to approve the dialog, then verify with pcb_components.
easyeda_schematic_validate_netlistcorelowValidate inferred nets and floating pins, then cross-check native ERC. A pin is excluded from floating inference only when native noConnected readback is boolean true; unavailable or malformed state stays visible. valid requires clean inference and zero native errors.
easyeda_schematic_verify_writecorelowRead back schematic state after an agent-authored write. Returns component-count delta evidence and optional netlist validation so agents can confirm a placement or connection before continuing.
easyeda_schematic_wirescorelowList wire segments: primitiveId, line coordinates, net name, color, style. Page with offset (check total) past the 50-wire-per-call cap. primitiveId is required by delete_primitive/modify_primitive — schematic_nets alone cannot resolve a wire ID.
easyeda_semantic_erc_autocorelowExtract nets/devices/pins from the LIVE schematic and run semantic ERC — no hand-authored netlist needed. Net/pin electrical types are INFERRED from naming conventions, not verified — treat findings as a first-pass signal, not a substitute for semantic_erc_validate.
easyeda_semantic_erc_validatecoremediumRun semantic electrical-rule validation over a netlist with pin electrical types to detect output contention, floating inputs, power conflicts, missing power pins, missing decoupling, and voltage-domain mismatches.
easyeda_simulate_operating_pointprolowTranslate a typed circuit description into a SPICE deck and run an offline ngspice operating-point (.op) simulation, optionally checking rail node voltages against a spec. Read-only, local-only. Reports a capability gap rather than failing when ngspice is absent.
easyeda_simulate_transientprolowTranslate a typed circuit description into a SPICE deck and run an offline ngspice transient (.tran) simulation, optionally checking the final rail voltage against a spec. Read-only, local-only. Reports a capability gap rather than failing when ngspice is absent.
easyeda_wire_probedevlowInspect live schematic wire objects, including line coordinates, net names, methods, and state getter values, to validate EasyEDA runtime mappings.
easyeda_workflow_connector_breakoutpromediumPlace a connector, wire each declared pin to its net, and create a net port for each net so the breakout is accessible off-sheet — all as a single atomic transaction (confirmWrite required).
easyeda_workflow_decouple_icpromediumPlace one decoupling capacitor per declared IC power pin and wire each to the pin's net and ground, in a single atomic transaction. Cites design-rules decoupling guidance (rule-of-thumb, not datasheet-specific) alongside the plan (confirmWrite required).
easyeda_workflow_layout_sectionpromediumCompute and create a section rectangle + title sized from the real pin extents of the given already-placed components (or replace an existing rectangle/title pair). Reports overlap with other rectangles and page-size overflow as warnings; never resizes the page.
easyeda_workflow_led_blinkerpromediumCreate a deterministic LED blinker workflow: a switch, current-limiting resistor, and indicator LED. Uses safe sheet-region planning, left-to-right layout, generic wire stubs, and optional post-write QA. Caller supplies resolved device items (confirmWrite required); simplest circuit for validating the MCP pipeline.
easyeda_workflow_ne555_astablepromediumCreate a deterministic NE555 astable LED flasher workflow using safe sheet-region planning, component-level layout offsets, explicit pin-to-net connectivity, and optional post-write QA. Caller supplies already-resolved EasyEDA device items; this tool does not guess catalog parts (confirmWrite required).
easyeda_workflow_place_blockpromediumPlace a group of components, wire their pin-to-net connections (new and/or pre-existing components), and create net ports for block-external nets — all as a single atomic transaction with rollback on partial failure (confirmWrite required).
easyeda_workflow_power_railpromediumPlace a regulator and its supporting passives and wire them to input/output/ground nets in a single atomic transaction, instead of one primitive call per component. Caller supplies already-resolved device items and pin connections; this tool does not select parts (confirmWrite required).
easyeda_workflow_rp2040_servo_modulepromediumPlan or apply an RP2040 servo-module scaffold: 56 BOM parts in seven visible rollback-backed sections with deterministic titles and completeness diagnostics. Exact pin-to-net wiring stays intentionally absent until later block netlists supply it (confirmWrite required).

easyeda_api_call

Profile: full | Risk Level: high

Controlled call to a documented EasyEDA class method by path, for example SCH_PrimitiveWire.getAll. This is not raw JavaScript execution.

Input Parameters

ParameterTypeRequiredDescription
pathstringYes
argsany[]Yes
confirmWritebooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  ok: boolean;
  path: string;
  resolvedPath: string(optional);
  result: any(optional);
  error: string(optional);
  requires_confirmation: boolean(optional);
}

easyeda_api_inventory

Profile: core | Risk Level: low

Inspect the live EasyEDA extension runtime and list available documented API classes, runtime paths, and methods.

Input Parameters

ParameterTypeRequiredDescription
filterstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  classes: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_board_dimensions

Profile: core | Risk Level: low

Get the PCB board outline dimensions, shape, and mounting hole information.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  width_mm: number(optional);
  height_mm: number(optional);
  shape: string(optional);
  mounting_hole_count: number;
  area_mm2: number(optional);
  has_outline: boolean;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_board_features

Profile: core | Risk Level: low

Get counts of board features including vias, tracks, copper zones, and pads.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  vias: number;
  tracks: number;
  zones: number;
  pads: number;
  components: number(optional);
  not_available: boolean(optional);
}

easyeda_board_layers

Profile: core | Risk Level: low

List all layers in the PCB design including signal, power, plane, and mechanical layers.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  layers: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_board_stackup

Profile: core | Risk Level: low

Get the PCB layer stackup including thickness, material, and dielectric constants.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  total_layers: number;
  board_thickness_mm: number (optional);
  layers: object[];
  data_source: 'physical_stackup' | 'copper_layer_count_only' (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_bom_export

Profile: core | Risk Level: low

Export the bill of materials to a file on disk in the specified format.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
format`'csv''json''xlsx'`
filePathstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  format: string;
  file_path: string;
  exported: boolean;
  entry_count: number(optional);
  not_available: boolean(optional);
}

easyeda_bom_generate

Profile: core | Risk Level: low

Generate a bill of materials for the project with grouping and formatting options.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
format`'csv''json''xlsx'`
groupBy`'value''lcsc''footprint'`

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  format: string;
  group_by: string;
  entries: object[];
  total_entries: number;
  not_available: boolean (optional);
}

easyeda_bom_quality_report

Profile: core | Risk Level: medium

Generate a BOM quality report that identifies unavailable, single-source, missing-MPN, missing-footprint, and low-stock items across configured suppliers.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
low_stock_thresholdnumber (optional)No
require_mpnboolean (optional)No
require_footprintboolean (optional)No
stale_vendor_data_secondsnumber (optional)No
minimum_quality_scorenumber (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  bom_id: string;
  generated_at: string;
  total_entries: number;
  summary: object;
  entries: object[];
  has_supplier_errors: boolean;
  not_available: boolean (optional);
}

easyeda_bom_sourcing

Profile: core | Risk Level: medium

Retrieve pricing and availability information for all parts in the project BOM from specified suppliers.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
suppliersstring[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  parts: object[];
  total_parts: number;
  keyless_sourcing_enabled: boolean (optional);
  not_available: boolean (optional);
}

easyeda_bom_validate

Profile: core | Risk Level: medium

Validate the project BOM against LCSC inventory to identify missing, obsolete, or alternate parts.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  total_parts: number;
  missing_lcsc: string[];
  invalid_lcsc: string[];
  obsolete: string[];
  valid_count: number;
  validated: boolean;
  not_available: boolean (optional);
}

easyeda_bridge_probe_methods

Profile: dev | Risk Level: medium

Query the EasyEDA Pro bridge for available API methods. Requires bridge connection. (dev/pro only)

Input Parameters

ParameterTypeRequiredDescription
filterstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  methods: object[];
  total: number;
  source: 'loader_status' | 'server_registry' (optional);
  dispatcher_build_id: string (optional);
}

easyeda_bridge_status

Profile: core | Risk Level: low

Check EasyEDA Pro bridge connection status, version, and capabilities.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  connected: boolean;
  bridge_version: string (optional);
  easyeda_version: string (optional);
  capabilities: string[] (optional);
  dev_mode: boolean (optional);
  last_heartbeat_ms: number (optional);
  uptime_ms: number (optional);
  status_error: string (optional);
  diagnostics: object (optional);
}

easyeda_canvas_capture

Profile: core | Risk Level: low

Capture the currently visible EasyEDA schematic/PCB canvas as a PNG image, so the caller can visually verify the result of a draw/place/route action. Captures the given tab (or last-focused); use easyeda_canvas_capture_region first to frame a specific area. Image is delivered once, as its own content block.

Input Parameters

ParameterTypeRequiredDescription
tabIdstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  captured: boolean;
  mime_type: string(optional);
  file_name: string(optional);
  byte_length: number(optional);
  image_base64: string(optional);
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_canvas_capture_region

Profile: core | Risk Level: low

Zoom the EasyEDA canvas to a rectangular region (document/canvas coordinates) and capture it as a PNG, so the caller can visually verify a specific area. This moves the user's visible viewport — EasyEDA Pro has no offscreen rendering API. The image is delivered once, as its own content block.

Input Parameters

ParameterTypeRequiredDescription
leftnumberYesFirst horizontal edge in document/canvas coordinates.
rightnumberYesSecond horizontal edge; either edge order is accepted.
topnumberYesFirst vertical edge in document/canvas coordinates.
bottomnumberYesSecond vertical edge; either edge order is accepted.
tabIdstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  captured: boolean;
  mime_type: string(optional);
  file_name: string(optional);
  byte_length: number(optional);
  image_base64: string(optional);
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_canvas_locate

Profile: core | Risk Level: low

Zoom the EasyEDA canvas to a coordinate/scale (document/canvas coordinates), returning the resulting viewport rectangle. Useful to frame a location before calling easyeda_canvas_capture, or standalone to navigate the user's view to a point of interest.

Input Parameters

ParameterTypeRequiredDescription
xnumber (optional)No
ynumber (optional)No
scaleRationumber (optional)No
tabIdstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  located: boolean;
  left: number(optional);
  right: number(optional);
  top: number(optional);
  bottom: number(optional);
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_catalog_list

Profile: pro | Risk Level: low

List devices cached by easyeda_catalog_verify_device, with their validation status and provenance. Optionally filter by status (resolved/partial/unresolved). This is a local cache only — never redistributed.

Input Parameters

ParameterTypeRequiredDescription
status`'resolved''partial''unresolved' (optional)`

Output Format

Returns a JSON object matching the schema:

ts
{
  devices: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_catalog_verify_device

Profile: pro | Risk Level: medium

Resolve an LCSC part number into a catalog device entry (keyless LCSC metadata plus an EasyEDA symbol/footprint reference, if already known locally), validate it, and write it to the local device cache (confirmWrite required). Does NOT verify pin/pad geometry — see docs/catalog-ingestion.md.

Input Parameters

ParameterTypeRequiredDescription
lcscIdstringYes
confirmWritebooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  lcsc_id: string;
  status: 'resolved' | 'partial' | 'unresolved';
  valid: boolean;
  errors: object[];
  warnings: object[];
  provenance: object;
  entry: object;
  cached: boolean;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_component_probe

Profile: dev | Risk Level: low

Inspect live schematic component objects, including available methods and state getter values, to validate EasyEDA runtime mappings.

Input Parameters

ParameterTypeRequiredDescription
limitnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  total: number;
  samples: any[];
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_design_rules_lookup

Profile: core | Risk Level: low

Look up generic engineering reference guidance: IPC-2221 trace-width/current-capacity, clearance bands, protocol routing data (USB/RS-485/I2C/SPI/UART/Ethernet), decoupling recipes and bulk capacitance sizing, and a static DFM checklist. Every result cites a source and caveat: these are estimates, not certified values.

Input Parameters

ParameterTypeRequiredDescription
topic`'trace-width''max-current''clearance'
currentAnumber (optional)NoRequired when topic is trace-width. Load current in amperes.
traceWidthMilsnumber (optional)NoRequired when topic is max-current. Trace width in mils.
temperatureRiseCnumber (optional)NoRequired for trace-width and max-current. Allowed temperature rise in °C.
layer`'external''internal' (optional)`No
copperWeightOznumber (optional)NoRequired for trace-width and max-current. Copper weight in oz/ft².
voltageVnumber (optional)NoRequired when topic is clearance. Working voltage in volts.
location`'external''internal' (optional)`No
protocol`'usb2''usb3''rs485'
category`'digital-logic''mcu''analog'
loadAnumber (optional)NoRequired when topic is bulk-capacitance. Load current in amperes.
minBulkCapacitanceUfPerAnumber (optional)NoOptional minimum bulk capacitance per ampere in µF/A.
minBulkCapacitanceUfnumber (optional)NoOptional absolute minimum bulk capacitance in µF.
idstring (optional)NoOptional DFM checklist item id.

Output Format

Returns a JSON object matching the schema:

ts
{
  topic: string;
  traceWidth: object (optional);
  maxCurrent: object (optional);
  clearance: object (optional);
  protocolRouting: object (optional);
  protocolRoutingList: object[] (optional);
  decoupling: object (optional);
  decouplingList: object[] (optional);
  bulkCapacitance: object (optional);
  dfmChecklist: object[] (optional);
  dfmChecklistItem: object (optional);
  error: string (optional);
}

easyeda_drc_run

Profile: core | Risk Level: medium

Run the native design rule check (DRC): same as clicking "Check DRC" in EasyEDA Pro, so the bottom DRC panel opens/refreshes in the user's window as a visible side effect. Returns coarse per-severity counts only — which specific wire/net/component is affected is shown only in EasyEDA Pro's own DRC panel.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
rulesstring[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  violations: object[];
  total_violations: number;
  error_count: number;
  warning_count: number;
  passed: boolean;
  not_available: boolean (optional);
}

easyeda_erc_run

Profile: core | Risk Level: medium

Run native ERC and supplement its coarse counts with inferred_floating_pins. Only a strict native noConnected=true readback suppresses a pin; unavailable or malformed state remains visible. Native counts remain authoritative for other categories.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
checksstring[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  violations: object[];
  total_violations: number;
  error_count: number;
  warning_count: number;
  passed: boolean;
  inferred_floating_pins: object[] (optional);
  detail_source: 'inferred_partial' | 'native_aggregate_only' (optional);
  not_available: boolean (optional);
}

easyeda_export_gerbers

Profile: core | Risk Level: medium

Export PCB design to Gerber files for PCB fabrication.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
filePathstring (optional)No
drillFormat`'excellon''millimeter''inch' (optional)`
excludeLayerstring[] (optional)No
ledPanelboolean (optional)No
productionReviewobject (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  artifact_path: string(optional);
  byte_length: number(optional);
  file_count: number(optional);
  exported: boolean;
  blocked_by_production_review: boolean(optional);
  production_review: object(optional);
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_export_netlist

Profile: pro | Risk Level: low

Export the schematic netlist in a specified EDA tool format (PADS, Allegro, or Altium).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
format`'pads''allegro''altium'`
filePathstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  format: string;
  file_path: string(optional);
  byte_length: number(optional);
  net_count: number(optional);
  exported: boolean;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_export_pdf

Profile: pro | Risk Level: low

Export the schematic and/or board layout to PDF.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
scope`'schematic''board''both'`
orientation`'portrait''landscape'`Yes
filePathstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  scope: string;
  orientation: string;
  file_path: string(optional);
  byte_length: number(optional);
  pages: number(optional);
  exported: boolean;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_export_pick_place

Profile: pro | Risk Level: low

Export pick-and-place (centroid) file for PCB assembly. Contains component reference, position, rotation, and layer.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
format`'csv''txt'`Yes
filePathstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  format: string;
  file_path: string(optional);
  byte_length: number(optional);
  component_count: number(optional);
  exported: boolean;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_get_capabilities

Profile: core | Risk Level: low

Return server capabilities, including available profiles, enabled feature flags, and supported operations.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  server_name: string;
  server_version: string;
  protocol_version: string;
  profiles: object[];
  current_profile: string;
  feature_flags: Record<string, boolean>;
  feature_maturity: Record<string, object>;
  transports: string[];
}

easyeda_get_feature_flags

Profile: core | Risk Level: low

Return current feature flag values.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  flags: Record<string, boolean>;
  maturity: Record<string, object>;
}

easyeda_get_server_config

Profile: core | Risk Level: low

Return safe (redacted) server configuration. Secrets are never exposed.

Input Parameters

ParameterTypeRequiredDescription
include_flagsbooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  node_env: string;
  log_level: string;
  profile: string;
  transport: string;
  bridge_host: string;
  bridge_port: number;
  mcp_protocol_version: string;
  flags: Record<string, boolean>(optional);
  feature_maturity: Record<string, object>;
}

easyeda_get_tool_profiles

Profile: core | Risk Level: low

List available tool profiles and their descriptions.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  current: string;
  profiles: object[];
}

easyeda_health_check

Profile: core | Risk Level: low

Return server health status in one call: runtime version, active profile, bridge state, EasyEDA version, keyless sourcing state, and starter catalog size. Intended as the single actionable status check after first connecting the bridge extension.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  status: 'ok' | 'degraded' | 'unavailable';
  version: string;
  node_version: string;
  profile: string;
  transport: string;
  bridge_connected: boolean;
  easyeda_version: string(optional);
  extension_version: string(optional);
  extension_version_mismatch: boolean;
  registry_mismatch: boolean;
  keyless_sourcing_enabled: boolean;
  catalog_device_count: number;
  ups: number;
}

easyeda_jlcpcb_quote_workflow

Profile: pro | Risk Level: medium

Prepare a non-binding JLCPCB quote workflow snapshot with explicit human-review gates and audit evidence. This tool never places orders or performs paid operations.

Input Parameters

ParameterTypeRequiredDescription
provider`'jlcpcb''custom'`Yes
action`'estimate''verify_quote''place_order'`
projectIdstring (optional)No
boardobjectYes
quoteobject (optional)No
confirmationobject (optional)No
vendorTermsReviewedboolean (optional)No
productionFilesReadyboolean (optional)No
exportManifestVerifiedboolean (optional)No
productionReviewPassedboolean (optional)No
allowedPaidOperationsboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  provider: string;
  action: string;
  project_id: string;
  status: string;
  allowed: boolean;
  quote: object;
  risk: object;
  issues: object[];
  audit: object;
  summary: string;
  unsupported_operations: string[];
}

easyeda_live_smoke_report

Profile: dev | Risk Level: low

Run a read-only live smoke report against the connected EasyEDA bridge and return status, API inventory, components, wires, and schematic nets in one response.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
limitnumberYes
includeRawbooleanYes
timeoutMsnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  ok: boolean;
  project_id: string;
  generated_at: string;
  checks: object[];
  summary: object;
  raw: object (optional);
}

easyeda_live_write_regression

Profile: dev | Risk Level: medium

Exercise real schematic (and optionally PCB) write paths against the bridge — place, connect, wire, delete — reporting pass/fail per step, then clean up its own scratch primitives. Needs a test device from schematic_search_device and the matching tab focused.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
testDeviceItemobjectYes
scope`'schematic''pcb''both'`
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  ok: boolean;
  project_id: string;
  scope: string;
  steps: object[];
  cleanup_performed: boolean;
}

easyeda_observability_report

Profile: core | Risk Level: low

Return latency budgets, runtime metrics, cache/vendor timing snapshot, and storage retention policy for performance diagnostics.

Input Parameters

ParameterTypeRequiredDescription
includeRecentEventsbooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  generated_at: string;
  server_version: string;
  budgets: object[];
  metrics: object;
  retention: object;
  timeout_policy: object;
}

easyeda_pcb_add_silkscreen_line

Profile: full | Risk Level: medium

Draw a non-electrical line on the PCB (e.g. Top/Bottom Silkscreen) for section dividers or board art — reuses the same PCB_PrimitiveLine primitive as add_track but with an empty net name, so it never appears in the netlist or ratsnest.

Input Parameters

ParameterTypeRequiredDescription
layernumberYesLayer id, e.g. 3 = Top Silkscreen, 4 = Bottom Silkscreen
startXnumberYes
startYnumberYes
endXnumberYes
endYnumberYes
lineWidthnumber (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  primitiveId: string(optional);
  error: string(optional);
}

easyeda_pcb_add_text

Profile: full | Risk Level: medium

Place a text primitive on a PCB layer (typically Top/Bottom Silkscreen) — reference labels, section titles, assembly notes. Signature recovered from PCB_PrimitiveString: fontFamily must be a name the runtime's font list actually contains — "NotoSansMonoCJKsc-Regular" (the default) is live-verified to work.

Input Parameters

ParameterTypeRequiredDescription
layernumberYesLayer id, e.g. 3 = Top Silkscreen, 4 = Bottom Silkscreen
xnumberYes
ynumberYes
textstringYes
fontFamilystring (optional)No
fontSizenumber (optional)No
lineWidthnumber (optional)No
alignModenumber (optional)No
rotationnumber (optional)No
reverseboolean (optional)No
expansionnumber (optional)No
mirrorboolean (optional)No
lockedboolean (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  primitiveId: string(optional);
  error: string(optional);
}

easyeda_pcb_add_track

Profile: full | Risk Level: high

Draw a copper track/trace on the PCB board. A multi-point path is written as one line segment per consecutive point pair (all sharing netName, so they form one electrical track — same coordinate/name merge model as schematic wires).

Input Parameters

ParameterTypeRequiredDescription
pointsobject[]Yes
layernumberYes
widthnumberYes
netNamestring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  primitiveId: string (optional);
  primitiveIds: string[] (optional);
  error: string (optional);
}

easyeda_pcb_add_via

Profile: full | Risk Level: high

Place a via to connect different copper layers on the PCB board. outerDiameter/holeSize are passed through to the native API unconverted (same native unit as x/y) — their real-world scale was not independently verified against a known physical dimension, so confirm the resulting via size visually before trusting it.

Input Parameters

ParameterTypeRequiredDescription
xnumberYes
ynumberYes
outerDiameternumberYes
holeSizenumberYes
netNamestring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  primitiveId: string(optional);
  error: string(optional);
}

easyeda_pcb_add_zone

Profile: full | Risk Level: high

Create a copper pour zone on a layer with clearance settings. CAUTION: the native create() call needs 9 args but this tool sends only 4 (points, layer, netName, clearance) — live-confirmed mismatch, not yet resolved. Verify visually before trusting it.

Input Parameters

ParameterTypeRequiredDescription
pointsobject[]Yes
layernumberYes
netNamestring (optional)No
clearancenumber (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  primitiveId: string(optional);
  error: string(optional);
}

easyeda_pcb_autoroute

Profile: pro | Risk Level: high

Drive EasyEDA Pro's native autorouter (PCB_Document.autoRouting, a @beta API) after a pre-flight constraint check, then run DRC and a constraint report before reporting success. Never reports success without that evidence attached (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
routingNets`'selected''selectedComponents'string[] (optional)`
cornerStyle`'45''90' (optional)`No
existingPrimitiveMode`'keep''remove' (optional)`No
optimization`'completion''faster' (optional)`No
layersnumber[] (optional)No
ignoreNetsstring[] (optional)No
boardDataobject (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  overall_verdict: 'success' | 'partial' | 'blocked' | 'failed';
  blocked_by_preflight: boolean;
  preflight: object(optional);
  autoroute_result: object(optional);
  post_route_drc: object(optional);
  post_route_constraint_report: object(optional);
  summary: string;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_pcb_components

Profile: core | Risk Level: low

List components placed on the active PCB layout: primitiveId, designator, footprint identity, position/rotation/layer. Requires a focused PCB tab in EasyEDA Pro — returns an empty list (not an error) if none is active.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
limitnumberYes
offsetnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  components: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_pcb_constraint_check

Profile: core | Risk Level: low

Run PCB constraint validation against the board design. Checks board outline, layer stackup, net classes, clearance rules, keepout areas, placement zones, mounting holes, fiducials, and manufacturing constraints.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
boardDataobject (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  valid: boolean;
  errors: object[];
  warnings: object[];
  summary: object;
  not_available: boolean (optional);
}

easyeda_pcb_constraint_report

Profile: core | Risk Level: low

Generate a human-readable report explaining which PCB constraints were applied and which require manual review.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
boardDataobject (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  verdict: string;
  checked: object[];
  manualReviewRequired: object[];
  not_available: boolean (optional);
}

easyeda_pcb_delete_component

Profile: full | Risk Level: high

Delete components, tracks, vias, or other PCB primitives by ID. Checks each id against every deletable PCB class instead of assuming component, since PCB_PrimitiveComponent.delete() reports success for ids it does not own without deleting them.

Input Parameters

ParameterTypeRequiredDescription
primitiveIdsstring[]Yes
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  deletedCount: number (optional);
  deleted: string[] (optional);
  notFound: string[] (optional);
  error: string (optional);
}

easyeda_pcb_export_route_context

Profile: pro | Risk Level: low

Export the board as a Specctra DSN file (PCB_ManufactureData.getDsnFile) — an open, vendor-neutral format supported by external autorouters such as FreeRouting. Re-import the routed result through EasyEDA Pro's own SES/DSN import, not through this server.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
filePathstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  artifact_path: string(optional);
  byte_length: number(optional);
  exported: boolean;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_pcb_floorplan

Profile: full | Risk Level: high

Translate CircuitIR physical constraints (keepouts, top/bottom side, connector-edge, thermal spacing) into a component group placement plan, then optionally apply it. CircuitIR devices carry no physical dimensions, so widths/heights must be supplied per device (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
circuitIRanyYes
devicesobject[]Yes
projectIdstring (optional)No
mode`'preview''apply'`Yes
boardobjectYes
anchorobjectYes
columnsnumber (optional)No
spacingMmnumber (optional)No
minSpacingMmnumber (optional)No
topLayernumber (optional)No
bottomLayernumber (optional)No
connectorEdge`'top''bottom''left'
connectorEdgeMarginMmnumber (optional)No
thermalSpacingBoostMmnumber (optional)No
thermalDissipationThresholdWattsnumber (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  floorplan_notes: string[];
  summary: string;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_pcb_modify_component

Profile: full | Risk Level: high

Modify component properties in the PCB layout.

Input Parameters

ParameterTypeRequiredDescription
primitiveIdstringYes
propertyRecord<string, any>Yes
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  error: string(optional);
}

easyeda_pcb_place_component

Profile: full | Risk Level: high

Direct PCB component creation is unavailable because the verified EasyEDA runtime does not complete PCB_PrimitiveComponent.create(). This tool fails closed. Place the part in the schematic, sync to PCB, confirm the native dialog, then reposition it with easyeda_pcb_modify_component.

Input Parameters

ParameterTypeRequiredDescription
footprintstringYes
xnumberYes
ynumberYes
rotationnumberYes
layernumberYes
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  not_available: boolean(optional);
  error: string(optional);
  remediation: string(optional);
}

easyeda_pcb_place_component_group

Profile: full | Risk Level: high

Create a high-level, constraint-checked placement plan for a group of components and optionally apply it after explicit confirmation.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
mode`'preview''apply'`Yes
boardobjectYes
anchorobjectYes
columnsnumber (optional)No
spacingMmnumber (optional)No
layernumberYes
minSpacingMmnumber (optional)No
componentsobject[]Yes
keepoutsobject[] (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  error: string (optional);
}

easyeda_pcb_production_review

Profile: core | Risk Level: medium

Run fabrication, assembly, and testability production review rules for PCB handoff. Reports severity-ranked DFM/DFA/DFT findings with actionable remediation before Gerber export or manufacturing submission.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
boardDataobject (optional)No
gateMode`'warn''block''off'`

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  passed: boolean;
  blocked: boolean;
  gate_mode: string;
  severity_counts: object;
  errors: object[];
  warnings: object[];
  summary: object;
  not_available: boolean (optional);
}

easyeda_pcb_route_path_plan

Profile: full | Risk Level: high

Create a high-level, constraint-checked route path plan for one net and optionally apply it after explicit confirmation.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
mode`'preview''apply'`Yes
boardobject (optional)No
netNamestringYes
layernumberYes
widthMmnumberYes
waypointsobject[]Yes
keepoutsobject[] (optional)No
maxLengthMmnumber (optional)No
minWidthMmnumber (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  net_name: string;
  layer: number;
  width_mm: number;
  path_length_mm: number;
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  error: string (optional);
}

easyeda_pcb_tracks

Profile: core | Risk Level: low

List copper track segments on the active PCB layout: primitiveId, net, layer, start/end coordinates, width. A multi-point track drawn by add_track appears as several consecutive segments sharing one net. Returns an empty list (not an error) if no PCB tab is focused.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
limitnumberYes
offsetnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  tracks: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_pcb_vias

Profile: core | Risk Level: low

List vias on the active PCB layout: primitiveId, net, position, hole/outer diameter (native unit, same scale as x/y — not independently verified against a known physical dimension). Requires a focused PCB tab — returns an empty list (not an error) if none is active.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
limitnumberYes
offsetnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  vias: object[];
  total: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_post_write_qa

Profile: core | Risk Level: medium

Run and classify post-write schematic QA after generated edits. Combines native DRC/ERC results with policy-aware classification so duplicate net names, free networks, and unconnected pins are reported as pass/fail/inconclusive instead of raw warning counts.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
policy`'circuit''diagnostic-fixture'`Yes
useNativeChecksbooleanYes
manualDrcMessagesstring[] (optional)NoOptional user-copied EasyEDA DRC log lines for classification when native details are unavailable
manualErcMessagesstring[] (optional)NoOptional user-copied EasyEDA ERC log lines for classification when native details are unavailable
drcobject (optional)NoOptional explicit DRC result override for tests or log ingestion
ercobject (optional)NoOptional explicit ERC result override for tests or log ingestion

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  status: 'pass' | 'fail' | 'inconclusive';
  passed: boolean;
  policy: 'circuit' | 'diagnostic-fixture';
  issue_count: number;
  fatal_count: number;
  warning_count: number;
  inconclusive_count: number;
  categories: Record<string, number>;
  issues: object[];
  summary: string;
  detail_source: 'native' | 'manual' | 'override' | 'mixed' (optional);
}

easyeda_power_tree_analyze

Profile: core | Risk Level: medium

Analyze supply sources, regulators, loads, protection, bulk capacitance, current budget, dropout, and regulator thermal risk. Returns machine-readable issues and a human-readable summary.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
railsobject[]Yes
sourcesobject[] (optional)No
regulatorsobject[] (optional)No
loadsobject[] (optional)No
protectionsobject[] (optional)No
capacitorsobject[] (optional)No
limitsobject (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  passed: boolean;
  rails: object[];
  regulators: object[];
  issues: object[];
  summary: object;
}

easyeda_production_qa_artifacts

Profile: pro | Risk Level: low

Generate testpoint checklist, assembly notes, bring-up plan, production QA checklist, and machine-readable QA manifest for board handoff.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
projectNamestring (optional)No
revisionstring (optional)No
criticalNetsobject[] (optional)No
componentsobject[] (optional)No
requiresProgrammingboolean (optional)No
programmingInterfacesstring[] (optional)No
hasProgrammingAccessboolean (optional)No
hasBatteryboolean (optional)No
requiresFunctionalTestboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  project_name: string (optional);
  revision: string (optional);
  passed: boolean;
  issues: object[];
  checklist: object[];
  artifacts: object[];
  summary: object;
}

easyeda_project_begin_transaction

Profile: core | Risk Level: low

Open an in-memory, document-scoped transaction for snapshot-backed schematic writes. Only one active transaction is allowed per document. Beginning a transaction does not modify EasyEDA.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
labelstring (optional)No
maxOperationsnumberYes
ttlSecondsnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  transaction: object (optional);
  restored_operation_ids: string[] (optional);
  failed_operation_ids: string[] (optional);
  error_code: string (optional);
  error: string (optional);
  details: Record<string, any> (optional);
}

easyeda_project_commit_transaction

Profile: core | Risk Level: medium

Finalize a transaction after its writes and validation gates succeed. Commit removes rollback eligibility and releases the document transaction lock.

Input Parameters

ParameterTypeRequiredDescription
transactionIdstringYes
confirmWrite'true'Yes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  transaction: object (optional);
  restored_operation_ids: string[] (optional);
  failed_operation_ids: string[] (optional);
  error_code: string (optional);
  error: string (optional);
  details: Record<string, any> (optional);
}

easyeda_project_get_transaction_status

Profile: core | Risk Level: low

Read transaction state, validation results, operation hashes, and rollback status without exposing captured primitive snapshots.

Input Parameters

ParameterTypeRequiredDescription
transactionIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  transaction: object (optional);
  restored_operation_ids: string[] (optional);
  failed_operation_ids: string[] (optional);
  error_code: string (optional);
  error: string (optional);
  details: Record<string, any> (optional);
}

easyeda_project_rollback_transaction

Profile: core | Risk Level: medium

Controlled write: restore applied schematic primitive snapshots in reverse order, verify each restored hash, and report partial rollback explicitly instead of hiding inconsistencies.

Input Parameters

ParameterTypeRequiredDescription
transactionIdstringYes
confirmWrite'true'Yes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  transaction: object (optional);
  restored_operation_ids: string[] (optional);
  failed_operation_ids: string[] (optional);
  error_code: string (optional);
  error: string (optional);
  details: Record<string, any> (optional);
}

easyeda_project_save

Profile: core | Risk Level: medium

Explicitly save the current EasyEDA Pro project. This ensures all netlist changes, net flags, pin connections, and other mutations are persisted to the project file. Save is never implicit — the caller must explicitly request it. Requires confirmWrite.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID to save
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  saved_at: string(optional);
  error: string(optional);
}

easyeda_project_validate_transaction

Profile: core | Risk Level: low

Run transaction consistency gates before commit: bridge availability, pending/failed operation checks, optional expected operation count, and optional requirement for at least one applied write.

Input Parameters

ParameterTypeRequiredDescription
transactionIdstringYes
expectedOperationCountnumber (optional)No
requireAppliedOperationsbooleanYes
requireBridgeConnectedbooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  transaction: object (optional);
  restored_operation_ids: string[] (optional);
  failed_operation_ids: string[] (optional);
  error_code: string (optional);
  error: string (optional);
  details: Record<string, any> (optional);
}

easyeda_rule_check_summary

Profile: core | Risk Level: low

Get a summary of all design and electrical rule check results for the project.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  drc: object;
  erc: object;
  overall_passed: boolean;
  not_available: boolean(optional);
}

easyeda_run_self_test

Profile: core | Risk Level: low

Run internal self-test to verify server integrity, config, and bridge connectivity.

Input Parameters

No parameters required.

Output Format

Returns a JSON object matching the schema:

ts
{
  passed: boolean;
  checks: object[];
}

easyeda_schematic_add_circle

Profile: core | Risk Level: medium

Draw a circle on the schematic sheet — decorative marker or custom symbol element. Cosmetic only, no electrical meaning. fillColor "none" leaves it unfilled.

Input Parameters

ParameterTypeRequiredDescription
centerXnumberYes
centerYnumberYes
radiusnumberYes
colorstring (optional)No
fillColorstring (optional)NoFill color, hex string, or "none" for unfilled
lineWidthnumber (optional)No
lineTypenumber (optional)No
fillStylestring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  circle: any(optional);
  error: string(optional);
}

easyeda_schematic_add_polygon

Profile: core | Risk Level: medium

Draw a closed polygon on the schematic sheet from 3+ vertices — custom decorative shapes, callout arrows, or block diagram elements. Cosmetic only, no electrical meaning.

Input Parameters

ParameterTypeRequiredDescription
pointsobject[]Yes
colorstring (optional)No
fillColorstring (optional)NoFill color, hex string, or "none" for unfilled
lineWidthnumber (optional)No
lineTypenumber (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  polygon: any(optional);
  error: string(optional);
}

easyeda_schematic_add_rectangle

Profile: core | Risk Level: medium

Draw a rectangle on the schematic sheet — section dividers/grouping boxes for organizing a busy schematic into labeled functional blocks (pair with add_text for the title). Cosmetic only. x/y is the top-left corner; fillColor "none" leaves it unfilled.

Input Parameters

ParameterTypeRequiredDescription
xnumberYesTop-left X coordinate
ynumberYesTop-left Y coordinate
widthnumberYes
heightnumberYes
cornerRadiusnumber (optional)No
rotationnumber (optional)No
colorstring (optional)NoBorder/line color, hex string (e.g. "#FF0000")
fillColorstring (optional)NoFill color, hex string, or "none" for unfilled
lineWidthnumber (optional)No
lineTypenumber (optional)No
fillStylestring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  rectangle: any(optional);
  error: string(optional);
}

easyeda_schematic_add_text

Profile: core | Risk Level: medium

Place free-standing text on the schematic sheet (section headers, notes, block labels) — cosmetic/organizational, not a net label. color must be a hex string and fontName a real font (e.g. "Arial") — untyped placeholders create nothing despite returning ok.

Input Parameters

ParameterTypeRequiredDescription
xnumberYes
ynumberYes
contentstringYes
rotationnumber (optional)No
colorstring (optional)No
fontNamestring (optional)No
fontSizenumber (optional)No
boldboolean (optional)No
italicboolean (optional)No
underlineboolean (optional)No
alignModenumber (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  text: any(optional);
  error: string(optional);
}

easyeda_schematic_add_wire

Profile: core | Risk Level: medium

Add a wire connecting schematic coordinates/pins — real native connectivity. Same netName connects pins globally: separate stubs sharing one name merge into one net (no label needed). NET_COLLISION guards touched points against a foreign net's wire, pin, or flag/port — not mid-segment crossings.

Input Parameters

ParameterTypeRequiredDescription
pointsobject[]Yes
netNamestring (optional)No
colorstring (optional)No
lineWidthnumber (optional)No
lineTypestring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  wire: any(optional);
  error: string(optional);
}

easyeda_schematic_audit_imported_design

Profile: core | Risk Level: low

Read the live schematic without modifying it, build a canonical model, and report imported net aliases, duplicate or missing references, unresolved metadata expressions, missing values/footprints, and ambiguous BOM classification. Includes a preview only; it never renames nets or changes components.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID to audit
includeInfobooleanYesInclude informational imported-alias and power-flag findings
componentLimitnumberYesMaximum number of component records to read from the live bridge

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  audit_schema_version: 'imported-design-audit/v1';
  status: 'clean' | 'review' | 'blocked';
  read_only: 'true';
  safe_to_normalize: boolean;
  source: object;
  model_summary: object;
  summary: object;
  findings: object[];
  normalization_preview: object;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_batch_write

Profile: core | Risk Level: high

Apply up to 200 validated schematic create, modify, pin no-connect, and delete operations in one snapshot-backed transaction. Any failure rolls the whole transaction back. Delete is limited to safely recreatable drawing primitives.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
transactionIdstring (optional)No
operations`objectobjectobject
atomic'true'Yes
dryRunbooleanYes
confirmWrite'true'Yes

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  atomic: 'true';
  dry_run: boolean;
  internally_managed_transaction: boolean;
  transaction_id: string (optional);
  transaction_state: 'active' | 'validating' | 'validated' | 'committed' | 'rolling-back' | 'rolled-back' | 'failed' | 'expired' (optional);
  committed: boolean;
  rolled_back: boolean;
  results: object[];
  error_code: string (optional);
  error: string (optional);
  rollback_error: string (optional);
}

easyeda_schematic_capture_full_page

Profile: pro | Risk Level: low

Read the active schematic sheet geometry, clear selection overlays, frame the complete sheet including its border and title block, and return a deterministic PNG plus the sheet-to-image coordinate transform. Refuses guessed geometry unless explicitly allowed.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
tabIdstring (optional)No
paddingnumberYes
allowInferredA4booleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  captured: boolean;
  mime_type: string (optional);
  file_name: string (optional);
  byte_length: number (optional);
  image_base64: string (optional);
  not_available: boolean (optional);
  error: string (optional);
  project_id: string;
  sheet: object (optional);
  viewport: object (optional);
  image_dimensions: object (optional);
  sheet_to_image_transform: object (optional);
  selection_overlays_removed: boolean (optional);
  deterministic_viewport: boolean;
  warnings: string[];
}

easyeda_schematic_check_collisions

Profile: core | Risk Level: low

Scan every component's real pin coordinates and report any (x,y) shared by two or more components — a silent-short risk the native NET_COLLISION guard misses for never-wired pins. Run after manual placement outside easyeda_workflow_* tools (which reconcile this automatically).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  collisions: object[];
  collision_count: number;
  scan_complete: boolean;
  scan_diagnostics: object (optional);
  success: boolean;
  error: string (optional);
}

easyeda_schematic_check_placement

Profile: pro | Risk Level: low

Validate a candidate placement (rendered bounds, clearances, conflicts, deterministic alternatives) or -- when x/y are omitted -- search for a safe region of the given size, against real title-block/page-border/existing-primitive constraints. Read-only, no writes.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
candidateobjectYes
reservedRegionsobject[] (optional)No
minimumClearancenumber (optional)No
excludePrimitiveIdsstring[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  mode: 'check-placement' | 'select-safe-region';
  accepted: boolean (optional);
  proposed: object (optional);
  combinedBounds: object (optional);
  clearances: object[] (optional);
  conflicts: object[] (optional);
  suggestedAlternatives: object[] (optional);
  failure: object (optional);
  feasible: boolean (optional);
  preference: string (optional);
  candidate: object (optional);
  check: object (optional);
  rationale: string[] (optional);
}

easyeda_schematic_component_pins

Profile: core | Risk Level: low

Get exact pin primitive IDs, numbers, names, coordinates, native no-connect state, and pinType for a schematic component by its primitive ID. pinType is EasyEDA's own symbol-library field and is unreliably authored (often "Undefined" even on real ICs) — treat it as a weak hint, not ground truth.

Input Parameters

ParameterTypeRequiredDescription
primitiveIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  primitiveId: string;
  pins: object[];
  success: boolean;
  error: string (optional);
}

easyeda_schematic_components

Profile: core | Risk Level: low

List schematic components: primitiveId, reference, value, footprint, x/y/rotation, and device identity for cloning — deviceUuid+deviceLibraryUuid (a place_component deviceItem in this project), deviceName, symbolName, lcsc, manufacturerId.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
limitnumberYes
offsetnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  components: object[];
  total: number;
  read_consistency: object (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_connect_pin_to_net

Profile: core | Risk Level: medium

Create real EasyEDA connectivity for a pin: draws a short wire stub from its exact coordinate, tagged with netName. Same-netName wires merge globally, so this joins the pin to everything else on that net — visible to ERC, ratsnest, and autorouting.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
primitiveIdstringYesThe primitive ID of the component
pinNumberstringYesThe pin number or pin name on the component (e.g. "1", "VCC", "GND")
netNamestringYesThe net name to connect the pin to (e.g. VCC, GND, DATA0)
stubLengthnumber (optional)NoLength of the wire stub drawn outward from the pin. Defaults to 10.
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  real: boolean(optional);
  created_primitive_id: string(optional);
  endpoint: object(optional);
  connection: object(optional);
  error: string(optional);
}

easyeda_schematic_connect_pins_by_net

Profile: core | Risk Level: medium

Bulk variant of connect_pin_to_net: draws a real wire stub from each pin, tagged with netName, so all listed pins (and anything else already on that net) merge into one net. Visible to ERC, ratsnest, and autorouting. A pin that fails (e.g. collision) is reported in failures rather than aborting the batch.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
netNamestringYesThe net name to assign pins to
pinsobject[]YesList of component pins to connect to the net
stubLengthnumber (optional)NoLength of the wire stub drawn outward from each pin. Defaults to 10.
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  real: boolean (optional);
  created_primitive_ids: string[] (optional);
  failures: object[] (optional);
  connections: object[] (optional);
  count: number;
  error: string (optional);
}

easyeda_schematic_connectivity_fingerprint

Profile: pro | Risk Level: low

Compute a deterministic connectivity fingerprint (pin/net membership, wire endpoints, labels/ports, no-connects) from the live schematic. Pass the hash as beforeFingerprint/afterFingerprint to easyeda_schematic_layout_qa to prove a cosmetic move left connectivity unchanged.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  projectId: string;
  schemaVersion: '1';
  hash: string;
  modelHash: string;
  componentCount: number;
  netCount: number;
  normalized: object;
  diagnosticCount: number;
}

easyeda_schematic_create_net_flag

Profile: core | Risk Level: medium

Create a named net flag/label. With identification (Power/Ground/AnalogGround/ProtectGround) it places a power-flag symbol binding to a coincident pin (use for VCC/GND). Without it, a generic net label — cosmetic only; connect pins with add_wire stubs sharing one netName.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
netNamestringYesThe net name to assign (e.g. VCC, GND, TEST_NET)
xnumberYesX coordinate on the schematic canvas
ynumberYesY coordinate on the schematic canvas
rotationnumber (optional)NoRotation in degrees (0, 90, 180, 270)
identification`'Power''Ground''AnalogGround'
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  netFlag: object(optional);
  error: string(optional);
}

easyeda_schematic_create_net_port

Profile: core | Risk Level: medium

Place a hierarchical net port (off-sheet connector) on the schematic. Net ports create named connections that span multiple schematic sheets, appearing as real SCH_Net entries in the netlist.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
netNamestringYesThe net name for the port (e.g. VCC, GND, DATA_BUS)
xnumberYesX coordinate on the schematic canvas
ynumberYesY coordinate on the schematic canvas
portType`'input''output''bidirectional'
rotationnumber (optional)NoRotation in degrees (0, 90, 180, 270)
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  netPort: object(optional);
  error: string(optional);
}

easyeda_schematic_delete_primitive

Profile: core | Risk Level: medium

Delete components, wires, or other drawing objects from the schematic by their primitive UUIDs.

Input Parameters

ParameterTypeRequiredDescription
primitiveIdsstring[]Yes
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  error: string(optional);
}

easyeda_schematic_layout_autofix

Profile: pro | Risk Level: low

Detect title-block overlap, page-boundary overflow, and component-overlap violations from real rendered bounds, and propose cosmetic-only moves that resolve them. Read-only preview only (requiresConfirmWrite=true, no writes) -- confirmWrite apply with connectivity-fingerprint rollback is tracked separately (#273).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
allowlistobject (optional)No
hardKeepoutsobject[] (optional)No
reservedRegionsobject[] (optional)No
minimumClearancenumber (optional)No
maxMovesnumber (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  projectId: string;
  mode: 'preview';
  requiresConfirmWrite: 'true';
  violations: object[];
  moves: object[];
  report: object;
  allowlist: object;
  primitiveCount: number;
  unavailablePrimitiveIds: string[];
}

easyeda_schematic_layout_autofix_apply

Profile: pro | Risk Level: high

Apply the layout-autofix cosmetic moves in a snapshot-backed transaction, re-verifying a connectivity fingerprint after every write batch. Any unintended electrical change or write failure rolls the transaction back and is reported, never thrown. dryRun:true previews only.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
allowlistobject (optional)No
hardKeepoutsobject[] (optional)No
reservedRegionsobject[] (optional)No
minimumClearancenumber (optional)No
maxMovesnumber (optional)No
batchSizenumber (optional)No
dryRunbooleanYes
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  projectId: string;
  dryRun: boolean;
  mode: 'preview';
  requiresConfirmWrite: 'true';
  violations: object[];
  moves: object[];
  allowlist: object;
  primitiveCount: number;
  unavailablePrimitiveIds: string[];
  applied: boolean;
  batchesVerified: number;
  actualStateReadAfterFailure: boolean;
  beforeFingerprintHash: string (optional);
  afterFingerprintHash: string (optional);
  connectivityDiff: object (optional);
  report: object;
  transactionId: string (optional);
  transactionState: 'active' | 'validating' | 'validated' | 'committed' | 'rolling-back' | 'rolled-back' | 'failed' | 'expired' (optional);
  errorCode: string (optional);
  error: string (optional);
}

easyeda_schematic_layout_qa

Profile: pro | Risk Level: low

Run a normalized post-write QA pass combining runtime DRC/ERC, expected component/pin topology, rendered primitive bounds, title-block and page constraints, wiring/grouping checks, and connectivity fingerprints, with optional full-page visual evidence. Critical geometry or connectivity findings always block commit.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
expectedComponentRefsstring[] (optional)No
expectedNetNamesstring[] (optional)No
expectedPinMappingsobject[] (optional)No
relationshipsobject[] (optional)No
connectivityobject (optional)No
thresholdsobject (optional)No
visualFindingsobject[] (optional)No
runVisualCapturebooleanYes

Output Format

Returns a JSON object matching the schema:

ts
{
  projectId: string;
  status: 'pass' | 'fail' | 'inconclusive';
  passed: boolean;
  commitBlocked: boolean;
  issues: object[];
  issueCounts: object;
  scores: object;
  evidence: object;
  summary: object;
}

easyeda_schematic_modify_primitive

Profile: core | Risk Level: medium

Safely modify a schematic primitive while preserving omitted fields. With transactionId and projectId, capture before/after snapshots and automatically restore the prior state if the write or post-write read fails. Component moves keep connected wires attached.

Input Parameters

ParameterTypeRequiredDescription
primitiveIdstringYes
propertyRecord<string, any>Yes
projectIdstring (optional)NoRequired when transactionId is supplied; must match the transaction document.
transactionIdstring (optional)NoOptional snapshot-backed project transaction ID.
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  result: any(optional);
  transaction: object(optional);
  error_code: string(optional);
  error: string(optional);
  details: Record<string, any>(optional);
}

easyeda_schematic_net_detail

Profile: core | Risk Level: low

Get full details for a specific net in the schematic including all connected pins and components.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
netNamestringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  net_name: string;
  node_count: number;
  nodes: object[];
  not_available: boolean (optional);
  timed_out: boolean (optional);
  error_code: string (optional);
  timeout_stage: string (optional);
  timeout_component: string (optional);
  error: string (optional);
}

easyeda_schematic_nets

Profile: core | Risk Level: low

List all nets in the schematic with their node connections.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  nets: object[];
  total: number;
  read_consistency: object (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_place_component

Profile: core | Risk Level: medium

Place a library component/device on the active schematic sheet. Auto-assigns the next free designator ("R?" → "R1") — check the returned value, duplicate "R?" merge into one node. On a timeout error, auto-reconciles against the sheet before reporting failure (see reconciled/unconfirmed) — do not blindly retry.

Input Parameters

ParameterTypeRequiredDescription
deviceItemobjectYes
xnumberYes
ynumberYes
subPartNamestring (optional)No
rotationnumber (optional)No
mirrorboolean (optional)No
addIntoBomboolean (optional)No
addIntoPcbboolean (optional)No
dryRunboolean (optional)No
verifyAfterWriteboolean (optional)No
checkPlacementCollisionboolean (optional)No
collisionRadiusnumber (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  component: any(optional);
  dry_run: boolean(optional);
  placement_guard: any(optional);
  verification: any(optional);
  reconciled: boolean(optional);
  unconfirmed: boolean(optional);
  warning: string(optional);
  error: string(optional);
}

easyeda_schematic_plan_layout

Profile: pro | Risk Level: low

Deterministically plan functional-block placement (reserved rectangles, support space, grid-aligned coordinates, occupancy map, A3 fallback, score) from real sheet/primitive geometry -- no writes. Caller supplies roles/blockId/parentId; other primitives read as occupied regions, never overwritten.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
componentsobject[]Yes
allowA3FallbackbooleanYes
hardKeepoutsobject[] (optional)No
constraintsobject (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  feasible: boolean;
  deterministic: 'true';
  layoutHash: string;
  selectedSheet: object;
  blockReservations: object[];
  supportReservations: object[];
  placements: object[];
  placementOrder: string[];
  occupancyMap: object[];
  conflicts: object[];
  pageSuitability: object;
  score: object;
}

easyeda_schematic_plan_safe_region

Profile: core | Risk Level: low

Compute a safe schematic drawing region before placing components. Uses live sheet info when available, assumes EasyEDA bottom-left coordinates, reserves the default lower-right title-block keep-out, and returns an anchor/bounds plan that avoids title-block overlap.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
contentWidthnumberYesEstimated width of the planned circuit block in EasyEDA coordinates
contentHeightnumberYesEstimated height of the planned circuit block in EasyEDA coordinates
preferredRegion`'upper-left''upper-center''upper-right'
marginnumber (optional)No
titleBlockKeepoutobject (optional)NoOptional explicit title-block keep-out rectangle when the sheet template is known

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string (optional);
  blocked: boolean;
  preferred_region: string;
  sheet: object;
  usable_bounds: object;
  requested_bounds: object;
  bounds: object;
  anchor: object;
  keepouts: object[];
  warnings: string[];
  issues: object[];
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_preview_imported_normalization

Profile: core | Risk Level: low

Read the live schematic and produce a deterministic, read-only normalization plan with a stable plan ID, model hash, proposed net-name/reference/metadata operations, validation gates, warnings, and blockers. This tool never writes to EasyEDA.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID to preview
componentLimitnumberYes
normalizeNetNamesbooleanYes
annotateReferencesbooleanYes
resolveMetadataExpressionsbooleanYes
componentOverridesobject[]Yes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  source: object;
  plan: object;
  not_available: boolean(optional);
  error: string(optional);
}

easyeda_schematic_primitive_bounds

Profile: pro | Risk Level: low

Read real rendered (sheet-space, rotation-aware) component bounding boxes from the live bridge, batched in one call. Origin is not a collision bound -- use combinedBounds for overlap/page/title-block checks. Reference/value text is not independently addressable here and reports not_available.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
primitiveIdsstring[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  items: object[];
  availableCount: number;
  notAvailableCount: number;
  units: string;
  coordinateOrigins: object[];
}

easyeda_schematic_search_device

Profile: core | Risk Level: low

Search for schematic symbols/devices in the EasyEDA library by keywords. Full results carry the library's complete metadata object per device; pass minimal:true to get back only uuid/libraryUuid/name/pin_count/symbol_type when that is all you need.

Input Parameters

ParameterTypeRequiredDescription
keystringYesSearch keyword(s), matched against device name/description in the library
libraryUuidstring (optional)No
classification`stringstring[] (optional)`No
symbolTypestring (optional)No
itemsOfPagenumberYes
pagenumberYes
minimalboolean (optional)NoWhen true, return only uuid/libraryUuid/name/pin_count/symbol_type per device instead of the full library metadata object — use this when the goal is just picking a deviceItem for place_component, to avoid paying for fields you will not read.

Output Format

Returns a JSON object matching the schema:

ts
{
  devices: object[];
  total: number;
  provider_tier: 'local_library' (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_set_pin_no_connect

Profile: core | Risk Level: medium

Set or clear EasyEDA Pro's native No Connect marker on one exact component pin. This changes the component pin noConnected state; it does not create a net, label, power flag, or short-circuit flag. The bridge rejects missing/ambiguous pins and verifies the native readback after the write.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
primitiveIdstringYesThe component primitive ID
pinNumberstringYesThe exact component pin number
noConnectedbooleanYestrue places the native No Connect marker; false removes it
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  component_primitive_id: string;
  pin_primitive_id: string(optional);
  pin_number: string;
  previous_no_connected: boolean(optional);
  no_connected: boolean(optional);
  changed: boolean(optional);
  verified: boolean(optional);
  error_code: string(optional);
  error: string(optional);
}

easyeda_schematic_set_title_block

Profile: core | Risk Level: medium

Update schematic title block text fields (Company, Version, Drawn, Reviewed, Page Size). Only these 5 are exposed — writing Symbol/Border/Device/etc once corrupted a real title block; those are read-only natively and must be fixed via the EasyEDA Pro UI.

Input Parameters

ParameterTypeRequiredDescription
fieldsRecord<string, object>YesMap of title block field name to the sub-fields to change, e.g. { "Company": { "value": "ACME", "showValue": true } }
showTitleBlockboolean (optional)NoShow/hide the whole title block
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  error: string(optional);
}

easyeda_schematic_sheet_info

Profile: core | Risk Level: low

Return read-only active schematic sheet metadata including page size, frame, origin, and grid hints for safer component placement.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string(optional);
  sheet: any(optional);
  page_size: object(optional);
  frame: any(optional);
  origin: any(optional);
  grid: any(optional);
  raw: any(optional);
  metadata_source: string(optional);
  focused_document: any(optional);
  diagnostics: any(optional);
  geometry_available: boolean;
  warning: string(optional);
  not_available: boolean(optional);
  error_code: string(optional);
  error: string(optional);
}

easyeda_schematic_sync_to_pcb

Profile: core | Risk Level: medium

Request a schematic-to-PCB sync (SCH_Document.importChanges). CAUTION (live-verified): opens a confirmation dialog in EasyEDA Pro's UI a HUMAN must approve — success here only means the request was sent, not that components appeared. Ask the user to approve the dialog, then verify with pcb_components.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
confirmWrite'true'YesMust be the literal boolean true (not the string "true") to allow this write.

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  requested: boolean(optional);
  note: string(optional);
  error: string(optional);
}

easyeda_schematic_validate_netlist

Profile: core | Risk Level: low

Validate inferred nets and floating pins, then cross-check native ERC. A pin is excluded from floating inference only when native noConnected readback is boolean true; unavailable or malformed state stays visible. valid requires clean inference and zero native errors.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
includeWireCheckbooleanYesWhen true, also check for graphical wires without netlist connectivity

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  netlist: object[];
  total_nets: number;
  floating_pins: object[];
  wires_without_netlist: object[] (optional);
  native_erc: object (optional);
  valid: boolean;
  warnings: string[];
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_schematic_verify_write

Profile: core | Risk Level: low

Read back schematic state after an agent-authored write. Returns component-count delta evidence and optional netlist validation so agents can confirm a placement or connection before continuing.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
netNamestring (optional)No
beforeComponentCountnumber (optional)No
expectedComponentCountDeltanumber (optional)No
includeWireCheckboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string (optional);
  net_name: string (optional);
  components_available: boolean;
  component_count: number (optional);
  component_count_delta: number (optional);
  component_delta_matches: boolean (optional);
  netlist_available: boolean;
  netlist_validation: any (optional);
  warnings: string[];
  error: string (optional);
}

easyeda_schematic_wires

Profile: core | Risk Level: low

List wire segments: primitiveId, line coordinates, net name, color, style. Page with offset (check total) past the 50-wire-per-call cap. primitiveId is required by delete_primitive/modify_primitive — schematic_nets alone cannot resolve a wire ID.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYesThe project/schematic ID
limitnumberYes
offsetnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  wires: object[];
  total: number;
  read_consistency: object (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_semantic_erc_auto

Profile: core | Risk Level: low

Extract nets/devices/pins from the LIVE schematic and run semantic ERC — no hand-authored netlist needed. Net/pin electrical types are INFERRED from naming conventions, not verified — treat findings as a first-pass signal, not a substitute for semantic_erc_validate.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  passed: boolean;
  error_count: number;
  warning_count: number;
  total_issues: number;
  errors: object[];
  warnings: object[];
  inferred_net_count: number;
  inferred_device_count: number;
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_semantic_erc_validate

Profile: core | Risk Level: medium

Run semantic electrical-rule validation over a netlist with pin electrical types to detect output contention, floating inputs, power conflicts, missing power pins, missing decoupling, and voltage-domain mismatches.

Input Parameters

ParameterTypeRequiredDescription
projectIdstring (optional)No
netsobject[]Yes
devicesobject[] (optional)No
interfacesobject[] (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  project_id: string;
  passed: boolean;
  error_count: number;
  warning_count: number;
  total_issues: number;
  errors: object[];
  warnings: object[];
}

easyeda_simulate_operating_point

Profile: pro | Risk Level: low

Translate a typed circuit description into a SPICE deck and run an offline ngspice operating-point (.op) simulation, optionally checking rail node voltages against a spec. Read-only, local-only. Reports a capability gap rather than failing when ngspice is absent.

Input Parameters

ParameterTypeRequiredDescription
circuitobjectYes
railSpecsobject[] (optional)No
timeoutMsnumber (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  available: boolean;
  ngspice_version: string (optional);
  node_voltages: Record<string, number> (optional);
  rail_verdicts: object[] (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_simulate_transient

Profile: pro | Risk Level: low

Translate a typed circuit description into a SPICE deck and run an offline ngspice transient (.tran) simulation, optionally checking the final rail voltage against a spec. Read-only, local-only. Reports a capability gap rather than failing when ngspice is absent.

Input Parameters

ParameterTypeRequiredDescription
circuitobjectYes
stepSecondsnumberYes
stopTimeSecondsnumberYes
railSpecsobject[] (optional)No
timeoutMsnumber (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  available: boolean;
  ngspice_version: string (optional);
  samples: object[] (optional);
  truncated: boolean (optional);
  rail_verdicts: object[] (optional);
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_wire_probe

Profile: dev | Risk Level: low

Inspect live schematic wire objects, including line coordinates, net names, methods, and state getter values, to validate EasyEDA runtime mappings.

Input Parameters

ParameterTypeRequiredDescription
limitnumberYes

Output Format

Returns a JSON object matching the schema:

ts
{
  total: number;
  samples: any[];
  not_available: boolean (optional);
  error: string (optional);
}

easyeda_workflow_connector_breakout

Profile: pro | Risk Level: medium

Place a connector, wire each declared pin to its net, and create a net port for each net so the breakout is accessible off-sheet — all as a single atomic transaction (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
anchorobjectYes
netPortAnchorobject (optional)No
connectorRefstringYes
connectorobjectYes
rotationnumber (optional)No
mirrorboolean (optional)No
subPartNamestring (optional)No
pinsobject[]Yes
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
}

easyeda_workflow_decouple_ic

Profile: pro | Risk Level: medium

Place one decoupling capacitor per declared IC power pin and wire each to the pin's net and ground, in a single atomic transaction. Cites design-rules decoupling guidance (rule-of-thumb, not datasheet-specific) alongside the plan (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
anchorobjectYes
spacingnumber (optional)No
groundNetNamestringYes
icPowerPinsobject[]Yes
capacitorobjectYes
capacitorPinsobjectYes
decouplingCategory`'digital-logic''mcu''analog'
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
  decoupling_guidance: object (optional);
}

easyeda_workflow_layout_section

Profile: pro | Risk Level: medium

Compute and create a section rectangle + title sized from the real pin extents of the given already-placed components (or replace an existing rectangle/title pair). Reports overlap with other rectangles and page-size overflow as warnings; never resizes the page.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
componentPrimitiveIdsstring[]YesComponents belonging to this section — their pin extents define the box.
titlestringYes
marginnumberYesPadding between the component cluster and the box edge.
componentPaddingnumberYesPer-component padding around its pins, approximating body extent beyond them.
titleGapnumberYesGap between the title and the box top edge.
titleFontSizenumberYes
colorstringYes
replaceRectanglePrimitiveIdstring (optional)NoAn existing section rectangle to delete and replace with the newly-sized one.
replaceTitlePrimitiveIdstring (optional)NoAn existing section title to delete and replace with the repositioned one.
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  applied: boolean;
  bounds: object (optional);
  overlapping_rectangles: object[];
  page_frame_warning: string (optional);
  rectangle_primitive_id: string (optional);
  title_primitive_id: string (optional);
  deleted_primitive_ids: string[];
  error: string (optional);
}

easyeda_workflow_led_blinker

Profile: pro | Risk Level: medium

Create a deterministic LED blinker workflow: a switch, current-limiting resistor, and indicator LED. Uses safe sheet-region planning, left-to-right layout, generic wire stubs, and optional post-write QA. Caller supplies resolved device items (confirmWrite required); simplest circuit for validating the MCP pipeline.

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
devicesobjectYes
anchorobject (optional)No
preferredRegion`'upper-left''upper-center''upper-right'
marginnumber (optional)No
createNetPortsbooleanYes
createWireStubsbooleanYes
refsobject (optional)No
netsobject (optional)No
valuesobject (optional)No
pinMapsobject (optional)No
runPostWriteQabooleanYes
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
  safe_region: object;
  design: object;
  post_write_qa: object (optional);
}

easyeda_workflow_ne555_astable

Profile: pro | Risk Level: medium

Create a deterministic NE555 astable LED flasher workflow using safe sheet-region planning, component-level layout offsets, explicit pin-to-net connectivity, and optional post-write QA. Caller supplies already-resolved EasyEDA device items; this tool does not guess catalog parts (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
devicesobjectYes
anchorobject (optional)No
preferredRegion`'upper-left''upper-center''upper-right'
marginnumber (optional)No
createNetPortsbooleanYes
createWireStubsbooleanYes
refsobject (optional)No
netsobject (optional)No
valuesobject (optional)No
pinMapsobject (optional)No
runPostWriteQabooleanYes
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
  safe_region: object;
  design: object;
  post_write_qa: object (optional);
}

easyeda_workflow_place_block

Profile: pro | Risk Level: medium

Place a group of components, wire their pin-to-net connections (new and/or pre-existing components), and create net ports for block-external nets — all as a single atomic transaction with rollback on partial failure (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
anchorobjectYes
spacingnumber (optional)No
blockNamestring (optional)No
componentsobject[]Yes
existingComponentsobject[]Yes
netPortsobject[]Yes
netPortAnchorobject (optional)No
wiresobject[]Yes
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
}

easyeda_workflow_power_rail

Profile: pro | Risk Level: medium

Place a regulator and its supporting passives and wire them to input/output/ground nets in a single atomic transaction, instead of one primitive call per component. Caller supplies already-resolved device items and pin connections; this tool does not select parts (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
anchorobjectYes
spacingnumber (optional)No
groundNetNamestringYes
inputNetNamestringYes
outputNetNamestringYes
componentsobject[]Yes
verifyRailobject (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
  verification: object (optional);
}

easyeda_workflow_rp2040_servo_module

Profile: pro | Risk Level: medium

Plan or apply an RP2040 servo-module scaffold: 56 BOM parts in seven visible rollback-backed sections with deterministic titles and completeness diagnostics. Exact pin-to-net wiring stays intentionally absent until later block netlists supply it (confirmWrite required).

Input Parameters

ParameterTypeRequiredDescription
projectIdstringYes
mode`'preview''apply'`Yes
devicesobjectYes
anchorobject (optional)No
preferredRegion`'upper-left''upper-center''upper-right'
marginnumber (optional)No
confirmWriteboolean (optional)No

Output Format

Returns a JSON object matching the schema:

ts
{
  success: boolean;
  project_id: string;
  transaction_id: string;
  mode: string;
  applied: boolean;
  blocked: boolean;
  rolled_back: boolean;
  placements: object[];
  operations: object[];
  apply_results: object[] (optional);
  issues: object[];
  summary: string;
  rollback_notes: string[];
  error: string (optional);
  safe_region: object;
  scaffold: object;
}

Released under the MIT License.