Easyeda Mcp Pro について
Easyeda Mcp Proは、EasyEDA ProでのAI支援ハードウェア設計ワークフロー向けMCPサーバーです。WebSocketブリッジ拡張機能で接続し、回路図や基板の確認、BOM作業、各種チェック、製造用データの出力に対応するプロファイル別ツールを提供します。
主な機能
- 01回路図要素の確認と編集
- 02BOMの生成、検証、調達
- 03設計ルールと電気ルールの検査
- 04PCBの層と寸法の分析
- 05製造用ファイルの出力
- 06ブリッジとサーバー状態の診断
活用シーン
- 01AIアシスタントで回路図を確認する
- 02部品表を調達し内容を検証する
- 03製造前にPCBをチェックする
- 04ガーバーと実装用データを出力する
MCP 対応
MCPサーバーは、EasyEDA Proの設計データとワークフロー向けに、最大120個のプロファイル別ツールを公開します。WebSocketブリッジ拡張機能を介してアプリケーションに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y easyeda-mcp-proNODE_ENVEnvironment modeLOG_LEVELPino log levelTOOL_PROFILEActive tool profile (core, pro, full, dev, experimental)TOOL_SCOPESOptional comma- or space-separated capability scope allowlist; empty enables all scopes allowed by the active tool profile.MCP_PROTOCOL_VERSIONMCP protocol version stringMCP_BRIDGE_BACKENDBridge backend: local_bridge or experimental remote_relayMCP_REMOTE_SESSION_IDOptional fixed Remote Relay session id for the remote_relay backendTRANSPORTServer transport mode (stdio or http)HTTP_HOSTHTTP bind addressHTTP_PORTHTTP portHTTP_AUTH_DISABLEDシークレットDisable HTTP transport authenticationHTTP_RATE_LIMIT_MAXMax requests per minute per IPCORS_ORIGINAllowed CORS origin for HTTP transportALLOWED_ORIGINSComma-separated list of allowed origins for HTTP transport (use * for wildcard)MCP_TASKS_ENABLEDReserved; currently non-functional: parsed for compatibility, but the server does not advertise or execute MCP Tasks.MCP_APPS_ENABLEDExperimental; enables sandboxed read-only MCP Apps project review UI; off by default.MCP_SKILLS_ENABLEDExperimental; serves packaged read-oriented Skills over MCP; off by default.MCP_V2_EXPERIMENTALExperimental; enables opt-in dual-era HTTP and stdio support for MCP 2026-07-28 while legacy behavior remains the default.MCP_RAW_EXEC_EXPERIMENTALExperimental second gate for raw EasyEDA runtime execution; requires BRIDGE_RAW_EXEC_ENABLED.BRIDGE_HOSTBridge WebSocket host for EasyEDA Pro connectionBRIDGE_PORTBridge primary portBRIDGE_PORT_SCANPort scan specification (comma-separated ports or ranges)BRIDGE_TIMEOUT_MSBridge call timeout in msBRIDGE_HEARTBEAT_MSBridge heartbeat interval in msBRIDGE_WAIT_FOR_EDA_MSHow long to wait for EasyEDA Pro to become available on startup (ms)BRIDGE_MAX_PAYLOAD_SIZEMax bridge payload size in bytesBRIDGE_TOKENシークレットSession token for extension authEASYEDA_DEV_BRIDGEEnable EasyEDA dev bridge modeBRIDGE_RAW_EXEC_ENABLEDExperimental first gate for raw EasyEDA runtime execution; requires MCP_RAW_EXEC_EXPERIMENTAL.DATA_DIRBase directory for writable local state; defaults beneath the operating-system user home directory.SQLITE_PATHSQLite database path; derived from DATA_DIR unless explicitly configured.ARTIFACT_DIRArtifact export directory; derived from DATA_DIR unless explicitly configured.CACHE_DIRCache directory; derived from DATA_DIR unless explicitly configured.AI_PROVIDERReserved; currently non-functional: no in-process AI provider client is invoked.AI_MODELReserved; currently non-functional: no model is selected or invoked.AI_API_KEYシークレットReserved; currently non-functional: do not supply credentials because no provider client consumes them.AI_MAX_TOKENSシークレットReserved; currently non-functional: retained only for future provider compatibility.AI_TIMEOUT_MSReserved; currently non-functional: retained only for future provider compatibility.AI_ALLOW_DESIGN_MUTATIONSReserved; currently non-functional: cannot enable AI-originated design mutation.JLCPCB_MODEJLCPCB API mode (disabled, mock, approved_api)JLCPCB_CLIENT_IDJLCPCB API client identifier.JLCPCB_CLIENT_SECRETシークレットJLCPCB API client secretJLCPCB_API_BASE_URLJLCPCB API base URLJLCPCB_ENABLE_ORDERINGEnable JLCPCB orderingJLCSEARCH_ENABLEDEnable LCSC component searchJLCSEARCH_BASE_URLLCSC search API base URLLCSC_API_KEYシークレットLCSC API keyKEYLESS_SOURCING_ENABLEDシークレットAllow supported public keyless component-sourcing fallbacks when vendor credentials are unavailable.SOURCING_CACHE_TTL_SECONDSComponent-sourcing cache lifetime in seconds (0 disables cache reuse).VENDOR_MIN_REQUEST_INTERVAL_MSMinimum delay in milliseconds between outbound requests to the same sourcing vendor.MOUSER_ENABLEDEnable Mouser integrationMOUSER_API_KEYシークレットMouser API keyMOUSER_API_BASE_URLMouser API base URLDIGIKEY_ENABLEDシークレットEnable DigiKey integrationDIGIKEY_CLIENT_IDシークレットDigiKey OAuth2 client identifier.DIGIKEY_CLIENT_SECRETシークレットDigiKey OAuth2 client secretDIGIKEY_SANDBOXシークレットUse DigiKey sandbox environmentDIGIKEY_LOCALEシークレットDigiKey localeDIGIKEY_CURRENCYシークレットDigiKey pricing currencyOAUTH_ENABLEDシークレットEnable OAuth for HTTP modeOAUTH_ISSUERシークレットExpected OAuth token issuerOAUTH_AUDIENCEシークレットExpected OAuth token audienceOAUTH_JWKS_URIシークレットJWKS endpoint for token signature validationOAUTH_REQUIRED_SCOPESシークレットRequired OAuth token scopeOTEL_ENABLEDReserved; currently non-functional: no OTLP exporter is started.OTEL_SERVICE_NAMEReserved; currently non-functional: retained for a future OTLP exporter.OTEL_EXPORTER_OTLP_ENDPOINTReserved; currently non-functional: retained for a future OTLP exporter.TRACE_SAMPLE_RATEReserved; currently non-functional: no OTLP traces are emitted.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
easyeda-mcp-pro
EasyEDA Pro 向けの本番品質の MCP サーバーです。安全な PCB 設計の検査、BOM の部品調達、製造用データのエクスポート、AI によるハードウェアレビューを提供します。
ロードマップ · OpenSSF のエビデンス · セキュリティ保証ケース
コンプライアンス関連ドキュメント: サードパーティに関する通知 · ベンダー規約とサポート対象外のワークフロー · リモート MCP モード
信頼性とサプライチェーン
easyeda-mcp-pro では、過去の OpenSSF Best Practices のエビデンスを docs/OPENSSF_BEST_PRACTICES.md に、セキュリティ保証ケースを docs/SECURITY_ASSURANCE_CASE.md に記録しています。ヘッダーのバッジが示すのは、現在のワークフローに基づくシグナルのみです。CI、生成ドキュメントのデプロイ、プロジェクトのセキュリティポリシー、OpenSSF Scorecard が含まれます。リリースの完全性に関するエビデンス(npm のプロベナンス、署名済みリリースの状況)は docs/RELEASE_VERIFICATION.md で追跡しています。カバレッジ、テスト分析、拡張機能バンドルのモニタリングについては docs/CODECOV_ANALYTICS.md に記載しています。
ライセンスに関する注意: このリポジトリは現在、OSI 承認のオープンソースライセンスではなく、PolyForm Noncommercial 1.0.0 の下でソースを公開しています。過去の OpenSSF エビデンスは監査履歴として保持しているものであり、現在 FLOSS ライセンスを採用していることを示すものとして扱ってはなりません。
クイックスタート
お気に入りのAIアシスタントやIDEにeasyeda-mcp-proをすばやくインストールして設定する方法です。
-
MCP クライアントを自動設定します:
npx easyeda-mcp-pro setup allClaude Desktop、Cursor、VS Code、Windsurf、Cline、Gemini、Zed などを検出して設定し、MCP サーバーを自動的に実行します。 (または、
npx easyeda-mcp-pro setup claudeのように、特定のクライアントを指定して実行します。) -
EasyEDA Pro ブリッジ拡張機能の場所を確認してインストールします:
npx easyeda-mcp-pro extension --open拡張機能パッケージ
easyeda-bridge-extension.eextが含まれるフォルダーを開きます。EasyEDA Pro → Settings → Extensions → Extension Managerからインポートしてください。 -
ブリッジに接続します: EasyEDA Pro で、メニューバーのMCP Bridge → Connectをクリックします。
高度な設定、手動での手順、特定のクライアントについては、インストールとクライアントの設定をご覧ください。
概要
easyeda-mcp-pro は、AI アシスタントと EasyEDA Pro のハードウェア設計ワークフローをつなぐModel Context Protocol(MCP)サーバーです。回路図の確認と編集、制御された EasyEDA Pro API 呼び出し、Personal Device のメタデータ、BOM 管理、設計ルールチェック、PCB ボード解析、製造用データのエクスポート、診断、サプライヤー連携のための、プロファイルで利用を制御できる最大120個の MCP ツールを公開します。
サーバーは WebSocket ブリッジ拡張機能を介して EasyEDA Pro に接続し、開いているプロジェクトデータにリアルタイムでアクセスできます。BOM の調達と価格確認のため、JLCPCB、LCSC、Mouser、DigiKey と連携します。
主な機能
| 分野 | できること |
|---|---|
| 回路図 | ネット/コンポーネントの一覧表示、検索とデバイスの配置、配線/プリミティブの編集 |
| BOM | 部品表の生成、検証、エクスポート、調達 |
| DRC/ERC | 設計ルールチェックと電気ルールチェックの実行 |
| ボード | レイヤー、スタックアップ、寸法、フィーチャーの確認 |
| エクスポート | ガーバーデータ、部品実装データ、PDF、ネットリストのエクスポート |
| 診断 | ヘルスチェック、ブリッジのステータス、API インベントリ、機能、自動テスト |
前提条件
- Node.js:Node.js 24.x が必要です。リポジトリの自動化処理では 24.22.1 に固定されています。
- pnpm:ローカル開発と自動化処理には、正確に 11.28.8 が必要です。
依存関係をインストールする前に、サポート対象のランタイムを準備してください。
nvm install 24.22.1
nvm use 24.22.1
corepack enable
corepack prepare [email protected] --activate
node scripts/check-runtime.mjs --require-pnpm
- EasyEDA Pro:付属のブリッジ拡張機能をインストールし、実行してください。
- サプライヤー連携の場合:JLCPCB、LCSC、Mouser、DigiKey の API 認証情報
インストールとクライアントの設定
安定版 v1 が公開されています。v1 より前のリリースからアップグレードする場合は、v1 への移行に従ってください。
easyeda-mcp-proは自動または手動で設定できます。
1. 自動設定(CLI)
CLI のセットアップでは、クライアントの設定ファイルを自動的に編集します。
# Configure all detected clients automatically
npx easyeda-mcp-pro setup all
# Or configure a specific client
npx easyeda-mcp-pro setup <client>
対応するクライアントキー:
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)
オプション:
--profile <name>:ツールプロファイルを指定します。指定可能な値:core(デフォルト)、pro、full、dev。 例:npx easyeda-mcp-pro setup cursor --profile full
2. 拡張機能のインストール
MCP サーバーを 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
EasyEDA Pro でのインストール手順:
- EasyEDA Pro を開きます。
- Settings → Extensions → Extension Manager に移動します。
- Import Extension をクリックし、
easyeda-bridge-extension.eextファイルを選択します。 - 拡張機能の Allow External Interaction が有効になっていることを確認します。
- インポートまたはアップグレードのたびに、EasyEDA Pro を完全に終了してから再起動します。Extension Manager の成功メッセージで確認できるのは、インストールされたパッケージであり、メモリ上ですでに実行中のディスパッチャーが置き換わったことではありません。
- MCP Bridge → Connect をクリックし、続いて MCP Bridge → Status をクリックして、実行中のディスパッチャーのビルド ID を確認します。再接続や拡張機能の無効化/有効化だけでは、インポートした更新は有効になりません。バージョンに依存する操作では、新しい動作を信頼する前に、アクティブなビルドが使用するパッケージと一致していることを確認してください。
3. クライアントの手動設定
クライアントを手動で設定する場合は、各設定ファイルに次の設定を追加してください:
🟣 Claude Desktop
設定ファイルのパス:
- 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
設定ファイルのパス: プロジェクト固有の .cursor/mcp.json またはグローバルの ~/.cursor/mcp.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
🟢 VS Code (GitHub Copilot)
設定ファイルのパス: %APPDATA%\Code\User\mcp.json(Windows)、~/Library/Application Support/Code/User/mcp.json(macOS)、または ~/.config/Code/User/mcp.json(Linux)
{
"servers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
🏄 Windsurf (Codeium)
設定ファイルのパス: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
🤖 Cline
設定ファイルのパス: Cline VS Code 拡張機能のグローバルストレージ(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
設定ファイルのパス: ~/.gemini/settings.json または ~/.gemini/config/mcp_config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
⚡ Zed Editor
設定ファイルのパス: ~/.config/zed/settings.json
{
"context_servers": {
"easyeda-mcp-pro": {
"command": {
"path": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"]
},
"settings": {}
}
}
}
🔄 Continue.dev
設定ファイルのパス: ~/.continue/config.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
👑 Amazon Q Developer
設定ファイルのパス: ~/.aws/amazonq/mcp.json
{
"mcpServers": {
"easyeda-mcp-pro": {
"command": "npx",
"args": ["-y", "easyeda-mcp-pro@latest"],
"env": {
"TOOL_PROFILE": "pro"
}
}
}
}
4. ソースからの実行(開発)
開発中、または変更したローカルビルドを実行する場合:
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
ローカルの開発ビルドを使用するようにクライアントを設定するには:
# Print instructions and local config block pointing to dist/index.js
node dist/index.js --setup-local
ローカル診断とヘルスチェック
環境とブリッジの接続状態は、いつでも診断できます:
pnpm doctor
以下を確認します:
- Node.js のバージョン互換性。
- 実行モード:ソースチェックアウト、インストール済みパッケージ、または本番環境のランタイム。
- CLI エントリのシバンと
.eext拡張機能パッケージのチェックサム。 - ブリッジポートの利用可否。注:MCP クライアントがサーバーを起動して EasyEDA Pro 拡張機能に接続するまで、ブリッジのステータスはオフラインと表示されます。
pnpm が必要なのはソースチェックアウトの場合のみで、リポジトリで指定されているバージョンと一致している必要があります。インストール済みパッケージや、本番環境のランタイム(セキュリティ強化された Docker イメージを含む)では pnpm は不要です。
Doctor は、必須ランタイムがサポート対象外の場合、設定が無効な場合、またはランタイムのアーティファクトが存在しないか破損している場合に、終了ステータス 1 を返します。ブリッジがオフラインであることだけの場合は、情報として扱われます。
設定
.env.example を .env にコピーして編集してください。すべての変数に安全なデフォルト値が設定されているため、必要な項目のみ設定してください。
ブール型の環境変数には厳密なリテラルを使用します。true / 1 で設定が有効になり、false / 0 で無効になります。大文字と小文字は区別せず、前後の空白は無視されます。yes、no、on、off、enabled、disabled、空文字列、スペルミスなど、それ以外の値を指定すると、起動時の検証に失敗し、該当する変数が報告されます。ドキュメントに記載されたデフォルト値を使用するには、変数を設定しないでください。
必須項目
| 変数 | デフォルト値 | 説明 |
|---|---|---|
NODE_ENV | development | 本番環境では production に設定します |
LOG_LEVEL | info | Pino のログレベル:trace、debug、info、warn、error、fatal、silent |
TOOL_PROFILE | core | ツールセット:core、pro、full、dev、experimental |
TOOL_SCOPES | empty | schematic:read,bom:read など、任意の機能許可リスト |
MCP_PROTOCOL_VERSION | 2025-11-25 | MCP プロトコルのバージョン文字列 |
MCP_BRIDGE_BACKEND | local_bridge | ブリッジのバックエンド:local_bridge または実験的な remote_relay |
MCP_REMOTE_SESSION_ID | empty | remote_relay バックエンドで使用する、任意の固定 Remote Relay セッション ID |
TRANSPORT | stdio | サーバーのトランスポート:stdio(デフォルト)または http |
Remote Relay の実験を行う場合は、MCP_BRIDGE_BACKEND=remote_relay を設定した後に npx easyeda-mcp-pro doctor --fix を実行してください。doctor の出力で、HTTP トランスポート、セッションの選択、OAuth、ループバック限定の開発用認証設定が検証されます。
ブリッジ(EasyEDA Pro 接続)
| 変数 | デフォルト値 | 説明 |
|---|---|---|
BRIDGE_HOST | 127.0.0.1 | ブリッジの WebSocket ホスト |
BRIDGE_PORT | 49620 | プライマリブリッジポート |
BRIDGE_PORT_SCAN | 49620-49629 | ポートスキャンの指定(カンマ区切り/範囲指定) |
BRIDGE_TIMEOUT_MS | 15000 | ブリッジ呼び出しのタイムアウト(ms) |
BRIDGE_HEARTBEAT_MS | 10000 | ハートビートの間隔(ms) |
BRIDGE_WAIT_FOR_EDA_MS | 30000 | 起動時に EasyEDA Pro を待機する時間(ms) |
BRIDGE_MAX_PAYLOAD_SIZE | 1048576 | ブリッジの最大ペイロードサイズ(バイト、デフォルトは 1 MiB) |
BRIDGE_TOKEN | '' | 拡張機能の認証に使用するセッショントークン |
BRIDGE_RAW_EXEC_ENABLED | false | EasyEDA ランタイムの生 JavaScript 実行を明示的に許可する最初のゲート |
MCP_RAW_EXEC_EXPERIMENTAL | false | easyeda_execute の登録に必要な、2 つ目の実験的ゲート |
ストレージ
| 変数 | デフォルト | 説明 |
|---|---|---|
DATA_DIR | ~/.easyeda-mcp-pro | 書き込み可能なローカル状態の基本ディレクトリ |
SQLITE_PATH | <DATA_DIR>/easyeda-mcp-pro.sqlite | SQLite データベースのパス |
ARTIFACT_DIR | <DATA_DIR>/artifacts | 成果物のエクスポート先ディレクトリ |
CACHE_DIR | <DATA_DIR>/cache | キャッシュディレクトリ |
ストレージのパスは 2 段階で解決されます。最初に DATA_DIR を解決し、その変数が明示的に指定されていない場合は、各サブパスを現在のオペレーティングシステムのネイティブなパス区切り文字を使って導出します。そのため、DATA_DIR のみを設定すると、デフォルトのデータベース、成果物、キャッシュの各パスがまとめて移動します。明示的な上書きはそれぞれ独立して適用され、指定された絶対パスまたは相対パスの意味を維持します。相対パスは MCP プロセスの作業ディレクトリを基準とします。これらの設定を変更しても、既存のデータは自動的に移行されません。
サプライヤー連携
認証情報を設定してサプライヤーを有効にします。すべてのサプライヤーはデフォルトで無効です。
- JLCPCB:
JLCPCB_MODE=approved_api+ クライアント ID/シークレット - LCSC:
JLCSEARCH_ENABLED=true(デフォルト。基本的な検索にはキーは不要です) - Mouser:
MOUSER_ENABLED=true+ API キー - DigiKey:
DIGIKEY_ENABLED=true+ OAuth2 クライアント ID/シークレット
共通の調達動作は、特定のベンダーとは独立して制御されます。
| 変数 | デフォルト | 説明 |
|---|---|---|
KEYLESS_SOURCING_ENABLED | true | 認証情報がない場合に、対応する公開のキー不要フォールバックを許可します |
SOURCING_CACHE_TTL_SECONDS | 21600 | 調達レスポンスを 6 時間キャッシュします(0 にするとキャッシュの再利用を無効にします) |
VENDOR_MIN_REQUEST_INTERVAL_MS | 150 | 同じ調達ベンダーへの送信リクエスト間に設ける最小遅延 |
予約済み AI 設定
現在、プロセス内の AI プロバイダークライアントは実装されていません。AI_* 変数は設定の互換性のために引き続き受け付けられますが、reserved として報告され、常に効果がありません。また、サーバーが設計データを AI プロバイダーに送信すると推測する根拠として使用してはなりません。API キーを指定しないでください。
| 変数 | デフォルト | 現在の動作 |
|---|---|---|
AI_PROVIDER | none | 予約済み。プロバイダークライアントは呼び出されません |
AI_MODEL | '' | 予約済み。モデルは選択されません |
AI_API_KEY | '' | 予約済み。認証情報を使用する機能はありません |
AI_MAX_TOKENS | 8000 | 互換性のための予約済み設定 |
AI_TIMEOUT_MS | 60000 | 互換性のための予約済み設定 |
AI_ALLOW_DESIGN_MUTATIONS | false | 予約済み。AI による設計変更を有効にすることはできません |
easyeda_get_feature_flags または easyeda_get_capabilities を使って、オプション設定の configured、effective、maturity の値を確認してください。
HTTP トランスポート
TRANSPORT=http を使用する場合:
| 変数 | デフォルト | 説明 |
|---|---|---|
HTTP_HOST | 127.0.0.1 | バインドアドレス。ループバック以外では OAuth が必要です |
HTTP_PORT | 3000 | ポート |
HTTP_AUTH_DISABLED | false | 本番環境以外のループバックでのみ HTTP 認証を無効化します |
HTTP_RATE_LIMIT_MAX | 100 | IP ごとの 1 分あたりの最大リクエスト数 |
CORS_ORIGIN | '' | ループバックのブラウザークライアント向けの従来の許可オリジン |
ALLOWED_ORIGINS | '' | 明示的なリモートオリジン許可リスト。* は拒否されます |
リモート HTTP のセキュリティ
本番環境かどうかにかかわらず、ループバック以外のすべての HTTP デプロイでは OAuth 2.0 / OpenID Connect 認証が必要です。
| 変数 | デフォルト | 説明 |
|---|---|---|
OAUTH_ENABLED | false | Bearer トークンの検証を有効にします |
OAUTH_ISSUER | '' | 想定するトークン発行者(iss クレーム) |
OAUTH_AUDIENCE | easyeda-mcp-pro | 想定するトークンオーディエンス(aud クレーム) |
OAUTH_JWKS_URI | '' | トークン署名の検証に使用する JWKS エンドポイント |
OAUTH_REQUIRED_SCOPES | easyeda:read | 必須のトークンスコープ |
OAUTH_ENABLED=true の場合、本番環境以外のループバック開発で HTTP_AUTH_DISABLED=true が明示的に設定されていない限り、/mcp へのすべてのリクエストに Authorization: Bearer <token> ヘッダーを含める必要があります。トークンは OAUTH_JWKS_URI に基づいて検証され、iss/aud クレームが検証されます。また、OAUTH_REQUIRED_SCOPES は scope、scp、permissions、または roles クレームに対して適用されます。
サーバーは、すべての環境で起動時の安全性チェックを実行します。OAuth を設定せずにループバック以外の HTTP_HOST を指定すると拒否され、OAUTH_JWKS_URI/OAUTH_ISSUER/OAUTH_AUDIENCE が必須となります。また、ワイルドカードの ALLOWED_ORIGINS=* は拒否され、HTTP_AUTH_DISABLED=true は本番環境以外のループバック開発でのみ使用できます。認証が必要なデプロイでは、Origin ヘッダーのないリクエストにも有効なベアラートークンが必要です。CORS は認証の境界ではありません。
Docker のデフォルト設定
Docker イメージは HTTP モードで起動し、HTTP_HOST=127.0.0.1 を設定します。そのため、デフォルトのコンテナー起動経路は安全で、ローカルの HTTP モードと同じ起動時安全性チェックに合格します。外部からアクセス可能なコンテナーでは、バインドアドレスを上書きし、OAuth とワイルドカードを含まない明示的なオリジン許可リストを設定してください。
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
OAuth なしでループバック以外の HTTP を公開しないでください。ALLOWED_ORIGINS はブラウザーを制限するためのもので、認証の代わりにはなりません。TLS 終端と外部アクセスには、リバースプロキシまたはプラットフォームゲートウェイを使用してください。
HTTP のセキュリティ機能
- レート制限:IP ごとのスライディングウィンドウ(
HTTP_RATE_LIMIT_MAXで設定可能)。リトライ後の時間を示すヘッダーを付けて429 Too Many Requestsを返します - セキュリティヘッダー:
X-Content-Type-Options: nosniff、X-Frame-Options: DENY、X-XSS-Protection: 0、Referrer-Policy: strict-origin-when-cross-origin - ヘルスエンドポイント:
/healthz(稼働状態)と/readyz(準備状態)が JSON ステータスを返します
設定変数の全一覧については .env.example を参照してください。
MCP ツール
サーバーは、有効な TOOL_PROFILE に応じて、プロファイルで利用可否が制御されるツールを登録します。以下の表は、実行時に使用されるものと同じレジストリから生成されています。
| プロファイル | 登録済みツール |
|---|---|
core | 74 |
pro | 101 |
full | 116 |
dev | 121 |
experimental | 121 |
core では標準的なワークフローツールを利用でき、pro では製造用エクスポートが追加され、full では制御された、ドキュメント化済みの EasyEDA API 呼び出しが追加され、dev ではデバッグ用のランタイムプローブが追加されます。
TOOL_SCOPES が設定されている場合、機能スコープによって第 2 の認可レイヤーが追加されます。デフォルトのローカル全機能モードを使用するには空のままにするか、diagnostics:read、schematic:read、schematic:write、bom:read、bom:source、checks:read、pcb:read、pcb:write、export:write、api:read、api:write、bridge:execute などのスコープをカンマまたはスペースで区切って指定してください。
生の JavaScript 実行は、デフォルトの dev ツールセットには意図的に含まれていません。easyeda_execute は、BRIDGE_RAW_EXEC_ENABLED=true と MCP_RAW_EXEC_EXPERIMENTAL=true の両方が設定されている場合にのみ登録されます。TOOL_SCOPES が設定されている場合は、bridge:execute も必要です。
L0 — 診断(core)
| ツール | 説明 |
|---|---|
easyeda_health_check | サーバーのヘルス状態、ランタイムバージョン、プロファイル、ブリッジの状態 |
easyeda_bridge_status | ブリッジの接続状態、バージョン、機能 |
easyeda_get_capabilities | 利用可能なプロファイル、機能、サポート対象の操作 |
easyeda_get_server_config | 安全にマスキングされたサーバー設定 |
easyeda_get_tool_profiles | 利用可能なツールプロファイル |
easyeda_get_feature_flags | 現在の機能フラグ |
easyeda_run_self_test | 内部セルフテスト |
easyeda_api_inventory | 実行中の EasyEDA API クラス、ランタイムパス、メソッド |
L0 — フルコントロールおよび dev プローブ
| ツール | プロファイル | 説明 |
|---|---|---|
easyeda_api_call | full | ブリッジ経由で、ドキュメント化済みの EasyEDA Class.method パスを呼び出します |
easyeda_bridge_probe_methods | dev | ブリッジのメソッドが利用可能かを調査します |
easyeda_component_probe | dev | 実行中の回路図コンポーネントのランタイムオブジェクトと状態ゲッターを調べます |
easyeda_api_call は、生の JavaScript 実行ではありません。ドキュメント化済みの EasyEDA Pro API クラスのプレフィックス(DMT_、SCH_、PCB_、LIB_)と、SCH_PrimitiveWire.getAll のような直接のメソッド名のみを受け付けます。create、delete、modify、openProject、save、import、export など、プロジェクトの状態を変更する可能性があるメソッドには、confirmWrite=true が必要です。
MCP クライアントで制御されたフルコントロール API ツールを有効にするには、次のように設定します。
TOOL_PROFILE=full
L1 — 回路図(コア)
| ツール | 説明 |
|---|---|
easyeda_schematic_nets | ノード接続を含むすべてのネットを一覧表示します |
easyeda_schematic_components | 参照番号、値、フットプリント、LCSC、データシートを含むコンポーネントを一覧表示します |
easyeda_schematic_net_detail | 特定のネットの詳細情報を表示します |
easyeda_schematic_search_device | EasyEDA ライブラリのデバイスを検索します |
easyeda_schematic_place_component | アクティブな回路図シートにライブラリコンポーネントを配置します |
easyeda_schematic_add_wire | 回路図の配線セグメントを追加します |
easyeda_schematic_delete_primitive | プリミティブ ID を指定して回路図のコンポーネントまたは配線を削除します |
easyeda_schematic_modify_primitive | 回路図のコンポーネントまたは配線のプロパティを変更します |
回路図の書き込み API は、EasyEDA が現在ベータ版と位置付けている EasyEDA Pro 拡張 API を使用します。ブリッジは実行時に、ドキュメントに記載された API クラス名が存在するか確認し、インストールされている EasyEDA Pro ビルドで必要なメソッドが公開されていない場合は、明示的なエラーを返します。
L1 — BOM(コア)
| ツール | 説明 |
|---|---|
easyeda_bom_generate | 部品表を生成します |
easyeda_bom_validate | LCSC の在庫情報と照合して BOM を検証します |
easyeda_bom_export | BOM をファイルにエクスポートします |
easyeda_bom_sourcing | サプライヤーの価格と在庫状況を取得します |
L1 — DRC/ERC(コア)
| ツール | 説明 |
|---|---|
easyeda_drc_run | PCB のデザインルールチェックを実行します |
easyeda_erc_run | 回路図の電気ルールチェックを実行します |
easyeda_rule_check_summary | DRC と ERC の統合サマリーを表示します |
L1 — 基板(コア)
| ツール | 説明 |
|---|---|
easyeda_board_layers | タイプ、色、表示状態を含む PCB レイヤーを一覧表示します |
easyeda_board_stackup | 厚さと素材を含むレイヤー積層構成を表示します |
easyeda_board_dimensions | 基板の外形、形状、取り付け穴を表示します |
easyeda_board_features | ビア、配線、ゾーン、パッド、コンポーネントの数を表示します |
L1 — エクスポート(コア/プロ)
| ツール | プロファイル | 説明 |
|---|---|---|
easyeda_export_gerbers | core | 製造用のガーバーファイルをエクスポートします |
easyeda_export_pick_place | pro | ピックアンドプレース用の重心ファイルをエクスポートします |
easyeda_export_pdf | pro | 回路図/基板を PDF にエクスポートします |
easyeda_export_netlist | pro | ネットリストをエクスポートします |
アーキテクチャ
┌─────────────────┐ 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 120 tools) │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Storage │──┼──► SQLite
│ │ (Cache/DB) │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Vendors │──┼──► JLCPCB/LCSC/
│ │ (API Clients) │ │ Mouser/DigiKey
│ └───────────────┘ │
└─────────────────────┘
トランスポート
- stdio(デフォルト):標準の MCP トランスポートです。Claude Desktop、Cursor、ほとんどの MCP クライアントで動作します
- HTTP:
/healthz、/readyz、/mcpエンドポイント、CORS、オプションの OAuth に対応したストリーミング可能な HTTP トランスポートです。リモート環境へのデプロイに適しています
デプロイモード
ローカルの stdio/HTTP に加えて、このサーバーは、Claude Web や ChatGPT アプリとの連携など、コネクターを管理するデプロイ向けに、ホスト型リモートランタイム(src/remote/ 配下のゲートウェイ、セッションルーター、承認範囲を限定したリレー)をサポートしています。また、ユーザーが管理するエンドポイント向けのセルフホスト可能なリモートモードもサポートしています。各モードの全体像とネットワーク/セキュリティ上の境界については、Remote MCP Modes を参照してください。
ブリッジ拡張機能
pnpm build:extension
pnpm verify:extension
拡張機能のビルドにより、リポジトリのルートに easyeda-bridge-extension.eext が生成されます。
これには、extension.json、バンドルされたブラウザースクリプト、EasyEDA Pro に必要な画像アセットが含まれます。
インストールするには、EasyEDA Pro を開き、Settings → Extensions → Extension Manager... → Import Extension の順に選択して、.eext ファイルを指定します。拡張機能で Allow External Interaction が有効になっていることを確認してください。
ローカルでブリッジを開発する場合に使用できる、ループバック限定の実験的な CDP トランスポートについては、CDP Bridge ガイドに記載されています。通常の使用には、引き続き拡張機能を推奨します。一般公開に向けた目標とマイルストーンのライフサイクルに関するルールは、ロードマップで管理されています。
エージェントプラグインとスキル
このリポジトリでは、EasyEDA MCP Pro 向けの製品レベルのエージェントプラグインと、EasyEDA 固有のスキルを管理しています。中央の agent-tools リポジトリでこのプラグインをカタログ化する必要がありますが、マニフェストとワークフローの手順は、実際の MCP サーバー、ブリッジ拡張機能、ツールプロファイル、EasyEDA の実行時の動作との同期を保つため、ここに配置されています。
| ファイル | 目的 |
|---|---|
.claude-plugin/plugin.json | 互換性のあるエージェント実行環境およびマーケットプレイスのカタログで使用できる、Claude Code 準拠のプラグインマニフェスト。 |
.mcp.json | プロジェクトローカルの Claude Code MCP サーバー設定。 |
.codex/config.example.toml | Codex CLI の MCP 設定例。 |
.vscode/mcp.example.json | VS Code / GitHub Copilot ワークスペースの MCP 設定例。 |
opencode.example.jsonc | OpenCode プロジェクトの MCP 設定例。 |
.opencode/skills/ | OpenCode ネイティブのミラー版スキル定義。 |
docs/agent-runtime-config.md | エージェント実行環境のセットアップと検証マトリクス。 |
skills/easyeda-workflow/SKILL.md | EasyEDA のセットアップ、検査、制御された書き込み、エクスポート、レポート作成をエンドツーエンドで行うワークフロー。 |
skills/component-search/SKILL.md | コンポーネントの検索、BOM の確認、調達、価格、入手可能性、部品リスクに関するワークフロー。 |
skills/design-validation/SKILL.md | DRC/ERC、セマンティック ERC、PCB の制約、本番向け QA、エクスポート、リリース検証に関するワークフロー。 |
skills/easyeda-component-review/SKILL.md | データシート、実際のフットプリント、関連付けられた 3D モデルの確認と、Personal Device に保存される構造化されたエビデンス。 |
エージェントのセットアップ
EasyEDA MCP Pro は、公開済みの npm パッケージまたはソースチェックアウトから起動できます。
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
EasyEDA Pro のライブワークフローでは、EasyEDA ブリッジ拡張機能をインストールし、easyeda_health_check と easyeda_bridge_status でブリッジに接続できることを確認してください。ツールの利用可否は、TOOL_PROFILE と、任意で設定する TOOL_SCOPES の制限によって異なります。
ソースチェックアウトの場合は、プラグインの変更を公開する前に、通常の検証手順を実行してください。
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
検証ワークフロー
このプラグインを agent-tools から有効なものとして掲載する前に、少なくとも 1 つの互換性のあるエージェントランタイムで、次のことを確認してください。
.claude-plugin/plugin.jsonを検出できる。stdioまたは HTTP 経由でeasyeda-mcp-proを起動、または接続できる。easyeda_health_check、easyeda_bridge_status、またはeasyeda_get_capabilitiesを呼び出せる。skills/からスキルを読み込み、存在しないツールを参照することなくワークフローに従える。- ブリッジの状態、ツールプロファイル、ERC、DRC、BOM、エクスポート成果物、前提条件、および人によるレビューが必要な事項をそれぞれ個別に報告できる。
EasyEDA MCP Pro はエンジニアリングアシスタントであり、製造に関する自律的な承認権限を持つものではありません。生成された設計、コンポーネントの選定、および製造用出力は、購入、製造、または組み立ての前に、資格を持つ人間によるレビューが必要です。
開発
前提条件
- Node.js:Node.js 24.x が必要です。リポジトリの自動化では 24.22.1 に固定されています。
- pnpm:ローカル開発と自動化には、バージョン 11.28.8 が必要です。
依存関係をインストールする前に、サポート対象のランタイムを準備してください。
nvm install 24.22.1
nvm use 24.22.1
corepack enable
corepack prepare [email protected] --activate
node scripts/check-runtime.mjs --require-pnpm
- Go Task(任意。Taskfile コマンド用)
クイックスタート
# 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
利用可能な Taskfile コマンド
このプロジェクトには Taskfile.yml が含まれており、次のコマンドを利用できます。
| コマンド | 説明 |
|---|---|
task install | 依存関係をインストールする |
task lint | ESLint を実行する |
task format | Prettier でフォーマットを確認する |
task typecheck | TypeScript の型チェックを実行する |
task test | テストを実行する |
task build | プロジェクトをビルドする |
task verify | Taskfile 経由ですべての品質ゲートを実行する |
このパッケージでは pnpm verify も利用できます。Go Task を必要とせず、同じ CI 相当のローカルゲートを実行します。
これらのコマンドを使うには、Go Task をインストールしてください。
プロジェクト構成
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
セキュリティ
デプロイモード、認証、ツールの安全管理、シークレット管理、安全なデフォルト設定、サプライヤー API のセキュリティ、脅威シナリオ、デプロイチェックリストなど、セキュリティに関する完全なリファレンスについては、セキュリティアーキテクチャと脅威モデルをご覧ください。
- ネットワークの安全性:すべての環境で起動時に設定を検証します。完全な OAuth と、明示的なワイルドカード以外のオリジン許可リストがない場合、ループバック以外の HTTP を拒否します。
- OAuth/JWKS:HTTP トランスポートでは、JWKS エンドポイントを介してベアラートークンを検証します(OAuth のセクションを参照)。
- レート制限:HTTP トランスポートで、IP ごとのスライディングウィンドウ方式のレート制限を行います(デフォルトは 100 リクエスト/分)。
- パストラバーサル対策:すべてのファイルエクスポートパスを
ARTIFACT_DIRに対して検証します。 - シークレットのマスキング:API キー、トークン、パスワードをログと診断出力からマスキングします。
- ブランチ保護:ガバナンスポリシーにより、
mainブランチへのコードレビューとステータスチェックが必須です(リポジトリガバナンスを参照)。 - コードスキャン:CodeQL 分析をプッシュと PR のたびに実行します(security-extended と security-and-quality のクエリ)。
- 依存関係の管理:Renovate ポリシーはリポジトリ内で設定されています。ホスト型プロバイダーの稼働状況は、Renovate の依存関係ダッシュボードまたは Renovate が作成した更新アクティビティで確認します。Dependency Audit、Dependency Review、Socket、CodeQL が、独立したセキュリティシグナルを提供します。
- サプライチェーンの衛生管理:pnpm ワークスペースのビルド、固定された GitHub Actions、ネイティブ SQLite アドオンへの依存なし。
- 報告:脆弱性の開示については、SECURITY.mdをご覧ください。
リリースと依存関係の自動化
このリポジトリでは、依存関係とリリースを管理するために自動化されたワークフローを使用しています。
- Renovate:.github/renovate.jsonで、リポジトリの依存関係更新ポリシーを定義しています。ホスト型 Renovate はアカウントレベルの前提条件です。Dependency Dashboard または Renovate が作成した更新アクティビティを、プロバイダーが稼働している証拠として扱ってください。リポジトリガバナンスを参照してください。
- Release Please:安定版のバージョン更新、リリースメタデータ、
CHANGELOG.mdを自動化します。番号付きのrc.N候補には、分離されたプレリリース経路を使用します。リリースポリシーとリリースプロセスを参照してください。 - セキュアな公開:リリースワークフローでは、すべてのアセットを再ビルドして検証し、チャネルに応じた
latestまたはnextの dist-tag を指定して来歴情報付きで npm に公開します。また、拡張機能と SBOM を対応する GitHub Release にアップロードし、GHCR/MCP Registry の昇格を選択したチャネルに合わせます。
プロジェクトを応援する
このプロジェクトが EasyEDA Pro、BOM のワークフロー、MCP 連携を使った作業の時間短縮に役立っている場合は、この README の上部にある Buy me a coffee ボタンから、継続的な開発を支援できます。
ライセンス
現在のプロジェクト作成ソースは、PolyForm Noncommercial 1.0.0のライセンスで提供されています。商用利用には別途書面によるライセンスが必要です。商用ライセンスをご覧ください。以前の MIT リリースには、公開時に適用されていた MIT の権利が引き続き適用されます。ライセンスをご覧ください。
関連項目
- Model Context Protocol — AI ツール連携の標準プロトコル
- EasyEDA Pro — プロフェッショナル向け PCB 設計ツール
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。