electron-mcp-server
Provides tools for launching and managing Electron applications, interacting with UI elements, executing scripts in the main process, capturing screenshots, and performing visual and accessibility testing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@electron-mcp-serverlaunch the electron app and click the 'Start' button"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Electron MCP Server
A Model Context Protocol (MCP) server for testing Electron applications using Playwright. This server enables AI coding tools like Cursor and Claude Code to interact with Electron applications for automated testing and development.
Features
Electron App Lifecycle: Launch and manage Electron applications programmatically
CDP Connection: Connect to running Electron apps via Chrome DevTools Protocol with retry logic and IPv6/IPv4 fallback
Element Interaction: Click, fill, select, and interact with UI elements
Navigation: Navigate to URLs and manage page state, with CDP-backed navigation history tools
Window Management: Control Electron main windows (focus, minimize, maximize)
Main Process Access: Execute scripts in the Electron main process
Visual Testing: Capture screenshots and compare against baselines
Accessibility Testing: Retrieve accessibility tree information, structured accessibility snapshots, and role-based interactions
Session Management: Multiple concurrent test sessions with UUID tracking
Advanced CDP Features: Network emulation, geolocation override, device metrics, performance monitoring, navigation history
Code Generation: Record user flows and export Playwright tests
Robust Error Handling: Categorized errors with automatic classification and retry recommendations
Related MCP server: mcp-electron-driver
Installation
Using npm (Recommended)
npm install -g @kanishka-namdeo/electron-mcp-serverFrom Source
git clone https://github.com/kanishka-namdeo/electron-mcp-server.git
cd electron-mcp-server
npm install
npm run buildUsage
Running the Server
# Development mode with hot reload
npm run dev
# Production mode
npm run start
# Build TypeScript
npm run buildAI Tool Integration
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"electron-mcp-server": {
"command": "npx",
"args": [
"-y",
"@kanishka-namdeo/electron-mcp-server"
],
"env": {
"LOG_LEVEL": "info",
"NODE_ENV": "production"
}
}
}
}Or using a global installation:
{
"mcpServers": {
"electron-mcp-server": {
"command": "electron-mcp-server",
"env": {
"LOG_LEVEL": "info",
"NODE_ENV": "production"
}
}
}
}Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"electron-mcp-server": {
"command": "npx",
"args": [
"-y",
"@kanishka-namdeo/electron-mcp-server"
]
}
}
}Or for global installation:
{
"mcpServers": {
"electron-mcp-server": {
"command": "electron-mcp-server"
}
}
}Available Tools
The Electron MCP Server provides 44 tools across 6 categories:
App Lifecycle (4 tools)
Tool | Description |
| Launch an Electron application |
| Connect to a running Electron app via CDP |
| Close a test session |
| List all active sessions |
Element Interaction (10 tools)
Tool | Description |
| Navigate to a URL |
| Click on an element |
| Fill an input field with text |
| Select an option from a dropdown |
| Get text content of an element |
| Take a screenshot of the page or element |
| Wait for an element to appear |
| Execute JavaScript in the renderer process |
| Get page URL and title |
Main Process & Window Control (8 tools)
Tool | Description |
| Execute JavaScript in the main process |
| Get window information |
| Focus the main window |
| Minimize the main window |
| Maximize the main window |
| Report capability info for unresponsive renderer callstack capture in Electron 34+ apps |
| Report capability info for HTTP shared dictionary compression in Electron 34+ apps |
| Report capability info for clearing shared dictionary cache in Electron 34+ apps |
Visual Testing & Accessibility (11 tools)
Tool | Description |
| Capture a screenshot |
| Screenshot a specific element |
| Compare against a baseline |
| Get current viewport dimensions |
| Set viewport dimensions |
| Retrieve accessibility tree |
| Get Playwright accessibility snapshot for the current page |
| Find nodes by accessibility role/name with optional fuzzy matching |
| Click or fill accessible nodes by role/name |
Advanced CDP Features (12 tools)
Tool | Description |
| Get CDP protocol version and browser info |
| Emulate slow/offline network |
| Reset to default network settings |
| Override geolocation |
| Remove geolocation override |
| Emulate mobile device |
| Capture console logs |
| Get performance metrics |
| Clear cache and cookies |
| Get current user agent |
| Get navigation history entries via CDP |
| Restore a history entry via CDP |
Codegen & Recording
Tool | Description |
| Start recording a flow for a session |
| Stop recording and return structured steps |
| Export recorded steps as a Playwright test snippet |
Links
npm: https://www.npmjs.com/package/@kanishka-namdeo/electron-mcp-server
Repository: https://github.com/kanishka-namdeo/electron-mcp-server
Issues: https://github.com/kanishka-namdeo/electron-mcp-server/issues
Development
Testing
The project has a comprehensive test suite with multiple categories:
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run unit tests only
npm run test:unit
# Run integration tests only
npm run test:integration
# Run E2E tests only (requires running Electron app)
npm run test:e2e
# Run compliance tests only
npm run test:compliance
# Run tests in watch mode
npm run test:watchLinting
# Run linter
npm run lint
# Fix linting issues
npm run lint:fixType Checking
npm run typecheckBuilding
# Build TypeScript
npm run build
# Development mode with hot reload
npm run dev
# Production mode
npm startProject Structure
electron-mcp-server/
├── src/
│ ├── core/
│ │ ├── errors.ts # Custom error classes
│ │ ├── errors-enhanced.ts # Enhanced error handling with classification
│ │ ├── cdp-utils.ts # CDP connection utilities with retry logic
│ │ ├── connection-health.ts # Connection health monitoring
│ │ ├── logger.ts # Pino logging setup
│ │ └── types.ts # TypeScript type definitions
│ ├── session/
│ │ ├── session-manager.ts # Session lifecycle management
│ │ └── index.ts
│ ├── tools/
│ │ ├── handlers/
│ │ │ ├── app-lifecycle.ts # App launch and CDP connection
│ │ │ ├── element-interaction.ts # Click, fill, select, navigate
│ │ │ ├── main-process.ts # Window control and main process scripts
│ │ │ ├── visual-testing.ts # Screenshots, viewport, accessibility
│ │ │ └── cdp-advanced.ts # Network, geolocation, device metrics
│ │ ├── tools.ts # Tool definitions
│ │ ├── validation.ts # Zod schemas
│ │ ├── validation-enhanced.ts # Enhanced validation schemas
│ │ └── index.ts
│ └── index.ts # Main MCP server
├── tests/
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ ├── e2e/ # End-to-end tests
│ ├── compliance/ # MCP protocol compliance tests
│ ├── utils/ # Test utilities
│ └── fixtures/ # Test fixtures
├── test-app/ # Electron test application
├── .trae/
│ └── docs/ # Phase 1 & 2 documentation
├── CHANGELOG.md # Version history
├── LICENSE # MIT License
├── package.json
├── tsconfig.json
└── vitest.config.tsEnvironment Variables
LOG_LEVEL: Logging level (default:info)NODE_ENV: Environment (default:production)
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kanishka-namdeo/electron-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server