CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Easyeda Mcp Pro

oaslananka/easyeda-mcp-pro
authSTDIOregistry active
Summary

Connects Claude (or Cursor, VS Code, etc.) directly to EasyEDA Pro via a WebSocket bridge extension. You get 41 tools for inspecting schematics, placing components, running DRC/ERC, generating BOMs, and exporting Gerbers or pick-and-place files without leaving your editor. The server pulls live project data from open designs and integrates with JLCPCB, LCSC, Mouser, and DigiKey for part sourcing and pricing. Comes with profile-gated tool sets (core, pro, full, dev) and a CLI that auto-configures your client. Useful if you're doing PCB design work and want AI assistance with component selection, design validation, or manufacturing prep without context-switching between tools.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →

easyeda-mcp-pro

Production-grade MCP server for EasyEDA Pro: safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review.

npm version npm total downloads supported Node.js version license pnpm

CI status Docs status Security policy OpenSSF Scorecard OpenSSF Best Practices

Ask DeepWiki

Roadmap · OpenSSF evidence · Security assurance case

Compliance docs: Third-Party Notices · Vendor Terms and Unsupported Workflows · Remote MCP Modes

Buy me a coffee    Star on GitHub


Trust and Supply Chain

easyeda-mcp-pro keeps its public OpenSSF Best Practices evidence in docs/OPENSSF_BEST_PRACTICES.md and its security assurance case in docs/SECURITY_ASSURANCE_CASE.md. The header badges link to workflow-backed signals only: CI, generated docs deployment, the project security policy, OpenSSF Best Practices self-certification, and the OpenSSF Scorecard. Release integrity evidence (npm provenance, signed-release status) is tracked in docs/RELEASE_VERIFICATION.md. Coverage, Test Analytics, and extension bundle monitoring are documented in docs/CODECOV_ANALYTICS.md.

Current OpenSSF Best Practices status: Passing (100%) — see live badge and Silver evidence map for in-progress Silver criteria.


Quick Start

The fastest way to install and configure easyeda-mcp-pro for your favorite AI assistant or IDE:

  1. 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)

  2. 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.

  3. 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.


Overview

easyeda-mcp-pro is a Model Context Protocol (MCP) server that bridges AI assistants with hardware design workflows in EasyEDA Pro. It exposes up to 115 profile-gated MCP tools for schematic inspection and editing, controlled EasyEDA Pro API calls, BOM management, design rule checks, PCB board analysis, fabrication exports, diagnostics, 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.

Key Capabilities

AreaWhat you can do
SchematicList nets/components, search and place devices, edit wires/primitives
BOMGenerate, validate, export, and source bill of materials
DRC/ERCRun design rule and electrical rule checks
BoardInspect layers, stackup, dimensions, features
ExportExport Gerbers, pick-and-place, PDF, netlist
DiagnosticsHealth check, bridge status, API inventory, capabilities, self-test

Prerequisites

  • Node.js: Node.js 24.x is required; repository automation is pinned to 24.18.0.
  • pnpm: local development and automation require exactly 11.5.1.

Prepare the supported runtime before installing dependencies:

nvm install 24.18.0
nvm use 24.18.0
corepack enable
corepack prepare pnpm@11.5.1 --activate
node scripts/check-runtime.mjs --require-pnpm
  • EasyEDA Pro with the bundled bridge extension installed and running
  • For supplier integration: API credentials from JLCPCB, LCSC, Mouser, or DigiKey

Installation & Client Configuration

You can configure easyeda-mcp-pro automatically or manually.

1. Automatic Configuration (CLI)

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>

Supported Client Keys:

  • 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)

Options:

  • --profile <name>: Specify the tool profile. Options: core (default), pro, full, dev. Example: npx easyeda-mcp-pro setup cursor --profile full

2. Extension Installation

To 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:

  1. Open EasyEDA Pro.
  2. Go to Settings → Extensions → Extension Manager.
  3. Click Import Extension and select the easyeda-bridge-extension.eext file.
  4. Ensure Allow External Interaction is enabled for the extension.
  5. Click MCP Bridge → Connect in the menu bar.

3. Manual Client Configurations

If you prefer to configure your clients manually, add the following configuration to the respective settings files:

🟣 Claude Desktop

Config Path:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "core"
      }
    }
  }
}
🔵 Cursor IDE

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"
      }
    }
  }
}
🟢 VS Code (GitHub Copilot)

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"
      }
    }
  }
}
🏄 Windsurf (Codeium)

Config Path: ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}
🤖 Cline

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": []
    }
  }
}
✨ Gemini CLI / Antigravity

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"
      }
    }
  }
}
⚡ Zed Editor

Config Path: ~/.config/zed/settings.json

{
  "context_servers": {
    "easyeda-mcp-pro": {
      "command": {
        "path": "npx",
        "args": ["-y", "easyeda-mcp-pro@latest"]
      },
      "settings": {}
    }
  }
}
🔄 Continue.dev

Config Path: ~/.continue/config.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}
👑 Amazon Q Developer

Config Path: ~/.aws/amazonq/mcp.json

{
  "mcpServers": {
    "easyeda-mcp-pro": {
      "command": "npx",
      "args": ["-y", "easyeda-mcp-pro@latest"],
      "env": {
        "TOOL_PROFILE": "pro"
      }
    }
  }
}

4. Running from Source (Development)

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

Local Diagnostics & Health Check

You can diagnose your environment and bridge connectivity at any time:

pnpm doctor

This checks:

  1. Node.js version compatibility.
  2. Existence of build files and the .eext extension package.
  3. Bridge port availability. Note: The bridge status will show as offline until an MCP client starts the server and connects to the EasyEDA Pro extension.

Configuration

Copy .env.example to .env and edit. All variables have safe defaults — only configure what you need.

Boolean environment variables use strict literals: true / 1 enable a setting and false / 0 disable it. Matching is case-insensitive and surrounding whitespace is ignored. Other values—including yes, no, on, off, enabled, disabled, empty strings, and misspellings—fail startup validation and report the offending variable. Leave a variable unset to use its documented default.

Essential

VariableDefaultDescription
NODE_ENVdevelopmentSet to production in production
LOG_LEVELinfoPino log level: trace, debug, info, warn, error, fatal, silent
TOOL_PROFILEcoreTool set: core, pro, full, dev, experimental
TOOL_SCOPESemptyOptional capability allowlist such as schematic:read,bom:read
MCP_PROTOCOL_VERSION2025-11-25MCP protocol version string
MCP_BRIDGE_BACKENDlocal_bridgeBridge backend: local_bridge or experimental remote_relay
MCP_REMOTE_SESSION_IDemptyOptional fixed Remote Relay session id for remote_relay backend
TRANSPORTstdioServer transport: stdio (default) or http

For Remote Relay experiments, run npx easyeda-mcp-pro doctor --fix after setting MCP_BRIDGE_BACKEND=remote_relay; the doctor output validates HTTP transport, session selection, OAuth, and loopback-only development auth settings.

Bridge (EasyEDA Pro connection)

VariableDefaultDescription
BRIDGE_HOST127.0.0.1Bridge WebSocket host
BRIDGE_PORT49620Primary bridge port
BRIDGE_PORT_SCAN49620-49629Port scan spec (comma/range)
BRIDGE_TIMEOUT_MS15000Bridge call timeout (ms)
BRIDGE_HEARTBEAT_MS10000Heartbeat interval (ms)
BRIDGE_RECONNECT_MAX_ATTEMPTS0Max reconnect attempts (0 = infinite)
BRIDGE_WAIT_FOR_EDA_MS30000Wait for EasyEDA Pro on startup (ms)
BRIDGE_MAX_PAYLOAD_SIZE1048576Max bridge payload (bytes, default 1 MiB)
BRIDGE_TOKEN''Session token for extension auth
BRIDGE_RAW_EXEC_ENABLEDfalseFirst explicit gate for raw EasyEDA runtime JavaScript execution
MCP_RAW_EXEC_EXPERIMENTALfalseSecond experimental gate required before easyeda_execute is registered

Storage

VariableDefaultDescription
DATA_DIR~/.easyeda-mcp-proData directory (cache, database, artifacts)
SQLITE_PATH~/.easyeda-mcp-pro/easyeda-mcp-pro.sqliteSQLite database path
ARTIFACT_DIR~/.easyeda-mcp-pro/artifactsArtifact export directory
CACHE_DIR~/.easyeda-mcp-pro/cacheCache directory

These defaults are resolved with the operating system user home directory, not the MCP process working directory. Explicitly configured paths keep their supplied absolute or relative semantics.

Supplier integration

Enable suppliers by setting their credentials. All suppliers are disabled by default.

  • JLCPCB: JLCPCB_MODE=approved_api + client ID/secret
  • LCSC: JLCSEARCH_ENABLED=true (default, no key required for basic search)
  • Mouser: MOUSER_ENABLED=true + API key
  • DigiKey: DIGIKEY_ENABLED=true + OAuth2 client ID/secret

Reserved AI configuration

No in-process AI provider client is currently implemented. The AI_* variables remain accepted for configuration compatibility but are reported as reserved, are always ineffective, and must not be used to infer that the server sends design data to an AI provider. Do not supply an API key.

VariableDefaultCurrent behavior
AI_PROVIDERnoneReserved; no provider client is invoked
AI_MODEL''Reserved; no model is selected
AI_API_KEY''Reserved; no credential consumer exists
AI_MAX_TOKENS8000Reserved compatibility setting
AI_TIMEOUT_MS60000Reserved compatibility setting
AI_ALLOW_DESIGN_MUTATIONSfalseReserved; cannot enable AI-originated design mutation

Use easyeda_get_feature_flags or easyeda_get_capabilities to inspect configured, effective, and maturity values for optional settings.

HTTP transport

When using TRANSPORT=http:

VariableDefaultDescription
HTTP_HOST127.0.0.1Bind address; non-loopback requires OAuth
HTTP_PORT3000Port
HTTP_AUTH_DISABLEDfalseDisable HTTP auth for non-production loopback only
HTTP_RATE_LIMIT_MAX100Max requests per minute per IP
CORS_ORIGIN''Legacy allowed origin for loopback browser clients
ALLOWED_ORIGINS''Explicit remote origin allowlist; * is rejected

Remote HTTP Security

Every non-loopback HTTP deployment requires OAuth 2.0 / OpenID Connect authentication, regardless of NODE_ENV:

VariableDefaultDescription
OAUTH_ENABLEDfalseEnable Bearer token validation
OAUTH_ISSUER''Expected token issuer (iss claim)
OAUTH_AUDIENCEeasyeda-mcp-proExpected token audience (aud claim)
OAUTH_JWKS_URI''JWKS endpoint for token signature validation
OAUTH_REQUIRED_SCOPESeasyeda:readRequired token scope

When OAUTH_ENABLED=true, every request to /mcp must include an Authorization: Bearer <token> header unless HTTP_AUTH_DISABLED=true is explicitly set for non-production loopback development. Tokens are verified against OAUTH_JWKS_URI, iss/aud claims are validated, and OAUTH_REQUIRED_SCOPES is enforced against scope, scp, permissions, or roles claims.

The server enforces startup safety checks in every environment: non-loopback HTTP_HOST without OAuth is rejected, OAUTH_JWKS_URI / OAUTH_ISSUER / OAUTH_AUDIENCE are required, wildcard ALLOWED_ORIGINS=* is rejected, and HTTP_AUTH_DISABLED=true remains limited to non-production loopback development. Requests without an Origin header still require a valid bearer token on authenticated deployments; CORS is not an authentication boundary.

Docker defaults

The Docker image starts in HTTP mode with HTTP_HOST=127.0.0.1 so the default container boot path is safe and passes the same startup safety checks as local HTTP mode. For an externally reachable container, override the bind address and configure OAuth plus an explicit, non-wildcard origin allowlist:

docker run --rm \
  -e HTTP_HOST=0.0.0.0 \
  -e ALLOWED_ORIGINS=https://your-client.example.com \
  -e OAUTH_ENABLED=true \
  -e OAUTH_ISSUER=https://issuer.example.com/ \
  -e OAUTH_JWKS_URI=https://issuer.example.com/.well-known/jwks.json \
  -e OAUTH_AUDIENCE=easyeda-mcp-pro \
  -p 127.0.0.1:3000:3000 \
  ghcr.io/oaslananka/easyeda-mcp-pro:latest

Do not expose non-loopback HTTP without OAuth. ALLOWED_ORIGINS restricts browsers but never replaces authentication. Use a reverse proxy or platform gateway for TLS termination and external access.

HTTP Security Features

  • Rate limiting: Per-IP sliding window (configurable via HTTP_RATE_LIMIT_MAX), returns 429 Too Many Requests with retry-after header
  • Security headers: X-Content-Type-Options: nosniff, X-Frame-Options: DENY, X-XSS-Protection: 0, Referrer-Policy: strict-origin-when-cross-origin
  • Health endpoints: /healthz (liveness) and /readyz (readiness) return JSON status

See .env.example for the complete list of configuration variables.


MCP Tools

The server registers profile-gated tools according to the active TOOL_PROFILE. The table below is generated from the same registry used at runtime:

ProfileRegistered tools
core71
pro98
full110
dev115
experimental115

core exposes the standard workflow tools, pro adds manufacturing exports, full adds controlled documented EasyEDA API calls, and dev adds runtime probes for debugging.

Capability scopes add a second authorization layer when TOOL_SCOPES is set. Leave it empty for the default local all-capabilities mode, or restrict it with comma/space separated scopes such as diagnostics:read, schematic:read, schematic:write, bom:read, bom:source, checks:read, pcb:read, pcb:write, export:write, api:read, api:write, and bridge:execute.

Raw JavaScript execution is intentionally not part of the default dev tool set. easyeda_execute is registered only when both BRIDGE_RAW_EXEC_ENABLED=true and MCP_RAW_EXEC_EXPERIMENTAL=true are set; when TOOL_SCOPES is set it also requires bridge:execute.

L0 — Diagnostics (core)

ToolDescription
easyeda_health_checkServer health, runtime version, profile, bridge state
easyeda_bridge_statusBridge connection status, version, capabilities
easyeda_get_capabilitiesAvailable profiles, features, supported operations
easyeda_get_server_configSafe/redacted server configuration
easyeda_get_tool_profilesAvailable tool profiles
easyeda_get_feature_flagsCurrent feature flags
easyeda_run_self_testInternal self-test
easyeda_api_inventoryLive EasyEDA API classes, runtime paths, and methods

L0 — Full-control and dev probes

ToolProfileDescription
easyeda_api_callfullCall a documented EasyEDA Class.method path through the bridge
easyeda_bridge_probe_methodsdevProbe bridge method availability
easyeda_component_probedevInspect 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

L1 — Schematic (core)

ToolDescription
easyeda_schematic_netsList all nets with node connections
easyeda_schematic_componentsList components with ref, value, footprint, LCSC, datasheet
easyeda_schematic_net_detailFull detail for a specific net
easyeda_schematic_search_deviceSearch EasyEDA library devices
easyeda_schematic_place_componentPlace a library component on the active schematic sheet
easyeda_schematic_add_wireAdd a schematic wire segment
easyeda_schematic_delete_primitiveDelete schematic components or wires by primitive ID
easyeda_schematic_modify_primitiveModify 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.

L1 — BOM (core)

ToolDescription
easyeda_bom_generateGenerate bill of materials
easyeda_bom_validateValidate BOM against LCSC inventory
easyeda_bom_exportExport BOM to file
easyeda_bom_sourcingPricing and availability from suppliers

L1 — DRC/ERC (core)

ToolDescription
easyeda_drc_runDesign rule check for PCB
easyeda_erc_runElectrical rule check for schematic
easyeda_rule_check_summaryCombined DRC + ERC summary

L1 — Board (core)

ToolDescription
easyeda_board_layersList PCB layers with type, color, visibility
easyeda_board_stackupLayer stackup with thickness, material
easyeda_board_dimensionsBoard outline, shape, mounting holes
easyeda_board_featuresCounts of vias, tracks, zones, pads, components

L1 — Export (core/pro)

ToolProfileDescription
easyeda_export_gerberscoreExport Gerber files for fabrication
easyeda_export_pick_placeproExport pick-and-place centroid file
easyeda_export_pdfproExport schematic/board to PDF
easyeda_export_netlistproExport netlist

Architecture

┌─────────────────┐     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  │  │
                                       │  │ (up to 115 tools) │ │
                                       │  └───────────────┘  │
                                       │  ┌───────────────┐  │
                                       │  │    Storage     │──┼──► SQLite
                                       │  │  (Cache/DB)   │  │
                                       │  └───────────────┘  │
                                       │  ┌───────────────┐  │
                                       │  │   Vendors     │──┼──► JLCPCB/LCSC/
                                       │  │ (API Clients) │  │    Mouser/DigiKey
                                       │  └───────────────┘  │
                                       └─────────────────────┘

Transports

  • stdio (default): Standard MCP transport — works with Claude Desktop, Cursor, and most MCP clients
  • HTTP: Streamable HTTP transport with /healthz, /readyz, /mcp endpoints, CORS, and optional OAuth — suitable for remote deployments

Deployment modes

Beyond local stdio/HTTP, the server supports a hosted remote runtime (gateway, session router, and approval-scoped relay under src/remote/) for managed connector deployments such as Claude Web or ChatGPT app integrations, plus a self-hosted remote mode for user-managed endpoints. See Remote MCP Modes for the full mode matrix and network/security boundaries of each.

Bridge extension

pnpm 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.

For local bridge development, an experimental loopback-only CDP transport is documented in the CDP Bridge guide. The extension remains the recommended transport for normal use. Public delivery targets and milestone lifecycle rules are maintained in the roadmap.


Agent plugin and skills

This repository owns the product-level agent plugin and EasyEDA-specific skills for EasyEDA MCP Pro. The central agent-tools repository should catalog this plugin, but the manifest and workflow instructions live here so they stay synchronized with the actual MCP server, bridge extension, tool profiles, and EasyEDA runtime behavior.

FilePurpose
.claude-plugin/plugin.jsonClaude Code-valid plugin manifest for compatible agent runtimes and marketplace catalogs.
.mcp.jsonProject-local Claude Code MCP server configuration.
.codex/config.example.tomlCodex CLI MCP configuration example.
.vscode/mcp.example.jsonVS Code / GitHub Copilot workspace MCP configuration example.
opencode.example.jsoncOpenCode project MCP configuration example.
.opencode/skills/OpenCode-native mirrored skill definitions.
docs/agent-runtime-config.mdAgent runtime setup and validation matrix.
skills/easyeda-workflow/SKILL.mdEnd-to-end EasyEDA setup, inspection, controlled write, export, and reporting workflow.
skills/component-search/SKILL.mdComponent search, BOM review, sourcing, pricing, availability, and part-risk workflow.
skills/design-validation/SKILL.mdDRC/ERC, semantic ERC, PCB constraints, production QA, export, and release-validation workflow.

Agent setup

EasyEDA MCP Pro can be launched with the published npm package or from a source checkout:

npx easyeda-mcp-pro
TRANSPORT=http HTTP_HOST=127.0.0.1 HTTP_PORT=3000 npx easyeda-mcp-pro
pnpm build && node dist/index.js

For live EasyEDA Pro workflows, install the EasyEDA bridge extension and confirm the bridge is reachable with easyeda_health_check and easyeda_bridge_status. Tool availability depends on TOOL_PROFILE and optional TOOL_SCOPES restrictions.

For source checkouts, run the normal validation path before publishing plugin changes:

python3 -m json.tool .claude-plugin/plugin.json >/dev/null
claude plugin validate .
pnpm format:check
pnpm typecheck
pnpm test
pnpm build
pnpm check:metadata

Validation workflow

Before listing this plugin as active from agent-tools, verify at least one compatible agent runtime can:

  1. Discover .claude-plugin/plugin.json.
  2. Launch or connect to easyeda-mcp-pro over stdio or HTTP.
  3. Call easyeda_health_check, easyeda_bridge_status, or easyeda_get_capabilities.
  4. Load a skill from skills/ and follow the workflow without referencing missing tools.
  5. Report bridge state, tool profile, ERC, DRC, BOM, export artifacts, assumptions, and human-review requirements separately.

EasyEDA MCP Pro is an engineering assistant, not an autonomous manufacturing sign-off authority. Generated designs, component selections, and fabrication outputs require qualified human review before purchase, fabrication, or assembly.

Development

Prerequisites

  • Node.js: Node.js 24.x is required; repository automation is pinned to 24.18.0.
  • pnpm: local development and automation require exactly 11.5.1.

Prepare the supported runtime before installing dependencies:

nvm install 24.18.0
nvm use 24.18.0
corepack enable
corepack prepare pnpm@11.5.1 --activate
node scripts/check-runtime.mjs --require-pnpm
  • Go Task (optional, for Taskfile commands)

Quick Start

# Setup
pnpm install
cp .env.example .env

# All quality gates (lint + format + typecheck + test + build)
pnpm verify

# Or, if you use Go Task:
task verify

# Use focused checks while iterating:
pnpm format:check          # Prettier
pnpm typecheck             # TypeScript
pnpm lint                  # ESLint

# Test
pnpm test                  # Vitest suite
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

Available Taskfile Commands

This project includes a Taskfile.yml with the following commands:

CommandDescription
task installInstall dependencies
task lintRun ESLint
task formatCheck formatting with Prettier
task typecheckRun TypeScript type checking
task testRun tests
task buildBuild the project
task verifyRun all quality gates via Taskfile

The package also exposes pnpm verify, which runs the same CI-equivalent local gate without requiring Go Task.

Install Go Task to use these commands.

Project structure

src/
├── index.ts                 # Entry point (stdio or HTTP)
├── bridge/                  # EasyEDA Pro WebSocket bridge protocol
│   ├── manager.ts, protocol.ts, types.ts
├── cli/                     # Client auto-setup (setup/extension CLI commands)
├── config/                  # Environment, tool profiles, feature flags
│   ├── env.ts, profiles.ts, feature-flags.ts, version.ts
├── remote/                  # Hosted/self-hosted remote MCP gateway, session router, scopes
├── schemas/                 # Shared Zod schemas
├── server/                  # MCP server core
│   ├── factory.ts, resources-prompts.ts
│   └── transports/
│       ├── http.ts                    # HTTP/Streamable HTTP transport
│       └── oauth-resource-metadata.ts
├── storage/                 # Node.js sqlite storage (cache, artifacts)
├── tools/                   # Up to 115 profile-gated MCP tool definitions
│   ├── register.ts, registry.ts, types.ts, transaction.ts
│   ├── L0_diagnostics_core.ts, L0_diagnostics_api.ts
│   ├── L1_schematic_read.ts, L1_schematic_write.ts
│   ├── L1_bom_core.ts, L1_bom_sourcing.ts
│   └── L1_drc_erc.ts, L1_board.ts, L1_export.ts, L1_pcb_constraints.ts, L1_pcb_write.ts
├── vendors/                 # Supplier API clients (lcsc/, jlcpcb/, mouser/, digikey/)
└── ...                      # circuit, pcb-layout, net-validation, power-tree, production-qa,
                              # quote-gating, safety, observability, catalog, bom-quality,
                              # export-manifest, live, easyeda-runtime

easyeda-bridge-extension/    # EasyEDA Pro bridge extension workspace package

Security

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.

  • Network safety: Validates config at startup in every environment — rejects non-loopback HTTP without complete OAuth and an explicit non-wildcard origin allowlist
  • OAuth/JWKS: Bearer token validation via JWKS endpoint for HTTP transport (see OAuth section)
  • Rate limiting: Per-IP sliding window rate limiter on HTTP transport (default 100 req/min)
  • Path traversal protection: All file export paths validated against ARTIFACT_DIR
  • Secret redaction: API keys, tokens, passwords are redacted from logs and diagnostic output
  • Branch protection: Governance policy requires code reviews and status checks on the main branch (see Repository Governance)
  • Code scanning: CodeQL analysis runs on every push and PR (security-extended + security-and-quality queries)
  • Dependency management: Renovate automatically updates dependencies with security patches
  • Supply-chain hygiene: pnpm workspace build, pinned GitHub Actions, and no native SQLite addon dependency
  • Reporting: See SECURITY.md for vulnerability disclosure

Release & Dependency Automation

This repository uses automated workflows to manage dependencies and releases:

  • Renovate: Automatically scans and updates dependencies based on rules configured in .github/renovate.json. For details on PR policies and automerging, see Repository Governance.
  • Release Please: Automates stable version bumps, release metadata, and CHANGELOG.md. Numbered rc.N candidates use the isolated prerelease path. See the Release Policy and Release Process.
  • Secure Publishing: The release workflow rebuilds and verifies all assets, publishes npm with provenance to channel-safe latest or next dist-tags, uploads the extension and SBOM to the matching GitHub Release, and keeps GHCR/MCP Registry promotion aligned with the selected channel.

Support the project

If this project helps you save time while working with EasyEDA Pro, BOM workflows, or MCP integrations, you can support ongoing development via the Buy me a coffee button at the top of this README.


License

MIT


Related

  • Model Context Protocol — Standard protocol for AI tool integration
  • EasyEDA Pro — Professional PCB design tool
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
Email for Agents: Free tier availableEmail for Agents: Free tier available
Email for Agents: Free tier available
Give your AI agent a complete email layer—sending, inbound inboxes, and sandbox testing.
Get 4K emails/month free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
AI notepad for back-to-back meetings
AI notepad for back-to-back meetings
Notes, actions and memory. Without a meeting bot. First month 100% off.
Download for free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →

Configuration

NODE_ENVdefault: development

Environment mode

LOG_LEVELdefault: info

Pino log level

TOOL_PROFILEdefault: core

Active tool profile

TRANSPORTdefault: stdio

Server transport mode

HTTP_HOSTdefault: 127.0.0.1

HTTP bind address

HTTP_PORTdefault: 3000

HTTP port

BRIDGE_HOSTdefault: 127.0.0.1

Bridge host for EasyEDA Pro connection

BRIDGE_PORTdefault: 18601

Bridge port

BRIDGE_TIMEOUT_MSdefault: 15000

Bridge call timeout in ms

DATA_DIRdefault: .easyeda-mcp-pro

Data directory for storage

JLCPCB_MODEdefault: disabled

JLCPCB API mode

JLCPCB_CLIENT_IDsecret

JLCPCB API client ID

JLCPCB_CLIENT_SECRETsecret

JLCPCB API client secret

MOUSER_API_KEYsecret

Mouser API key

DIGIKEY_CLIENT_IDsecret

DigiKey OAuth2 client ID

DIGIKEY_CLIENT_SECRETsecret

DigiKey OAuth2 client secret

LCSC_API_KEYsecret

LCSC API key

AI_API_KEYsecret

AI provider API key

OAUTH_ENABLEDdefault: false

Enable OAuth for HTTP mode

OTEL_ENABLEDdefault: false

Enable OpenTelemetry

Categories
Design & Creative
Registryactive
Packageeasyeda-mcp-pro
TransportSTDIO
AuthRequired
UpdatedJun 10, 2026
View on GitHub

Related Design & Creative MCP Servers

View all →
HTML to Figma — Design System

miapre/html-to-figma-design-system

Translate HTML prototypes into Figma using your design system's real components and tokens.
3
Illustrator Mcp Server

ie3jp/illustrator-mcp-server

Read, manipulate, and export Adobe Illustrator design data. 26 tools. macOS | Windows.
44
Godot

coding-solo/godot-mcp

MCP server for interfacing with Godot game engine. Provides tools for launching the editor, running projects, and capturing debug output.
3.7k
Unity Mcp

ivanmurzak/unity-mcp

Make 3D games in Unity Engine with AI. MCP Server + Plugin for Unity Editor and Unity games.
3.1k
Excalidraw

yctimlin/mcp_excalidraw

Provides an Excalidraw canvas exposed via MCP for real-time diagramming and element CRUD from AI agents.
1.9k
Figma MCP Server

figma/mcp-server-guide

The Figma MCP server brings Figma design context directly into your AI workflow.
1.6k