Provides tools for launching and controlling Electron desktop applications with features like multi-window management, IPC communication, native file system access, and element targeting with auto-snapshots optimized for AI workflows.
Enables cross-browser automation support including Firefox, with capabilities for navigation, interaction, screenshot capture, and console monitoring.
Allows automation of GitHub website interactions through browser automation tools for navigation and element interaction.
Integrates with npm for package installation and management as part of the server's operation with Electron applications.
Supports project management and dependency installation for development workflows with Electron applications.
Supports automation of Slack desktop application, including multi-window management and message input capabilities.
Provides support for Electron applications that use webpack during development, with special handling for webpack compilation processes.
Snowfort Circuit MCP - Computer use for webapps and electron apps
Snowfort Circuit MCP is a comprehensive Model Context Protocol (MCP) server suite that enables AI coding agents to automate both web browsers and Electron desktop applications with unparalleled precision and flexibility.
🚀 Quick Start for AI Agents
MCP Configuration
Add to your AI agent's MCP configuration file:
Web Automation Only
Desktop Automation Only
Complete Dual-Engine Setup (Recommended)
First Commands
Once configured, your AI agent can immediately start automating:
✨ Features
🌐 Web Automation (29 Tools)
- Cross-Browser Support: Chromium, Firefox, WebKit
- 🎯 AI-Optimized Snapshots: Auto-snapshots with element references after every action
- 📸 Smart Screenshot Compression: JPEG compression for faster AI workflows (configurable)
- Complete Interaction Set: Click, type, hover, drag, scroll with auto-context
- 🖱️ Multi-Tab Management: Create, switch, list, and close browser tabs
- 📊 Network & Console Monitoring: Real-time request tracking and console capture
- Advanced Input: File uploads, dropdown selection, keyboard shortcuts
- Content Extraction: HTML content, text content, accessibility trees with element refs
- Visual Capture: Compressed screenshots, PDF generation
- Navigation: History control, page reload, URL navigation
- Dialog Handling: Automatic alert/confirm/prompt management
- Browser Control: Viewport resizing, window management
- 🧪 Test Generation: Auto-generate Playwright test code from recorded actions
- JavaScript Execution: Run custom scripts in page context
- Smart Waiting: Element appearance, network idle, page load states
🖥️ Desktop Automation (25+ Tools)
- 🎯 AI-Optimized Desktop Control: Launches and controls Electron apps with auto-snapshots
- 📸 Smart Screenshot Compression: JPEG compression for faster AI workflows (configurable)
- 🔧 Development Mode Support: Launch apps during development with auto-detection
- Universal Electron Support: Any Electron application (packaged or development)
- Multi-Window Management: Control multiple app windows simultaneously
- IPC Communication: Direct inter-process communication with apps
- Native File System: Read/write files directly
- Enhanced Targeting: Role-based clicks, nth element selection, text-based targeting
- Accessibility-First: Built-in accessibility tree navigation with element refs
- State Management: Advanced page state waiting and monitoring
- All Web Tools: Every web automation tool works in desktop context
🔧 Architecture Benefits
- 🤖 AI-First Design: Auto-snapshots, element references, and compressed images for optimal AI workflows
- Runtime App Selection: Specify Electron apps at tool call time, not startup
- Session Management: Multiple concurrent automation sessions with full isolation
- Type Safety: Full TypeScript support with comprehensive type definitions
- Error Handling: Robust error reporting and recovery
- Performance Optimized: Efficient resource usage and fast execution
📚 Complete Tool Reference
🌐 Web Tools
Tool | Description | Key Parameters |
---|---|---|
browser_launch | Launch browser with AI optimizations | browser , headed , viewport , compressScreenshots , screenshotQuality |
browser_navigate | Navigate to URL (includes auto-snapshot) | sessionId , url |
browser_resize | Resize browser viewport | sessionId , width , height |
browser_handle_dialog | Set dialog auto-response | sessionId , action , promptText |
browser_tab_new | Create new browser tab | sessionId |
browser_tab_list | List all open tabs | sessionId |
browser_tab_select | Switch to specific tab | sessionId , tabId |
browser_tab_close | Close specific tab | sessionId , tabId |
browser_network_requests | Get network request history | sessionId |
browser_console_messages | Get console message history | sessionId |
browser_generate_playwright_test | Generate test code from actions | sessionId |
click | Click element (includes auto-snapshot) | sessionId , selector , windowId |
type | Type text (includes auto-snapshot) | sessionId , selector , text , windowId |
hover | Hover over element (includes auto-snapshot) | sessionId , selector , windowId |
drag | Drag element to target | sessionId , sourceSelector , targetSelector |
key | Press keyboard key (includes auto-snapshot) | sessionId , key , windowId |
select | Select dropdown option | sessionId , selector , value |
upload | Upload file to input | sessionId , selector , filePath |
back | Navigate back in history | sessionId |
forward | Navigate forward in history | sessionId |
refresh | Reload current page | sessionId |
screenshot | Take compressed screenshot | sessionId , path |
snapshot | Get accessibility tree with element refs | sessionId , windowId |
snapshot | Get accessibility tree with element refs | sessionId |
pdf | Generate PDF of page | sessionId , path |
content | Get HTML content | sessionId |
text_content | Get visible text | sessionId |
evaluate | Execute JavaScript | sessionId , script |
wait_for_selector | Wait for element | sessionId , selector , timeout |
close | Close browser session | sessionId |
🖥️ Electron Tools
Tool | Description | Key Parameters |
---|---|---|
app_launch | Launch Electron app with AI optimizations | app , mode , projectPath , startScript , disableDevtools , compressScreenshots , screenshotQuality |
get_windows | List windows with type identification | sessionId |
ipc_invoke | Call IPC method | sessionId , channel , args |
fs_write_file | Write file to disk | sessionId , filePath , content |
fs_read_file | Read file from disk | sessionId , filePath |
keyboard_press | Press key with modifiers | sessionId , key , modifiers |
click_by_text | Click element by text | sessionId , text , exact |
click_by_role | Click by accessibility role | sessionId , role , name |
click_nth | Click nth matching element | sessionId , selector , index |
keyboard_type | Type with delay | sessionId , text , delay |
add_locator_handler | Handle modals/popups | sessionId , selector , action |
wait_for_load_state | Wait for page state | sessionId , state |
+ All Web Tools | All 29 web tools with optional windowId |
💡 Usage Examples
Web Automation Workflows
AI-Optimized Browser Launch
Multi-Tab Workflow
Element Targeting with References
Network and Console Monitoring
Dialog Handling
Desktop Application Automation
AI-Optimized Desktop Launch
Development Mode Support
Electron Forge Support (NEW in v0.5.7)
Recommended Approach (Most Reliable):
Experimental Auto-Start Feature:
🚀 Quick Start Guide for Electron Automation
Use this guide for AI agents (CLAUDE.md) or manual reference
For Electron Forge Projects:
For Regular Electron Projects:
For Packaged Apps:
Key Features:
- 📸 Every action returns an AI-ready snapshot with element refs (e1, e2, etc.)
- 🎯 Multiple click methods: by selector, text, role, or nth element
- 🔧 Full automation: screenshots, evaluate JS, keyboard/mouse control
- 🧹 Auto cleanup: Sessions and dev servers close automatically
- 🪟 Smart window management: DevTools automatically filtered, main window detection
Pro Tips:
- Use
compressScreenshots: true
(default) for faster AI processing - The MCP launches a new instance - it cannot attach to running apps
- For Electron Forge: Always start dev server first, then launch with MCP
- DevTools windows are automatically filtered out - you'll always get the main app window
- Use
disableDevtools: true
to prevent DevTools from opening automatically - Use
get_windows
to see all windows with type identification (main/devtools/other)
That's it! All other tools work just like the web version. Happy automating! 🎉
📖 Legacy Instructions for AI Agents (Claude, CLAUDE.md, etc.)
⚠️ Important: The MCP launches its own Electron instance - you cannot connect to an already running app.
For Electron development projects:
- Stop any existing
npm run start
process - Let the MCP launch your app instead:
How It Works:
- 🚀 Launches new instance of your Electron app using Playwright
- 🎯 Full automation control via Chrome DevTools Protocol
- 📸 Cannot attach to existing running processes
Key Benefits for AI Workflows:
- 🤖 Auto-snapshots after every action with element references (
ref="e1"
,ref="e2"
) - 📸 Compressed screenshots by default for faster processing
- 🎯 Direct element targeting using the provided refs in snapshots
- 🔄 No manual snapshot calls needed - context is provided automatically
Code Editor Automation
Multi-Window Management
Advanced Configuration
Web Development Mode with Full Quality
Electron Development Mode
Production Mode with Optimized Performance
🔧 Troubleshooting
Common Electron Development Issues
"Not connected" Error
Problem: Trying to use MCP commands without a valid session
Solution:
Cannot Connect to Running App
Problem: Trying to connect to existing npm run start
process
Solution: Stop existing process, let MCP launch your app instead
Electron Not Found
Problem: MCP can't find Electron executable
Solutions:
- Install Electron locally:
npm install electron --save-dev
- Specify custom path:
{"electronPath": "/custom/path/to/electron"}
- Install globally:
npm install -g electron
🛠️ Configuration Options
CLI Options
Web Server (@snowfort/circuit-web
)
Electron Server (@snowfort/circuit-electron
)
Advanced MCP Configurations
Development Setup
Production Setup
🏗️ Architecture
📦 Published Packages
Package | Version | Description |
---|---|---|
@snowfort/circuit-core | Core MCP infrastructure | |
@snowfort/circuit-web | Web automation CLI (29 tools) | |
@snowfort/circuit-electron | Desktop automation CLI (25+ tools) |
🔧 Development
Local Development Setup
Running Local Development Servers
Testing
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Independent implementation for comprehensive automation testing - © 2025 Snowfort LLC
🙏 Acknowledgments
- Playwright for the automation framework
- MCP SDK for the protocol implementation
- The Model Context Protocol community for driving innovation in AI-tool integration
Ready to automate everything? Start with the MCP configuration above and unleash the power of AI-optimized dual-engine automation! 🚀
This server cannot be installed
A comprehensive Model Context Protocol (MCP) server suite that enables AI coding agents to automate both web browsers and Electron desktop applications with auto-snapshots and element references.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.Last updated -12,4131,751TypeScriptMIT License
- -securityAlicense-qualityA high-performance Model Context Protocol (MCP) server designed for large language models, enabling real-time communication between AI models and applications with support for session management and intelligent tool registration.Last updated -2PythonMIT License
- AsecurityFlicenseAqualityAn all-in-one Model Context Protocol (MCP) server that connects your coding AI to numerous databases, data warehouses, data pipelines, and cloud services, streamlining development workflow through seamless integrations.Last updated -2Python
- -securityAlicense-qualityModel Context Protocol (MCP) server that provides AI assistants with advanced web research capabilities, including Google search integration, intelligent content extraction, and multi-source synthesis.Last updated -35TypeScriptMIT License