easyeda-mcp-fix
Provides tools to interact with EasyEDA Pro, including schematic and PCB design operations, component management, netlist generation, DRC checks, and document I/O via the internal eda.* API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@easyeda-mcp-fixget netlist for my current design"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
easyeda-mcp-fix
Bug-fix fork of the EasyEDA Pro MCP bridge. Resolves silent BOM wipes, dead copper to SMD pads and five-minute netlist hangs, hardened on a real board taken to fab.
Base: javawizard/easyeda-agent-mcp-server
(itself a fork of QuincySx/easyeda-agent-mcp-server).
Why this fork exists
The upstream easyeda-agent-mcp-server extension bridges Claude Code (and
other MCP clients) to EasyEDA Pro, exposing the internal eda.* API as ~98
MCP tools. Excellent design in the small, but during Splitflap Controller
Board 3 bring-up (June 2026) six upstream bugs surfaced that turned
day-to-day workflows into data-loss risks:
A single
sch_modify_componentcall on any parameter (justx, say) silently wipedsupplierIdand blanked every field ofotherProperty. Twenty-four components lost their BOM lines in one batch before the pattern was noticed. The schematic looked correct in the canvas.The Board 3 PCB layout passed clearance DRC, and the canvas rendered cleanly, but every API-drawn track was electrically dead to its SMD pads. Only a No-Connection check surfaced it.
Every read that needed pin-to-net data hung about five minutes, then rejected with nothing. Neither cache nor higher timeouts helped.
Each turned out to have a specific root cause, not just a slow API, so the fixes below are deterministic rather than workarounds. All six were live-verified against Splitflap Board 3 taken to fab.
Related MCP server: mcp-server-kicad
What's fixed
# | Symptom on upstream | Root cause | Fix in this fork |
1 |
| Modify re-serialises the component from the symbol, losing metadata. | Snapshot the component via |
2 |
| The flag is forwarded to | Fan out per-page via |
3 |
| Calls | Route through |
4 | API-drawn tracks and arcs are electrically dead to their SMD pads. Clearance DRC passes; only a No-Connection check surfaces it. | EasyEDA stores the | Central |
5 |
| Handler passes a raw array where | Handler wraps input via |
6 | Schematic-editing library computes pin world coordinates wrongly for mirrored components ( |
| Mirror about local Y before rotate (matching the verified |
All six live-verified on Splitflap Controller Board 3: DRC returns zero,
connectivity queries return real nets in under a second, and the numeric
layer id is round-tripped through pcb_get_primitives_by_id.
Not fixed (yet)
Deliberate limits, kept honest:
Sheet-locked modify.
sch_modify_component'sdocumentparam does not reassign a primitive across schematic pages; empirically confirmed by trying it and catching the underlyingundefined.getState_ComponentType. Cross-page moves still require manual UI Cut, switch page, Paste.WebSocket authentication (audit item C4). The daemon only checks the
Originheader, which any local process can spoof. Local-only threat model, still the last open critical. SeeAUDIT.md.
Security audit
AUDIT.md documents the whole codebase across the three layers
(MCP server, bridge daemon, EDA Pro extension) with severity ratings.
Seven criticals were identified; six are resolved on this branch. C4 is
the last one open.
Install
git clone https://github.com/sheares/easyeda-mcp-fix.git
cd easyeda-mcp-fix
npm install
npm test # 69 tests
npm run build # produces build/dist/easyeda-agent-mcp-server_vN.N.N.eextThen in EasyEDA Pro:
Settings → Extensions → Install the built
.eextfrombuild/dist/.Open the extension's page, tick Allow interactive with external and Show at header menu.
Click Claude → Connect Claude from the header menu.
Point your MCP client (Claude Code or otherwise) at the
easyeda-agent-mcp-server binary in dist/mcp-server/. The bridge
daemon is spawned automatically on first tool call and listens on
127.0.0.1:16168.
Same-version reinstalls are a no-op in EasyEDA Pro. Bump the version in
extension.json before rebuilding if you want your changes to take
effect.
Provenance
Base:
javawizard/easyeda-agent-mcp-serverat commit3b8f2e5(the extended fork with per-requestdocumentparam dispatch already threaded throughws-client.ts).Original:
QuincySx/easyeda-agent-mcp-server.MIT licence, inherited. See
LICENSE.
What's inside
src/
mcp-server/ the MCP server (TypeScript, stdio transport)
bridge-daemon/ the WebSocket bridge between MCP server and extension
extension/ the EasyEDA Pro extension (.eext), incl. bug-fix handlers
lib/ schematic editing library (start at src/lib/README.md)
docs/ .esch / .epcb / .epro file format reference
examples/ working examples using the editing library
tests/ 69 tests (node --test, ts-node)Two distinct pieces
1. The MCP server + extension
A pair of programs connected over WebSocket:
The MCP server runs as a stdio process spawned by an MCP client. It exposes EasyEDA operations as MCP tools.
The
.eextextension runs inside EasyEDA Pro (browser or desktop). It connects to the MCP server's WebSocket and dispatches API calls to EasyEDA Pro's internaleda.*namespace.
The server exposes ~98 tools covering schematic primitives, PCB
primitives, libraries, manufacture exports, DRC and document I/O.
Multiple EasyEDA Pro instances can share one daemon; every tool takes an
optional instance_id and document param for cross-tab routing.
Two tool families are worth calling out for high-throughput workflows:
document_get_source/document_set_sourceread and write the entire document as a string in EasyEDA's internal NDJSON format.document_save_to_file/document_load_from_filedo the same via local files (avoids MCP payload size limits).project_export_file/project_import_fileread and write entire.eproprojects as ZIP archives.
2. The schematic editing library
src/lib/ is an in-tree TypeScript library for editing EasyEDA Pro
schematics by manipulating the raw NDJSON format directly. It exists
because EasyEDA's per-operation API is too slow for bulk edits; the
library lets you pull the document source, modify it locally, and push it
back in a single round trip.
It's not wired into MCP tools yet (intentional). The intended workflow:
1. project_export_file → /tmp/myproject.epro
2. unzip /tmp/myproject.epro -d /tmp/myproject/
3. ts-node a script that uses loadSchematic + SchematicWriter
4. document_load_from_file → push the result back into EasyEDARead src/lib/README.md for the API tour and gotchas.
Run examples/add-fpga-config-resistors.ts to see it in action.
Building
npm install
npm run typecheck # type-check both server and extension
npm run compile # build to dist/
npm run build # build + package extension into .eext file
npm test # run the full test suite
npm start # run the MCP server (usually launched by an MCP client)File format reference
docs/schematic-format.md documents the
.esch schematic format: coordinate system (math coordinates: +X
right, +Y up, CCW rotation), element line formats (COMPONENT,
ATTR, WIRE, PIN, FONTSTYLE, HEAD), the netport recipe, and
the gotchas discovered the hard way (junction wires required at
component-to-component connections, every component needs a non-empty
Unique ID, some components resolve their symbol via project.json
rather than a Symbol ATTR).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sheares/easyeda-mcp-fix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server