Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

EasyEDA Copilot

NPM · EASYEDA-COPILOT-MCP · SCANNED AUG 11

Connect MCP clients to EasyEDA Desktop for schematic and PCB design, routing, inspection, and DRC.

Available components

+37 this week 83 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 134 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to biosshot/easyeda-copilot). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 4162 tokens (~115/item across 36 items; 35 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 87% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · easyeda-copilot-mcp

# add to Claude Code
claude mcp add biosshot-easyeda-copilot -- npx -y easyeda-copilot-mcp
# add to Codex CLI
codex mcp add biosshot-easyeda-copilot -- npx -y easyeda-copilot-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "biosshot-easyeda-copilot": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "easyeda-copilot-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add biosshot-easyeda-copilot --command npx --arg -y --arg easyeda-copilot-mcp
# ~/.hermes/config.yaml
mcp_servers:
  biosshot-easyeda-copilot:
    command: "npx"
    args: ["-y", "easyeda-copilot-mcp"]
// mcp.json
{
  "mcpServers": {
    "biosshot-easyeda-copilot": {
      "command": "npx",
      "args": [
        "-y",
        "easyeda-copilot-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 11 Aug 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 10 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Aug 26 +2
    • Stability: unverified → 0.17 functional
    • Package version: 1.1.6 → 1.1.7 functional
  • 8 Aug 26 +4
    • Known CVEs: partial → pass security
    • Dependency health: partial → 0.90 functional
  • 5 Aug 26 +29
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Tool coverage: 86 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: good functional
  • 4 Aug 26 46

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 11 Aug 2026 · Analysed npm/easyeda-copilot-mcp@1.1.7

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo biosshot/easyeda-copilot
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/biosshot/easyeda-copilot/.github/workflows/build.yml@refs/tags/v1.1.7
Rekor log index 2392510111
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:fe52987009d976e97832acd380069cb3c400a23943baed7f176276022065a522da31e206bc10e2ecf8b917c74ac46b90b75540f27aee2237bcc996d1d
Dependencies 134 packages
Packages resolved 134
Stale 31
Tree resolution Complete
MCP tools · 35 exposed · ~4,137 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
apply_pcb_drc_rules ~104

Apply a PCB DRC bundle JSON file exported by export_pcb_drc_rules. Synthetic netRules entries with type "differentialPair" are reconciled through EasyEDA differential-pair APIs before regular netRules are overwritten. Open the target PCB document first. First read doc /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
filestringyesPath to the edited PCB DRC bundle JSON file.

No output schema declared.

No examples provided.

assemble_pcb_layout_on_current_pcbdoc ~114

Send a previously generated make_pcb_layout board assembly payload to the currently opened EasyEDA PCB document. Before using this tool, call get_current_project_info, verify the schematic belongs to a BOARD item with a PCB document, and call open_document for that PCB uuid. For PCB assembly docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
layoutIdstringyeslayoutId returned by make_pcb_layout.

No output schema declared.

No examples provided.

beautify_schematic_on_current_page ~98

Reassemble every component on the current EasyEDA schematic page into named functional blocks. The blocks must cover the whole page. A checkpoint is saved before the server request, and assembly failures restore it automatically. For circuit workflow docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
blocksobjectyesAll current-page components grouped by block name.

No output schema declared.

No examples provided.

cancel_auto_route_on_current_pcbdoc ~70

Cancel a previously started run_auto_route_on_current_pcbdoc operation by operationId. Cancellation stops before import if possible; if import already started, the board may still be updated.

NameTypeReqDescription
operationIdstringyesoperationId returned by run_auto_route_on_current_pcbdoc.

No output schema declared.

No examples provided.

cancel_pcb_layout ~39

Cancel a previously started make_pcb_layout operation by operationId.

NameTypeReqDescription
operationIdstringyesoperationId returned by make_pcb_layout.

No output schema declared.

No examples provided.

check_pcb_drc ~77

Run EasyEDA PCB DRC check on the currently opened PCB document. Returns simplified DRC violations grouped by category. The limit is split evenly across rule groups within each category to avoid huge responses. Open the target PCB document first.

NameTypeReqDescription
limitnumberMaximum number of violations to return per category, split across rule groups.

No output schema declared.

No examples provided.

clear_routing ~121

Delete existing PCB routing primitives from the currently opened EasyEDA PCB document: tracks, arcs, polylines, pours, fills, regions, and vias. Board outline is preserved. Use before run_auto_route_on_current_pcbdoc when old routing should be replaced.

NameTypeReqDescription
clearOnlyNetIf set, clear only this net name or these net names. ignoreToClearNet still excludes matching nets.
ignoreToClearNetNet name or net names to preserve while clearing routing, e.g. "GND" or ["GND"].

No output schema declared.

No examples provided.

component_search ~40

Search a component on the main EasyEDA Copilot server by exact part_uuid or MPN only.

NameTypeReqDescription
MPN
part_uuid

No output schema declared.

No examples provided.

create_doc ~23

Create a doc in the current EasyEDA project

NameTypeReqDescription
docyes

No output schema declared.

No examples provided.

delete_doc ~27

Delete a doc from the current EasyEDA project. This is destructive!

NameTypeReqDescription
docyes

No output schema declared.

No examples provided.

export_pcb_drc_rules ~77

Export the full current PCB DRC bundle to a JSON file. The bundle contains ruleConfiguration and netRules; differential pairs are injected into netRules as synthetic entries with type "differentialPair". Open the target PCB document first.

NameTypeReqDescription
filestringOptional output JSON file path. Defaults to a temp file.

No output schema declared.

No examples provided.

extract_circuit_on_current_page ~179

Post-process circuit changes on the main EasyEDA Copilot server and sends the assembled result to EasyEDA. Every added component must include part_uuid. For circuit modification docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
add_componentsarrayyesComponents to add
add_reused_blocksarrayyesreuded blocks to add
external_connectyesUse only when you need to connect to a pin of an external component that you have not modified and that does not have a signal_name
external_rm_connectyesUse only if you need to remove/break the connection from an external component's pin. Remember to remove external_rm_connect first and then add external_connect.
rm_componentsyesComponents to remove from the circuit

No output schema declared.

No examples provided.

get_current_page_schematic ~426

Get the current EasyEDA schematic through the connected MCP interface. Format: {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"components":{"type":"array","items":{"type":"object","properties":{"designator":{"type":"string","description":"Component identifier (e.g., \"U1\", \"R5\", \"J1\", \"X1\")."},"value":{"type":"string","description":"Minimum description: for simple components — only the nominal value; for microcircuits — only the name. Only ASCII symbols (e.g., \"LM358\", \"10nF\", \"100k\")."},"pins":{"type":"array","items":{"type":"object","properties":{"pin_number":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Pin number."},"name":{"type":"string","description":"Pin name (e.g., \"VCC\")."},"signal_name":{"type":"string","description":"The name of the signal the pin is connected to. (Name only). The signal name assigned to the pin must be identical to the signal name of the target output."}},"required":["pin_number","name","signal_name"],"additionalProperties":false},"description":"Pin details."},"part_uuid":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{32}$"},{"type":"null"}],"description":"Unique component identifier."},"pos":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"rotate":{"type":"number"},"mirror":{"type":"boolean"}},"required":["x","y"],"additionalProperties":false},"footprint_name":{"anyOf":[{"type":"string"},{"type":"null"}]},"footprint_uuid":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["designator","value","pins","part_uuid"],"additionalProperties":false},"description":"Components"}},"required":["components"],"additionalProperties":false}

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_current_pcb ~952

Get the current EasyEDA PCB through the connected MCP interface. Open a PCB document first. Format: {"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"layers":{"type":"array","items":{"type":"object","properties":{"layer":{"type":"string"},"type":{"type":"string"}},"required":["layer","type"],"additionalProperties":false}},"board":{"type":"object","properties":{"polygon":{"minItems":3,"type":"array","items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"}},"required":["x","y"],"additionalProperties":false}}},"required":["polygon"],"additionalProperties":false},"components":{"type":"array","items":{"type":"object","properties":{"designator":{"type":"string"},"value":{"type":"string"},"footprint":{"type":"string"},"x":{"type":"number"},"y":{"type":"number"},"rotate":{"type":"number"},"layer":{"type":"string"},"pads":{"type":"array","items":{"type":"object","properties":{"pad":{"type":"string"},"net":{"type":"string"}},"required":["pad"],"additionalProperties":false}},"nearest_components":{"type":"array","items":{"type":"object","properties":{"designator":{"type":"string"},"distance":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"},"layer":{"type":"string"}},"required":["designator","distance","x","y","layer"],"additionalProperties":false}}},"required":["designator","x","y","layer","pads"],"additionalProperties":false}},"wires":{"type":"array","items":{"type":"object","properties":{"net":{"type":"string"},"layer":{"type":"array","items":{"type":"string"}},"connected_pads":{"type":"array","items":{"type":"string"}},"length":{"type":"number"},"direct_distance":{"type":"number"},"detour_ratio":{"type":"number"},"vias":{"type":"number"},"width":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}},"required":["min","max"],"additionalProperties":false},"segments":{"type":"number"},"bbox":{"type":"object","properties":{"left":{"type":"number"},"right":{"type":"number"},"to…

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_current_project_info ~41

Read the current EasyEDA project tree and document metadata through the connected extension. BOARD items show the linked schematic and PCB document; use this before PCB assembly.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_pcb_component_sizes ~74

Return resolved PCB footprint sizes in millimeters for selected current schematic components. Use before choosing compact board dimensions. For PCB layout docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
designators
includeAll

No output schema declared.

No examples provided.

get_pcb_stack_layers ~46

Return the current PCB copper layer count and active signal routing layers. Open the target PCB document first. Use before choosing route_layers for run_auto_route_on_current_pcbdoc.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

import_pcb_changes ~88

Import schematic changes into the currently opened PCB document. If schematic_uuid is omitted, EasyEDA uses the schematic linked to the same board. Open the target PCB document first. For PCB docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
schematic_uuidstringOptional schematic UUID to import changes from.

No output schema declared.

No examples provided.

inspect_component ~68

Return a PCB component by designator with a list of nearest neighboring components within the given radius. Open the target PCB document first.

NameTypeReqDescription
designatorstringyesComponent designator to inspect, e.g. R1.
radiusnumberSearch radius in millimeters for nearest components.

No output schema declared.

No examples provided.

inspect_net ~77

Analyze a specific net on the currently opened PCB document: length, width, vias, layers, connected/unconnected pads, polygons, and DRC violations. Open the target PCB document first.

NameTypeReqDescription
drc_limitnumberMaximum DRC violations per group to fetch for this net.
netstringyesNet name to inspect.

No output schema declared.

No examples provided.

list_checkpoints ~20

List checkpoints saved by the EasyEDA Copilot extension.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_easyeda_instances ~34

List currently connected EasyEDA Copilot extension instances. Use this when more than one EasyEDA window/project may be open.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

make_pcb_layout ~156

Create PCB component placement from the current EasyEDA schematic using JavaScript PCB layout DSL code. Starts a long-running server operation, waits up to 60 seconds, then returns either the finished layoutId/preview or an operationId for wait_pcb_layout. Server-side routing is disabled: route the assembled PCB later in EasyEDA/client tools. This tool does not assemble the board. For PCB layout docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
filestringyesPath to a JavaScript PCB layout DSL code file.
wait_msnumberHow long this call may wait for completion. Default: 60000ms.

No output schema declared.

No examples provided.

modify_name ~47

Modify the name of an EasyEDA Schematic, Schematic page, PCB

NameTypeReqDescription
docyes
namestringyesNew short name. Use UPPERCASE or PascalCase

No output schema declared.

No examples provided.

open_document ~45

Open a schematic, schematic page, PCB, or panel document from the current EasyEDA project by document UUID.

NameTypeReqDescription
document_uuidstringyesDocument UUID from get_current_project_info.

No output schema declared.

No examples provided.

preview_pcb ~201

Render a PNG preview of the currently opened PCB document. Supports layer selection, net/component highlighting, and zoom to a net, component, or bounding box. Open the target PCB document first.

NameTypeReqDescription
highlight_componentstringOptional component designator to highlight.
highlight_component_colorsobjectOptional per-component highlight colors, e.g. {"U1":"#ff0000"}.
highlight_netstringOptional net name to highlight.
highlight_net_colorsobjectOptional per-net highlight colors, e.g. {"BAT+":"#ff0000","GND":"#00ff00"}.
layersarrayLayers to render, e.g. ["top"], ["bottom"], ["top","bottom"], or ["all"].
padding_mmnumberPadding around the rendered area in millimeters.
zoomZoom target: full board, a net, a component, or a bbox.

No output schema declared.

No examples provided.

restore_checkpoint_for_current_page ~27

Restore one checkpoint by id in EasyEDA.

NameTypeReqDescription
idstring

No output schema declared.

No examples provided.

run_auto_route_on_current_pcbdoc ~407

Export the current EasyEDA PCB autoroute JSON, run the bundled custom router on the MCP side, import the routed result back into EasyEDA, then rebuild GND pours and add GND suture vias. Starts a long-running local operation, waits up to 60 seconds, then returns either the finished result or an operationId for wait_auto_route_on_current_pcbdoc. This tool does not clear existing tracks/vias before routing and does not route nets that are already routed in EasyEDA autoroute export; call clear_routing first when old routing should be replaced. Open the target PCB document first.

NameTypeReqDescription
ignore_netsarrayNets removed from the routing task. Default: ["GND"].
pour_gndbooleanCreate/rebuild full-board GND pours after importing routes.
route_layersarrayOptional copper signal layers allowed for routing, e.g. ["TOP"], ["BOTTOM"], or ["TOP","BOTTOM","INNER_1"]. Use get_pcb_stack_layers first.
routing_effect_prioritystringAuto router effect priority. SPEED_FIRST limits routing attempts. COMPLETION_FIRST prioritizes route completion.
suture_diameter_mmnumberGND suture via outer diameter in millimeters.
suture_drill_mmnumberGND suture via drill diameter in millimeters.
suture_edge_margin_mmnumberMinimum distance from board bounding box edge for generated suture via candidates.
suture_gndbooleanAdd GND SUTURE vias after importing routes.
suture_grid_mmnumberGND suture via grid step in millimeters.
suture_max_countintegerSafety cap for generated GND suture vias.
timeout_secnumberRouter timeout in seconds.
wait_msnumberHow long this call may wait for completion. Default: 60000ms.

No output schema declared.

No examples provided.

save_checkpoint_for_current_page ~21

Save a checkpoint for the current EasyEDA document.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

search_reused_block ~100

Search pre-assembled EasyEDA Copilot reused blocks that can be recalculated and inserted into a circuit. For circuit workflow docs, read the local docs folder: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
limitnumberNumber of results per page.
pagenumberCurrent results page.
querystringyesQuery example: "3.3V power regulator"

No output schema declared.

No examples provided.

select_easyeda_instance ~45

Select which connected EasyEDA project this MCP process should use when multiple EasyEDA instances are connected.

NameTypeReqDescription
instanceIdstringyesinstanceId returned by list_easyeda_instances.

No output schema declared.

No examples provided.

set_pcb_copper_layer_count ~66

Set the number of copper layers in the currently opened PCB document. This changes the PCB stack; use get_pcb_stack_layers afterwards to verify available routing layers.

NameTypeReqDescription
countyesAllowed copper layer count. EasyEDA supports even counts from 2 to 32.

No output schema declared.

No examples provided.

sync_current_document ~54

Force EasyEDA to synchronize the current schematic or PCB document by saving it, closing the current editor tab, waiting briefly, and reopening the same document.

NameTypeReqDescription
settle_msnumberDelay in milliseconds between close and reopen.

No output schema declared.

No examples provided.

wait_auto_route_on_current_pcbdoc ~95

Wait for a previously started run_auto_route_on_current_pcbdoc operation. Use operationId returned by run_auto_route_on_current_pcbdoc when it says the auto route is still running.

NameTypeReqDescription
operationIdstringyesoperationId returned by run_auto_route_on_current_pcbdoc.
wait_msnumberHow long this call may wait for completion. Default: 60000ms.

No output schema declared.

No examples provided.

wait_pcb_layout ~78

Wait for a previously started make_pcb_layout operation. Use operationId returned by make_pcb_layout when it says the layout is still running.

NameTypeReqDescription
operationIdstringyesoperationId returned by make_pcb_layout.
wait_msnumberHow long this call may wait for completion. Default: 60000ms.

No output schema declared.

No examples provided.