browser-use-native-windows
This server lets you control a real Chromium-based browser (Edge, Chrome, Brave, etc.) on Windows using native OS-level input — no CDP, browser extensions, DOM manipulation, or JavaScript injection required.
Core Tools
browser_observe: Launch a new browser or attach to an existing one, optionally navigate to a URL, and capture a native screenshot of the browser window or file dialog.browser_act: Execute a single native input action using a valid observation token from a priorbrowser_observecall. Supported actions include:Mouse: click (left/right/middle/double), modifier click (e.g. Ctrl+Click), context click, move, drag, scroll
Keyboard: type text (optionally slowly or with Enter submit), press a key, press key combos (e.g. Ctrl+C), hold/release individual keys
File dialogs: provide a file path to fill a native file upload dialog
browser_status: Retrieve current state — transport type, native driver status, browser process info, window handle (HWND), monitor, DPI, focus state, and observation token validity.browser_stop: Release any held mouse buttons or keys, and optionally close the managed browser window.
Key Characteristics
Windows-only; supports Chromium-based browsers (Edge, Chrome, Brave, Chromium, Vivaldi, Opera, Yandex)
Uses hardware-level input via the
node-interceptiondriverAvailable over stdio or HTTP (SSE/Streamable HTTP) transports
Includes a Ctrl+F12 force-stop hotkey as a safety watchdog
Allows controlling a real Chromium browser (Brave) via native Windows input and accessibility, enabling mouse and keyboard actions, page observation, and status monitoring.
Allows controlling a real Chromium browser (Opera) via native Windows input and accessibility, enabling mouse and keyboard actions, page observation, and status monitoring.
Allows controlling a real Chromium browser (Vivaldi) via native Windows input and accessibility, enabling mouse and keyboard actions, page observation, and status monitoring.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@browser-use-native-windows Open browser and go to weather.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
browser-use-native-windows
Windows-only MCP server for controlling a real Chromium browser with native screenshots, Windows accessibility, and Windows mouse/keyboard input.
It does not use CDP, Chrome DevTools, Playwright, Puppeteer, browser extensions, DOM selectors, DOM snapshots, or page JavaScript evaluation.
Every observation re-detects the browser window, monitor, physical resolution, monitor scaling, and window position. Window and monitor geometry is verified again before native mouse input; resize or scaling changes invalidate the observation so the client must observe the new screenshot before acting.
Requirements
Windows
Node.js 20+
Chromium-based browser: Edge, Chrome, Brave, Chromium, Vivaldi, Opera, Yandex
Related MCP server: hermes-computer-use
Install
From source:
npm install
npm run buildOptional global install from this package root:
npm install -g .Configuration
The MCP reads system environment variables first. If a .env file exists next to this README, it is loaded as a fallback. The MCP starts normally when .env is missing.
Create .env from .env.example when you want fixed HTTP or browser settings:
BROWSER_USE_NATIVE_WINDOWS_SSE_HOST= "0.0.0.0"
BROWSER_USE_NATIVE_WINDOWS_SSE_PORT= "7331"
BROWSER_USE_NATIVE_WINDOWS_SSE_AUTH= "change.me"
BROWSER_USE_NATIVE_WINDOWS_BROWSER_EXECUTABLE_PATH= "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
BROWSER_USE_NATIVE_WINDOWS_BROWSER_USER_DATA_DIR= "C:\Users\YOUR_USER\AppData\Local\Microsoft\Edge\User Data"
BROWSER_USE_NATIVE_WINDOWS_PAGE_LOAD_TIMEOUT_MS= "10000"Change BROWSER_USE_NATIVE_WINDOWS_SSE_AUTH before exposing HTTP outside your machine.
Run
Stdio transport:
npm run start:stdioStreamable HTTP at /mcp:
npm run start:mcpLegacy HTTP+SSE at /sse with POST messages at /messages:
npm run start:sseBoth network transports:
npm run start:allGlobal install:
browser-use-native-windows
browser-use-native-windows --transport mcp
browser-use-native-windows --transport sse
browser-use-native-windows --transport allThe default network host is 0.0.0.0, so /mcp and /sse accept connections through localhost and this computer's LAN address. Bearer authentication is required on every network endpoint.
MCP Client
Stdio:
{
"mcpServers": {
"browser-use-native-windows": {
"transport": "stdio",
"command": "node",
"args": ["<package-root>\\dist\\index.js"],
"cwd": "<package-root>"
}
}
}Codex Streamable HTTP:
[mcp_servers.browser_use_native_windows]
url = "http://<host>:7331/mcp"
http_headers = { "Authorization" = "Bearer change.me" }SSE compatibility:
{
"mcpServers": {
"browser-use-native-windows": {
"transport": "sse",
"url": "http://<host>:7331/sse",
"headers": {
"Authorization": "Bearer change.me"
}
}
}
}Tools
browser_observe: launch or adopt the browser and return a native observation.browser_act: run one mouse or keyboard action against a fresh observation token.browser_status: return transport, driver, browser, window, focus, monitor, DPI, and observation state.browser_stop: release held input state and optionally close the tracked browser.
Force Stop
Default global hotkey:
Control+F12The watchdog releases held keys and mouse buttons, then stops the MCP process.
Available Tools
4 toolsbrowser_actAct In BrowserB
Run one native mouse or keyboard action against a matching fresh browser_observe token.
Inputs: observationToken (required), action (required).
browser_observeObserve BrowserC
Launch or adopt a Windows browser, optionally handle a target URL through native UI, and return a browser-window or browser-owned file-dialog observation.
Inputs: targetUrl, inlineImage.
browser_statusBrowser StatusB
Return MCP transport, native input driver, browser process, HWND, monitor, DPI, focus, and observation state.
Inputs: no named parameters.
browser_stopStop Browser ControlA
Release held native input state and optionally close the tracked browser only when the user task asks for it.
Inputs: closeBrowser.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: browser_observe for launching/adopting and getting observation, browser_act for performing actions, browser_status for checking state, and browser_stop for cleanup. No overlap in purpose.
All tool names follow a consistent 'browser_' prefix followed by a single verb (observe, act, status, stop), all lowercase, with no mixing of conventions.
Four tools is exactly right for this domain: observe, act, status, and stop cover the essential lifecycle without unnecessary extras. Not too few, not too many.
The tool set covers the full lifecycle of native browser interaction: initialization (browser_observe), action (browser_act), monitoring (browser_status), and termination (browser_stop). No obvious gaps.
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
MCP server to assist with JxBrowser development.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA standalone MCP server for Windows desktop control, enabling screenshots, mouse and keyboard input, app launch, window/display management, and clipboard access via natural language.3MIT
- AlicenseNot gradedqualityDmaintenancePixel-level browser automation MCP server that drives a real Chrome browser using screenshots as vision input and OS-level mouse/keyboard as output, evading anti-bot detection.387 PyPI3MIT
- AlicenseNot gradedqualityDmaintenanceA local, dependency-free MCP server that gives AI agents controlled access to the active Windows desktop, enabling automated interaction with applications through screenshots, clicks, typing, and window management.151 npm1MIT
- FlicenseNot gradedqualityDmaintenanceThis MCP server enables an AI agent to control a Windows PC through human-like interactions such as screen capture, OCR, mouse, keyboard, and navigation, without using shortcut APIs.-