Labsco
snowfort-ai logo

Snowfort Circuit MCP

β˜… 58

from snowfort-ai

Automate web browsers and Electron desktop applications for AI coding agents.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

Circuit MCP - Computer use for webapps and electron apps

License

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.

✨ 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 (32 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
  • πŸ› Console & Network Monitoring: Capture application logs and network requests for debugging
  • 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

ToolDescriptionKey Parameters
browser_launchLaunch browser with AI optimizationsbrowser, headed, viewport, compressScreenshots, screenshotQuality
browser_navigateNavigate to URL (includes auto-snapshot)sessionId, url
browser_resizeResize browser viewportsessionId, width, height
browser_handle_dialogSet dialog auto-responsesessionId, action, promptText
browser_tab_newCreate new browser tabsessionId
browser_tab_listList all open tabssessionId
browser_tab_selectSwitch to specific tabsessionId, tabId
browser_tab_closeClose specific tabsessionId, tabId
browser_network_requestsGet network request historysessionId
browser_console_messagesGet console message historysessionId
browser_generate_playwright_testGenerate test code from actionssessionId
clickClick element (includes auto-snapshot)sessionId, selector, windowId
typeType text (includes auto-snapshot)sessionId, selector, text, windowId
hoverHover over element (includes auto-snapshot)sessionId, selector, windowId
dragDrag element to targetsessionId, sourceSelector, targetSelector
keyPress keyboard key (includes auto-snapshot)sessionId, key, windowId
selectSelect dropdown optionsessionId, selector, value
uploadUpload file to inputsessionId, selector, filePath
backNavigate back in historysessionId
forwardNavigate forward in historysessionId
refreshReload current pagesessionId
screenshotTake compressed screenshotsessionId, path
snapshotGet accessibility tree with element refssessionId
pdfGenerate PDF of pagesessionId, path
contentGet HTML contentsessionId
text_contentGet visible textsessionId
evaluateExecute JavaScriptsessionId, script
wait_for_selectorWait for elementsessionId, selector, timeout
closeClose browser sessionsessionId

πŸ–₯️ Electron Tools

ToolDescriptionKey Parameters
app_launchLaunch Electron app with AI optimizationsapp, mode, projectPath, startScript, disableDevtools, compressScreenshots, screenshotQuality
get_windowsList windows with type identificationsessionId
ipc_invokeCall IPC methodsessionId, channel, args
fs_write_fileWrite file to disksessionId, filePath, content
fs_read_fileRead file from disksessionId, filePath
keyboard_pressPress key with modifierssessionId, key, modifiers
click_by_textClick element by textsessionId, text, exact
click_by_roleClick by accessibility rolesessionId, role, name
click_nthClick nth matching elementsessionId, selector, index
keyboard_typeType with delaysessionId, text, delay
add_locator_handlerHandle modals/popupssessionId, selector, action
wait_for_load_stateWait for page statesessionId, state
smart_clickSmart click with auto-detection (refs/text/CSS)sessionId, target, strategy, windowId
browser_console_messagesGet console logs from Electron appsessionId
browser_network_requestsGet network requests from Electron appsessionId
+ Shared Web ToolsCore web tools: click, type, screenshot, evaluate, etc.

πŸ—οΈ Architecture

Copy & paste β€” that's it
Published Packages:
β”œβ”€β”€ @snowfort/circuit-core@latest      # Core MCP infrastructure
β”œβ”€β”€ @snowfort/circuit-web@latest       # Web automation server (29 tools)
└── @snowfort/circuit-electron@latest  # Desktop automation server (32 tools)

Local Development:
packages/
β”œβ”€β”€ core/          # Shared MCP infrastructure & Driver interface
β”œβ”€β”€ web/           # Web automation CLI with AI optimizations
└── electron/      # Desktop automation CLI

πŸ“¦ Published Packages

PackageVersionDescription
@snowfort/circuit-corenpmCore MCP infrastructure
@snowfort/circuit-webnpmWeb automation CLI (29 tools)
@snowfort/circuit-electronnpmDesktop automation CLI (25+ tools)

πŸ”§ Development

Local Development Setup

Copy & paste β€” that's it
# Clone the repository
git clone https://github.com/clharman/circuit-mcp.git
cd circuit-mcp

# Install dependencies
pnpm install

# Build all packages
pnpm -r build

# Watch mode development
pnpm -r dev

Running Local Development Servers

Copy & paste β€” that's it
# Web automation server
./packages/web/dist/esm/cli.js --headed

# Desktop automation server  
./packages/electron/dist/esm/cli.js

Testing

Copy & paste β€” that's it
# Run all tests
pnpm -r test

# Clean all builds
pnpm -r clean

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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

πŸ™ Acknowledgments

  • Playwright for the automation framework
  • MCP SDK for the protocol implementation
  • The Model Context Protocol community for driving innovation in AI-tool integration