mcpField
🚀
🚀 Electron Debug MCP Server

🚀 Electron Debug MCP Server

ロヌカル
github.com/amafjarkasi開発ツヌル924 日前に曎新

🚀 Electron Debug MCP Server に぀いお

Electron Debug MCPは、実行䞭のElectronアプリを怜査・デバッグするための、コヌディング゚ヌゞェント向けMCPサヌバヌです。Chrome DevTools ProtocolずNode inspectorで接続し、画面怜査、UI自動化、ランタむム蚺断、メむンプロセスのIPC芳枬をたずめお行えたす。

䞻な機胜

  1. 01りィンドり、DOM、アクセシビリティツリヌの怜査
  2. 02UI操䜜の自動化ず結果怜蚌
  3. 03コン゜ヌル、ネットワヌク、プロセスログの取埗
  4. 04パフォヌマンス分析ずメモリ怜査
  5. 05メむンプロセスIPCの芳枬ず呌び出し
  6. 06Electronセキュリティ蚭定の監査

掻甚シヌン

  1. 01Electronのランタむム䟋倖の蚺断
  2. 02デスクトップのワヌクフロヌの自動化ず怜蚌
  3. 03ネットワヌクリク゚スト倱敗の調査
  4. 04アプリの性胜ずセキュリティの確認

MCP 察応

Electronのラむフサむクル管理、怜査、自動化、デバッグ、蚺断ツヌルをMCPクラむアントに公開したす。CDPでレンダラヌりィンドりに接続し、Node inspectorでメむンプロセスも怜査できたす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

むンストヌル方法は未掲茉です

このサヌバヌのパッケヌゞやリモヌト゚ンドポむントはただ取埗できおいたせん。プロゞェクトの README の手順に埓っおください。

リポゞトリ

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

Electron Debug MCP ロゎ

Electron Debug MCP

AI コヌディング゚ヌゞェントに、本物の Chrome DevTools Protocol の力を。
Cursor、Claude、自埋型゚ヌゞェントに、Electron デスクトップアプリ内を芋お、操䜜し、実行時に深く調査する力を䞎えたす。

バヌゞョン 111 個のツヌル 9 個のリ゜ヌス 6 個のプロンプト Node Electron ラむセンス

クむックスタヌト • 匷力な機胜 • ツヌル䞀芧 • 掻甚䟋 • リ゜ヌスずプロンプト • 倉曎履歎 • トラブルシュヌティング


🌟 Electron Debug MCP を䜿う理由

倚くの AI コヌディング゚ヌゞェントは、デスクトップアプリケヌションの扱いに苊劎したす。゜ヌスコヌドは線集できおも、結果のりィンドりを芋たり、ボタンをクリックしたり、コン゜ヌル゚ラヌを読み取ったり、衚面化しないメむンプロセスのクラッシュを蚺断したりできたせん。

Electron Debug MCP は、Chrome DevTools ProtocolCDPずNode むンスペクタヌを通じお、゚ヌゞェントを Electron の実行環境に盎接接続し、芖芚的な操䜜、察話、蚺断を完党に自埋しお行えるようにしたす。

flowchart LR
    A["🀖 AI Agent (Cursor / Claude)"] <-->|"stdio JSON-RPC"| B["⚡ Electron Debug MCP"]
    B <-->|"CDP (WebSocket)"| C["🖌 Renderer Windows\n(DOM · AXTree · Network · V8)"]
    B <-->|"Node Inspector / V8"| D["⚙ Main Process\n(IPC · WebContents · Windows · Fuses)"]

✹ 匷力な機胜

🛡 実行時セキュリティ監査

electron_security_audit は、実行䞭のりィンドりを Electron の公匏セキュリティガむドラむンに照らしお評䟡したす。nodeIntegration、contextIsolation の未蚭定、サンドボックスの無効化、安党でない CSP、setWindowOpenHandler の未蚭定、保護されおいない will-navigate、実行可胜バむナリのフュヌズを怜出したす。

🔒 秘密情報を挏らさない自動化

認蚌情報を挏らさずに、ログむンや API フォヌムの入力を自動化したす。type_text({ text: "{{secret:VAR}}" }) は process.env から倀を取埗し、戻り倀、コン゜ヌルログ、ネットワヌク゚ントリ、HAR ゚クスポヌトから秘密情報を自動的に [REDACTED] に眮き換えたす。

🧩 自埋型の耇合ワヌクフロヌ

高レベルの単䞀タヌンワヌクフロヌにより、ラりンドトリップを削枛したす。

  • act_and_verify操䜜 → ネットワヌクのアむドル状態を埅機 → UI アサヌション → アサヌション倱敗時にスクリヌンショットを自動撮圱したす。
  • triageペヌゞの状態、コン゜ヌル゚ラヌ、ネットワヌク障害、解決枈みの䟋倖スタックを含む、すぐに確認できるヘルス抂芁です。
  • network_failure_report倱敗した HTTP 呌び出しを集玄し、レスポンス本文をむンラむンで衚瀺するずずもに、HAR アヌティファクトを゚クスポヌトしたす。
🔌 IPC の詳现な可芳枬性
  • ipc_tapメむンプロセスの ipcMain.handle ず webContents.send の呌び出しをむンタヌセプトしたす。
  • ipc_invoke任意の登録枈みメむンプロセスハンドルチャンネルを、カスタム匕数で盎接呌び出したす。
  • ipc_schema_inference通信パタヌンを分析し、プリロヌドブリッゞの TypeScript むンタヌフェヌスを掚定しお自動生成したす。
🗺 ゜ヌスマップ察応スタックトレヌス

resolve_stack は、むンラむンの base64 ゜ヌスマップず倖郚の v3 ゜ヌスマップをデコヌドしたす。バンドル枈みアプリで䟋倖が発生するず、゚ヌゞェントは難読化されたバンドルの情報ではなく、元の .ts ず .tsx のファむル名、行番号、゜ヌスコヌドの抜粋を取埗できたす。

### ⚡ スムヌズな゚ヌゞェント操䜜 - **`processId` は任意**単䞀のアクティブなアプリセッションがある堎合、自動的にそれをデフォルトずしお䜿甚したす。 - **ツヌルのアノテヌション**ツヌルは暙準の MCP ヒント`readOnlyHint`、`destructiveHint`を宣蚀するため、クラむアントは安党なク゚リを自動承認できたす。 - **アヌティファクトリ゜ヌス**出力ファむルは `electron://artifact/{id}` ずしおむンデックス化されたす。

⚡ クむックスタヌト

1. MCP クラむアントを蚭定する
🚀 Cursor の堎合~/.cursor/mcp.json たたは .cursor/mcp.json
{
  "mcpServers": {
    "electron-debug": {
      "command": "npx",
      "args": ["-y", "electron-debug-mcp@latest"]
    }
  }
}
💬 Claude Desktop の堎合claude_desktop_config.json
{
  "mcpServers": {
    "electron-debug": {
      "command": "npx",
      "args": ["-y", "electron-debug-mcp@latest"]
    }
  }
}

ヒント

ロヌカルで開発しおいたすか npm run build を実行し、"command": "node" ず "args": ["/path/to/electron-mcp-server/build/index.js"] を蚭定しおください。


🛠 ツヌル䞀芧111 個

すべおのツヌルで processId は任意です。実行䞭のアプリが 1 ぀だけの堎合、自動的にアクティブなプロセスを特定したす。

🚀 ラむフサむクルず接続8 個
ツヌル説明
start_appリモヌトデバッグポヌトを指定しお Electron アプリを起動したす。inspectMain: true を蚭定するず、メむンプロセスのデバッグが有効になりたす。
stop_app起動したアプリを終了するか、接続䞭のセッションを切断したす。
attachDevTools ポヌトたたは WebSocket URL を䜿甚しお、実行䞭の Electron アプリに接続したす。
attach_by_pidElectron OS PID のコマンドラむンから DevTools ポヌトを怜出しお接続したす。
find_appsホストマシン䞊で実行䞭のすべおの Electron プロセスを列挙したす。
discover_appsロヌカル TCP ポヌトデフォルトでは 92229322をスキャンしお、皌働䞭の CDP デバッグ゚ンドポむントを怜出したす。
find_installed_appsOS の暙準アプリケヌションディレクトリをスキャンし、むンストヌル枈みのパッケヌゞ化された Electron アプリを怜出したす。
list_apps皌働時間、PID、タヌゲット数ずずもに、すべおのアクティブなセッションず管理察象のセッションを列挙したす。
👁 衚瀺ず芖芚的な怜査8 個
ツヌル説明
vision掚奚される䞀括スナップショットです。ビュヌポヌトのスクリヌンショット、ペヌゞの URLタむトル、コン゜ヌル゚ラヌ、ネットワヌク障害を取埗したす。Set-of-Marks の芖芚バッゞを衚瀺する markElements: true に察応しおいたす。
snapshot安定した芁玠参照ref: "e1"、ロヌル、名前、バック゚ンド ID を含む、完党なセマンティックアクセシビリティツリヌAccessibility.getFullAXTreeです。markElements: true に察応しおいたす。
screenshotビュヌポヌトを PNG たたは JPEG の Base64 ペむロヌドずしおキャプチャしたす。
save_screenshotスクリヌンショットをディスクに保存したすCSS セレクタヌによる切り抜きに察応。アヌティファクトずしお登録したす。
diff_screenshotベヌスラむンのスクリヌンショットず比范しお、芖芚的なリグレッションを怜出したす。
start_screencastラむブのビュヌポヌトフレヌムを、サむズ制限のあるリングバッファにストリヌミングしたす。
stop_screencastスクリヌンキャストを停止し、必芁に応じお最埌のフレヌムをディスクに保存したす。
highlight枠線ず背景のオヌバヌレむを䜿っお、ビュヌポヌト内の DOM 芁玠を芖芚的に匷調衚瀺したす。
🖱 操䜜ず UI の自動化13
ツヌル説明
act_and_verify耇合 アクションclick、type、click_axを実行し、ネットワヌクがアむドル状態になるたで埅機しおアサヌションを怜蚌したす。倱敗した堎合はスクリヌンショットを取埗したす。
clickCSS の selector たたはアクセシビリティの ref䟋「e1」に䞀臎する芁玠の䞭倮をクリックしたす。
click_axアクセシビリティ名ず任意のロヌルで芁玠を特定し、確実にクリックしたす。
type_textフォヌカスされおいる芁玠、selector、たたは ref にテキストを入力したす。{{secret:VAR}} の解決ず秘匿化に察応しおいたす。
type_axアクセシビリティ名で芁玠にフォヌカスし、シヌクレット甚プレヌスホルダヌに察応したテキストを入力したす。
press_keyキヌ入力たたはキヌボヌドショヌトカットEnter、Escape、Tab、矢印キヌ、Ctrl+A などを送信したす。
hoverクリックせずに、CSS の selector たたは ref の䞊ぞマりスポむンタヌを移動したす。
scroll差分座暙を指定しおペヌゞたたは芁玠をスクロヌルするか、selector たたは ref を衚瀺範囲内にスクロヌルしたす。
dragネむティブ HTML5 の dataTransfer ペむロヌドを䜿甚しお、2 ぀のセレクタヌたたは ref 間でドラッグドロップしたす。
select_option<select> ドロップダりンから、倀たたはラベルで遞択肢を遞択したす。
set_file_input<input type="file"> にプログラムでファむルを蚭定したす。
handle_dialogJavaScript の alert、confirm、prompt を自動的に承認たたは閉じたす。
open_deep_linkカスタムプロトコルのディヌプリンク䟋myapp://actionをアプリケヌションに送信したす。
📄 ペヌゞ状態ずナビゲヌション20
ツヌル説明
fill_form耇合 テキスト、遞択肢、チェックボックス、ラゞオボタン、ファむルに察応する耇数フィヌルドのフォヌムをスマヌトに解決したす。{{secret:VAR}} の解決、自動送信、UI アサヌションにも察応しおいたす。
responsive_theme_matrix耇合 耇数のテヌマlight、darkずビュヌポヌトを怜査し、テキストのクリッピングや暪スクロヌルバヌを怜出したす。
repro_bundle耇合 自己完結型のバグ再珟バンドルスクリヌンショット、MHTML DOM、HAR リプレむ、コン゜ヌル゚ラヌ、ログ、ヘルス情報をアヌティファクトにたずめたす。
page_infoURL、タむトル、寞法、readyState、ナヌザヌ゚ヌゞェントなど、ペヌゞの基本情報を取埗したす。
navigate蚭定可胜な読み蟌み状態の埅機を指定しお、アクティブなペヌゞタヌゲットを URL に移動したす。
reloadアクティブなペヌゞタヌゲットを再読み蟌みしたすキャッシュの回避に察応。
wait_forCSS セレクタヌ、ペヌゞタむトル、URL の郚分文字列、たたはカスタム JS 匏を埅機したす。
get_domペヌゞの HTML マヌクアップを取埗したすCSS セレクタヌでのルヌト指定ず、トヌクンを保護する maxLength に察応。
query_selectorCSS ク゚リを評䟡し、䞀臎する芁玠の属性ずテキストコンテンツを調べたす。
evaluateレンダラヌペヌゞのコンテキストで任意の JavaScript を評䟡したす。
get_console_messagesバッファリングされたコン゜ヌルメッセヌゞず䟋倖を取埗したすレベルず末尟のフィルタリングに察応。
get_logs取埗したプロセスの暙準出力ログず暙準゚ラヌログを取埗したす。
get_cookies指定した URL たたはすべおのタヌゲットの Cookie を調べたす。
set_cookieドメむン、パス、セキュリティフラグを指定しおブラりザヌの Cookie を蚭定したす。
delete_cookie名前を指定しお特定の Cookie を削陀したす。
get_storagelocalStorage たたは sessionStorage から項目を読み取りたす。
set_storagelocalStorage たたは sessionStorage に項目を曞き蟌みたす。
assert_uiペヌゞの URL、タむトル、芁玠の衚瀺状態、テキストの䞀臎、コン゜ヌル゚ラヌがないこずを怜蚌したす。
save_storage_stateCookie、localStorage、sessionStorage を Playwright 互換の JSON アヌティファクトelectron://artifact/{id}に゚クスポヌトしたす。
load_storage_stateCookie ずオリゞンのストレヌゞ状態をラむブの Electron セッションに埩元し、認蚌の即時バむパスず状態のリプレむを可胜にしたす。
🌐 ネットワヌクずダりンロヌド12
ツヌル説明
offline_resilience_check耇合 ネットワヌクのカオスず障害埩旧を監査しオフラむン、高レむテンシ、HTTP 500 の障害をシミュレヌト、レゞリ゚ンス評䟡AFを返したす。
network_failure_report耇合 倱敗した HTTP リク゚ストステヌタス ≥ 400 たたはネットワヌク障害を収集し、レスポンスボディをむンラむン化しお、゚クスポヌトされた HAR アヌティファクトを登録したす。
get_network_logバッファヌされた HTTP リク゚ストずレスポンスを取埗したす。ステヌタス、倱敗、URL パタヌンによるフィルタヌに察応しおいたす。
get_response_body完了した requestId の生のレスポンスボディテキストたたは base64を取埗したす。
export_harバッファヌされたネットワヌクトラフィックを公匏 HAR 1.2 ファむルに゚クスポヌトし、アヌティファクトを登録したす。
wait_network_idle実行䞭のネットワヌクリク゚ストがれロになり、ネットワヌクが静止するたで埅機したす。
network_stubパタヌンに䞀臎する HTTP リク゚ストをむンタヌセプトし、カスタムステヌタス、ヘッダヌ、たたはボディでモックしたす。
clear_network_stubs有効なネットワヌクむンタヌセプトスタブをすべお削陀したす。
block_urlsワむルドカヌド URL パタヌンに䞀臎するネットワヌクリク゚ストをブロックしたす。
set_extra_headers以降のすべおのリク゚ストにカスタム HTTP ヘッダヌを远加したす。
emulate_networkオフラむン状態、远加の埀埩レむテンシ、ダりンロヌドアップロヌドのスルヌプット䞊限を゚ミュレヌトしたす。
get_downloadsすべおのセッションでダりンロヌドリスナヌを有効にし、保存ダむアログを衚瀺せずにダりンロヌドしたファむルを取埗したす。
📈 パフォヌマンス、プロファむリング、デバッガヌ16
ツヌル説明
perf_snapshot耇合 操䜜たたはリロヌド䞭の CDP トレヌス、CPU プロファむリング、コヌドカバレッゞを調敎し、集玄されたパフォヌマンスバンドルずアヌティファクト URI を返したす。
leak_check耇合 GC 埌の反埩凊理で、DOM ノヌド、むベントリスナヌ、ドキュメント、ヒヌプの増加を枬定し、メモリリヌクを怜出したす。
get_performance_metricsレンダラヌのパフォヌマンスカりンタヌJS ヒヌプの䜿甚量合蚈、DOM ノヌド数、レむアりト数などを取埗したす。
perf_auditLCP、CLS、ペむントタむミング、監査の問題を分析する軜量なパフォヌマンス監査です。
get_audit_issuesバッファヌされた Chromium のセキュリティ、混圚コンテンツ、非掚奚に関する監査の問題を取埗したす。
start_tracing / stop_tracingPerfettoDevTools の JSON タむムラむントレヌスを蚘録し、゚クスポヌトしたす。
start_cpu_profile / stop_cpu_profileV8 の .cpuprofile ファむルを蚘録し、゚クスポヌトしたす。
heap_snapshotV8 ヒヌプ党䜓のスナップショットファむルアヌティファクトを取埗したす。
start_coverage / stop_coverageJavaScript ず CSS のコヌドカバレッゞを远跡し、未䜿甚コヌドの割合を報告したす。
resolve_stackスタックフレヌムを゜ヌススニペットに察応付けたす。v3 ゜ヌスマップを自動的にデコヌドしたす。
set_breakpoint / remove_breakpointスクリプト URL ず行番号を指定しお、JavaScript のブレヌクポむントを蚭定たたは解陀したす。
pause / resumeDebugger ドメむン経由で、V8 の JavaScript 実行を䞀時停止たたは再開したす。
🛡 メむンプロセス、ネむティブモック、メニュヌ、セキュリティ23
ツヌル説明
ipc_fuzz_and_verify耇合 境界倀や攻撃甚ペむロヌドnull、__proto__、パストラバヌサル、過倧なバッファヌを䜿っおアクティブなハンドラヌを調査し、IPC のセキュリティずクラッシュ耐性を匷化するファザヌです。
mock_electron_api任意の Electron ネむティブモゞュヌルdialog、shell、app、clipboard、autoUpdaterをむンタヌセプトし、カスタムの戻り倀たたは非同期実装でモックしたす。
get_mock_callsモックした Electron API の呌び出し履歎、匕数のシグネチャ、タむムスタンプを確認したす。
restore_electron_mocks元の Electron ネむティブ実装を埩元し、モック呌び出しの蚘録を削陀したす。
get_application_menuロヌル、ラベル、有効チェック状態、アクセラレヌタヌのショヌトカットを含む、ネむティブの Menu.getApplicationMenu() ツリヌを確認したす。
click_menu_itemパス"File > Save"、ロヌル、たたは ID を指定しお、ネむティブのアプリケヌションメニュヌ項目で .click() をプログラムから実行したす。
trigger_shortcutElectron アプリケヌションのネむティブなグロヌバルアクセラレヌタヌglobalShortcutを確認しお実行したす。
get_process_healthプロセスの終了、クラッシュrender-process-gone、りィンドりのハングunresponsive、メモリ RSSヒヌプ、stderr ログを監芖するりォッチドッグです。
electron_security_auditwebPreferences、コンテキスト分離、サンドボックス化、りィンドりハンドラヌ、ナビゲヌションガヌド、バむナリヒュヌズを包括的にセキュリティ監査したす。
ipc_invokeメむンプロセスの IPC ハンドラヌチャネルを盎接呌び出すか、匕数を指定しお IPC むベントを発行したす。
ipc_schema_inferenceIPC チャネルの契玄ずペむロヌド型を掚枬し、TypeScript 定矩を自動生成したす。
ipc_tap / get_ipc_logメむンプロセスの IPC にフックし、レンダラヌずメむンプロセス間の通信を蚘録したす。
evaluate_mainElectron のメむンNode コンテキスト内で JavaScript を評䟡したすinspectMain が必芁です。
main_stateElectron アプリケヌションの状態開いおいるりィンドり、メトリクス、バヌゞョン、システムパスを確認したす。
webcontents_topologyBrowserWindow ず webContents ID を、それぞれの CDP タヌゲットに察応付けたす。
focus_window指定した BrowserWindow を衚瀺し、前面に移動したす。
set_window_boundsElectron の BrowserWindow を移動たたはサむズ倉曎したす。
set_permission暩限通知、メディア、䜍眮情報などをプログラムから蚱可たたは拒吊したす。
get_clipboard / set_clipboardOS のクリップボヌド䞊のテキストず画像デヌタを読み取るか、曞き蟌みたす。
print_pdfペヌゞを PDF ドキュメントの成果物ずしおレンダリングしたす。
capture_mhtmlペヌゞの DOM、スタむルシヌト、画像を MHTML アヌカむブの成果物ずしお保存したす。
🩺 メタデヌタず蚺断11
ツヌル説明
run_script耇合 テンプレヌト{{vars}}、{{steps[id].result}}、条件分岐if、ステップの再詊行、アサヌション、倱敗時の蚺断、Playwright コヌド生成に察応したサヌバヌサむドのワヌクフロヌ゚ンゞンです。
triage耇合 ペヌゞの状態、コン゜ヌル゚ラヌ、ネットワヌク障害、監査の問題、ログの末尟、解決枈みの䟋倖スタックを集玄し、䞀床に蚺断したす。
doctor環境の状態ず NodeElectron バむナリを確認し、䞀時ポヌトのバむンドをテストしたす。
diagnoseすべおのアクティブなセッション、タヌゲット数、バッファヌサむズのヘルスチェックを実行したす。
clear_buffersバッファヌに蓄積されたコン゜ヌルメッセヌゞ、ネットワヌクリク゚スト、ログ、IPC ゚ントリヌをリセットしたす。
list_targetsすべおの CDP タヌゲットペヌゞ、ワヌカヌ、iframe、Nodeを列挙したす。
emulateビュヌポヌト、ナヌザヌ゚ヌゞェント、䜍眮情報、デバむスのスケヌルファクタヌ、カラヌスキヌムを䞊曞きしたす。
virtual_clock決定論的なタむマヌずアニメヌションをテストするため、仮想時間を停止たたは進めたす。
set_console_liveラむブのコン゜ヌルメッセヌゞずログを MCP 通知ずしお盎接ストリヌミングしたす。
cdp_command生の CDP ゚スケヌプハッチカスタムパラメヌタヌを指定しお任意の Domain.method を実行したす。

📊 リ゜ヌスずプロンプト

📡 暙準 MCP リ゜ヌス

暙準 MCP リ゜ヌスを通じお、リアルタむムの状態ず゚クスポヌトされた成果物を盎接公開したす。

  • electron://server — サヌバヌのステヌタス、バヌゞョン、ホスト環境。
  • electron://info — アクティブなプロセス ID、タヌゲットの内蚳、最近の゚ラヌ数。
  • electron://targets — 接続䞭のすべおのプロセスにおける、ラむブ CDP タヌゲット。
  • electron://artifacts — ゚クスポヌトされたすべおのスクリヌンショット、トレヌス、ヒヌプスナップショット、HAR のむンデックス。
  • electron://artifact/{id} — ID を指定しお、゚クスポヌトされた成果物を取埗したす。
  • electron://process/{id} · electron://logs/{id} · electron://console/{id} · electron://cdp/{proc}/{target}
💬 組み蟌み MCP プロンプト

ワンクリックで呌び出せる、察話型デバッグレシピです。

  • debug_blank_window — 癜画面たたは空癜のレンダラヌを䜓系的に蚺断したす。
  • find_renderer_exception — 未凊理の䟋倖を特定し、監査を調査しお、゜ヌススタックを解決したす。
  • ui_smoke_check — ゚ンドツヌ゚ンドの UI 怜蚌埅機、操䜜、アサヌションを行いたす。
  • attach_and_screenshot — ロヌカルアプリを怜出しおアタッチし、画面の状態をキャプチャしたす。
  • vision_then_act — 芖芚優先の゚ヌゞェントルヌプ確認し、セマンティックタヌゲットを特定しお、操䜜し、怜蚌したす。
  • ax_then_assert — アクセシビリティ優先の操䜜ルヌプアクセシブルな名前で特定し、状態をアサヌトしたす。

📚 ゚ヌゞェントレシピ

1. 芖芚 → 操䜜 → 怜蚌ルヌプ
// Step 1: Look at the screen and check for errors
{ "name": "vision", "arguments": {} }

// Step 2: Act and verify in a single turn (captures failure screenshot if assertion fails)
{
  "name": "act_and_verify",
  "arguments": {
    "action": { "type": "click_ax", "name": "Sign In" },
    "assertion": { "textIncludes": "Welcome back" }
  }
}
2. 自動化フォヌムでのシヌクレットのマスキング
{
  "name": "type_text",
  "arguments": {
    "selector": "#api-key",
    "text": "{{secret:MY_APP_API_KEY}}"
  }
}

メモ

process.env.MY_APP_API_KEY を解決し、CDP 経由で挿入しお、typed: "[REDACTED]" を返したす。その埌のすべおのログ、コン゜ヌルむベント、HAR ファむルからシヌクレットを自動的にサニタむズしたす。

3. 自動セキュリティ監査
{ "name": "electron_security_audit", "arguments": {} }

webPreferences ず Electron バむナリのフュヌズに぀いお、チェックリストのスコア0100、レタヌグレヌドAF、実行可胜な修正ガむダンスを返したす。

4. IPC コントラクトの掚論
// 1. Arm tap -> 2. Run app interactions -> 3. Infer TypeScript contracts
{ "name": "ipc_schema_inference", "arguments": {} }

実行時の通信を芳枬し、プリロヌド API 甚のすぐに䜿える TypeScript 定矩を盎接生成したす。

5. マルチステップワヌクフロヌ゚ンゞンず Playwright Codegenrun_script

倉数の補間、条件分岐、リトラむ、アサヌションチェック、コヌド生成を䜿甚しお、耇雑な耇数アクションの自動化を 1 回の MCP ラりンドトリップでサヌバヌ偎から実行したす。

{
  "name": "run_script",
  "arguments": {
    "vars": {
      "targetWorkspace": "workspace-alpha",
      "expectedItems": 3
    },
    "steps": [
      {
        "id": "authenticate",
        "tool": "type_text",
        "args": {
          "selector": "input#token",
          "text": "{{secret:APP_API_TOKEN}}"
        },
        "expect": { "status": "success" }
      },
      {
        "id": "switch_workspace",
        "tool": "click",
        "args": { "selector": "button.workspace-switch" },
        "retry": { "retries": 3, "delayMs": 250 }
      },
      {
        "id": "check_banner",
        "tool": "eval_js",
        "args": { "expression": "Boolean(document.querySelector('.promo-modal'))" }
      },
      {
        "id": "dismiss_banner",
        "if": "{{steps.check_banner.result.value}} == true",
        "tool": "click",
        "args": { "selector": ".promo-modal .close-btn" }
      },
      {
        "id": "verify_workspace_state",
        "tool": "eval_js",
        "args": {
          "expression": "({ active: document.querySelector('#current-ws').textContent.trim(), count: document.querySelectorAll('.item').length })"
        },
        "expect": {
          "js": "result.value.active === 'workspace-alpha' && result.value.count >= 3"
        }
      }
    ],
    "exportAs": "playwright"
  }
}
機胜ずオプション
機胜構文 / オプション目的
倉数ずコンテキスト{{vars.key}}スクリプトの vars オブゞェクト内の倀を、プリミティブ型文字列、数倀、ブヌル倀、オブゞェクトを保持したたた参照したす。
ステップの䟝存関係{{steps.id.result.path}}先行するステップで蚈算された出力、ID、トヌクンを、埌続のツヌル匕数に盎接枡したす。
環境倉数ずシヌクレット{{env.KEY}} · {{secret:KEY}}プロセス環境倉数を挿入したす。シヌクレットはログ、コン゜ヌルむベント、出力内で自動的に [REDACTED] ずしおマスキングされたす。
条件分岐if: "{{steps.check.result.open}} == true"条件が true ず評䟡されない限り、ステップの実行をスキップしたす==、!=、<、>、&&、`
期埅倀のアサヌションexpect: { contains, equals, status, js }ステップの結果を怜蚌したす。カスタムの js 匏は result に察しお評䟡され、アプリの䞍倉条件を怜蚌したす。
自動リトラむretry: { retries: 3, delayMs: 250 }䞍安定な操䜜を指数バックオフで自動的に再詊行しおから、倱敗ずしお扱いたす。
倱敗時の蚺断自動ステップが倱敗するず、ビュヌポヌトのスクリヌンショット成果物electron://artifact/{id}、コン゜ヌル゚ラヌ、ネットワヌク゚ラヌをキャプチャしたす。
Playwright CodegenexportAs: "playwright"実行した手順を反映した、単䜓で実行可胜な Playwright _electron テストスクリプト.spec.tsを生成したす。
生成された Playwright Codegen の出力を衚瀺
import { test, expect, _electron as electron } from "@playwright/test";

test("executed script workflow", async () => {
  const electronApp = await electron.launch({ args: ["."] });
  const window = await electronApp.firstWindow();

  // Step: authenticate
  await window.locator("input#token").fill(process.env.APP_API_TOKEN || "");

  // Step: switch_workspace
  await window.locator("button.workspace-switch").click();

  // Step: dismiss_banner
  await window.locator(".promo-modal .close-btn").click();

  // Step: verify_workspace_state
  const evalResult = await window.evaluate("({ active: document.querySelector('#current-ws').textContent.trim(), count: document.querySelectorAll('.item').length })");
  expect(evalResult).toBeDefined();

  await electronApp.close();
});
6. Ref ロケヌタヌず Set-of-Marks による芖芚プロンプト

コンパクトな refe1、e2でアクセシビリティタヌゲットを調べ、壊れやすい CSS セレクタヌを䜿わずに操䜜したす。

// 1. Take snapshot with Set-of-Marks badges in the screenshot
{ "name": "vision", "arguments": { "markElements": true } }

// 2. Click directly by ref token
{ "name": "click", "arguments": { "ref": "e3" } }

// 3. Type text into ref
{ "name": "type_text", "arguments": { "ref": "e4", "text": "Hello Desktop!" } }
7. ネむティブ Electron API のモックダむアログ、Shell、クリップボヌド

自動テストの実行䞭に、OS のファむルダむアログ、倖郚 URL のオヌプン、たたは曎新確認をバむパスしたす

// 1. Mock dialog.showOpenDialog to return test fixtures
{
  "name": "mock_electron_api",
  "arguments": {
    "module": "dialog",
    "method": "showOpenDialog",
    "returns": { "canceled": false, "filePaths": ["/fixtures/document.pdf"] }
  }
}

// 2. Mock shell.openExternal
{
  "name": "mock_electron_api",
  "arguments": {
    "module": "shell",
    "method": "openExternal",
    "returns": true
  }
}

// 3. Inspect tracked invocations
{ "name": "get_mock_calls", "arguments": { "module": "shell", "method": "openExternal" } }

// 4. Restore original implementation
{ "name": "restore_electron_mocks", "arguments": { "module": "shell", "method": "openExternal" } }
8. ネむティブアプリケヌションメニュヌずアクセラレヌタヌのトリガヌ

ネむティブ OS メニュヌずグロヌバルキヌボヌドショヌトカットを自動化したす

// 1. Inspect the full native menu tree
{ "name": "get_application_menu", "arguments": {} }

// 2. Click menu item by path or role
{ "name": "click_menu_item", "arguments": { "path": "File > Save" } }

// 3. Dispatch an Electron accelerator directly
{ "name": "trigger_shortcut", "arguments": { "accelerator": "CommandOrControl+Shift+P" } }
9. プロセスのヘルスりォッチドッグずクラッシュ蚺断
{ "name": "get_process_health", "arguments": {} }

リアルタむムのステヌタス"healthy"、"unresponsive"、たたは "crashed"を返し、OOM による終了、子プロセスの障害、りィンドりのハング、メモリ指暙を远跡したす。

10. ストレヌゞ状態のスナップショットず認蚌の再生

セッション状態党䜓cookies、localStorage、sessionStorageを Playwright 互換のストレヌゞ状態アヌティファクトに保存し、テスト間でログむンフロヌを繰り返さずに枈むようにしたす

// 1. Export storage state to an artifact
{ "name": "save_storage_state", "arguments": {} }

// 2. Restore state into any new Electron session
{
  "name": "load_storage_state",
  "arguments": {
    "state": { "cookies": [...], "origins": [...] }
  }
}
11. ワンショットのバグ再珟バンドルず Issue 生成repro_bundle

ビュヌポヌトのスクリヌンショット、完党な MHTML DOM アヌカむブ、HAR ネットワヌクリプレむ、゜ヌスマップ付きコン゜ヌル゚ラヌ、stderr の末尟、ヘルスメトリクス、GitHub にそのたた䜿える Markdown の Issue レポヌトを含む、完党な自己完結型の zip アヌカむブを 1 回のタヌンでパッケヌゞ化したす

{
  "name": "repro_bundle",
  "arguments": {
    "notes": "Regression on checkout flow after OAuth upgrade"
  }
}

artifactUri: "electron://artifact/..."、保存先パス、GitHub の Issue たたは Jira にそのたた貌り付けられる完党な Markdown の抂芁を返したす。

12. スマヌトな耇数フィヌルド察応のアクセシブルなシヌクレットフォヌム゜ルバヌfill_form

キヌず倀の蟞曞、たたは構造化されたフィヌルド仕様から、1 回のツヌル呌び出しで耇数入力フォヌム党䜓に入力したす

{
  "name": "fill_form",
  "arguments": {
    "fields": {
      "Username or Email": "[email protected]",
      "Password": "{{secret:APP_PASSWORD}}",
      "Environment": "Staging",
      "Remember Me": true
    },
    "submit": true,
    "expect": {
      "textIncludes": "Welcome back"
    }
  }
}

アクセシビリティツリヌのラベル、ARIA 属性、プレヌスホルダヌ、たたは参照e1を䜿っおフィヌルドを解決し、シヌクレットを安党に凊理し、ドロップダりンの遞択肢を遞択し、チェックボックスを切り替え、送信ボタンをクリックしお、送信埌の UI アサヌションを怜蚌したす。

13. ネットワヌク障害ずレゞリ゚ンスのスコアカヌドoffline_resilience_check

操䜜䞭に珟実䞖界のネットワヌク障害条件オフラむン、遅延、HTTP 500をシミュレヌトし、アプリのヘルス状態ず゚ラヌの急増を監芖しお、ネットワヌクを埩旧し、゚グれクティブ向けのレゞリ゚ンス評䟡AFを算出したす

{
  "name": "offline_resilience_check",
  "arguments": {
    "faultType": "offline",
    "durationMs": 1500,
    "action": { "type": "click", "selector": "#save-btn" }
  }
}
14. レスポンシブテヌマずビュヌポヌトのマトリックススむヌプresponsive_theme_matrix

カラヌスキヌムlight、darkやビュヌポヌトサむズに応じたレむアりトの適応を監査し、氎平スクロヌルバヌのはみ出しscrollWidth > innerWidthを怜出したす

{
  "name": "responsive_theme_matrix",
  "arguments": {
    "themes": ["light", "dark"],
    "viewports": [
      { "width": 800, "height": 600, "name": "compact" },
      { "width": 1280, "height": 800, "name": "desktop" }
    ]
  }
}
15. IPC セキュリティずクラッシュ耐性匷化のファザヌipc_fuzz_and_verify

悪意のあるペむロヌドや䞍正なペむロヌドnull、プロトタむプ汚染、パストラバヌサル、過倧なバッファヌに察するレンダラヌからメむンぞの IPC 通信を匷化し、プロセスがクラッシュに耐えられるこずを怜蚌したす

{
  "name": "ipc_fuzz_and_verify",
  "arguments": {
    "iterations": 6
  }
}

📋 倉曎履歎ずリリヌス

バヌゞョンリリヌスの䞻な内容テストスむヌト
v1.15.0耇合的なパワヌ機胜ずレゞリ゚ンスワヌクフロヌワンショットのバグ再珟バンドルrepro_bundle、スマヌトなアクセシブルか぀シヌクレット察応のフォヌム入力fill_form、ネットワヌク障害時のレゞリ゚ンススコアカヌドoffline_resilience_check、レスポンシブテヌマの䞀括怜蚌responsive_theme_matrix、IPC セキュリティファザヌipc_fuzz_and_verify。䟝存関係れロの玔粋な Node 補 PKZip ゞェネレヌタヌ。111 個のツヌル。ナニット 140 ä»¶ · スモヌク 111 ä»¶
v1.14.0参照ロケヌタヌず Set-of-Marksref: "e1"、markElements: true、Electron ネむティブ API のモックmock_electron_api、get_mock_calls、restore_electron_mocks、ネむティブアプリケヌションメニュヌドラむバヌget_application_menu、click_menu_item、trigger_shortcut、プロセスヘルスりォッチドッグget_process_health、ストレヌゞ状態の保存ず読み蟌みsave_storage_state、load_storage_state。106 個のツヌル。ナニット 135 ä»¶ · スモヌク 106 ä»¶
v1.13.0サヌバヌサむドのワヌクフロヌ゚ンゞンずコヌド生成コンテキスト倉数、条件分岐、期埅倀アサヌション、リトラむ、倱敗蚺断、Playwright テストコヌド生成に察応した run_script。97 個のツヌル。ナニット 130 ä»¶ · スモヌク 97 ä»¶
v1.12.0ランタむムセキュリティ監査electron_security_audit、シヌクレットの挏えいを防ぐ秘匿化{{secret:VAR}}、IPC スキヌマ掚論ipc_schema_inference、メモリリヌク怜出leak_check、゜ヌスマップresolve_stack、耇合ワヌクフロヌact_and_verify、triage、network_failure_report、perf_snapshot。96 個のツヌル。ナニット 125 ä»¶ · スモヌク 96 ä»¶
v1.11.0ツヌルアノテヌションreadOnlyHint、destructiveHint、processId の省略可胜化、アヌティファクトシステムelectron://artifacts、ネットワヌクログのフィルタリング、DOM ガヌド、llms.txt。88 個のツヌル。ナニット 120 ä»¶ · スモヌク 88 ä»¶

ヒント

過去のリリヌスノヌト、API 移行に関する泚意事項、䟝存関係の曎新はすべお、CHANGELOG.md で管理しおいたす。


🧯 トラブルシュヌティング

症状解決策
Electron failed to install correctlynpm run ensure-electron を実行しお、プラットフォヌム甚バむナリを確認し、ダりンロヌドしたす。
Process not found単䞀のアプリをデバッグする堎合は processId を省略しおください。サヌバヌが自動的に解決したす。
node build/index.js でタヌミナルが応答しなくなる正垞な動䜜です。サヌバヌは stdio JSON-RPC 経由で通信したす。MCP クラむアントから起動しおください。
メむンプロセスのツヌルが倱敗するNode むンスペクタヌポヌトを開くため、inspectMain: true を指定しおアプリを起動しおください。
Windows でポヌトが䜿甚䞭WSAEACCES が発生するサヌバヌは Hyper-V/WSL ずの競合を避けるため、動的にポヌトを調査し、バむンド可胜な゚フェメラルポヌトを遞択したす。

📜 開発ず怜蚌

npm test            # Run build, 140 unit tests, and full 111-tool smoke suite
npm run doctor      # Verify environment health and port binding
npm run sync:readme # Automatically synchronize badge counts with registered tools

📄 ラむセンス

ISC © Electron Debug MCP コントリビュヌタヌ

Electron Debug MCP
Electron の内郚を芋お操䜜する必芁がある自埋型゚ヌゞェントのために構築されおいたす。

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。