electron-test-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connectB | Connect to already running Electron app via CDP (e.g., bun run dev:local with --remote-debugging-port) |
| launchB | Launch Electron app for testing (builds and runs fresh instance) |
| disconnectA | Disconnect from CDP (does not close the app) |
| closeA | Close the Electron app (only works with launch, not connect) |
| screenshotC | Take a screenshot of the current window |
| snapshotB | Get accessibility tree snapshot of the page (for finding elements) |
| clickC | Click an element |
| fillC | Fill text into an input field |
| typeA | Type text character by character (triggers key events) |
| hoverC | Hover over an element |
| pressC | Press a keyboard key |
| waitC | Wait for an element or condition |
| getTextC | Get text content of an element |
| evaluateC | Execute JavaScript in the renderer process |
| evaluateMainC | Execute code in the Electron main process |
| dragC | Drag and drop from source to target element |
| selectOptionC | Select option(s) from a dropdown |
| getAttributeC | Get attribute value of an element |
| isVisibleC | Check if element is visible |
| countC | Count elements matching selector |
| scrollC | Scroll the page using mouse wheel |
| scrollToC | Scroll to absolute position on the page |
| scrollIntoViewC | Scroll element into view |
| mouseMoveC | Move mouse cursor to specific coordinates |
| mouseDownC | Press mouse button down |
| mouseUpC | Release mouse button |
| mouseClickC | Click at specific coordinates (without selector) |
| dblclickC | Double-click an element |
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 28 tools
Most tools target clearly distinct actions (click vs fill vs hover vs drag), and the lifecycle tools connect/launch/close/disconnect are well separated. However, there is real overlap among scroll, scrollTo, and scrollIntoView, and click vs mouseClick vs dblclick, which could cause misselection without careful reading.
The set mixes snake_case-adjacent single words (connect, launch, screenshot, click, fill) with camelCase (getText, selectOption, getAttribute, isVisible, scrollIntoView, mouseMove, mouseClick) and an odd unseparated 'dblclick'. No single predictable verb_noun or verbNoun convention holds throughout.
28 tools is heavy for the scope and includes highly granular primitives (mouseMove, mouseDown, mouseUp, mouseClick, scroll/scrollTo/scrollIntoView) that could be consolidated. It is defensible for a full automation harness but sits at the cumbersome end.
Covers the lifecycle (connect/launch/close/disconnect), inspection (screenshot, snapshot, getText, getAttribute, isVisible, count), and rich interaction plus JS evaluation in both renderer and main process. Minor gaps like file upload, navigation/wait-for-navigation, and iframe handling exist but are workaroundable.