by icefort-ai
Snowfort Circuit MCP — MCP server for AI coding agents enabling browser automation, electron automation and AI test auto
Automates web browsers and Electron desktop applications through AI agents with automatic snapshots and element references. Works with Chromium, Firefox, WebKit browsers and any Electron-based desktop app.
Snowfort Circuit MCP is an official MCP server published by icefort-ai that provides AI assistants with tools and capabilities via the Model Context Protocol. Snowfort Circuit MCP — MCP server for AI coding agents enabling browser automation, electron automation and AI test auto It is categorized under browser automation, developer tools.
You can install Snowfort Circuit MCP 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.
NOASSERTION
Snowfort Circuit MCP is released under the NOASSERTION license.
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
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
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
Share your MCP server with the developer community
Snowfort Circuit MCP is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
We wired Snowfort Circuit MCP into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
Snowfort Circuit MCP reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
I recommend Snowfort Circuit MCP for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Snowfort Circuit MCP reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Useful MCP listing: Snowfort Circuit MCP is the kind of server we cite when onboarding engineers to host + tool permissions.
Snowfort Circuit MCP is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Snowfort Circuit MCP is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
We evaluated Snowfort Circuit MCP against two servers with overlapping tools; this profile had the clearer scope statement.
We wired Snowfort Circuit MCP into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
showing 1-10 of 66
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.
Add to your AI agent's MCP configuration file:
{
"mcpServers": {
"circuit-web": {
"command": "npx",
"args": ["@snowfort/circuit-web@latest"]
}
}
}
{
"mcpServers": {
"circuit-electron": {
"command": "npx",
"args": ["@snowfort/circuit-electron@latest"]
}
}
}
{
"mcpServers": {
"circuit-web": {
"command": "npx",
"args": ["@snowfort/circuit-web@latest"]
},
"circuit-electron": {
"command": "npx",
"args": ["@snowfort/circuit-electron@latest"]
}
}
}
Once configured, your AI agent can immediately start automating:
// Launch browser with optimized AI settings
browser_launch({
"compressScreenshots": true,
"screenshotQuality": 50
})
browser_navigate({"sessionId": "...", "url": "https://github.com"})
// Auto-snapshot included in response!
// Launch and control any Electron app
app_launch({"app": "/Applications/Visual Studio Code.app"})
click({"sessionId": "...", "selector": "button[title='New File']"})
| 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 |
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 |
| 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 |
smart_click | Smart click with auto-detection (refs/text/CSS) | sessionId, target, strategy, windowId |
browser_console_messages | Get console logs from Electron app | sessionId |
browser_network_requests | Get network requests from Electron app | sessionId |
| + Shared Web Tools | Core web tools: click, type, screenshot, evaluate, etc. |
// Launch with optimal AI settings
const session = await browser_launch({
"compressScreenshots": true,
"screenshotQuality": 50,
"headed": false
})
// Navigation automatically includes page snapshot with element refs
await browser_navigate({
"sessionId": session.id,
"url": "https://github.com"
})
// Response includes auto-snapshot with element references like ref="e1", ref="e2"
// Create and manage multiple tabs
const session = await browser_launch({})
await browser_navigate({"sessionId": session.id, "url": "https://github.com"})
const newTabId = await browser_tab_new({"sessionId": session.id})
await browser_tab_select({"sessionId": session.id, "tabId": newTabId})
await browser_navigate({"sessionId": session.id, "url": "https://stackoverflow.com"})
const tabs = await browser_tab_list({"sessionId": session.id})
// Shows all tabs with titles, URLs, and active status
// Navigate and get element references
await browser_navigate({"sessionId": session.id, "url": "https://example.com"})
// Auto-snapshot response includes:
// {"role": "button", "name": "Sign In", "ref": "e5"}
// Click using standard selector (auto-snapshot included)
await click({"sessionId": session.id, "selector": "button:has-text('Sign In')"})
// Response includes updated page snapshot showing interaction result
// Monitor page activity
await browser_navigate({"sessionId": session.id, "url": "https://api-heavy-site.com"})
const requests = await browser_network_requests({"sessionId": session.id})
const consoleMessages = await browser_console_messages({"sessionId": session.id})
// Generate test code from actions
const testCode =
---
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
Prerequisites
Time Estimate
20-40 minutes including configuration and testing
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
MCP server handles HTTP requests, HTML parsing, JavaScript rendering (if headless browser), and returns structured data to Claude.
Protocols
Compatibility
✓ 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.