Skip to content
VS Code

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

easyeda mcp pro in other clients