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 "Install 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-windowsOpen 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 node-interception mouse/keyboard input.
It does not use CDP, Chrome DevTools, Playwright, Puppeteer, browser extensions, DOM selectors, DOM snapshots, or page JavaScript evaluation.
Requirements
Windows
Node.js 20+
Chromium-based browser: Edge, Chrome, Brave, Chromium, Vivaldi, Opera, Yandex
node-interceptiondriver
Install the native input package and driver from an administrator terminal:
npm install -g node-interception
node-interception /installReboot Windows after driver installation.
Related MCP server: ScreenHand
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"Change BROWSER_USE_NATIVE_WINDOWS_SSE_AUTH before exposing HTTP outside your machine.
Run
Stdio transport:
npm run start:stdioHTTP transports:
npm run start:sseGlobal install:
browser-use-native-windows
browser-use-native-windows --transport sseMCP 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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mlnima/browser-use-native-windows'
If you have feedback or need assistance with the MCP directory API, please join our Discord server