easyeda-mcp-pro
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AI_MODEL | No | Model name for AI provider | |
| DATA_DIR | No | Data directory (cache, database, artifacts) | .easyeda-mcp-pro |
| NODE_ENV | No | Set to 'production' in production | development |
| HTTP_HOST | No | Bind address (use 0.0.0.0 with caution) | 127.0.0.1 |
| HTTP_PORT | No | Port for HTTP transport | 3000 |
| LOG_LEVEL | No | Pino log level: trace, debug, info, warn, error, fatal, silent | info |
| TRANSPORT | No | Server transport: stdio (default) or http | stdio |
| AI_PROVIDER | No | AI provider for LLM-assisted design review: anthropic, openai, openrouter, or local | none |
| BRIDGE_HOST | No | Bridge WebSocket host | 127.0.0.1 |
| BRIDGE_PORT | No | Primary bridge port | 18601 |
| CORS_ORIGIN | No | Allowed CORS origin | |
| JLCPCB_MODE | No | JLCPCB integration mode (e.g., approved_api); disabled by default | |
| BRIDGE_TOKEN | No | Session token for extension auth | |
| OAUTH_ISSUER | No | Expected token issuer (iss claim) | |
| TOOL_PROFILE | No | Tool set: core, pro, full, dev, experimental | core |
| OAUTH_ENABLED | No | Enable Bearer token validation | false |
| MOUSER_ENABLED | No | Enable Mouser integration; disabled by default | |
| OAUTH_AUDIENCE | No | Expected token audience (aud claim) | easyeda-mcp-pro |
| OAUTH_JWKS_URI | No | JWKS endpoint for token signature validation | |
| DIGIKEY_ENABLED | No | Enable DigiKey integration; disabled by default | |
| BRIDGE_PORT_SCAN | No | Port scan spec (comma/range) | 18601,49620-49629 |
| BRIDGE_TIMEOUT_MS | No | Bridge call timeout (ms) | 15000 |
| JLCSEARCH_ENABLED | No | Enable LCSC search (default, no key required for basic search) | true |
| BRIDGE_HEARTBEAT_MS | No | Heartbeat interval (ms) | 10000 |
| HTTP_RATE_LIMIT_MAX | No | Max requests per minute per IP | 100 |
| OAUTH_REQUIRED_SCOPES | No | Required token scope | easyeda:read |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| easyeda_health_checkA | 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. |
| easyeda_bridge_statusA | Check EasyEDA Pro bridge connection status, version, and capabilities. |
| easyeda_get_capabilitiesA | Return server capabilities, including available profiles, enabled feature flags, and supported operations. |
| easyeda_get_server_configA | Return safe (redacted) server configuration. Secrets are never exposed. |
| easyeda_get_tool_profilesA | List available tool profiles and their descriptions. |
| easyeda_get_feature_flagsA | Return current feature flag values. |
| easyeda_observability_reportA | Return latency budgets, runtime metrics, cache/vendor timing snapshot, and storage retention policy for performance diagnostics. |
| easyeda_run_self_testB | Run internal self-test to verify server integrity, config, and bridge connectivity. |
| easyeda_api_inventoryB | Inspect the live EasyEDA extension runtime and list available documented API classes, runtime paths, and methods. |
| easyeda_schematic_netsA | List all nets in the schematic with their node connections. |
| easyeda_schematic_componentsB | 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. |
| easyeda_schematic_wiresA | 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. |
| easyeda_schematic_net_detailA | Get full details for a specific net in the schematic including all connected pins and components. |
| easyeda_schematic_search_deviceA | 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. |
| easyeda_schematic_sheet_infoB | Return read-only active schematic sheet metadata including page size, frame, origin, and grid hints for safer component placement. |
| easyeda_schematic_plan_safe_regionA | 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. |
| easyeda_schematic_verify_writeA | 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. |
| easyeda_schematic_component_pinsA | Get exact pin numbers, names, coordinates, and native 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_check_collisionsA | 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). |
| easyeda_schematic_validate_netlistA | Validate the schematic netlist: inferred nets, connected refs/pins, floating pins, plus a cross-check with native ERC (native_erc). |
| easyeda_schematic_audit_imported_designA | 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. |
| easyeda_schematic_preview_imported_normalizationA | 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. |
| easyeda_schematic_place_componentA | 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. |
| easyeda_schematic_add_wireA | Add a wire connecting schematic coordinates/pins — real native connectivity. Same |
| easyeda_schematic_add_textA | 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. |
| easyeda_schematic_add_rectangleA | 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. |
| easyeda_schematic_add_circleA | Draw 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_polygonA | 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. |
| easyeda_schematic_delete_primitiveA | Delete components, wires, or other drawing objects from the schematic by their primitive UUIDs. |
| easyeda_schematic_modify_primitiveA | 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. |
| easyeda_schematic_create_net_flagA | Create a named net flag/label. With |
| easyeda_schematic_create_net_portA | 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. |
| easyeda_schematic_connect_pin_to_netA | 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. |
| easyeda_schematic_connect_pins_by_netA | 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. |
| easyeda_project_saveA | 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. |
| easyeda_schematic_set_title_blockA | 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. |
| easyeda_schematic_sync_to_pcbA | 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. |
| easyeda_schematic_batch_writeB | Apply up to 200 validated schematic create, modify, and delete operations in one snapshot-backed transaction. Any failure rolls the whole transaction back. Delete is limited to safely recreatable drawing primitives. |
| easyeda_project_begin_transactionA | 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. |
| easyeda_project_get_transaction_statusA | Read transaction state, validation results, operation hashes, and rollback status without exposing captured primitive snapshots. |
| easyeda_project_validate_transactionA | 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. |
| easyeda_project_commit_transactionA | Finalize a transaction after its writes and validation gates succeed. Commit removes rollback eligibility and releases the document transaction lock. |
| easyeda_project_rollback_transactionA | Controlled write: restore applied schematic primitive snapshots in reverse order, verify each restored hash, and report partial rollback explicitly instead of hiding inconsistencies. |
| easyeda_bom_generateA | Generate a bill of materials for the project with grouping and formatting options. |
| easyeda_bom_validateA | Validate the project BOM against LCSC inventory to identify missing, obsolete, or alternate parts. |
| easyeda_bom_exportB | Export the bill of materials to a file on disk in the specified format. |
| easyeda_bom_sourcingA | Retrieve pricing and availability information for all parts in the project BOM from specified suppliers. |
| easyeda_bom_quality_reportB | Generate a BOM quality report that identifies unavailable, single-source, missing-MPN, missing-footprint, and low-stock items across configured suppliers. |
| easyeda_drc_runB | 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. |
| easyeda_erc_runB | Run the native electrical rule check (ERC). Native counts are coarse; inferred_floating_pins supplements them with located, unconnected pins from this bridge's own inference (best-effort — other categories still need the DRC panel). |
| easyeda_semantic_erc_validateA | 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. |
| easyeda_semantic_erc_autoA | 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. |
| easyeda_power_tree_analyzeA | Analyze supply sources, regulators, loads, protection, bulk capacitance, current budget, dropout, and regulator thermal risk. Returns machine-readable issues and a human-readable summary. |
| easyeda_post_write_qaA | 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. |
| easyeda_rule_check_summaryC | Get a summary of all design and electrical rule check results for the project. |
| easyeda_board_layersB | List all layers in the PCB design including signal, power, plane, and mechanical layers. |
| easyeda_board_stackupA | Get the PCB layer stackup including thickness, material, and dielectric constants. |
| easyeda_board_dimensionsB | Get the PCB board outline dimensions, shape, and mounting hole information. |
| easyeda_board_featuresA | Get counts of board features including vias, tracks, copper zones, and pads. |
| easyeda_pcb_componentsA | 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. |
| easyeda_pcb_tracksA | 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. |
| easyeda_pcb_viasA | 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. |
| easyeda_pcb_constraint_checkC | 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. |
| easyeda_pcb_production_reviewA | 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. |
| easyeda_pcb_constraint_reportB | Generate a human-readable report explaining which PCB constraints were applied and which require manual review. |
| easyeda_export_gerbersC | Export PCB design to Gerber files for PCB fabrication. |
| easyeda_canvas_captureA | 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. |
| easyeda_canvas_capture_regionA | 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. |
| easyeda_canvas_locateA | 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. |
| easyeda_design_rules_lookupA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review_schematic | Review project schematic connectivity before making changes. |
| review_bom | Review project BOM completeness and sourcing readiness. |
| prepare_manufacturing_review | Prepare a safe pre-manufacturing review plan for PCB export. |
| review_layout | Review PCB layout against constraint checks and generic engineering design rules. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| project_review_workflow | Agent-safe workflow for reviewing schematic, BOM, PCB, and export changes. |
| design_rules_reference | Overview of the topics available via easyeda_design_rules_lookup. |
| design_rules_dfm_checklist | Static, generic design-for-manufacturability reference checklist. |
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/oaslananka/easyeda-mcp-pro'
If you have feedback or need assistance with the MCP directory API, please join our Discord server