Electron Desktop Automation▌
by halilural
Electron Desktop Automation streamlines app testing with screenshots, console monitoring, project detection, and debuggi
Automates Electron desktop applications through Chrome DevTools Protocol integration, enabling screenshot capture, JavaScript execution, console monitoring, and window management with intelligent project detection and debugging configuration.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / Electron app developers testing and debugging
- / Automating desktop application workflows
- / QA teams testing Electron-based software
- / DevOps monitoring desktop application health
capabilities
- / Take screenshots of Electron applications
- / Execute JavaScript code in running Electron apps
- / Monitor console logs and application events
- / Control UI elements like buttons and forms
- / Extract DOM elements and application data
- / Manage Electron application windows
what it does
Automates and debugs Electron desktop applications through Chrome DevTools Protocol without requiring app modifications. Provides AI-powered control over UI interactions, screenshot capture, and real-time monitoring.
about
Electron Desktop Automation is a community-built MCP server published by halilural that provides AI assistants with tools and capabilities via the Model Context Protocol. Electron Desktop Automation streamlines app testing with screenshots, console monitoring, project detection, and debuggi It is categorized under browser automation, developer tools.
how to install
You can install Electron Desktop Automation in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
MIT
Electron Desktop Automation is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
Electron MCP Server
A powerful Model Context Protocol (MCP) server that provides comprehensive Electron application automation, debugging, and observability capabilities. Supercharge your Electron development workflow with AI-powered automation through Chrome DevTools Protocol integration.
Demo
See the Electron MCP Server in action:
Watch how easy it is to automate Electron applications with AI-powered MCP commands.
🎯 What Makes This Special
Transform your Electron development experience with AI-powered automation:
- 🔄 Real-time UI Automation: Click buttons, fill forms, and interact with any Electron app programmatically
- 📸 Visual Debugging: Take screenshots and capture application state without interrupting development
- 🔍 Deep Inspection: Extract DOM elements, application data, and performance metrics in real-time
- ⚡ DevTools Protocol Integration: Universal compatibility with any Electron app - no modifications required
- 🚀 Development Observability: Monitor logs, system info, and application behavior seamlessly
🔒 Security & Configuration
Configurable security levels to balance safety with functionality:
Security Levels
- 🔒 STRICT: Maximum security for production environments
- ⚖️ BALANCED: Default security with safe UI interactions (recommended)
- 🔓 PERMISSIVE: More functionality for trusted environments
- 🛠️ DEVELOPMENT: Minimal restrictions for development/testing
Environment Configuration
Configure the security level and other settings through your MCP client configuration:
VS Code MCP Settings:
{
"mcp": {
"servers": {
"electron": {
"command": "npx",
"args": ["-y", "electron-mcp-server"],
"env": {
"SECURITY_LEVEL": "balanced",
"SCREENSHOT_ENCRYPTION_KEY":"your-32-byte-hex-string"
}
}
}
}
}
Claude Desktop Configuration:
{
"mcpServers": {
"electron": {
"command": "npx",
"args": ["-y", "electron-mcp-server"],
"env": {
"SECURITY_LEVEL": "balanced",
"SCREENSHOT_ENCRYPTION_KEY":"your-32-byte-hex-string"
}
}
}
}
Alternative: Local .env file (for development):
# Create .env file in your project directory
SECURITY_LEVEL=balanced
SCREENSHOT_ENCRYPTION_KEY=your-32-byte-hex-string
Security Level Behaviors:
| Level | UI Interactions | DOM Queries | Property Access | Assignments | Function Calls | Risk Threshold |
|---|---|---|---|---|---|---|
strict | ❌ Blocked | ❌ Blocked | ✅ Allowed | ❌ Blocked | ❌ None allowed | Low |
balanced | ✅ Allowed | ✅ Allowed | ✅ Allowed | ❌ Blocked | ✅ Safe UI functions | Medium |
permissive | ✅ Allowed | ✅ Allowed | ✅ Allowed | ✅ Allowed | ✅ Extended UI functions | High |
development | ✅ Allowed | ✅ Allowed | ✅ Allowed | ✅ Allowed | ✅ All functions | Critical |
Environment Setup:
- Copy
.env.exampleto.env - Set
SECURITY_LEVELto your desired level - Configure other security settings as needed
cp .env.example .env
# Edit .env and set SECURITY_LEVEL=balanced
Secure UI Interaction Commands
Instead of raw JavaScript eval, use these secure commands:
// ✅ Secure button clicking
{
"command": "click_by_text",
"args": { "text": "Create New Encyclopedia" }
}
// ✅ Secure element selection
{
"command": "click_by_selector",
"args": { "selector": "button[title='Create']" }
}
// ✅ Secure keyboard shortcuts
{
"command": "send_keyboard_shortcut",
"args": { "text": "Ctrl+N" }
}
// ✅ Secure navigation
{
"command": "navigate_to_hash",
"args": { "text": "create" }
}
See SECURITY_CONFIG.md for detailed security documentation.
🎯 Proper MCP Usage Guide
⚠️ Critical: Argument Structure
The most common mistake when using this MCP server is incorrect argument structure for the send_command_to_electron tool.
❌ Wrong (causes "selector is empty" errors):
{
"command": "click_by_selector",
"args": "button.submit-btn" // ❌ Raw string - WRONG!
}
✅ Correct:
{
"command": "click_by_selector",
"args": {
"selector": "button.submit-btn" // ✅ Object with selector property
}
}
📋 Command Argument Reference
| Command | Required Args | Example |
|---|---|---|
click_by_selector | {"selector": "css-selector"} | {"selector": "button.primary"} |
click_by_text | {"text": "button text"} | {"text": "Submit"} |
fill_input | {"value": "text", "selector": "..."} or {"value": "text", "placeholder": "..."} | {"placeholder": "Enter name", "value": "John"} |
send_keyboard_shortcut | {"text": "key combination"} | {"text": "Ctrl+N"} |
eval | {"code": "javascript"} | {"code": "document.title"} |
get_title, get_url, get_body_text | No args needed | {} or omit args |
🔄 Recommended Workflow
- Inspect: Start with
get_page_structureordebug_elements - Target: Use specific selectors or text-based targeting
- Interact: Use the appropriate command with correct argument structure
- Verify: Take screenshots or check page state
// Step 1: Understand the page
{
"command": "get_page_structure"
}
// Step 2: Click button using text (most reliable)
{
"command": "click_by_text",
"args": {
"text": "Create New Encyclopedia"
}
}
// Step 3: Fill form field
{
"command": "fill_input",
"args": {
"placeholder": "Enter encyclopedia name",
"value": "AI and Machine Learning"
}
}
// Step 4: Submit with selector
{
"command": "click_by_selector",
"args": {
"selector": "button[type='submit']"
}
}
🐛 Troubleshooting Common Issues
| Error | Cause | Solution |
|---|---|---|
| "The provided selector is empty" | Passing string instead of object | Use {"selector": "..."} |
| "Element not found" | Wrong selector | Use get_page_structure first |
| "Command blocked" | Security restriction | Check security level settings |
| "Click prevented - too soon" | Rapid consecutive clicks | Wait before retrying |
🛠️ Security Features
Enterprise-grade security built for safe AI-powered automation:
- 🔒 Sandboxed Execution: All code runs in isolated environments with strict resource limits
- 🔍 Input Validation: Advanced static analysis detects and blocks dangerous code patterns
- 📝 Comprehensive Auditing: Encrypted logs track all operations with full traceability
- 🖼️ Secure Screenshots: Encrypted screenshot data with clear user notifications
- ⚠️ Risk Assessment: Automatic threat detection with configurable security thresholds
- 🚫 Zero Trust: Dangerous functions like
eval, file system access, and network requests are blocked by default
Safety First: Every command is analyzed, validated, and executed in a secure sandbox before reaching your application.
�🚀 Key Features
🎮 Application Control & Automation
- Launch & Manage: Start, stop, and monitor Electron applications with full lifecycle control
- Interactive Automation: Execute JavaScript code directly in running applications via WebSocket
- UI Testing: Automate button clicks, form interactions, and user workflows
- Process Management: Track PIDs, monitor resource usage, and handle graceful shutdowns
📊 Advanced Observability
- Screenshot Capture: Non-intrusive visual snapshots using Playwright and Chrome DevTools Protocol
- Real-time Logs: Stream application logs (main process, renderer, console) with filtering
- Window Information: Get detailed window metadata, titles, URLs, and target information
- System Monitoring: Track memory usage, uptime, and performance metrics
🛠️ Development Productivity
- Universal Compatibility: Works with any Electron app without requiring code modifications
- DevTools Integration: Leverage Chrome DevTools Protocol for powerful debugging capabilities
- Build Automation: Cross-platform building for Windows, macOS, and Linux
- Environment Management: Clean environment handling and debugging port configuration
📦 Installation
VS Code Integration (Recommended)
[ server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for Electron Desktop Automation?
- This profile displays 32 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.5 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Web Research & Information Gathering
Fetch and extract information from websites automatically
Example
Research competitor pricing, scrape product reviews, monitor news mentions
Automate 5-10 hours/week of manual web research
Content Monitoring & Alerts
Track website changes, new content, price updates
Example
Monitor competitor blog for new posts, track stock availability, watch for pricing changes
Stay informed without manual checking, never miss important updates
Data Extraction & Aggregation
Extract structured data from multiple websites
Example
Compile product listings from 10 e-commerce sites, aggregate job postings, collect real estate data
Build datasets 100x faster than manual copying
API-less Integration
Interact with services that don't offer APIs
Example
Check form submissions, validate website functionality, test user flows
Automate interactions with any website, even without API
Implementation Guide▌
Prerequisites
- ›Claude Desktop or Cursor with MCP support
- ›Understanding of web scraping ethics and robots.txt
- ›Rate limiting awareness to avoid overwhelming target sites
- ›Knowledge of legal restrictions on data collection
Time Estimate
20-40 minutes including configuration and testing
Installation Steps
- 1.Install web automation MCP server via npm or pip
- 2.Configure allowed domains and rate limits in MCP config
- 3.Test with simple fetch: 'Get content from example.com'
- 4.Progress to extraction: 'Extract all product prices from this page'
- 5.Set up monitoring: 'Check this URL daily for changes'
- 6.Parse structured data: 'Create CSV from this table'
- 7.Respect robots.txt and rate limits always
Troubleshooting
- ⚠403 Forbidden: Website blocks bots—respect their wishes, use official API instead
- ⚠Rate limit errors: Slow down requests, add delays between fetches
- ⚠Stale data: Target site changed HTML structure—update selectors
- ⚠Timeout errors: Site is slow or blocking—increase timeout, try different user agent
- ⚠JavaScript-rendered content: Use headless browser MCP servers for dynamic sites
Best Practices▌
✓ Do
- +Check robots.txt and respect crawl rules
- +Rate limit requests: 1-2 requests/second maximum
- +Use official APIs when available instead of scraping
- +Identify your bot with descriptive user agent
- +Cache results to minimize repeated requests
- +Handle errors gracefully with retries and fallbacks
- +Validate extracted data for accuracy
✗ Don't
- −Don't scrape sites that explicitly forbid it (robots.txt, ToS)
- −Don't overwhelm servers with rapid requests—use rate limiting
- −Don't scrape personal data without consent and legal basis
- −Don't ignore copyright on extracted content
- −Don't assume HTML structure is stable—handle changes
- −Don't use scraped data for commercial purposes without permission
💡 Pro Tips
- ★Use CSS selectors or XPath for robust data extraction
- ★Set up monitoring alerts for extraction failures (structure changed)
- ★Implement exponential backoff for retries on failures
- ★Store raw HTML for reprocessing if extraction logic changes
- ★Combine with data analysis tools for insights from extracted data
- ★Consider using official APIs or RSS feeds as more stable alternatives
Technical Details▌
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
- HTTP/HTTPS
- WebSocket (for real-time sites)
- Puppeteer/Playwright (for JavaScript sites)
Compatibility
- Static HTML sites
- JavaScript-rendered SPAs (with headless browser)
- REST APIs
- GraphQL endpoints
When to Use This▌
✓ Use When
Use for research automation, content monitoring, data aggregation from multiple sources, and when official APIs don't exist. Best for read-only information gathering.
✗ Avoid When
Avoid for sites with APIs (use API instead), sites that explicitly forbid scraping, when data is copyrighted, or for login-required content without proper authorization.
Integration▌
- →Scheduled monitoring with change detection
- →Multi-source data aggregation pipelines
- →Fallback to web scraping when API rate limits hit
- →Headless browser for JavaScript-heavy sites
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.5★★★★★32 reviews- ★★★★★Dhruvi Jain· Dec 16, 2024
I recommend Electron Desktop Automation for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Kabir Farah· Dec 16, 2024
According to our notes, Electron Desktop Automation benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Oshnikdeep· Nov 7, 2024
According to our notes, Electron Desktop Automation benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Hiroshi Gupta· Nov 7, 2024
I recommend Electron Desktop Automation for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Benjamin Agarwal· Nov 3, 2024
We wired Electron Desktop Automation into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Ganesh Mohane· Oct 26, 2024
Electron Desktop Automation is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
- ★★★★★Aarav Ndlovu· Oct 26, 2024
We evaluated Electron Desktop Automation against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Nia Abebe· Oct 22, 2024
Electron Desktop Automation reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
- ★★★★★Isabella Desai· Sep 25, 2024
Strong directory entry: Electron Desktop Automation surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Sakshi Patil· Sep 5, 2024
Electron Desktop Automation is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
showing 1-10 of 32
