browser-use-native-windows
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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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