easyeda-mcp-pro
A production-grade MCP server for EasyEDA Pro that connects AI agents to schematic and PCB workflows. It enables safe PCB design inspection, BOM sourcing, manufacturing export, and AI-assisted hardware review with profile-gated tools and safety controls.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Perform schematic and PCB workflow inspection
- Source Bill of Materials (BOM)
- Export designs for manufacturing
- Conduct AI-assisted hardware review
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
easyeda-mcp-pro 1.6.0
{
"version": "1.6.0",
"transport": "stdio",
"identifier": "easyeda-mcp-pro",
"registryType": "npm",
"environmentVariables": [
{
"name": "NODE_ENV",
"format": "string",
"choices": [
"development",
"test",
"production"
],
"default": "development",
"description": "Environment mode"
},
{
"name": "LOG_LEVEL",
"format": "string",
"choices": [
"trace",
"debug",
"info",
"warn",
"error",
"fatal",
"silent"
],
"default": "info",
"description": "Pino log level"
},
{
"name": "TOOL_PROFILE",
"format": "string",
"choices": [
"core",
"pro",
"full",
"dev",
"experimental"
],
"default": "core",
"description": "Active tool profile (core, pro, full, dev, experimental)"
},
{
"name": "TOOL_SCOPES",
"format": "string",
"description": "Optional comma- or space-separated capability scope allowlist; empty enables all scopes allowed by the active tool profile."
},
{
"name": "MCP_PROTOCOL_VERSION",
"format": "string",
"default": "2025-11-25",
"description": "MCP protocol version string"
},
{
"name": "MCP_BRIDGE_BACKEND",
"format": "string",
"choices": [
"local_bridge",
"remote_relay"
],
"default": "local_bridge",
"description": "Bridge backend: local_bridge or experimental remote_relay"
},
{
"name": "MCP_REMOTE_SESSION_ID",
"format": "string",
"description": "Optional fixed Remote Relay session id for the remote_relay backend"
},
{
"name": "TRANSPORT",
"format": "string",
"choices": [
"stdio",
"http"
],
"default": "stdio",
"description": "Server transport mode (stdio or http)"
},
{
"name": "HTTP_HOST",
"format": "string",
"default": "127.0.0.1",
"description": "HTTP bind address"
},
{
"name": "HTTP_PORT",
"format": "number",
"default": "3000",
"description": "HTTP port"
},
{
"name": "HTTP_AUTH_DISABLED",
"format": "boolean",
"default": "false",
"description": "Disable HTTP transport authentication"
},
{
"name": "HTTP_RATE_LIMIT_MAX",
"format": "number",
"default": "100",
"description": "Max requests per minute per IP"
},
{
"name": "CORS_ORIGIN",
"format": "string",
"description": "Allowed CORS origin for HTTP transport"
},
{
"name": "ALLOWED_ORIGINS",
"format": "string",
"description": "Comma-separated list of allowed origins for HTTP transport (use * for wildcard)"
},
{
"name": "MCP_TASKS_ENABLED",
"format": "boolean",
"default": "false",
"description": "Reserved; currently non-functional: parsed for compatibility, but the server does not advertise or execute MCP Tasks."
},
{
"name": "MCP_APPS_ENABLED",
"format": "boolean",
"default": "false",
"description": "Experimental; enables sandboxed read-only MCP Apps project review UI; off by default."
},
{
"name": "MCP_SKILLS_ENABLED",
"format": "boolean",
"default": "false",
"description": "Experimental; serves packaged read-oriented Skills over MCP; off by default."
},
{
"name": "MCP_V2_EXPERIMENTAL",
"format": "boolean",
"default": "false",
"description": "Experimental; enables opt-in dual-era HTTP and stdio support for MCP 2026-07-28 while legacy behavior remains the default."
},
{
"name": "MCP_RAW_EXEC_EXPERIMENTAL",
"format": "boolean",
"default": "false",
"description": "Experimental second gate for raw EasyEDA runtime execution; requires BRIDGE_RAW_EXEC_ENABLED."
},
{
"name": "BRIDGE_HOST",
"format": "string",
"default": "127.0.0.1",
"description": "Bridge WebSocket host for EasyEDA Pro connection"
},
{
"name": "BRIDGE_PORT",
"format": "number",
"default": "49620",
"description": "Bridge primary port"
},
{
"name": "BRIDGE_PORT_SCAN",
"format": "string",
"default": "49620-49629",
"description": "Port scan specification (comma-separated ports or ranges)"
},
{
"name": "BRIDGE_TIMEOUT_MS",
"format": "number",
"default": "15000",
"description": "Bridge call timeout in ms"
},
{
"name": "BRIDGE_HEARTBEAT_MS",
"format": "number",
"default": "10000",
"description": "Bridge heartbeat interval in ms"
},
{
"name": "BRIDGE_WAIT_FOR_EDA_MS",
"format": "number",
"default": "30000",
"description": "How long to wait for EasyEDA Pro to become available on startup (ms)"
},
{
"name": "BRIDGE_MAX_PAYLOAD_SIZE",
"format": "number",
"default": "1048576",
"description": "Max bridge payload size in bytes"
},
{
"name": "BRIDGE_TOKEN",
"format": "string",
"description": "Session token for extension auth"
},
{
"name": "EASYEDA_DEV_BRIDGE",
"format": "boolean",
"default": "false",
"description": "Enable EasyEDA dev bridge mode"
},
{
"name": "BRIDGE_RAW_EXEC_ENABLED",
"format": "boolean",
"default": "false",
"description": "Experimental first gate for raw EasyEDA runtime execution; requires MCP_RAW_EXEC_EXPERIMENTAL."
},
{
"name": "DATA_DIR",
"format": "filepath",
"description": "Base directory for writable local state; defaults beneath the operating-system user home directory.",
"placeholder": "Defaults to the operating-system user home directory under .easyeda-mcp-pro."
},
{
"name": "SQLITE_PATH",
"format": "filepath",
"description": "SQLite database path; derived from DATA_DIR unless explicitly configured.",
"placeholder": "Derived from DATA_DIR as easyeda-mcp-pro.sqlite unless explicitly configured."
},
{
"name": "ARTIFACT_DIR",
"format": "filepath",
"description": "Artifact export directory; derived from DATA_DIR unless explicitly configured.",
"placeholder": "Derived from DATA_DIR as artifacts unless explicitly configured."
},
{
"name": "CACHE_DIR",
"format": "filepath",
"description": "Cache directory; derived from DATA_DIR unless explicitly configured.",
"placeholder": "Derived from DATA_DIR as cache unless explicitly configured."
},
{
"name": "AI_PROVIDER",
"format": "string",
"choices": [
"none",
"anthropic",
"openai",
"openrouter",
"local"
],
"default": "none",
"description": "Reserved; currently non-functional: no in-process AI provider client is invoked."
},
{
"name": "AI_MODEL",
"format": "string",
"description": "Reserved; currently non-functional: no model is selected or invoked."
},
{
"name": "AI_API_KEY",
"format": "string",
"description": "Reserved; currently non-functional: do not supply credentials because no provider client consumes them."
},
{
"name": "AI_MAX_TOKENS",
"format": "number",
"default": "8000",
"description": "Reserved; currently non-functional: retained only for future provider compatibility."
},
{
"name": "AI_TIMEOUT_MS",
"format": "number",
"default": "60000",
"description": "Reserved; currently non-functional: retained only for future provider compatibility."
},
{
"name": "AI_ALLOW_DESIGN_MUTATIONS",
"format": "boolean",
"default": "false",
"description": "Reserved; currently non-functional: cannot enable AI-originated design mutation."
},
{
"name": "JLCPCB_MODE",
"format": "string",
"choices": [
"disabled",
"mock",
"approved_api"
],
"default": "disabled",
"description": "JLCPCB API mode (disabled, mock, approved_api)"
},
{
"name": "JLCPCB_CLIENT_ID",
"format": "string",
"description": "JLCPCB API client identifier."
},
{
"name": "JLCPCB_CLIENT_SECRET",
"format": "string",
"description": "JLCPCB API client secret"
},
{
"name": "JLCPCB_API_BASE_URL",
"format": "string",
"default": "https://api.jlcpcb.com",
"description": "JLCPCB API base URL"
},
{
"name": "JLCPCB_ENABLE_ORDERING",
"format": "boolean",
"default": "false",
"description": "Enable JLCPCB ordering"
},
{
"name": "JLCSEARCH_ENABLED",
"format": "boolean",
"default": "true",
"description": "Enable LCSC component search"
},
{
"name": "JLCSEARCH_BASE_URL",
"format": "string",
"default": "https://jlcsearch.tscircuit.com",
"description": "LCSC search API base URL"
},
{
"name": "LCSC_API_KEY",
"format": "string",
"description": "LCSC API key"
},
{
"name": "KEYLESS_SOURCING_ENABLED",
"format": "boolean",
"default": "true",
"description": "Allow supported public keyless component-sourcing fallbacks when vendor credentials are unavailable."
},
{
"name": "SOURCING_CACHE_TTL_SECONDS",
"format": "number",
"default": "21600",
"description": "Component-sourcing cache lifetime in seconds (0 disables cache reuse)."
},
{
"name": "VENDOR_MIN_REQUEST_INTERVAL_MS",
"format": "number",
"default": "150",
"description": "Minimum delay in milliseconds between outbound requests to the same sourcing vendor."
},
{
"name": "MOUSER_ENABLED",
"format": "boolean",
"default": "false",
"description": "Enable Mouser integration"
},
{
"name": "MOUSER_API_KEY",
"format": "string",
"description": "Mouser API key"
},
{
"name": "MOUSER_API_BASE_URL",
"format": "string",
"default": "https://api.mouser.com",
"description": "Mouser API base URL"
},
{
"name": "DIGIKEY_ENABLED",
"format": "boolean",
"default": "false",
"description": "Enable DigiKey integration"
},
{
"name": "DIGIKEY_CLIENT_ID",
"format": "string",
"description": "DigiKey OAuth2 client identifier."
},
{
"name": "DIGIKEY_CLIENT_SECRET",
"format": "string",
"description": "DigiKey OAuth2 client secret"
},
{
"name": "DIGIKEY_SANDBOX",
"format": "boolean",
"default": "true",
"description": "Use DigiKey sandbox environment"
},
{
"name": "DIGIKEY_LOCALE",
"format": "string",
"default": "en-US",
"description": "DigiKey locale"
},
{
"name": "DIGIKEY_CURRENCY",
"format": "string",
"default": "USD",
"description": "DigiKey pricing currency"
},
{
"name": "OAUTH_ENABLED",
"format": "boolean",
"default": "false",
"description": "Enable OAuth for HTTP mode"
},
{
"name": "OAUTH_ISSUER",
"format": "string",
"description": "Expected OAuth token issuer"
},
{
"name": "OAUTH_AUDIENCE",
"format": "string",
"default": "easyeda-mcp-pro",
"description": "Expected OAuth token audience"
},
{
"name": "OAUTH_JWKS_URI",
"format": "string",
"description": "JWKS endpoint for token signature validation"
},
{
"name": "OAUTH_REQUIRED_SCOPES",
"format": "string",
"default": "easyeda:read",
"description": "Required OAuth token scope"
},
{
"name": "OTEL_ENABLED",
"format": "boolean",
"default": "false",
"description": "Reserved; currently non-functional: no OTLP exporter is started."
},
{
"name": "OTEL_SERVICE_NAME",
"format": "string",
"default": "easyeda-mcp-pro",
"description": "Reserved; currently non-functional: retained for a future OTLP exporter."
},
{
"name": "OTEL_EXPORTER_OTLP_ENDPOINT",
"format": "string",
"description": "Reserved; currently non-functional: retained for a future OTLP exporter."
},
{
"name": "TRACE_SAMPLE_RATE",
"format": "number",
"default": "1",
"description": "Reserved; currently non-functional: no OTLP traces are emitted."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": [
"-y",
"easyeda-mcp-pro@1.6.0"
],
"env": {
"NODE_ENV": "<YOUR_NODE_ENV>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"TOOL_PROFILE": "<YOUR_TOOL_PROFILE>",
"TOOL_SCOPES": "<YOUR_TOOL_SCOPES>",
"MCP_PROTOCOL_VERSION": "<YOUR_MCP_PROTOCOL_VERSION>",
"MCP_BRIDGE_BACKEND": "<YOUR_MCP_BRIDGE_BACKEND>",
"MCP_REMOTE_SESSION_ID": "<YOUR_MCP_REMOTE_SESSION_ID>",
"TRANSPORT": "<YOUR_TRANSPORT>",
"HTTP_HOST": "<YOUR_HTTP_HOST>",
"HTTP_PORT": "<YOUR_HTTP_PORT>",
"HTTP_AUTH_DISABLED": "<YOUR_HTTP_AUTH_DISABLED>",
"HTTP_RATE_LIMIT_MAX": "<YOUR_HTTP_RATE_LIMIT_MAX>",
"CORS_ORIGIN": "<YOUR_CORS_ORIGIN>",
"ALLOWED_ORIGINS": "<YOUR_ALLOWED_ORIGINS>",
"MCP_TASKS_ENABLED": "<YOUR_MCP_TASKS_ENABLED>",
"MCP_APPS_ENABLED": "<YOUR_MCP_APPS_ENABLED>",
"MCP_SKILLS_ENABLED": "<YOUR_MCP_SKILLS_ENABLED>",
"MCP_V2_EXPERIMENTAL": "<YOUR_MCP_V2_EXPERIMENTAL>",
"MCP_RAW_EXEC_EXPERIMENTAL": "<YOUR_MCP_RAW_EXEC_EXPERIMENTAL>",
"BRIDGE_HOST": "<YOUR_BRIDGE_HOST>",
"BRIDGE_PORT": "<YOUR_BRIDGE_PORT>",
"BRIDGE_PORT_SCAN": "<YOUR_BRIDGE_PORT_SCAN>",
"BRIDGE_TIMEOUT_MS": "<YOUR_BRIDGE_TIMEOUT_MS>",
"BRIDGE_HEARTBEAT_MS": "<YOUR_BRIDGE_HEARTBEAT_MS>",
"BRIDGE_WAIT_FOR_EDA_MS": "<YOUR_BRIDGE_WAIT_FOR_EDA_MS>",
"BRIDGE_MAX_PAYLOAD_SIZE": "<YOUR_BRIDGE_MAX_PAYLOAD_SIZE>",
"BRIDGE_TOKEN": "<YOUR_BRIDGE_TOKEN>",
"EASYEDA_DEV_BRIDGE": "<YOUR_EASYEDA_DEV_BRIDGE>",
"BRIDGE_RAW_EXEC_ENABLED": "<YOUR_BRIDGE_RAW_EXEC_ENABLED>",
"DATA_DIR": "<YOUR_DATA_DIR>",
"SQLITE_PATH": "<YOUR_SQLITE_PATH>",
"ARTIFACT_DIR": "<YOUR_ARTIFACT_DIR>",
"CACHE_DIR": "<YOUR_CACHE_DIR>",
"AI_PROVIDER": "<YOUR_AI_PROVIDER>",
"AI_MODEL": "<YOUR_AI_MODEL>",
"AI_API_KEY": "<YOUR_AI_API_KEY>",
"AI_MAX_TOKENS": "<YOUR_AI_MAX_TOKENS>",
"AI_TIMEOUT_MS": "<YOUR_AI_TIMEOUT_MS>",
"AI_ALLOW_DESIGN_MUTATIONS": "<YOUR_AI_ALLOW_DESIGN_MUTATIONS>",
"JLCPCB_MODE": "<YOUR_JLCPCB_MODE>",
"JLCPCB_CLIENT_ID": "<YOUR_JLCPCB_CLIENT_ID>",
"JLCPCB_CLIENT_SECRET": "<YOUR_JLCPCB_CLIENT_SECRET>",
"JLCPCB_API_BASE_URL": "<YOUR_JLCPCB_API_BASE_URL>",
"JLCPCB_ENABLE_ORDERING": "<YOUR_JLCPCB_ENABLE_ORDERING>",
"JLCSEARCH_ENABLED": "<YOUR_JLCSEARCH_ENABLED>",
"JLCSEARCH_BASE_URL": "<YOUR_JLCSEARCH_BASE_URL>",
"LCSC_API_KEY": "<YOUR_LCSC_API_KEY>",
"KEYLESS_SOURCING_ENABLED": "<YOUR_KEYLESS_SOURCING_ENABLED>",
"SOURCING_CACHE_TTL_SECONDS": "<YOUR_SOURCING_CACHE_TTL_SECONDS>",
"VENDOR_MIN_REQUEST_INTERVAL_MS": "<YOUR_VENDOR_MIN_REQUEST_INTERVAL_MS>",
"MOUSER_ENABLED": "<YOUR_MOUSER_ENABLED>",
"MOUSER_API_KEY": "<YOUR_MOUSER_API_KEY>",
"MOUSER_API_BASE_URL": "<YOUR_MOUSER_API_BASE_URL>",
"DIGIKEY_ENABLED": "<YOUR_DIGIKEY_ENABLED>",
"DIGIKEY_CLIENT_ID": "<YOUR_DIGIKEY_CLIENT_ID>",
"DIGIKEY_CLIENT_SECRET": "<YOUR_DIGIKEY_CLIENT_SECRET>",
"DIGIKEY_SANDBOX": "<YOUR_DIGIKEY_SANDBOX>",
"DIGIKEY_LOCALE": "<YOUR_DIGIKEY_LOCALE>",
"DIGIKEY_CURRENCY": "<YOUR_DIGIKEY_CURRENCY>",
"OAUTH_ENABLED": "<YOUR_OAUTH_ENABLED>",
"OAUTH_ISSUER": "<YOUR_OAUTH_ISSUER>",
"OAUTH_AUDIENCE": "<YOUR_OAUTH_AUDIENCE>",
"OAUTH_JWKS_URI": "<YOUR_OAUTH_JWKS_URI>",
"OAUTH_REQUIRED_SCOPES": "<YOUR_OAUTH_REQUIRED_SCOPES>",
"OTEL_ENABLED": "<YOUR_OTEL_ENABLED>",
"OTEL_SERVICE_NAME": "<YOUR_OTEL_SERVICE_NAME>",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_OTEL_EXPORTER_OTLP_ENDPOINT>",
"TRACE_SAMPLE_RATE": "<YOUR_TRACE_SAMPLE_RATE>"
}
}
}
}Cline
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": [
"-y",
"easyeda-mcp-pro@1.6.0"
],
"env": {
"NODE_ENV": "<YOUR_NODE_ENV>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"TOOL_PROFILE": "<YOUR_TOOL_PROFILE>",
"TOOL_SCOPES": "<YOUR_TOOL_SCOPES>",
"MCP_PROTOCOL_VERSION": "<YOUR_MCP_PROTOCOL_VERSION>",
"MCP_BRIDGE_BACKEND": "<YOUR_MCP_BRIDGE_BACKEND>",
"MCP_REMOTE_SESSION_ID": "<YOUR_MCP_REMOTE_SESSION_ID>",
"TRANSPORT": "<YOUR_TRANSPORT>",
"HTTP_HOST": "<YOUR_HTTP_HOST>",
"HTTP_PORT": "<YOUR_HTTP_PORT>",
"HTTP_AUTH_DISABLED": "<YOUR_HTTP_AUTH_DISABLED>",
"HTTP_RATE_LIMIT_MAX": "<YOUR_HTTP_RATE_LIMIT_MAX>",
"CORS_ORIGIN": "<YOUR_CORS_ORIGIN>",
"ALLOWED_ORIGINS": "<YOUR_ALLOWED_ORIGINS>",
"MCP_TASKS_ENABLED": "<YOUR_MCP_TASKS_ENABLED>",
"MCP_APPS_ENABLED": "<YOUR_MCP_APPS_ENABLED>",
"MCP_SKILLS_ENABLED": "<YOUR_MCP_SKILLS_ENABLED>",
"MCP_V2_EXPERIMENTAL": "<YOUR_MCP_V2_EXPERIMENTAL>",
"MCP_RAW_EXEC_EXPERIMENTAL": "<YOUR_MCP_RAW_EXEC_EXPERIMENTAL>",
"BRIDGE_HOST": "<YOUR_BRIDGE_HOST>",
"BRIDGE_PORT": "<YOUR_BRIDGE_PORT>",
"BRIDGE_PORT_SCAN": "<YOUR_BRIDGE_PORT_SCAN>",
"BRIDGE_TIMEOUT_MS": "<YOUR_BRIDGE_TIMEOUT_MS>",
"BRIDGE_HEARTBEAT_MS": "<YOUR_BRIDGE_HEARTBEAT_MS>",
"BRIDGE_WAIT_FOR_EDA_MS": "<YOUR_BRIDGE_WAIT_FOR_EDA_MS>",
"BRIDGE_MAX_PAYLOAD_SIZE": "<YOUR_BRIDGE_MAX_PAYLOAD_SIZE>",
"BRIDGE_TOKEN": "<YOUR_BRIDGE_TOKEN>",
"EASYEDA_DEV_BRIDGE": "<YOUR_EASYEDA_DEV_BRIDGE>",
"BRIDGE_RAW_EXEC_ENABLED": "<YOUR_BRIDGE_RAW_EXEC_ENABLED>",
"DATA_DIR": "<YOUR_DATA_DIR>",
"SQLITE_PATH": "<YOUR_SQLITE_PATH>",
"ARTIFACT_DIR": "<YOUR_ARTIFACT_DIR>",
"CACHE_DIR": "<YOUR_CACHE_DIR>",
"AI_PROVIDER": "<YOUR_AI_PROVIDER>",
"AI_MODEL": "<YOUR_AI_MODEL>",
"AI_API_KEY": "<YOUR_AI_API_KEY>",
"AI_MAX_TOKENS": "<YOUR_AI_MAX_TOKENS>",
"AI_TIMEOUT_MS": "<YOUR_AI_TIMEOUT_MS>",
"AI_ALLOW_DESIGN_MUTATIONS": "<YOUR_AI_ALLOW_DESIGN_MUTATIONS>",
"JLCPCB_MODE": "<YOUR_JLCPCB_MODE>",
"JLCPCB_CLIENT_ID": "<YOUR_JLCPCB_CLIENT_ID>",
"JLCPCB_CLIENT_SECRET": "<YOUR_JLCPCB_CLIENT_SECRET>",
"JLCPCB_API_BASE_URL": "<YOUR_JLCPCB_API_BASE_URL>",
"JLCPCB_ENABLE_ORDERING": "<YOUR_JLCPCB_ENABLE_ORDERING>",
"JLCSEARCH_ENABLED": "<YOUR_JLCSEARCH_ENABLED>",
"JLCSEARCH_BASE_URL": "<YOUR_JLCSEARCH_BASE_URL>",
"LCSC_API_KEY": "<YOUR_LCSC_API_KEY>",
"KEYLESS_SOURCING_ENABLED": "<YOUR_KEYLESS_SOURCING_ENABLED>",
"SOURCING_CACHE_TTL_SECONDS": "<YOUR_SOURCING_CACHE_TTL_SECONDS>",
"VENDOR_MIN_REQUEST_INTERVAL_MS": "<YOUR_VENDOR_MIN_REQUEST_INTERVAL_MS>",
"MOUSER_ENABLED": "<YOUR_MOUSER_ENABLED>",
"MOUSER_API_KEY": "<YOUR_MOUSER_API_KEY>",
"MOUSER_API_BASE_URL": "<YOUR_MOUSER_API_BASE_URL>",
"DIGIKEY_ENABLED": "<YOUR_DIGIKEY_ENABLED>",
"DIGIKEY_CLIENT_ID": "<YOUR_DIGIKEY_CLIENT_ID>",
"DIGIKEY_CLIENT_SECRET": "<YOUR_DIGIKEY_CLIENT_SECRET>",
"DIGIKEY_SANDBOX": "<YOUR_DIGIKEY_SANDBOX>",
"DIGIKEY_LOCALE": "<YOUR_DIGIKEY_LOCALE>",
"DIGIKEY_CURRENCY": "<YOUR_DIGIKEY_CURRENCY>",
"OAUTH_ENABLED": "<YOUR_OAUTH_ENABLED>",
"OAUTH_ISSUER": "<YOUR_OAUTH_ISSUER>",
"OAUTH_AUDIENCE": "<YOUR_OAUTH_AUDIENCE>",
"OAUTH_JWKS_URI": "<YOUR_OAUTH_JWKS_URI>",
"OAUTH_REQUIRED_SCOPES": "<YOUR_OAUTH_REQUIRED_SCOPES>",
"OTEL_ENABLED": "<YOUR_OTEL_ENABLED>",
"OTEL_SERVICE_NAME": "<YOUR_OTEL_SERVICE_NAME>",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_OTEL_EXPORTER_OTLP_ENDPOINT>",
"TRACE_SAMPLE_RATE": "<YOUR_TRACE_SAMPLE_RATE>"
}
}
}
}VS Code
{
"servers": {
"easyeda-mcp-pro": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"easyeda-mcp-pro@1.6.0"
],
"env": {
"NODE_ENV": "<YOUR_NODE_ENV>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"TOOL_PROFILE": "<YOUR_TOOL_PROFILE>",
"TOOL_SCOPES": "<YOUR_TOOL_SCOPES>",
"MCP_PROTOCOL_VERSION": "<YOUR_MCP_PROTOCOL_VERSION>",
"MCP_BRIDGE_BACKEND": "<YOUR_MCP_BRIDGE_BACKEND>",
"MCP_REMOTE_SESSION_ID": "<YOUR_MCP_REMOTE_SESSION_ID>",
"TRANSPORT": "<YOUR_TRANSPORT>",
"HTTP_HOST": "<YOUR_HTTP_HOST>",
"HTTP_PORT": "<YOUR_HTTP_PORT>",
"HTTP_AUTH_DISABLED": "<YOUR_HTTP_AUTH_DISABLED>",
"HTTP_RATE_LIMIT_MAX": "<YOUR_HTTP_RATE_LIMIT_MAX>",
"CORS_ORIGIN": "<YOUR_CORS_ORIGIN>",
"ALLOWED_ORIGINS": "<YOUR_ALLOWED_ORIGINS>",
"MCP_TASKS_ENABLED": "<YOUR_MCP_TASKS_ENABLED>",
"MCP_APPS_ENABLED": "<YOUR_MCP_APPS_ENABLED>",
"MCP_SKILLS_ENABLED": "<YOUR_MCP_SKILLS_ENABLED>",
"MCP_V2_EXPERIMENTAL": "<YOUR_MCP_V2_EXPERIMENTAL>",
"MCP_RAW_EXEC_EXPERIMENTAL": "<YOUR_MCP_RAW_EXEC_EXPERIMENTAL>",
"BRIDGE_HOST": "<YOUR_BRIDGE_HOST>",
"BRIDGE_PORT": "<YOUR_BRIDGE_PORT>",
"BRIDGE_PORT_SCAN": "<YOUR_BRIDGE_PORT_SCAN>",
"BRIDGE_TIMEOUT_MS": "<YOUR_BRIDGE_TIMEOUT_MS>",
"BRIDGE_HEARTBEAT_MS": "<YOUR_BRIDGE_HEARTBEAT_MS>",
"BRIDGE_WAIT_FOR_EDA_MS": "<YOUR_BRIDGE_WAIT_FOR_EDA_MS>",
"BRIDGE_MAX_PAYLOAD_SIZE": "<YOUR_BRIDGE_MAX_PAYLOAD_SIZE>",
"BRIDGE_TOKEN": "<YOUR_BRIDGE_TOKEN>",
"EASYEDA_DEV_BRIDGE": "<YOUR_EASYEDA_DEV_BRIDGE>",
"BRIDGE_RAW_EXEC_ENABLED": "<YOUR_BRIDGE_RAW_EXEC_ENABLED>",
"DATA_DIR": "<YOUR_DATA_DIR>",
"SQLITE_PATH": "<YOUR_SQLITE_PATH>",
"ARTIFACT_DIR": "<YOUR_ARTIFACT_DIR>",
"CACHE_DIR": "<YOUR_CACHE_DIR>",
"AI_PROVIDER": "<YOUR_AI_PROVIDER>",
"AI_MODEL": "<YOUR_AI_MODEL>",
"AI_API_KEY": "<YOUR_AI_API_KEY>",
"AI_MAX_TOKENS": "<YOUR_AI_MAX_TOKENS>",
"AI_TIMEOUT_MS": "<YOUR_AI_TIMEOUT_MS>",
"AI_ALLOW_DESIGN_MUTATIONS": "<YOUR_AI_ALLOW_DESIGN_MUTATIONS>",
"JLCPCB_MODE": "<YOUR_JLCPCB_MODE>",
"JLCPCB_CLIENT_ID": "<YOUR_JLCPCB_CLIENT_ID>",
"JLCPCB_CLIENT_SECRET": "<YOUR_JLCPCB_CLIENT_SECRET>",
"JLCPCB_API_BASE_URL": "<YOUR_JLCPCB_API_BASE_URL>",
"JLCPCB_ENABLE_ORDERING": "<YOUR_JLCPCB_ENABLE_ORDERING>",
"JLCSEARCH_ENABLED": "<YOUR_JLCSEARCH_ENABLED>",
"JLCSEARCH_BASE_URL": "<YOUR_JLCSEARCH_BASE_URL>",
"LCSC_API_KEY": "<YOUR_LCSC_API_KEY>",
"KEYLESS_SOURCING_ENABLED": "<YOUR_KEYLESS_SOURCING_ENABLED>",
"SOURCING_CACHE_TTL_SECONDS": "<YOUR_SOURCING_CACHE_TTL_SECONDS>",
"VENDOR_MIN_REQUEST_INTERVAL_MS": "<YOUR_VENDOR_MIN_REQUEST_INTERVAL_MS>",
"MOUSER_ENABLED": "<YOUR_MOUSER_ENABLED>",
"MOUSER_API_KEY": "<YOUR_MOUSER_API_KEY>",
"MOUSER_API_BASE_URL": "<YOUR_MOUSER_API_BASE_URL>",
"DIGIKEY_ENABLED": "<YOUR_DIGIKEY_ENABLED>",
"DIGIKEY_CLIENT_ID": "<YOUR_DIGIKEY_CLIENT_ID>",
"DIGIKEY_CLIENT_SECRET": "<YOUR_DIGIKEY_CLIENT_SECRET>",
"DIGIKEY_SANDBOX": "<YOUR_DIGIKEY_SANDBOX>",
"DIGIKEY_LOCALE": "<YOUR_DIGIKEY_LOCALE>",
"DIGIKEY_CURRENCY": "<YOUR_DIGIKEY_CURRENCY>",
"OAUTH_ENABLED": "<YOUR_OAUTH_ENABLED>",
"OAUTH_ISSUER": "<YOUR_OAUTH_ISSUER>",
"OAUTH_AUDIENCE": "<YOUR_OAUTH_AUDIENCE>",
"OAUTH_JWKS_URI": "<YOUR_OAUTH_JWKS_URI>",
"OAUTH_REQUIRED_SCOPES": "<YOUR_OAUTH_REQUIRED_SCOPES>",
"OTEL_ENABLED": "<YOUR_OTEL_ENABLED>",
"OTEL_SERVICE_NAME": "<YOUR_OTEL_SERVICE_NAME>",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_OTEL_EXPORTER_OTLP_ENDPOINT>",
"TRACE_SAMPLE_RATE": "<YOUR_TRACE_SAMPLE_RATE>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": [
"-y",
"easyeda-mcp-pro@1.6.0"
],
"env": {
"NODE_ENV": "<YOUR_NODE_ENV>",
"LOG_LEVEL": "<YOUR_LOG_LEVEL>",
"TOOL_PROFILE": "<YOUR_TOOL_PROFILE>",
"TOOL_SCOPES": "<YOUR_TOOL_SCOPES>",
"MCP_PROTOCOL_VERSION": "<YOUR_MCP_PROTOCOL_VERSION>",
"MCP_BRIDGE_BACKEND": "<YOUR_MCP_BRIDGE_BACKEND>",
"MCP_REMOTE_SESSION_ID": "<YOUR_MCP_REMOTE_SESSION_ID>",
"TRANSPORT": "<YOUR_TRANSPORT>",
"HTTP_HOST": "<YOUR_HTTP_HOST>",
"HTTP_PORT": "<YOUR_HTTP_PORT>",
"HTTP_AUTH_DISABLED": "<YOUR_HTTP_AUTH_DISABLED>",
"HTTP_RATE_LIMIT_MAX": "<YOUR_HTTP_RATE_LIMIT_MAX>",
"CORS_ORIGIN": "<YOUR_CORS_ORIGIN>",
"ALLOWED_ORIGINS": "<YOUR_ALLOWED_ORIGINS>",
"MCP_TASKS_ENABLED": "<YOUR_MCP_TASKS_ENABLED>",
"MCP_APPS_ENABLED": "<YOUR_MCP_APPS_ENABLED>",
"MCP_SKILLS_ENABLED": "<YOUR_MCP_SKILLS_ENABLED>",
"MCP_V2_EXPERIMENTAL": "<YOUR_MCP_V2_EXPERIMENTAL>",
"MCP_RAW_EXEC_EXPERIMENTAL": "<YOUR_MCP_RAW_EXEC_EXPERIMENTAL>",
"BRIDGE_HOST": "<YOUR_BRIDGE_HOST>",
"BRIDGE_PORT": "<YOUR_BRIDGE_PORT>",
"BRIDGE_PORT_SCAN": "<YOUR_BRIDGE_PORT_SCAN>",
"BRIDGE_TIMEOUT_MS": "<YOUR_BRIDGE_TIMEOUT_MS>",
"BRIDGE_HEARTBEAT_MS": "<YOUR_BRIDGE_HEARTBEAT_MS>",
"BRIDGE_WAIT_FOR_EDA_MS": "<YOUR_BRIDGE_WAIT_FOR_EDA_MS>",
"BRIDGE_MAX_PAYLOAD_SIZE": "<YOUR_BRIDGE_MAX_PAYLOAD_SIZE>",
"BRIDGE_TOKEN": "<YOUR_BRIDGE_TOKEN>",
"EASYEDA_DEV_BRIDGE": "<YOUR_EASYEDA_DEV_BRIDGE>",
"BRIDGE_RAW_EXEC_ENABLED": "<YOUR_BRIDGE_RAW_EXEC_ENABLED>",
"DATA_DIR": "<YOUR_DATA_DIR>",
"SQLITE_PATH": "<YOUR_SQLITE_PATH>",
"ARTIFACT_DIR": "<YOUR_ARTIFACT_DIR>",
"CACHE_DIR": "<YOUR_CACHE_DIR>",
"AI_PROVIDER": "<YOUR_AI_PROVIDER>",
"AI_MODEL": "<YOUR_AI_MODEL>",
"AI_API_KEY": "<YOUR_AI_API_KEY>",
"AI_MAX_TOKENS": "<YOUR_AI_MAX_TOKENS>",
"AI_TIMEOUT_MS": "<YOUR_AI_TIMEOUT_MS>",
"AI_ALLOW_DESIGN_MUTATIONS": "<YOUR_AI_ALLOW_DESIGN_MUTATIONS>",
"JLCPCB_MODE": "<YOUR_JLCPCB_MODE>",
"JLCPCB_CLIENT_ID": "<YOUR_JLCPCB_CLIENT_ID>",
"JLCPCB_CLIENT_SECRET": "<YOUR_JLCPCB_CLIENT_SECRET>",
"JLCPCB_API_BASE_URL": "<YOUR_JLCPCB_API_BASE_URL>",
"JLCPCB_ENABLE_ORDERING": "<YOUR_JLCPCB_ENABLE_ORDERING>",
"JLCSEARCH_ENABLED": "<YOUR_JLCSEARCH_ENABLED>",
"JLCSEARCH_BASE_URL": "<YOUR_JLCSEARCH_BASE_URL>",
"LCSC_API_KEY": "<YOUR_LCSC_API_KEY>",
"KEYLESS_SOURCING_ENABLED": "<YOUR_KEYLESS_SOURCING_ENABLED>",
"SOURCING_CACHE_TTL_SECONDS": "<YOUR_SOURCING_CACHE_TTL_SECONDS>",
"VENDOR_MIN_REQUEST_INTERVAL_MS": "<YOUR_VENDOR_MIN_REQUEST_INTERVAL_MS>",
"MOUSER_ENABLED": "<YOUR_MOUSER_ENABLED>",
"MOUSER_API_KEY": "<YOUR_MOUSER_API_KEY>",
"MOUSER_API_BASE_URL": "<YOUR_MOUSER_API_BASE_URL>",
"DIGIKEY_ENABLED": "<YOUR_DIGIKEY_ENABLED>",
"DIGIKEY_CLIENT_ID": "<YOUR_DIGIKEY_CLIENT_ID>",
"DIGIKEY_CLIENT_SECRET": "<YOUR_DIGIKEY_CLIENT_SECRET>",
"DIGIKEY_SANDBOX": "<YOUR_DIGIKEY_SANDBOX>",
"DIGIKEY_LOCALE": "<YOUR_DIGIKEY_LOCALE>",
"DIGIKEY_CURRENCY": "<YOUR_DIGIKEY_CURRENCY>",
"OAUTH_ENABLED": "<YOUR_OAUTH_ENABLED>",
"OAUTH_ISSUER": "<YOUR_OAUTH_ISSUER>",
"OAUTH_AUDIENCE": "<YOUR_OAUTH_AUDIENCE>",
"OAUTH_JWKS_URI": "<YOUR_OAUTH_JWKS_URI>",
"OAUTH_REQUIRED_SCOPES": "<YOUR_OAUTH_REQUIRED_SCOPES>",
"OTEL_ENABLED": "<YOUR_OTEL_ENABLED>",
"OTEL_SERVICE_NAME": "<YOUR_OTEL_SERVICE_NAME>",
"OTEL_EXPORTER_OTLP_ENDPOINT": "<YOUR_OTEL_EXPORTER_OTLP_ENDPOINT>",
"TRACE_SAMPLE_RATE": "<YOUR_TRACE_SAMPLE_RATE>"
}
}
}
}Let your agent find its tools
Find servers like easyeda-mcp-pro from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.