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 |
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
} |
| 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_capabilitiesB | Return server capabilities, including available profiles, enabled feature flags, and supported operations. |
| easyeda_get_server_configB | Return safe (redacted) server configuration. Secrets are never exposed. |
| easyeda_get_tool_profilesB | List available tool profiles and their descriptions. |
| easyeda_get_feature_flagsB | 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 nets from the current schematic context. Explicit focused scope is supported; page/all_pages scopes fail closed on EasyEDA Pro 3.2.149. |
| easyeda_schematic_componentsA | List schematic components with IDs, references, values, footprints, placement, and project-instance device IDs. Omitted scope preserves legacy all-pages; focused/all_pages are supported, pageUuid is not. Project-instance device IDs are not valid place_component deviceItem values; use schematic_search_device. |
| easyeda_schematic_wiresA | List wire segments with primitiveId, coordinates, net, color, and style; paginate past 50 with offset. Explicit focused is supported; page/all_pages fail closed on EasyEDA Pro 3.2.149. primitiveId is required by delete_primitive/modify_primitive. |
| easyeda_schematic_net_detailB | Get full details for a specific net in the current schematic context including connected pins and components. Explicit focused scope is supported; page/all_pages scopes fail closed on EasyEDA Pro 3.2.149. |
| 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_infoA | Return read-only schematic sheet metadata. Supports focused, pageUuid/page, and all_pages page-list reads without changing EasyEDA focus; aggregate geometry is never invented. |
| 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 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_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 inferred nets/floating pins and cross-check native ERC. Only native noConnected=true excludes a pin; unavailable/malformed state stays visible. |
| 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 searched library device on the active schematic. Use deviceItem from schematic_search_device; project-local identities from schematic_components are invalid. On timeout inspect reconciled/unconfirmed before retrying. projectId + transactionId enables rollback; without transactionId the write is standalone. |
| easyeda_schematic_add_wireB | 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_circleB | 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 by primitive UUID. Pass projectId + transactionId for rollback-backed deletion of safely recreatable drawing primitives; unsupported transactional delete kinds fail before mutation. Without transactionId the write is standalone. |
| 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_set_pin_no_connectA | 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. |
| 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_writeA | 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. |
| easyeda_project_begin_transactionA | Open an in-memory, document-scoped transaction for snapshot-backed schematic writes. Only tools passed transactionId participate; standalone schematic writes are not auto-captured. Only one active transaction is allowed per document. Beginning a transaction does not modify EasyEDA. |
| easyeda_project_get_transaction_statusB | 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_generateC | Generate a bill of materials for the project with grouping and formatting options. |
| easyeda_bom_validateB | Validate the project BOM against LCSC inventory to identify missing, obsolete, or alternate parts. |
| easyeda_bom_exportC | Export the bill of materials to a file on disk in the specified format. |
| easyeda_bom_sourcingC | 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_runA | Run EasyEDA Pro's native PCB DRC and refresh its visible DRC panel. Requires a PCB document to be focused; otherwise returns an indeterminate not_available result with an actionable focus error. Returns coarse severity counts; per-violation detail stays in EasyEDA Pro. |
| easyeda_erc_runA | Run native schematic ERC and supplement aggregate counts with inferred_floating_pins. Requires a focused schematic. Explicit focused is supported; page/all_pages fail closed on EasyEDA Pro 3.2.149. Native counts remain authoritative; unavailable focus returns not_available. |
| easyeda_semantic_erc_validateC | 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_analyzeB | 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_summaryB | 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_stackupB | 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. zones counts copper Pour boundaries only; native Fill and Region primitives are reported separately as fills and regions. |
| 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_fillsA | List native PCB Fill primitives separately from copper pours/zones, including net/layer, fill mode, line width, lock state, and a bounded normalized polygon representation. Netless fills are returned explicitly with netless=true. Read-only; no Fill mutation is exposed. |
| easyeda_pcb_regionsA | List native PCB Region primitives separately from copper pours/zones, including layer, region rule types/name, line width, lock state, and a bounded normalized polygon representation. Read-only; no Region mutation is exposed. |
| 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_viasB | 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 visible EasyEDA schematic/PCB canvas as PNG. Captures the given tab or last-focused tab. Oversized PNGs are downsampled without cropping and report original/final dimensions. |
| easyeda_canvas_capture_regionA | Zoom to a rectangular document/canvas region and capture it as PNG. This moves the visible viewport. Oversized PNGs are downsampled without cropping, preserving the complete requested region. |
| 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. |
TDQS
Scored across 73 tools
Many tools have overlapping purposes: health_check, bridge_status, get_capabilities, get_server_config, get_tool_profiles, observability_report, run_self_test, and get_feature_flags all provide status/config/diagnostic information. Multiple ERC/netlist validation tools (schematic_validate_netlist, semantic_erc_validate, semantic_erc_auto, erc_run, post_write_qa, rule_check_summary) are difficult to tell apart, and BOM tools (generate, export, validate, sourcing, quality_report) also overlap. An agent could easily misselect among these clusters.
All names use snake_case with a consistent easyeda_ prefix and domain grouping (schematic, pcb, board, bom, project, canvas). However, the action convention is not uniform: some tools use verb_noun (e.g. add_wire, create_net_flag), while others use noun-only list forms (e.g. schematic_nets, pcb_components) or noun_phrase_report forms. Still, the pattern is predictable enough for an agent to parse.
73 tools is far beyond the typical 3-15 range and exceeds the 50+ threshold for an extreme mismatch. Even for a broad EDA automation server, the count suggests redundancy, especially among status, diagnostic, ERC/validation, and BOM tools. This volume makes the set unwieldy for an agent to navigate reliably.
The server covers a wide schematic lifecycle (read, search, place, wire, validate, transaction rollback) and many PCB read/analysis/export operations, plus BOM and documentation checks. However, there are notable gaps: no PCB write/edit tools (place components, add tracks/vias/zones), no project-open/create, no library management, and PCB editing transactions are absent. These gaps could block agent workflows that require modifying a PCB layout.