a2n-easyeda-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| A2N_EDA_WS_PORT | No | WebSocket port for the EasyEDA extension connection. Default is 8788. | 8788 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| eda_statusA | Get a2n.EasyEDA MCP connection status, the active mode (online/offline/hybrid), and current project info. |
| eda_set_modeA | Set the component sourcing mode. "offline" = local/system libraries only. "online" = EasyEDA backend search. "hybrid" = local first then online. |
| eda_get_project_infoA | Read the current EasyEDA project tree (boards, schematics, pages with UUIDs) and metadata. |
| eda_open_documentA | Open a document (schematic, schematic page, PCB) by its UUID from the project tree. |
| eda_callA | Advanced: call any low-level EasyEDA handler method directly by name with a params object. Use when no dedicated tool exists. Method names follow the "domain.action.target" convention (e.g. "pcb.create.via", "sch.wire.create", "lib.device.search"). |
| eda_execA | Dev/advanced: invoke ANY eda.* API by dotted path without changing the extension. e.g. path="sch_ManufactureData.getExportDocumentFile", args=["sch","PNG",{},"Current Schematic Page"]. New capabilities can be prototyped Node-side only (no extension reinstall). File results return as base64; image files are shown directly. |
| eda_guideA | Read this FIRST. Conventions and recommended workflow for driving EasyEDA via this MCP: coordinate system, net-by-name wiring, schematic vs PCB context, and the place -> wire -> verify loop. |
| sch_get_all_componentsA | Get all schematic components (parts, net flags, net ports, etc.) with positions, rotation, designators. |
| sch_get_component_pinsB | Get all pins of a schematic component by its primitive ID. |
| sch_get_all_wiresA | Get all wires in the schematic, optionally filtered by net name(s). |
| sch_get_netlistB | Get the schematic netlist in the specified format. |
| sch_read_circuitB | Read the current schematic as a structured circuit (components + pins + resolved net per pin). Best high-level read. |
| sch_validate_netlistA | Validate schematic connectivity from the resolved circuit: reports floating (unconnected) pins, single-pin nets (likely dangling), and a per-net summary. Read-only diagnostic that complements the place -> wire -> verify loop. No EasyEDA write is performed. |
| sch_get_selectedA | Get all currently selected primitives in the schematic editor. |
| sch_run_drcC | Run Design Rule Check (DRC) on the schematic. |
| sch_export_imageA | Export the FULL schematic sheet as a PNG (whole A4 page: border, title block, and every component) — reproducing EasyEDA's "Export -> PNG" with true colors, via Chrome DevTools Protocol. Not a viewport screenshot: it reads the schematic SVG, reframes to the full content, and rasterizes. Requires EasyEDA Pro launched with remote debugging (run-easyeda-debug.bat / README) and an open schematic page. The image is returned inline; pass "fileName" to ALSO save it to disk. |
| sch_search_componentA | Search for a component using EasyEDA libraries. In offline mode searches local/system libraries; in online/hybrid mode also queries the EasyEDA backend. Returns device uuid + libraryUuid for placement. |
| sch_place_componentA | Place a schematic component from a library at a position. Provide device uuid + libraryUuid (from sch_search_component). Use libraryUuid "lcsc" with a device uuid for online placement. |
| sch_create_wireB | Create a wire on the schematic. "line" is a flat coordinate array [x1,y1,x2,y2,...]. |
| sch_create_netflagC | Create a net flag (e.g. VCC/GND short symbol) attached to a net at a position. |
| sch_delete_componentsB | Delete one or more schematic components by primitive ID(s). |
| sch_assemble_circuitA | High-level: place a list of components and auto-wire them locally by net name. No external server, no AI. Components are placed at free positions; pins sharing a net are wired, and VCC/GND/net-port symbols are auto-inserted. Ideal for generating a schematic from a parts+nets list. |
| sch_create_schematicC | Create a new schematic in the current project. Returns the first page uuid. |
| sch_create_pageB | Create a new page under an existing schematic. |
| sch_saveC | Save the current schematic document. |
| sch_checkpoint_saveB | Save a checkpoint of the current document for later restore. |
| sch_checkpoint_listB | List saved checkpoints. |
| sch_checkpoint_restoreB | Restore a checkpoint by id (or the latest if omitted). |
| pcb_get_all_componentsA | Get all PCB components, optionally filtered by layer. |
| pcb_get_component_pinsC | Get all pads/pins of a PCB component by primitive ID. |
| pcb_get_all_netsA | Get all net names on the PCB. |
| pcb_get_net_lengthB | Get total routed length of a net. |
| pcb_get_all_layersA | Get all PCB layers and their properties. |
| pcb_get_selectedB | Get all currently selected PCB primitives. |
| pcb_create_trackC | Create a single track segment between two points on a layer/net. |
| pcb_create_viaC | Create a via at a position. |
| pcb_create_pourC | Create a copper pour region on a layer/net. |
| pcb_move_componentC | Move/rotate a PCB component, optionally flip layer, set lock or designator. |
| pcb_delete_primitivesC | Delete one or more PCB primitives by type and IDs. |
| pcb_run_drcC | Run Design Rule Check on the PCB. |
| pcb_set_copper_layersC | Set the number of copper layers (e.g. 2, 4, 6). |
| pcb_highlight_netC | Highlight a net on the PCB. |
| pcb_export_gerberC | Export Gerber files (returned as base64). |
| pcb_export_bomC | Export BOM file (returned as base64). |
| pcb_export_pick_placeB | Export pick-and-place (centroid) file for assembly (returned as base64). Requires a PCB document active. |
| pcb_export_pdfC | Export the PCB layout to PDF (returned as base64). Requires a PCB document active. |
| pcb_export_3dB | Export a 3D model file of the PCB (e.g. STEP). Returned as base64. Requires a PCB document active. |
| pcb_get_board_outlineA | Get the PCB board outline / dimensions (shape, width, height). Requires a PCB document to be active. |
| pcb_saveC | Save the current PCB document. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 49 tools
Tools are clearly grouped by domain prefixes (eda, pcb, sch) and have distinct verb-noun patterns. Each tool targets a unique action and resource; no two tools appear to do the same thing, even for similar operations like reading circuit vs. validating netlist.
All tools follow a consistent 'domain_verb_noun' pattern in snake_case. Verbs like create, get, delete, export, save, run are used predictably across domains, making the set easy to navigate.
With 49 tools, the count is high but somewhat justified by the broad scope covering schematic, PCB, and general operations. However, it exceeds the 25-tool threshold considered heavy, which may overwhelm agents.
The tool set covers most core workflows for schematic and PCB design: CRUD, exports, DRC, netlist ops, and high-level assembly. Minor gaps exist (e.g., no separate delete for schematic wires, no sch_move_component) but can be worked around via low-level tools.