{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.oaslananka/easyeda-mcp-pro","description":"MCP server for EasyEDA Pro: PCB inspection, BOM, exports, and hardware review.","repository":{"url":"https://github.com/oaslananka/easyeda-mcp-pro","source":"github"},"version":"1.0.1","packages":[{"registryType":"npm","identifier":"easyeda-mcp-pro","version":"1.0.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Environment mode","format":"string","default":"development","choices":["development","test","production"],"name":"NODE_ENV"},{"description":"Pino log level","format":"string","default":"info","choices":["trace","debug","info","warn","error","fatal","silent"],"name":"LOG_LEVEL"},{"description":"Active tool profile (core, pro, full, dev, experimental)","format":"string","default":"core","choices":["core","pro","full","dev","experimental"],"name":"TOOL_PROFILE"},{"description":"Optional comma- or space-separated capability scope allowlist; empty enables all scopes allowed by the active tool profile.","format":"string","name":"TOOL_SCOPES"},{"description":"MCP protocol version string","format":"string","default":"2025-11-25","name":"MCP_PROTOCOL_VERSION"},{"description":"Bridge backend: local_bridge or experimental remote_relay","format":"string","default":"local_bridge","choices":["local_bridge","remote_relay"],"name":"MCP_BRIDGE_BACKEND"},{"description":"Optional fixed Remote Relay session id for the remote_relay backend","format":"string","name":"MCP_REMOTE_SESSION_ID"},{"description":"Server transport mode (stdio or http)","format":"string","default":"stdio","choices":["stdio","http"],"name":"TRANSPORT"},{"description":"HTTP bind address","format":"string","default":"127.0.0.1","name":"HTTP_HOST"},{"description":"HTTP port","format":"number","default":"3000","name":"HTTP_PORT"},{"description":"Disable HTTP transport authentication","format":"boolean","default":"false","name":"HTTP_AUTH_DISABLED"},{"description":"Max requests per minute per IP","format":"number","default":"100","name":"HTTP_RATE_LIMIT_MAX"},{"description":"Allowed CORS origin for HTTP transport","format":"string","name":"CORS_ORIGIN"},{"description":"Comma-separated list of allowed origins for HTTP transport (use * for wildcard)","format":"string","name":"ALLOWED_ORIGINS"},{"description":"Reserved; currently non-functional: parsed for compatibility, but the server does not advertise or execute MCP Tasks.","format":"boolean","default":"false","name":"MCP_TASKS_ENABLED"},{"description":"Reserved; currently non-functional: parsed for compatibility, but no MCP Apps UI or resource runtime is registered.","format":"boolean","default":"false","name":"MCP_APPS_ENABLED"},{"description":"Reserved; currently non-functional: does not change MCP protocol negotiation.","format":"boolean","default":"false","name":"MCP_V2_EXPERIMENTAL"},{"description":"Experimental second gate for raw EasyEDA runtime execution; requires BRIDGE_RAW_EXEC_ENABLED.","format":"boolean","default":"false","name":"MCP_RAW_EXEC_EXPERIMENTAL"},{"description":"Bridge WebSocket host for EasyEDA Pro connection","format":"string","default":"127.0.0.1","name":"BRIDGE_HOST"},{"description":"Bridge primary port","format":"number","default":"49620","name":"BRIDGE_PORT"},{"description":"Port scan specification (comma-separated ports or ranges)","format":"string","default":"49620-49629","name":"BRIDGE_PORT_SCAN"},{"description":"Bridge call timeout in ms","format":"number","default":"15000","name":"BRIDGE_TIMEOUT_MS"},{"description":"Bridge heartbeat interval in ms","format":"number","default":"10000","name":"BRIDGE_HEARTBEAT_MS"},{"description":"How long to wait for EasyEDA Pro to become available on startup (ms)","format":"number","default":"30000","name":"BRIDGE_WAIT_FOR_EDA_MS"},{"description":"Max bridge payload size in bytes","format":"number","default":"1048576","name":"BRIDGE_MAX_PAYLOAD_SIZE"},{"description":"Session token for extension auth","format":"string","isSecret":true,"name":"BRIDGE_TOKEN"},{"description":"Enable EasyEDA dev bridge mode","format":"boolean","default":"false","name":"EASYEDA_DEV_BRIDGE"},{"description":"Experimental first gate for raw EasyEDA runtime execution; requires MCP_RAW_EXEC_EXPERIMENTAL.","format":"boolean","default":"false","name":"BRIDGE_RAW_EXEC_ENABLED"},{"description":"Base directory for writable local state; defaults beneath the operating-system user home directory.","format":"filepath","placeholder":"Defaults to the operating-system user home directory under .easyeda-mcp-pro.","name":"DATA_DIR"},{"description":"SQLite database path; derived from DATA_DIR unless explicitly configured.","format":"filepath","placeholder":"Derived from DATA_DIR as easyeda-mcp-pro.sqlite unless explicitly configured.","name":"SQLITE_PATH"},{"description":"Artifact export directory; derived from DATA_DIR unless explicitly configured.","format":"filepath","placeholder":"Derived from DATA_DIR as artifacts unless explicitly configured.","name":"ARTIFACT_DIR"},{"description":"Cache directory; derived from DATA_DIR unless explicitly configured.","format":"filepath","placeholder":"Derived from DATA_DIR as cache unless explicitly configured.","name":"CACHE_DIR"},{"description":"Reserved; currently non-functional: no in-process AI provider client is invoked.","format":"string","default":"none","choices":["none","anthropic","openai","openrouter","local"],"name":"AI_PROVIDER"},{"description":"Reserved; currently non-functional: no model is selected or invoked.","format":"string","name":"AI_MODEL"},{"description":"Reserved; currently non-functional: do not supply credentials because no provider client consumes them.","format":"string","isSecret":true,"name":"AI_API_KEY"},{"description":"Reserved; currently non-functional: retained only for future provider compatibility.","format":"number","default":"8000","name":"AI_MAX_TOKENS"},{"description":"Reserved; currently non-functional: retained only for future provider compatibility.","format":"number","default":"60000","name":"AI_TIMEOUT_MS"},{"description":"Reserved; currently non-functional: cannot enable AI-originated design mutation.","format":"boolean","default":"false","name":"AI_ALLOW_DESIGN_MUTATIONS"},{"description":"JLCPCB API mode (disabled, mock, approved_api)","format":"string","default":"disabled","choices":["disabled","mock","approved_api"],"name":"JLCPCB_MODE"},{"description":"JLCPCB API client identifier.","format":"string","name":"JLCPCB_CLIENT_ID"},{"description":"JLCPCB API client secret","format":"string","isSecret":true,"name":"JLCPCB_CLIENT_SECRET"},{"description":"JLCPCB API base URL","format":"string","default":"https://api.jlcpcb.com","name":"JLCPCB_API_BASE_URL"},{"description":"Enable JLCPCB ordering","format":"boolean","default":"false","name":"JLCPCB_ENABLE_ORDERING"},{"description":"Enable LCSC component search","format":"boolean","default":"true","name":"JLCSEARCH_ENABLED"},{"description":"LCSC search API base URL","format":"string","default":"https://jlcsearch.tscircuit.com","name":"JLCSEARCH_BASE_URL"},{"description":"LCSC API key","format":"string","isSecret":true,"name":"LCSC_API_KEY"},{"description":"Allow supported public keyless component-sourcing fallbacks when vendor credentials are unavailable.","format":"boolean","default":"true","name":"KEYLESS_SOURCING_ENABLED"},{"description":"Component-sourcing cache lifetime in seconds (0 disables cache reuse).","format":"number","default":"21600","name":"SOURCING_CACHE_TTL_SECONDS"},{"description":"Minimum delay in milliseconds between outbound requests to the same sourcing vendor.","format":"number","default":"150","name":"VENDOR_MIN_REQUEST_INTERVAL_MS"},{"description":"Enable Mouser integration","format":"boolean","default":"false","name":"MOUSER_ENABLED"},{"description":"Mouser API key","format":"string","isSecret":true,"name":"MOUSER_API_KEY"},{"description":"Mouser API base URL","format":"string","default":"https://api.mouser.com","name":"MOUSER_API_BASE_URL"},{"description":"Enable DigiKey integration","format":"boolean","default":"false","name":"DIGIKEY_ENABLED"},{"description":"DigiKey OAuth2 client identifier.","format":"string","name":"DIGIKEY_CLIENT_ID"},{"description":"DigiKey OAuth2 client secret","format":"string","isSecret":true,"name":"DIGIKEY_CLIENT_SECRET"},{"description":"Use DigiKey sandbox environment","format":"boolean","default":"true","name":"DIGIKEY_SANDBOX"},{"description":"DigiKey locale","format":"string","default":"en-US","name":"DIGIKEY_LOCALE"},{"description":"DigiKey pricing currency","format":"string","default":"USD","name":"DIGIKEY_CURRENCY"},{"description":"Enable OAuth for HTTP mode","format":"boolean","default":"false","name":"OAUTH_ENABLED"},{"description":"Expected OAuth token issuer","format":"string","name":"OAUTH_ISSUER"},{"description":"Expected OAuth token audience","format":"string","default":"easyeda-mcp-pro","name":"OAUTH_AUDIENCE"},{"description":"JWKS endpoint for token signature validation","format":"string","name":"OAUTH_JWKS_URI"},{"description":"Required OAuth token scope","format":"string","default":"easyeda:read","name":"OAUTH_REQUIRED_SCOPES"},{"description":"Reserved; currently non-functional: no OTLP exporter is started.","format":"boolean","default":"false","name":"OTEL_ENABLED"},{"description":"Reserved; currently non-functional: retained for a future OTLP exporter.","format":"string","default":"easyeda-mcp-pro","name":"OTEL_SERVICE_NAME"},{"description":"Reserved; currently non-functional: retained for a future OTLP exporter.","format":"string","name":"OTEL_EXPORTER_OTLP_ENDPOINT"},{"description":"Reserved; currently non-functional: no OTLP traces are emitted.","format":"number","default":"1","name":"TRACE_SAMPLE_RATE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-28T03:21:07.47591Z","publishedAt":"2026-08-28T03:21:07.47591Z","updatedAt":"2026-08-28T03:21:07.47591Z","isLatest":true}}}
