electron-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NODE_ENV | No | Environment | production |
| LOG_LEVEL | No | Logging level | info |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| launch_electron_appC | Launch an Electron application for testing |
| connect_to_electron_cdpC | Connect to a running Electron application via Chrome DevTools Protocol |
| close_sessionC | Close an Electron testing session and release resources |
| list_sessionsB | List all active Electron testing sessions |
| navigateC | Navigate to a URL in the Electron app |
| clickC | Click on an element in the Electron app |
| fillC | Fill an input field with text |
| selectC | Select an option from a dropdown |
| get_textC | Get the text content of an element |
| screenshotC | Take a screenshot of current page or an element |
| wait_for_selectorC | Wait for an element to appear on the page |
| executeC | Execute JavaScript in the Electron app context |
| get_page_infoC | Get information about the current page (URL, title, etc.) |
| execute_main_process_scriptC | Execute JavaScript in the Electron main process context |
| get_main_window_infoC | Get information about the Electron main window |
| focus_main_windowC | Focus Electron main window |
| minimize_main_windowC | Minimize Electron main window |
| maximize_main_windowC | Maximize Electron main window |
| take_screenshotC | Take a screenshot of current page |
| capture_element_screenshotC | Take a screenshot of a specific element |
| compare_screenshotsC | Compare a screenshot with a baseline image |
| get_viewport_sizeC | Get current viewport size |
| set_viewport_sizeD | Set the viewport size |
| get_accessibility_treeC | Get accessibility tree of current page |
| get_accessibility_snapshotC | Get Playwright accessibility snapshot for the current page |
| find_accessible_nodeC | Find accessible nodes by role and/or name using the accessibility tree |
| interact_accessible_nodeC | Interact with an accessible node by role and name (click or fill) |
| start_recordingC | Start recording user interactions for the given session |
| stop_recordingC | Stop recording interactions and return the recorded steps |
| export_recording_as_testC | Export recorded steps as a Playwright test file snippet |
| get_protocol_infoC | Get CDP protocol information including browser version and capabilities |
| emulate_network_conditionsC | Emulate network conditions (offline, slow network, latency) |
| reset_network_conditionsC | Reset network conditions to default |
| set_geolocationC | Set or override geolocation for the page |
| clear_geolocationC | Clear geolocation override |
| set_device_metricsC | Emulate device metrics (viewport size, device scale factor, mobile) |
| get_console_messagesC | Capture console messages from the page |
| get_performance_metricsC | Get performance metrics from the page |
| clear_browser_cacheC | Clear browser cache and cookies |
| get_navigation_historyC | Get navigation history entries for the current page using CDP Page.getNavigationHistory |
| restore_navigation_historyC | Restore a specific navigation history entry using CDP Page.navigateToHistoryEntry |
| get_user_agentC | Get current user agent string |
| enable_debugB | Enable debug mode with granular logging for the MCP server. Logs are stored in .electron-mcp/logs directory within the project. |
| disable_debugB | Disable debug mode and stop logging. |
| configure_debugC | Configure debug settings including log levels and categories. |
| get_debug_statusB | Get current debug mode status and configuration. |
| get_logsB | Retrieve and filter log entries from the project log directory. |
| clear_logsB | Clear all log files from the project log directory. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 48 tools
Several tools have overlapping purposes: screenshot and take_screenshot both capture the current page, get_accessibility_tree and get_accessibility_snapshot both retrieve accessibility data, and interact_accessible_node overlaps with click/fill/select. This creates multiple unclear boundaries that could easily cause misselection.
Most names use snake_case and are readable, but the conventions are mixed: some are verb_noun (take_screenshot, capture_element_screenshot), some are bare nouns or adjectives (screenshot), and some are simple verbs without objects (execute, click). This is not chaotic but is inconsistent enough to be notable.
48 tools is very heavy for an Electron testing MCP server, exceeding the 25-tool threshold where count becomes a problem. Many tools are duplicates or near-duplicates (e.g., screenshot variants, accessibility variants), indicating the surface is over-expanded rather than tightly scoped.
The server covers a wide lifecycle: launching/connecting sessions, page interaction, screenshots, accessibility, network/geolocation emulation, recording, navigation, performance, and debug logging. Some minor gaps remain, such as keyboard actions, drag-and-drop, or built-in assertions, but core Electron testing workflows are well represented.