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 SEP 27

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

Available components

+1 this week 89 Trust /100
Trust breakdown (7 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 → Why this is hard to 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
  • 38 of 155 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 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability84
  • 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
  • Tool/resource definitions use about 3203 tokens (~82/item across 39 items; 38 tools + 1 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management56
  • Stability check failed: the tool surface changed between 1.1.7 and 1.3.0: 11 tool removals, 2 breaking changes, 14 additions. See how to fix → Fail
Tool Coverage92
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 76% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the EasyEDA Copilot MCP server?

EasyEDA Copilot runs locally as an npm package, launched with npx -y easyeda-copilot-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · easyeda-copilot-mcp

# add to Claude Code
claude mcp add biosshot-easyeda-copilot -- npx -y easyeda-copilot-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "biosshot-easyeda-copilot": {
      "command": "npx",
      "args": [
        "-y",
        "easyeda-copilot-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "biosshot-easyeda-copilot": {
      "command": "npx",
      "args": [
        "-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"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "biosshot-easyeda-copilot": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "easyeda-copilot-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add biosshot-easyeda-copilot -t stdio -c npx -a -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.

  • 26 Sept 26 +2
    • Schema quality: 2859 → 3203 ▼ functional
    • Destructive annotations: All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation. functional
    • Package version: 1.2.0 → 1.3.0 functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 −2

    No change was recorded against any check on this day. Stability & Change Management went from 66 to 46.

  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 59 to 62.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 52 to 56.

  • 19 Sept 26 −1
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Schema quality: 100 → 79 ▲ functional
    • Package version: 1.1.9 → 1.2.0 functional
  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 56.

  • 16 Sept 26 −3

    No change was recorded against any check on this day. Stability & Change Management went from 73 to 50.

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 27 Sept 2026 · Analysed npm/easyeda-copilot-mcp@1.3.0

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.3.0
Rekor log index 2969093814
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:8c87d6b7e66540b8aeb23210430b44dfce3184a7f9081362a4bd8e31ec00f775956e1007c6ec213601ce2ca3283c3243d31fb72dd9f380585399fe1d7

Background: How many MCP packages publish verified provenance →

Dependencies 155 packages
Packages resolved 155
Stale 38
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 38 exposed · ~3,178 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
annotate_designators ~94

Annotate component designators across every page of the current EasyEDA schematic. Prefixes are preserved exactly; only trailing numbers are assigned. Multi-part component sections are renamed together. Runs as a managed operation, waits up to 50 seconds, and always returns operation_id.

NameTypeReqDescription
modestring–preserve changes only duplicate or unnumbered designators; resequence recalculates every trailing number in page and position order.

No output schema declared.

No examples provided.

apply_operation ~30

Retry applying a prepared in-memory operation result without running the operation again.

NameTypeReqDescription
operation_idstringyes–

No output schema declared.

No examples provided.

assemble_pcb_layout_on_current_pcbdoc ~133

Send a previously generated make_pcb_layout board assembly payload to the currently opened EasyEDA PCB document. Runs as a managed operation, waits up to 50 seconds, and always returns operation_id. 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 ~161

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 replacement, and failures restore it automatically. Runs as a managed operation, waits up to 50 seconds, and always returns operation_id. For circuit workflow docs, read: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
auto_resize_pageboolean–Shrink or grow the schematic drawing sheet to the smallest standard format that fits the layout inside its frame and title block.
blocksobjectyesAll current-page components grouped by block name.
draw_block_boxboolean–Draw Copilot-managed boxes and labels around functional blocks.

No output schema declared.

No examples provided.

cancel_operation ~29

Request cooperative cancellation of a running operation. Cancellation is not rollback.

NameTypeReqDescription
operation_idstringyes–

No output schema declared.

No examples provided.

check_pcb_drc ~120

Run native EasyEDA PCB DRC on the open PCB. Returns compact grouped violations with full counts, truncated: true only when details are omitted, object labels, messages, primitive_ids, rule_name and layer when supplied by EasyEDA. Resolve primitive_ids through the PCB API before editing. Does not rebuild pours. The detail budget is shared across groups per category, with at least one item per nonempty group. Open the target PCB document first.

NameTypeReqDescription
limitnumber–Maximum number of violations to return per category, split across rule groups.

No output schema declared.

No examples provided.

component_search ~153

Search EasyEDA devices. library_uuid defaults to lcsc; use library_list to discover aliases. Search results include a ready-to-use part_uuid. Components with any ambiguous pin name may have preview_recommended and a local preview_image_path. Skip preview for one-pin parts, ordinary two-pin resistors, simple inductors and fuses, and parts with clear pin names. Capacitors are not exempt. Inspect only the selected uncertain candidate; do not review every result or repeat a completed review. Rendering failures leave the component in the result with preview_error.

NameTypeReqDescription
MPNstring|null––
library_uuidstring–Library alias or explicit public library UUID. Defaults to lcsc.
part_uuid–––

No output schema declared.

No examples provided.

create_doc ~45

Create a project, or create a document in the current EasyEDA project. Project creation uses an experimental EasyEDA beta API and does not open the new project.

NameTypeReqDescription
doc–yes–

No output schema declared.

No examples provided.

delete_doc ~27

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

NameTypeReqDescription
doc–yes–

No output schema declared.

No examples provided.

execute_js ~268

Execute JavaScript in the selected EasyEDA window using code OR an absolute file_path. Code limit: 64 MiB. Optional input_files supplies named UTF-8 strings as inputs[name], up to 512 MiB combined. Automatically checkpoints the current document before execution. Execution budget is 60 seconds; native actions may outlive cancellation or timeout. Runs as a managed operation, waits up to 50 seconds, and always returns operation_id. Returns {checkpoint,result,artifacts}; binary and oversized results are saved as local files. Read /workdir/node_modules/easyeda-copilot-mcp/docs/execution/instructions.md for the contract and API reference. For local Python/Node.js computation with await eda.* proxies and native binary values, read /workdir/node_modules/easyeda-copilot-mcp/docs/execution/local-sdk.md.

NameTypeReqDescription
codestring–JavaScript async-function body. Use return for the result; await all changes.
file_pathstring–Absolute path to a UTF-8 JavaScript file on the MCP host. Alternative to code.
input_filesobject–Named UTF-8 files on the MCP host, available as inputs[name]. Absolute paths; combined maximum 512 MiB. Data is passed separately from code.

No output schema declared.

No examples provided.

extract_circuit_on_current_page ~223

Apply circuit changes to the current EasyEDA page. Every added component must include part_uuid. The result reports remaining current-sheet space and warns below 10%. Runs as a managed operation, waits up to 50 seconds, and always returns operation_id. For circuit modification docs, read: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
add_componentsarray–Components to add
add_reused_blocksarray–reused blocks to add
external_connect––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––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.
file_pathstring–Path to a UTF-8 JSON file containing CircuitMod. Provide either file_path or inline circuit fields.
rm_components––Components to remove from the circuit

No output schema declared.

No examples provided.

get_all_projects ~27

Read all directly accessible EasyEDA teams, folders, and projects as a nested project tree.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_current_pcb ~106

Read a PCB overview from native primitives through the connected MCP interface; not an atomic revision snapshot. Open a PCB document first. Coordinates are mm in the native PCB frame, not the normalized routing frame. For edits, resolve exact primitive IDs and reread their native poses. wires contains copper statistics grouped by net; pads lists net membership; polygons are source outlines, not rebuilt fill geometry. Use native DRC for connectivity. Responses over 8 KiB are saved to a file.

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 ~77

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–––
includeAllboolean|null––

No output schema declared.

No examples provided.

get_pcb_drc_rules ~54

Return a compact routing-relevant view of the current EasyEDA PCB DRC rules: global limits, net classes, differential pairs, equal-length groups, and explicit net overrides. Open the target PCB document first.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_pcb_stack_layers ~40

Return the current PCB copper layer count and active signal routing layers. Open the target PCB document first and inspect this before writing router DSL layer constraints.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_schematic ~59

Get the current EasyEDA schematic page, or all pages with get_full_schematic. Responses over 8 KiB are saved to a file.

NameTypeReqDescription
get_full_schematicboolean–Get Full Schematic: retrieve the schematic from all pages.

No output schema declared.

No examples provided.

get_schematic_groups ~112

Read the current schematic page and return heuristic component groups plus direct non-ground wire islands. Set get_full_schematic_groups to concatenate page-local results from every schematic page. maybe_blocks and wires[].pins contain space-separated references; groups may omit singleton or ambiguous components. errors contains non-fatal diagnostics when the result is partial. Use get_schematic for values, pin names and the electrical netlist.

NameTypeReqDescription
get_full_schematic_groupsboolean–Read and concatenate schematic groups from every page in the current schematic.

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_uuidstring–Optional 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.
radiusnumber–Search radius in millimeters for nearest components.

No output schema declared.

No examples provided.

inspect_net ~166

Inspect a net on the open PCB. Returns one net summary: net, found, pads (net membership), layer, length (sum of line and arc lengths), vias (count), width (min/max, or null without tracks), segments (line and arc count), optional bbox of tracks/vias, polygons (source outlines), and drc (violation_count, truncated, violations). MULTI denotes through vias. Read connection failures in native drc.violations; no connections are inferred from geometry. Includes unrouted and via-only nets. Open the target PCB document first.

NameTypeReqDescription
drc_limitinteger–Maximum returned native DRC details for this net, after net filtering. violation_count uses the full matching result.
netstringyesNet name to inspect.

No output schema declared.

No examples provided.

library_list ~28

List component libraries supported by the backend. Explicit public library UUIDs are also accepted by component_search.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_checkpoints ~37

List saved checkpoints with names, newest first. Defaults to 16; use limit to include older checkpoints.

NameTypeReqDescription
limitinteger––

No output schema declared.

No examples provided.

list_easyeda_instances ~28

List connected EasyEDA instances. Use when more than one window or project may be open.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_operations ~38

Discover active and recently completed operations in this MCP process, including IDs lost when an initial wait was cancelled. Returns compact status, stage and target metadata.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

make_pcb_layout ~119

Create PCB component placement from a JavaScript DSL file. Open the target PCB first so its outline and component positions are supplied as existingPlacement. Long work returns an operation_id for wait_operation. This tool does not assemble or route the board. For PCB layout docs, read: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md

NameTypeReqDescription
filestringyesPath to a JavaScript PCB layout DSL code file.
wait_msinteger–Initial synchronous wait before returning a pcb-layout operation_id.

No output schema declared.

No examples provided.

modify_name ~47

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

NameTypeReqDescription
doc–yes–
namestringyesNew short name. Use UPPERCASE or PascalCase

No output schema declared.

No examples provided.

open_document ~77

Open either a project or a document by UUID. Before switching projects, every open EasyEDA schematic, PCB, and panel tab is saved; the switch is aborted if any save fails.

NameTypeReqDescription
document_uuidstring–Document UUID from get_current_project_info.
project_uuidstring–Project UUID from get_all_projects or create_doc.

No output schema declared.

No examples provided.

preview_component ~51

Render every section of an EasyEDA library schematic symbol with visible pin numbers. Returns only image_path for the generated PNG; no image is attached.

NameTypeReqDescription
part_uuid–yesReady-to-use part_uuid from component_search.

No output schema declared.

No examples provided.

preview_pcb ~230

Render a PNG preview of the currently opened PCB document from PCB primitives using the Copilot renderer. Requires EasyEDA 3+. Supports layer filtering and custom highlight colors. Returns image_path and notes. This preview does not verify actual filled copper. Open the target PCB document first.

NameTypeReqDescription
highlight_componentstring–Optional component designator to highlight.
highlight_component_colorsobject–Optional designator-to-color map, e.g. {"U1":"#ff0000"}.
highlight_netstring–Optional net name to highlight.
highlight_net_colorsobject–Optional net-to-color map, e.g. {"BAT+":"#ff0000","GND":"#00ff00"}.
layersarray–Layers to render, e.g. ["TOP"], ["BOTTOM"], ["TOP","BOTTOM"], or ["all"]. Use uppercase layer names; only "all" is lowercase.
padding_mmnumber–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 ~27

Restore one checkpoint by id in EasyEDA.

NameTypeReqDescription
idstring––

No output schema declared.

No examples provided.

run_pcb_router_dsl ~132

Apply DRC, copper-only, or routing intent from an eda-copilot-router DSL file to the currently opened EasyEDA PCB. Long work returns an operation_id for wait_operation. PCB instructions: /workdir/node_modules/easyeda-copilot-mcp/docs/SKILL.md. Authoritative router DSL declarations: /workdir/node_modules/eda-copilot-router/docs/routing-dsl.d.ts

NameTypeReqDescription
filestringyesPath to a JavaScript PCB routing DSL file.
wait_msinteger–Initial synchronous wait before returning a pcb-dsl operation_id.

No output schema declared.

No examples provided.

save_checkpoint_for_current_page ~56

Save a checkpoint for the current EasyEDA document. Give it a short descriptive name for recovery; only describe checks as passed after verification. Restore by the returned ID, even when names match.

NameTypeReqDescription
namestring––

No output schema declared.

No examples provided.

save_doc ~22

Save the currently active EasyEDA schematic, PCB, or panel document.

Input schema present but exposes no named parameters.

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.

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_msnumber–Delay in milliseconds between close and reopen.

No output schema declared.

No examples provided.

wait_operation ~66

Wait for a running mutation, PCB layout or PCB router DSL operation. Running router responses include up to 10 recent log lines and their update time when available.

NameTypeReqDescription
operation_idstringyes–
wait_msinteger–Wait below the common 60-second MCP request timeout.

No output schema declared.

No examples provided.

Common questions

What is the EasyEDA Copilot MCP server?

EasyEDA Copilot is an MCP server listed in the public MCP registry as io.github.biosshot/easyeda-copilot. Connect MCP clients to EasyEDA Desktop for schematic and PCB design, routing, inspection, and DRC. This page covers its npm package (easyeda-copilot-mcp).

Is the EasyEDA Copilot MCP server safe to use?

EasyEDA Copilot scores 89 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 27 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the EasyEDA Copilot MCP server expose?

EasyEDA Copilot exposes 38 tools: get_pcb_stack_layers, import_pcb_changes, get_pcb_component_sizes, make_pcb_layout, assemble_pcb_layout_on_current_pcbdoc, and 33 more. Their descriptions and schemas cost roughly 3,178 tokens of context every time the server is loaded.

Is the EasyEDA Copilot MCP server still maintained?

EasyEDA Copilot is still listed as active in the MCP registry. We last reached this channel on 27 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the EasyEDA Copilot MCP server under?

EasyEDA Copilot declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.