easyeda mcp pro for VS Code
io.github.oaslananka/easyeda-mcp-pro
MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.
client:VS Code
transport:stdio
runtime:npm
Install easyeda mcp pro in VS Code
.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "node-env",
"description": "NODE_ENV",
"password": true
},
{
"type": "promptString",
"id": "log-level",
"description": "LOG_LEVEL",
"password": true
},
{
"type": "promptString",
"id": "tool-profile",
"description": "TOOL_PROFILE",
"password": true
},
{
"type": "promptString",
"id": "tool-scopes",
"description": "TOOL_SCOPES",
"password": true
},
{
"type": "promptString",
"id": "mcp-protocol-version",
"description": "MCP_PROTOCOL_VERSION",
"password": true
},
{
"type": "promptString",
"id": "mcp-bridge-backend",
"description": "MCP_BRIDGE_BACKEND",
"password": true
},
{
"type": "promptString",
"id": "mcp-remote-session-id",
"description": "MCP_REMOTE_SESSION_ID",
"password": true
},
{
"type": "promptString",
"id": "transport",
"description": "TRANSPORT",
"password": true
},
{
"type": "promptString",
"id": "http-host",
"description": "HTTP_HOST",
"password": true
},
{
"type": "promptString",
"id": "http-port",
"description": "HTTP_PORT",
"password": true
},
{
"type": "promptString",
"id": "http-auth-disabled",
"description": "HTTP_AUTH_DISABLED",
"password": true
},
{
"type": "promptString",
"id": "http-rate-limit-max",
"description": "HTTP_RATE_LIMIT_MAX",
"password": true
},
{
"type": "promptString",
"id": "cors-origin",
"description": "CORS_ORIGIN",
"password": true
},
{
"type": "promptString",
"id": "allowed-origins",
"description": "ALLOWED_ORIGINS",
"password": true
},
{
"type": "promptString",
"id": "mcp-tasks-enabled",
"description": "MCP_TASKS_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "mcp-apps-enabled",
"description": "MCP_APPS_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "mcp-v2-experimental",
"description": "MCP_V2_EXPERIMENTAL",
"password": true
},
{
"type": "promptString",
"id": "mcp-raw-exec-experimental",
"description": "MCP_RAW_EXEC_EXPERIMENTAL",
"password": true
},
{
"type": "promptString",
"id": "bridge-host",
"description": "BRIDGE_HOST",
"password": true
},
{
"type": "promptString",
"id": "bridge-port",
"description": "BRIDGE_PORT",
"password": true
},
{
"type": "promptString",
"id": "bridge-port-scan",
"description": "BRIDGE_PORT_SCAN",
"password": true
},
{
"type": "promptString",
"id": "bridge-timeout-ms",
"description": "BRIDGE_TIMEOUT_MS",
"password": true
},
{
"type": "promptString",
"id": "bridge-heartbeat-ms",
"description": "BRIDGE_HEARTBEAT_MS",
"password": true
},
{
"type": "promptString",
"id": "bridge-wait-for-eda-ms",
"description": "BRIDGE_WAIT_FOR_EDA_MS",
"password": true
},
{
"type": "promptString",
"id": "bridge-max-payload-size",
"description": "BRIDGE_MAX_PAYLOAD_SIZE",
"password": true
},
{
"type": "promptString",
"id": "bridge-token",
"description": "BRIDGE_TOKEN",
"password": true
},
{
"type": "promptString",
"id": "easyeda-dev-bridge",
"description": "EASYEDA_DEV_BRIDGE",
"password": true
},
{
"type": "promptString",
"id": "bridge-raw-exec-enabled",
"description": "BRIDGE_RAW_EXEC_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "data-dir",
"description": "DATA_DIR",
"password": true
},
{
"type": "promptString",
"id": "sqlite-path",
"description": "SQLITE_PATH",
"password": true
},
{
"type": "promptString",
"id": "artifact-dir",
"description": "ARTIFACT_DIR",
"password": true
},
{
"type": "promptString",
"id": "cache-dir",
"description": "CACHE_DIR",
"password": true
},
{
"type": "promptString",
"id": "ai-provider",
"description": "AI_PROVIDER",
"password": true
},
{
"type": "promptString",
"id": "ai-model",
"description": "AI_MODEL",
"password": true
},
{
"type": "promptString",
"id": "ai-api-key",
"description": "AI_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "ai-max-tokens",
"description": "AI_MAX_TOKENS",
"password": true
},
{
"type": "promptString",
"id": "ai-timeout-ms",
"description": "AI_TIMEOUT_MS",
"password": true
},
{
"type": "promptString",
"id": "ai-allow-design-mutations",
"description": "AI_ALLOW_DESIGN_MUTATIONS",
"password": true
},
{
"type": "promptString",
"id": "jlcpcb-mode",
"description": "JLCPCB_MODE",
"password": true
},
{
"type": "promptString",
"id": "jlcpcb-client-id",
"description": "JLCPCB_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "jlcpcb-client-secret",
"description": "JLCPCB_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "jlcpcb-api-base-url",
"description": "JLCPCB_API_BASE_URL",
"password": true
},
{
"type": "promptString",
"id": "jlcpcb-enable-ordering",
"description": "JLCPCB_ENABLE_ORDERING",
"password": true
},
{
"type": "promptString",
"id": "jlcsearch-enabled",
"description": "JLCSEARCH_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "jlcsearch-base-url",
"description": "JLCSEARCH_BASE_URL",
"password": true
},
{
"type": "promptString",
"id": "lcsc-api-key",
"description": "LCSC_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "keyless-sourcing-enabled",
"description": "KEYLESS_SOURCING_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "sourcing-cache-ttl-seconds",
"description": "SOURCING_CACHE_TTL_SECONDS",
"password": true
},
{
"type": "promptString",
"id": "vendor-min-request-interval-ms",
"description": "VENDOR_MIN_REQUEST_INTERVAL_MS",
"password": true
},
{
"type": "promptString",
"id": "mouser-enabled",
"description": "MOUSER_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "mouser-api-key",
"description": "MOUSER_API_KEY",
"password": true
},
{
"type": "promptString",
"id": "mouser-api-base-url",
"description": "MOUSER_API_BASE_URL",
"password": true
},
{
"type": "promptString",
"id": "digikey-enabled",
"description": "DIGIKEY_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "digikey-client-id",
"description": "DIGIKEY_CLIENT_ID",
"password": true
},
{
"type": "promptString",
"id": "digikey-client-secret",
"description": "DIGIKEY_CLIENT_SECRET",
"password": true
},
{
"type": "promptString",
"id": "digikey-sandbox",
"description": "DIGIKEY_SANDBOX",
"password": true
},
{
"type": "promptString",
"id": "digikey-locale",
"description": "DIGIKEY_LOCALE",
"password": true
},
{
"type": "promptString",
"id": "digikey-currency",
"description": "DIGIKEY_CURRENCY",
"password": true
},
{
"type": "promptString",
"id": "oauth-enabled",
"description": "OAUTH_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "oauth-issuer",
"description": "OAUTH_ISSUER",
"password": true
},
{
"type": "promptString",
"id": "oauth-audience",
"description": "OAUTH_AUDIENCE",
"password": true
},
{
"type": "promptString",
"id": "oauth-jwks-uri",
"description": "OAUTH_JWKS_URI",
"password": true
},
{
"type": "promptString",
"id": "oauth-required-scopes",
"description": "OAUTH_REQUIRED_SCOPES",
"password": true
},
{
"type": "promptString",
"id": "otel-enabled",
"description": "OTEL_ENABLED",
"password": true
},
{
"type": "promptString",
"id": "otel-service-name",
"description": "OTEL_SERVICE_NAME",
"password": true
},
{
"type": "promptString",
"id": "otel-exporter-otlp-endpoint",
"description": "OTEL_EXPORTER_OTLP_ENDPOINT",
"password": true
},
{
"type": "promptString",
"id": "trace-sample-rate",
"description": "TRACE_SAMPLE_RATE",
"password": true
}
],
"servers": {
"easyeda-mcp-pro": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"easyeda-mcp-pro"
],
"env": {
"NODE_ENV": "${input:node-env}",
"LOG_LEVEL": "${input:log-level}",
"TOOL_PROFILE": "${input:tool-profile}",
"TOOL_SCOPES": "${input:tool-scopes}",
"MCP_PROTOCOL_VERSION": "${input:mcp-protocol-version}",
"MCP_BRIDGE_BACKEND": "${input:mcp-bridge-backend}",
"MCP_REMOTE_SESSION_ID": "${input:mcp-remote-session-id}",
"TRANSPORT": "${input:transport}",
"HTTP_HOST": "${input:http-host}",
"HTTP_PORT": "${input:http-port}",
"HTTP_AUTH_DISABLED": "${input:http-auth-disabled}",
"HTTP_RATE_LIMIT_MAX": "${input:http-rate-limit-max}",
"CORS_ORIGIN": "${input:cors-origin}",
"ALLOWED_ORIGINS": "${input:allowed-origins}",
"MCP_TASKS_ENABLED": "${input:mcp-tasks-enabled}",
"MCP_APPS_ENABLED": "${input:mcp-apps-enabled}",
"MCP_V2_EXPERIMENTAL": "${input:mcp-v2-experimental}",
"MCP_RAW_EXEC_EXPERIMENTAL": "${input:mcp-raw-exec-experimental}",
"BRIDGE_HOST": "${input:bridge-host}",
"BRIDGE_PORT": "${input:bridge-port}",
"BRIDGE_PORT_SCAN": "${input:bridge-port-scan}",
"BRIDGE_TIMEOUT_MS": "${input:bridge-timeout-ms}",
"BRIDGE_HEARTBEAT_MS": "${input:bridge-heartbeat-ms}",
"BRIDGE_WAIT_FOR_EDA_MS": "${input:bridge-wait-for-eda-ms}",
"BRIDGE_MAX_PAYLOAD_SIZE": "${input:bridge-max-payload-size}",
"BRIDGE_TOKEN": "${input:bridge-token}",
"EASYEDA_DEV_BRIDGE": "${input:easyeda-dev-bridge}",
"BRIDGE_RAW_EXEC_ENABLED": "${input:bridge-raw-exec-enabled}",
"DATA_DIR": "${input:data-dir}",
"SQLITE_PATH": "${input:sqlite-path}",
"ARTIFACT_DIR": "${input:artifact-dir}",
"CACHE_DIR": "${input:cache-dir}",
"AI_PROVIDER": "${input:ai-provider}",
"AI_MODEL": "${input:ai-model}",
"AI_API_KEY": "${input:ai-api-key}",
"AI_MAX_TOKENS": "${input:ai-max-tokens}",
"AI_TIMEOUT_MS": "${input:ai-timeout-ms}",
"AI_ALLOW_DESIGN_MUTATIONS": "${input:ai-allow-design-mutations}",
"JLCPCB_MODE": "${input:jlcpcb-mode}",
"JLCPCB_CLIENT_ID": "${input:jlcpcb-client-id}",
"JLCPCB_CLIENT_SECRET": "${input:jlcpcb-client-secret}",
"JLCPCB_API_BASE_URL": "${input:jlcpcb-api-base-url}",
"JLCPCB_ENABLE_ORDERING": "${input:jlcpcb-enable-ordering}",
"JLCSEARCH_ENABLED": "${input:jlcsearch-enabled}",
"JLCSEARCH_BASE_URL": "${input:jlcsearch-base-url}",
"LCSC_API_KEY": "${input:lcsc-api-key}",
"KEYLESS_SOURCING_ENABLED": "${input:keyless-sourcing-enabled}",
"SOURCING_CACHE_TTL_SECONDS": "${input:sourcing-cache-ttl-seconds}",
"VENDOR_MIN_REQUEST_INTERVAL_MS": "${input:vendor-min-request-interval-ms}",
"MOUSER_ENABLED": "${input:mouser-enabled}",
"MOUSER_API_KEY": "${input:mouser-api-key}",
"MOUSER_API_BASE_URL": "${input:mouser-api-base-url}",
"DIGIKEY_ENABLED": "${input:digikey-enabled}",
"DIGIKEY_CLIENT_ID": "${input:digikey-client-id}",
"DIGIKEY_CLIENT_SECRET": "${input:digikey-client-secret}",
"DIGIKEY_SANDBOX": "${input:digikey-sandbox}",
"DIGIKEY_LOCALE": "${input:digikey-locale}",
"DIGIKEY_CURRENCY": "${input:digikey-currency}",
"OAUTH_ENABLED": "${input:oauth-enabled}",
"OAUTH_ISSUER": "${input:oauth-issuer}",
"OAUTH_AUDIENCE": "${input:oauth-audience}",
"OAUTH_JWKS_URI": "${input:oauth-jwks-uri}",
"OAUTH_REQUIRED_SCOPES": "${input:oauth-required-scopes}",
"OTEL_ENABLED": "${input:otel-enabled}",
"OTEL_SERVICE_NAME": "${input:otel-service-name}",
"OTEL_EXPORTER_OTLP_ENDPOINT": "${input:otel-exporter-otlp-endpoint}",
"TRACE_SAMPLE_RATE": "${input:trace-sample-rate}"
}
}
}
}
VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs