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
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
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
claude mcp add biosshot-easyeda-copilot -- npx -y easyeda-copilot-mcp
codex mcp add biosshot-easyeda-copilot -- npx -y easyeda-copilot-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"biosshot-easyeda-copilot": {
"type": "local",
"command": [
"npx",
"-y",
"easyeda-copilot-mcp"
],
"enabled": true
}
}
} openclaw mcp add biosshot-easyeda-copilot --command npx --arg -y --arg easyeda-copilot-mcp
mcp_servers:
biosshot-easyeda-copilot:
command: "npx"
args: ["-y", "easyeda-copilot-mcp"] {
"mcpServers": {
"biosshot-easyeda-copilot": {
"command": "npx",
"args": [
"-y",
"easyeda-copilot-mcp"
]
}
}
} 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.
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 |
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.
apply_pcb_drc_rules 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
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Path to the edited PCB DRC bundle JSON file. |
No output schema declared.
No examples provided.
assemble_pcb_layout_on_current_pcbdoc Assemble PCB Layout ~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
| Name | Type | Req | Description |
|---|---|---|---|
| layoutId | string | yes | layoutId returned by make_pcb_layout. |
No output schema declared.
No examples provided.
beautify_schematic_on_current_page Beautify EasyEDA Schematic ~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
| Name | Type | Req | Description |
|---|---|---|---|
| blocks | object | yes | All current-page components grouped by block name. |
No output schema declared.
No examples provided.
cancel_auto_route_on_current_pcbdoc Cancel PCB Auto Router ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| operationId | string | yes | operationId returned by run_auto_route_on_current_pcbdoc. |
No output schema declared.
No examples provided.
cancel_pcb_layout Cancel PCB Layout ~39
Cancel a previously started make_pcb_layout operation by operationId.
| Name | Type | Req | Description |
|---|---|---|---|
| operationId | string | yes | operationId returned by make_pcb_layout. |
No output schema declared.
No examples provided.
check_pcb_drc 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Maximum number of violations to return per category, split across rule groups. |
No output schema declared.
No examples provided.
clear_routing Clear PCB 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.
| Name | Type | Req | Description |
|---|---|---|---|
| clearOnlyNet | – | – | If set, clear only this net name or these net names. ignoreToClearNet still excludes matching nets. |
| ignoreToClearNet | – | – | Net name or net names to preserve while clearing routing, e.g. "GND" or ["GND"]. |
No output schema declared.
No examples provided.
component_search Search EasyEDA Component ~40
Search a component on the main EasyEDA Copilot server by exact part_uuid or MPN only.
| Name | Type | Req | Description |
|---|---|---|---|
| MPN | – | – | – |
| part_uuid | – | – | – |
No output schema declared.
No examples provided.
create_doc Create EasyEDA Doc ~23
Create a doc in the current EasyEDA project
| Name | Type | Req | Description |
|---|---|---|---|
| doc | – | yes | – |
No output schema declared.
No examples provided.
delete_doc Delete EasyEDA Doc ~27
Delete a doc from the current EasyEDA project. This is destructive!
| Name | Type | Req | Description |
|---|---|---|---|
| doc | – | yes | – |
No output schema declared.
No examples provided.
export_pcb_drc_rules 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.
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | – | Optional output JSON file path. Defaults to a temp file. |
No output schema declared.
No examples provided.
extract_circuit_on_current_page Extract Circuit ~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
| Name | Type | Req | Description |
|---|---|---|---|
| add_components | array | yes | Components to add |
| add_reused_blocks | array | yes | reuded blocks to add |
| external_connect | – | yes | Use 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_connect | – | yes | Use 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_components | – | yes | Components to remove from the circuit |
No output schema declared.
No examples provided.
get_current_page_schematic Get EasyEDA 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 Get EasyEDA 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 Get Current EasyEDA 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 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
| Name | Type | Req | Description |
|---|---|---|---|
| designators | – | – | – |
| includeAll | – | – | – |
No output schema declared.
No examples provided.
get_pcb_stack_layers 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 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
| Name | Type | Req | Description |
|---|---|---|---|
| schematic_uuid | string | – | Optional schematic UUID to import changes from. |
No output schema declared.
No examples provided.
inspect_component Inspect PCB 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.
| Name | Type | Req | Description |
|---|---|---|---|
| designator | string | yes | Component designator to inspect, e.g. R1. |
| radius | number | – | Search radius in millimeters for nearest components. |
No output schema declared.
No examples provided.
inspect_net Inspect PCB 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.
| Name | Type | Req | Description |
|---|---|---|---|
| drc_limit | number | – | Maximum DRC violations per group to fetch for this net. |
| net | string | yes | Net name to inspect. |
No output schema declared.
No examples provided.
list_checkpoints List EasyEDA 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 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 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
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | Path to a JavaScript PCB layout DSL code file. |
| wait_ms | number | – | How long this call may wait for completion. Default: 60000ms. |
No output schema declared.
No examples provided.
modify_name Rename EasyEDA: Schematic, Schematic page, PCB ~47
Modify the name of an EasyEDA Schematic, Schematic page, PCB
| Name | Type | Req | Description |
|---|---|---|---|
| doc | – | yes | – |
| name | string | yes | New short name. Use UPPERCASE or PascalCase |
No output schema declared.
No examples provided.
open_document Open EasyEDA Project Document ~45
Open a schematic, schematic page, PCB, or panel document from the current EasyEDA project by document UUID.
| Name | Type | Req | Description |
|---|---|---|---|
| document_uuid | string | yes | Document UUID from get_current_project_info. |
No output schema declared.
No examples provided.
preview_pcb 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.
| Name | Type | Req | Description |
|---|---|---|---|
| highlight_component | string | – | Optional component designator to highlight. |
| highlight_component_colors | object | – | Optional per-component highlight colors, e.g. {"U1":"#ff0000"}. |
| highlight_net | string | – | Optional net name to highlight. |
| highlight_net_colors | object | – | Optional per-net highlight colors, e.g. {"BAT+":"#ff0000","GND":"#00ff00"}. |
| layers | array | – | Layers to render, e.g. ["top"], ["bottom"], ["top","bottom"], or ["all"]. |
| padding_mm | number | – | Padding around the rendered area in millimeters. |
| zoom | – | – | Zoom target: full board, a net, a component, or a bbox. |
No output schema declared.
No examples provided.
restore_checkpoint_for_current_page Restore EasyEDA Checkpoint ~27
Restore one checkpoint by id in EasyEDA.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | – | – |
No output schema declared.
No examples provided.
run_auto_route_on_current_pcbdoc Run PCB Auto Router ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| ignore_nets | array | – | Nets removed from the routing task. Default: ["GND"]. |
| pour_gnd | boolean | – | Create/rebuild full-board GND pours after importing routes. |
| route_layers | array | – | Optional copper signal layers allowed for routing, e.g. ["TOP"], ["BOTTOM"], or ["TOP","BOTTOM","INNER_1"]. Use get_pcb_stack_layers first. |
| routing_effect_priority | string | – | Auto router effect priority. SPEED_FIRST limits routing attempts. COMPLETION_FIRST prioritizes route completion. |
| suture_diameter_mm | number | – | GND suture via outer diameter in millimeters. |
| suture_drill_mm | number | – | GND suture via drill diameter in millimeters. |
| suture_edge_margin_mm | number | – | Minimum distance from board bounding box edge for generated suture via candidates. |
| suture_gnd | boolean | – | Add GND SUTURE vias after importing routes. |
| suture_grid_mm | number | – | GND suture via grid step in millimeters. |
| suture_max_count | integer | – | Safety cap for generated GND suture vias. |
| timeout_sec | number | – | Router timeout in seconds. |
| wait_ms | number | – | How long this call may wait for completion. Default: 60000ms. |
No output schema declared.
No examples provided.
save_checkpoint_for_current_page Save EasyEDA Checkpoint ~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 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
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Number of results per page. |
| page | number | – | Current results page. |
| query | string | yes | Query example: "3.3V power regulator" |
No output schema declared.
No examples provided.
select_easyeda_instance Select EasyEDA Instance ~45
Select which connected EasyEDA project this MCP process should use when multiple EasyEDA instances are connected.
| Name | Type | Req | Description |
|---|---|---|---|
| instanceId | string | yes | instanceId returned by list_easyeda_instances. |
No output schema declared.
No examples provided.
set_pcb_copper_layer_count 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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | – | yes | Allowed copper layer count. EasyEDA supports even counts from 2 to 32. |
No output schema declared.
No examples provided.
sync_current_document Sync Current EasyEDA 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.
| Name | Type | Req | Description |
|---|---|---|---|
| settle_ms | number | – | Delay in milliseconds between close and reopen. |
No output schema declared.
No examples provided.
wait_auto_route_on_current_pcbdoc Wait PCB Auto Router ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| operationId | string | yes | operationId returned by run_auto_route_on_current_pcbdoc. |
| wait_ms | number | – | How long this call may wait for completion. Default: 60000ms. |
No output schema declared.
No examples provided.
wait_pcb_layout 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.
| Name | Type | Req | Description |
|---|---|---|---|
| operationId | string | yes | operationId returned by make_pcb_layout. |
| wait_ms | number | – | How long this call may wait for completion. Default: 60000ms. |
No output schema declared.
No examples provided.