home / mcp / snowfort circuit mcp server

Snowfort Circuit MCP Server

Provides dual-engine AI automation for web and Electron apps via MCP with AI-optimized control and snapshots.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "snowfort-ai-circuit-mcp": {
      "command": "npx",
      "args": [
        "@snowfort/circuit-web@latest"
      ]
    }
  }
}

Snowfort Circuit MCP is a dual-engine automation server suite that lets you control web browsers and Electron desktop apps through AI agents. It exposes a cohesive set of tools to automate interactions, capture snapshots, and orchestrate complex workflows across web and desktop environments, enabling precise, repeatable AI-driven automation.

How to use

You use this MCP server by pairing it with an MCP client that can call the provided web and desktop automation tools. Start sessions for both web and Electron automation as needed, then issue actions like launching browsers or apps, navigating pages, clicking elements, typing text, and retrieving snapshots and logs. Each action returns an AI-ready snapshot with element references, so your agent can reason about the current page or app state and continue with reliable targeting.

How to install

Prerequisites: you need Node.js and a package manager. Install Node.js from the official source, then install a package manager of your choice (npm or pnpm). Ensure you can run commands from your terminal.

Step 1: Clone the MCP repository and navigate into it.

Step 2: Install dependencies using your package manager.

Step 3: Build all packages and start development servers.

Configuration and start block

{
  "mcpServers": {
    "circuit-web": {
      "command": "npx",
      "args": ["@snowfort/circuit-web@latest"]
    },
    "circuit-electron": {
      "command": "npx",
      "args": ["@snowfort/circuit-electron@latest"]
    }
  }
}

Usage examples

After configuring, you can launch and control both web and Electron automation sessions. For web automation, start a browser session with optimized AI settings, navigate to a URL, and leverage the auto-snapshot features after each action. For desktop automation, launch an Electron app and perform interactions with element targeting, snapshots, and IPC where supported.

// Example: Launch browser with AI optimizations
const session = await browser_launch({
  "compressScreenshots": true,
  "screenshotQuality": 50
})
await browser_navigate({"sessionId": session.id, "url": "https://github.com"})

// Example: Launch and control an Electron app
const appSession = await app_launch({"app": "/Applications/Visual Studio Code.app"})
await click({"sessionId": appSession.id, "selector": "button[title='New File']"})

Notes on sessions and snapshots

Each action provides a snapshot that includes element references (for example, refs like e1, e2). Use these refs to target elements reliably in subsequent actions. Sessions can run concurrently with full isolation, so you can manage multiple automation streams at the same time.

Available tools

browser_launch

Launch browser with AI optimizations and manage session lifecycle across multiple tools.

browser_navigate

Navigate to a URL and auto-snapshot for element references.

browser_resize

Resize the browser viewport to specified width and height.

browser_handle_dialog

Set automatic handling for dialogs like alerts, confirms, and prompts.

browser_tab_new

Create a new browser tab within the current session.

browser_tab_list

List all open tabs with titles and URLs.

browser_tab_select

Switch to a specific tab by its ID.

browser_tab_close

Close a specific tab by its ID.

browser_network_requests

Return the history of network requests for the session.

browser_console_messages

Return console messages captured during the session.

browser_generate_playwright_test

Generate Playwright test code from the recorded actions.

click

Click an element with optional window context and auto-snapshot.

type

Type text into an element with auto-snapshot.

hover

Hover the cursor over an element with auto-snapshot.

drag

Drag an element from a source to a target.

key

Press a keyboard key with optional window context and auto-snapshot.

select

Select a dropdown option by value.

upload

Upload a file to a file input element.

back

Navigate back in the browser history.

forward

Navigate forward in the browser history.

refresh

Reload the current page.

screenshot

Take a compressed screenshot and save to path.

snapshot

Get the accessibility tree with element refs.

pdf

Generate a PDF of the current page.

content

Get HTML content of the page.

text_content

Get visible text content from the page.

evaluate

Execute JavaScript in the page context.

wait_for_selector

Wait for an element to appear with a timeout.

close

Close the browser session.

app_launch

Launch Electron app with AI optimizations and control its session.

get_windows

List windows with type identification.

ipc_invoke

Call IPC methods within the Electron app.

fs_write_file

Write data to a file on disk within the app's context.

fs_read_file

Read data from a file on disk within the app's context.

keyboard_press

Press a key with optional modifiers.

click_by_text

Click an element identified by visible text.

click_by_role

Click an element by accessibility role.

click_nth

Click the nth matching element by selector.

keyboard_type

Type text with a configurable delay.

add_locator_handler

Handle modals or popups via locator-based actions.

wait_for_load_state

Wait for the app or page to reach a specific load state.

smart_click

Perform a smart click using multiple targeting strategies.

browser_console_messages

Get console logs from the Electron app.

browser_network_requests

Get network requests from the Electron app.