Server data from the Official MCP Registry
MCP server for EasyEDA Pro: PCB design, BOM sourcing, and AI-assisted hardware review.
MCP server for EasyEDA Pro: PCB design, BOM sourcing, and AI-assisted hardware review.
Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
4 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: NODE_ENV
Environment variable: LOG_LEVEL
Environment variable: TOOL_PROFILE
Environment variable: TRANSPORT
Environment variable: HTTP_HOST
Environment variable: HTTP_PORT
Environment variable: BRIDGE_HOST
Environment variable: BRIDGE_PORT
Environment variable: BRIDGE_TIMEOUT_MS
Environment variable: DATA_DIR
Environment variable: JLCPCB_MODE
Environment variable: JLCPCB_CLIENT_ID
Environment variable: JLCPCB_CLIENT_SECRET
Environment variable: MOUSER_API_KEY
Environment variable: DIGIKEY_CLIENT_ID
Environment variable: DIGIKEY_CLIENT_SECRET
Environment variable: LCSC_API_KEY
Environment variable: AI_API_KEY
Environment variable: OAUTH_ENABLED
Environment variable: OTEL_ENABLED
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-oaslananka-easyeda-mcp-pro": {
"env": {
"DATA_DIR": "your-data-dir-here",
"NODE_ENV": "your-node-env-here",
"HTTP_HOST": "your-http-host-here",
"HTTP_PORT": "your-http-port-here",
"LOG_LEVEL": "your-log-level-here",
"TRANSPORT": "your-transport-here",
"AI_API_KEY": "your-ai-api-key-here",
"BRIDGE_HOST": "your-bridge-host-here",
"BRIDGE_PORT": "your-bridge-port-here",
"JLCPCB_MODE": "your-jlcpcb-mode-here",
"LCSC_API_KEY": "your-lcsc-api-key-here",
"OTEL_ENABLED": "your-otel-enabled-here",
"TOOL_PROFILE": "your-tool-profile-here",
"OAUTH_ENABLED": "your-oauth-enabled-here",
"MOUSER_API_KEY": "your-mouser-api-key-here",
"JLCPCB_CLIENT_ID": "your-jlcpcb-client-id-here",
"BRIDGE_TIMEOUT_MS": "your-bridge-timeout-ms-here",
"DIGIKEY_CLIENT_ID": "your-digikey-client-id-here",
"JLCPCB_CLIENT_SECRET": "your-jlcpcb-client-secret-here",
"DIGIKEY_CLIENT_SECRET": "your-digikey-client-secret-here"
},
"args": [
"-y",
"easyeda-mcp-pro"
],
"command": "npx"
}
}
}From the project's GitHub README.
Production-grade MCP server for EasyEDA Pro: safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review.
The fastest way to install and configure easyeda-mcp-pro for your favorite AI assistant or IDE:
Auto-configure your MCP client:
npx easyeda-mcp-pro setup all
This detects and configures Claude Desktop, Cursor, VS Code, Windsurf, Cline, Gemini, Zed, etc. to run the MCP server automatically.
(Or run for a specific client, e.g., npx easyeda-mcp-pro setup claude)
Locate and install the EasyEDA Pro bridge extension:
npx easyeda-mcp-pro extension --open
This opens the folder containing the extension package easyeda-bridge-extension.eext. Import it via EasyEDA Pro → Settings → Extensions → Extension Manager.
Connect the bridge: In EasyEDA Pro, click MCP Bridge → Connect in the menu bar.
For advanced configurations, manual instructions, and specific clients, see Installation & Client Configuration.
easyeda-mcp-pro is a Model Context Protocol (MCP) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes 41 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, and supplier integration.
The server connects to EasyEDA Pro via a WebSocket bridge extension, enabling real-time access to open project data. It integrates with JLCPCB, LCSC, Mouser, and DigiKey for BOM sourcing and pricing.
| Area | What you can do |
|---|---|
| Schematic | List nets/components, search and place devices, edit wires/primitives |
| BOM | Generate, validate, export, and source bill of materials |
| DRC/ERC | Run design rule and electrical rule checks |
| Board | Inspect layers, stackup, dimensions, features |
| Export | Export Gerbers, pick-and-place, PDF, netlist |
| Diagnostics | Health check, bridge status, API inventory, capabilities, self-test |
You can configure easyeda-mcp-pro automatically or manually.
The CLI setup automates editing the configuration files for your client:
# Configure all detected clients automatically
npx easyeda-mcp-pro setup all
# Or configure a specific client
npx easyeda-mcp-pro setup <client>
claude (Claude Desktop)cursor (Cursor IDE)vscode (VS Code Copilot)windsurf (Windsurf)cline (Cline)gemini (Gemini CLI / Antigravity)zed (Zed Editor)amazonq (Amazon Q Developer)continue (Continue.dev)--profile <name>: Specify the tool profile. Options: core (default), pro, full, dev.
Example: npx easyeda-mcp-pro setup cursor --profile fullTo bridge the MCP server with EasyEDA Pro:
# Open the directory containing the .eext extension package in your file manager
npx easyeda-mcp-pro extension --open
# Or copy it to a specific directory
npx easyeda-mcp-pro extension --copy /path/to/destination
Installation steps in EasyEDA Pro:
easyeda-bridge-extension.eext file.If you prefer to configure your clients manually, add the following configuration to the respective settings files:
Config Path:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "core"
}
}
}
}
Config Path: Project-specific .cursor/mcp.json or global ~/.cursor/mcp.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
Config Path: %APPDATA%\Code\User\mcp.json (Windows), ~/Library/Application Support/Code/User/mcp.json (macOS), or ~/.config/Code/User/mcp.json (Linux)
{
"servers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
Config Path: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
Config Path: Cline VS Code extension global storage (cline_mcp_settings.json)
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
},
"disabled": false,
"autoApprove": []
}
}
}
Config Path: ~/.gemini/settings.json or ~/.gemini/config/mcp_config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
Config Path: ~/.config/zed/settings.json
{
"context_servers": {
"easyeda-mcp-pro": {
"command": {
"path": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"]
},
"settings": {}
}
}
}
Config Path: ~/.continue/config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
Config Path: ~/.aws/amazonq/mcp.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
If you are developing or running a modified local build:
git clone https://github.com/oaslananka/easyeda-mcp-pro.git
cd easyeda-mcp-pro
cp .env.example .env
pnpm install
# Build the server and the bridge extension package
pnpm build
pnpm build:extension
To configure your clients to use the local development build:
# Print instructions and local config block pointing to dist/index.js
node dist/index.js --setup-local
You can diagnose your environment and bridge connectivity at any time:
pnpm doctor
This checks:
.eext extension package.Copy .env.example to .env and edit. All variables have safe defaults — only configure what you need.
| Variable | Default | Description |
|---|---|---|
NODE_ENV | development | Set to production in production |
LOG_LEVEL | info | Pino log level: trace, debug, info, warn, error, fatal, silent |
TOOL_PROFILE | core | Tool set: core, pro, full, dev, experimental |
MCP_PROTOCOL_VERSION | 2025-11-25 | MCP protocol version string |
TRANSPORT | stdio | Server transport: stdio (default) or http |
| Variable | Default | Description |
|---|---|---|
BRIDGE_HOST | 127.0.0.1 | Bridge WebSocket host |
BRIDGE_PORT | 49620 | Primary bridge port |
BRIDGE_PORT_SCAN | 49620-49629 | Port scan spec (comma/range) |
BRIDGE_TIMEOUT_MS | 15000 | Bridge call timeout (ms) |
BRIDGE_HEARTBEAT_MS | 10000 | Heartbeat interval (ms) |
BRIDGE_RECONNECT_MAX_ATTEMPTS | 0 | Max reconnect attempts (0 = infinite) |
BRIDGE_WAIT_FOR_EDA_MS | 30000 | Wait for EasyEDA Pro on startup (ms) |
BRIDGE_MAX_PAYLOAD_SIZE | 1048576 | Max bridge payload (bytes, default 1 MiB) |
BRIDGE_TOKEN | '' | Session token for extension auth |
| Variable | Default | Description |
|---|---|---|
DATA_DIR | .easyeda-mcp-pro | Data directory (cache, database, artifacts) |
SQLITE_PATH | .easyeda-mcp-pro/easyeda-mcp-pro.sqlite | SQLite database path |
ARTIFACT_DIR | .easyeda-mcp-pro/artifacts | Artifact export directory |
CACHE_DIR | .easyeda-mcp-pro/cache | Cache directory |
Enable suppliers by setting their credentials. All suppliers are disabled by default.
JLCPCB_MODE=approved_api + client ID/secretJLCSEARCH_ENABLED=true (default, no key required for basic search)MOUSER_ENABLED=true + API keyDIGIKEY_ENABLED=true + OAuth2 client ID/secretConfigure an AI provider for LLM-assisted design review:
| Variable | Default | Description |
|---|---|---|
AI_PROVIDER | none | anthropic, openai, openrouter, or local |
AI_MODEL | '' | Model name (e.g., claude-sonnet-4-20250514) |
AI_API_KEY | '' | AI provider API key |
AI_MAX_TOKENS | 8000 | Max tokens per AI response |
AI_TIMEOUT_MS | 60000 | AI request timeout in ms |
AI_ALLOW_DESIGN_MUTATIONS | false | Allow AI to modify schematic/board designs |
When using TRANSPORT=http:
| Variable | Default | Description |
|---|---|---|
HTTP_HOST | 127.0.0.1 | Bind address (use 0.0.0.0 with caution) |
HTTP_PORT | 3000 | Port |
HTTP_AUTH_DISABLED | false | Disable HTTP transport authentication |
HTTP_RATE_LIMIT_MAX | 100 | Max requests per minute per IP |
CORS_ORIGIN | '' | Allowed CORS origin |
For remote HTTP deployments, OAuth 2.0 / OpenID Connect is strongly recommended:
| Variable | Default | Description |
|---|---|---|
OAUTH_ENABLED | false | Enable Bearer token validation |
OAUTH_ISSUER | '' | Expected token issuer (iss claim) |
OAUTH_AUDIENCE | easyeda-mcp-pro | Expected token audience (aud claim) |
OAUTH_JWKS_URI | '' | JWKS endpoint for token signature validation |
OAUTH_REQUIRED_SCOPES | easyeda:read | Required token scope |
When OAUTH_ENABLED=true, every request to /mcp must include an Authorization: Bearer <token> header. Tokens are validated against the JWKS endpoint if configured, or structurally validated otherwise.
The server enforces a safety check at startup: non-loopback HTTP_HOST without OAuth is rejected.
HTTP_RATE_LIMIT_MAX), returns 429 Too Many Requests with retry-after headerX-Content-Type-Options: nosniff, X-Frame-Options: DENY, X-XSS-Protection: 0, Referrer-Policy: strict-origin-when-cross-origin/healthz (liveness) and /readyz (readiness) return JSON statusSee .env.example for the complete list of configuration variables.
The server currently registers 41 tools. Tools are filtered by the active TOOL_PROFILE: core exposes the normal workflow tools, pro adds manufacturing exports, full adds controlled documented EasyEDA API calls, and dev adds runtime probes for debugging.
| Tool | Description |
|---|---|
easyeda_health_check | Server health, runtime version, profile, bridge state |
easyeda_bridge_status | Bridge connection status, version, capabilities |
easyeda_get_capabilities | Available profiles, features, supported operations |
easyeda_get_server_config | Safe/redacted server configuration |
easyeda_get_tool_profiles | Available tool profiles |
easyeda_get_feature_flags | Current feature flags |
easyeda_run_self_test | Internal self-test |
easyeda_api_inventory | Live EasyEDA API classes, runtime paths, and methods |
| Tool | Profile | Description |
|---|---|---|
easyeda_api_call | full | Call a documented EasyEDA Class.method path through the bridge |
easyeda_bridge_probe_methods | dev | Probe bridge method availability |
easyeda_component_probe | dev | Inspect live schematic component runtime objects and state getters |
easyeda_api_call is intentionally not raw JavaScript execution. It only accepts documented EasyEDA Pro API class prefixes (DMT_, SCH_, PCB_, LIB_) and a direct method name such as SCH_PrimitiveWire.getAll. Methods that can mutate project state, such as create, delete, modify, openProject, save, import, or export, require confirmWrite=true.
To enable the controlled full-control API tool in your MCP client, set:
TOOL_PROFILE=full
| Tool | Description |
|---|---|
easyeda_schematic_nets | List all nets with node connections |
easyeda_schematic_components | List components with ref, value, footprint, LCSC, datasheet |
easyeda_schematic_net_detail | Full detail for a specific net |
easyeda_schematic_search_device | Search EasyEDA library devices |
easyeda_schematic_place_component | Place a library component on the active schematic sheet |
easyeda_schematic_add_wire | Add a schematic wire segment |
easyeda_schematic_delete_primitive | Delete schematic components or wires by primitive ID |
easyeda_schematic_modify_primitive | Modify schematic component or wire properties |
The schematic write APIs use EasyEDA Pro extension APIs that EasyEDA currently marks as beta. The bridge checks for the documented API class names at runtime and returns an explicit error when the installed EasyEDA Pro build does not expose a required method.
| Tool | Description |
|---|---|
easyeda_bom_generate | Generate bill of materials |
easyeda_bom_validate | Validate BOM against LCSC inventory |
easyeda_bom_export | Export BOM to file |
easyeda_bom_sourcing | Pricing and availability from suppliers |
| Tool | Description |
|---|---|
easyeda_drc_run | Design rule check for PCB |
easyeda_erc_run | Electrical rule check for schematic |
easyeda_rule_check_summary | Combined DRC + ERC summary |
| Tool | Description |
|---|---|
easyeda_board_layers | List PCB layers with type, color, visibility |
easyeda_board_stackup | Layer stackup with thickness, material |
easyeda_board_dimensions | Board outline, shape, mounting holes |
easyeda_board_features | Counts of vias, tracks, zones, pads, components |
| Tool | Profile | Description |
|---|---|---|
easyeda_export_gerbers | core | Export Gerber files for fabrication |
easyeda_export_pick_place | pro | Export pick-and-place centroid file |
easyeda_export_pdf | pro | Export schematic/board to PDF |
easyeda_export_netlist | pro | Export netlist |
┌─────────────────┐ WebSocket ┌─────────────────────┐
│ AI Assistant │ ◄──── MCP ──────► │ easyeda-mcp-pro │
│ (Claude, etc.) │ Protocol │ (MCP Server) │
└─────────────────┘ │ │
│ ┌───────────────┐ │
┌─────────────────┐ WebSocket │ │ BridgeManager │──┼──► EasyEDA Pro
│ EasyEDA Pro │ ◄── Bridge ──────►│ │ (WS Client) │ │ (Plugin)
│ (via Plugin) │ Protocol │ └───────────────┘ │
└─────────────────┘ │ ┌───────────────┐ │
│ │ ToolRegistry │ │
│ │ (41 tools) │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Storage │──┼──► SQLite
│ │ (Cache/DB) │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Vendors │──┼──► JLCPCB/LCSC/
│ │ (API Clients) │ │ Mouser/DigiKey
│ └───────────────┘ │
└─────────────────────┘
/healthz, /readyz, /mcp endpoints, CORS, and optional OAuth — suitable for remote deploymentspnpm build:extension
pnpm verify:extension
The extension build writes easyeda-bridge-extension.eext at the repository root.
It contains extension.json, the bundled browser script, and the image assets
required by EasyEDA Pro.
Installation: Open EasyEDA Pro → Settings → Extensions → Extension Manager... → Import Extension, then select the .eext file. Make sure Allow External Interaction is enabled for the extension.
# Setup
pnpm install
cp .env.example .env
# All quality gates (lint + format + typecheck + test + build)
task verify
# Or use pnpm directly:
pnpm format:check # Prettier
pnpm typecheck # TypeScript
pnpm lint # ESLint
# Test
pnpm test # Vitest (120+ tests across 18+ files)
pnpm test:coverage # With coverage report
# Golden E2E fixture smoke tests are included in `pnpm test`
# See docs/golden-fixtures.md for fixture architecture
# Build & run
pnpm build # tsc -> dist/
pnpm build:extension # Bundle EasyEDA Pro extension
pnpm verify:extension # Verify extension package contents
pnpm dev # Hot-reload dev mode
pnpm start # Run compiled build
# MCP Inspector (debug UI)
pnpm inspector
This project includes a Taskfile.yml with the following commands:
| Command | Description |
|---|---|
task install | Install dependencies |
task lint | Run ESLint |
task format | Check formatting with Prettier |
task typecheck | Run TypeScript type checking |
task test | Run tests |
task build | Build the project |
task verify | Run all quality gates (CI gate) |
Install Go Task to use these commands.
src/
├── index.ts # Entry point (stdio or HTTP)
├── bridge/ # EasyEDA Pro WebSocket bridge protocol
│ ├── manager.ts, protocol.ts, types.ts
├── config/ # Environment configuration
│ ├── env.ts, profiles.ts, feature-flags.ts
├── schemas/ # Shared Zod schemas
├── server/ # MCP server core
│ ├── factory.ts, errors.ts
│ └── transports/
│ └── http.ts # HTTP/Streamable HTTP transport
├── storage/ # Node.js sqlite storage (cache, artifacts)
├── tools/ # 41 MCP tool definitions (6 groups)
│ ├── register.ts, registry.ts, types.ts
│ ├── L0_diagnostics.ts, L1_schematic.ts, L1_bom.ts
│ ├── L1_drc_erc.ts, L1_board.ts, L1_export.ts
└── vendors/ # Supplier API clients
├── lcsc/, jlcpcb/, mouser/, digikey/
easyeda-bridge-extension/ # EasyEDA Pro bridge extension workspace package
See Security Architecture & Threat Model for the complete security reference, including deployment modes, authentication, tool safety controls, secrets management, safe defaults, supplier API security, threat scenarios, and deployment checklists.
ARTIFACT_DIRmain branch (see Repository Governance)This repository uses automated workflows to manage dependencies and releases:
package.json, server.json, extension.json), and generates CHANGELOG.md upon merging Release PRs. For the full release procedure and Conventional Commit conventions, see Release Process.easyeda-bridge-extension.eext), publishes to the NPM registry with cryptographic provenance, and uploads assets directly to the GitHub release.Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.