Skip to main content
Glama

Electric Cherry MCP

Electron debugging MCP server for both processes:

  • Renderer process via Chrome DevTools Protocol (CDP)

  • Main process via V8 Inspector Protocol

Features

  • Electron app discovery + launch command generation (electron_setup)

  • Dual connect to renderer + main process (electron_connect)

  • Chrome/Electron connection management (chrome, target, connection switching)

  • Renderer automation by CSS selector (query_elements, click_element, fill_element, navigate)

  • JavaScript debugger controls (breakpoints, stepping, call stack, evaluation)

  • Network capture and filtering

  • Renderer screenshot + evaluation

  • Main-process evaluation via V8 Inspector

Related MCP server: electron-mcp-server

Requirements

  • Node.js 20+

  • macOS (for electron_setup app discovery in /Applications)

Install

pnpm install
pnpm build

Run

node build/src/index.js

Configure as MCP server

{
  "mcpServers": {
    "electric-cherry": {
      "command": "node",
      "args": ["/absolute/path/to/electric-cherry/build/src/index.js"]
    }
  }
}

Development

pnpm dev
pnpm build
pnpm test

Tool Groups (30 total)

  • Electron: electron_setup, electron_connect

  • Chrome connection: chrome, chrome_list_connections, chrome_switch_connection, chrome_disconnect, target

  • DOM: query_elements, click_element, fill_element, navigate, get_console_logs

  • Renderer: take_screenshot, renderer_evaluate

  • V8: v8_connect, v8_evaluate, v8_disconnect, v8_list_connections

  • Network: enable_network, get_network_requests, clear_network_requests

  • Debugger: enable_debug_tools, breakpoint, step, execution, call_stack, evaluate, pause_on_exceptions

  • Tool visibility: hide_tools, show_tools

Available Tools

31 tools
breakpointB

Set or remove breakpoints.

Inputs: action (required), url, condition, line_number, +3 more.

call_stackA

Get the current call stack when execution is paused.

Inputs: connection_id.

chromeB

Connect to existing Chrome/Electron or launch a new Chrome instance with remote debugging.

Inputs: action (required), host, port, headless, +3 more.

chrome_disconnectC

Disconnect from a Chrome instance.

Inputs: connection_id (required).

chrome_list_connectionsA

List all active Chrome connections with their status.

Inputs: no named parameters.

chrome_switch_connectionB

Switch the active Chrome connection.

Inputs: connection_id (required).

clear_network_requestsC

Clear captured network requests.

Inputs: connection_id.

click_elementB

Click an element matching the CSS selector.

Inputs: selector (required), index, connection_id.

electron_connectB

Connect to a running Electron app on both CDP (renderer) and V8 Inspector (main process) ports.

Inputs: v8_port (required), cdp_port (required), connection_id.

electron_setupA

Find an Electron app in /Applications and generate a launch command with debugging flags. Returns the exact command to run.

Inputs: app_name (required), v8_port, cdp_port.

enable_debug_toolsA

Enable JavaScript debugger. Must be called before breakpoints or stepping.

Inputs: connection_id.

enable_networkB

Start capturing network requests for the current connection.

Inputs: connection_id.

evaluateB

Evaluate JavaScript in a specific call frame. Only works when paused.

Inputs: expression (required), call_frame_id (required), connection_id.

executionC

Resume or pause execution.

Inputs: action (required), connection_id.

fill_elementB

Fill text into an input element matching the CSS selector.

Inputs: text (required), selector (required), index, submit, +1 more.

get_console_logsC

Get console log messages from the browser.

Inputs: limit, filter_level, connection_id.

get_network_requestsB

List captured network requests with optional filtering.

Inputs: limit, connection_id, filter_status, resource_type.

helpA

Show install instructions for Electric Cherry across different tools.

Inputs: no named parameters.

hide_toolsB

Hide tools by pattern or specific names.

Inputs: tools, pattern.

pause_on_exceptionsB

Configure whether to pause when exceptions are thrown.

Inputs: state (required), connection_id.

query_elementsA

Find elements by CSS selector with DOM depth filtering. Returns tag, text, id, classes, visibility.

Inputs: selector (required), limit, max_depth, connection_id.

renderer_evaluateA

Evaluate arbitrary JavaScript in the renderer process. Does not require debugger pause.

Inputs: expression (required), connection_id.

show_toolsB

Show (restore) hidden tools.

Inputs: all, tools.

stepB

Step through code execution when paused.

Inputs: direction (required), connection_id.

take_screenshotC

Capture a screenshot of the current page.

Inputs: format, full_page, connection_id.

targetB

List or switch browser targets (pages, workers).

Inputs: action (required), url, index, title, +1 more.

v8_connectB

Connect to a V8 Inspector endpoint on a running Electron main process.

Inputs: port (required), connection_id.

v8_disconnectB

Disconnect a V8 Inspector connection.

Inputs: connection_id (required).

v8_evaluateC

Evaluate JavaScript in the Electron main process via V8 Inspector.

Inputs: expression (required), connection_id.

v8_list_connectionsA

List all V8 Inspector connections.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 31 tools

    Disambiguation3/5

    Some tools overlap in purpose (electron_connect vs v8_connect vs chrome, renderer_evaluate vs evaluate), and generic names like 'target' and 'step' could be ambiguous. However, most tools have clear, distinct roles when read with descriptions, so the ambiguity is moderate.

    Naming Consistency3/5

    Many tools follow a context_action pattern (v8_connect, chrome_switch_connection), but there are also bare nouns (target, breakpoint, execution) and verbs (navigate, evaluate). The mixed conventions are readable but lack a single consistent pattern.

    Tool Count2/5

    With 31 tools, the surface is notably large, spanning connections, debugging, navigation, network, and evaluation. While each group covers a niche, the total feels excessive for typical agent workflows, and could be consolidated (e.g., merging v8_connect with electron_connect).

    Completeness4/5

    The tool set covers the core lifecycle of Electron debugging: setup, connect, navigate, interact, inspect, debug, and evaluate. Minor gaps exist such as no explicit wait-for-element or page source retrieval, but agents can work around these with evaluate.

    Related MCP Connectors

    Related MCP Servers