Streamable HTTP|Chrome extension|Direct CDP
Automate a real browser via MCP.
Web Browser controls Chrome through a local daemon + native bridge + extension, with an optional direct-CDP mode.
npm i -g web-browser
Step 1endpoint
1
# Start the daemon
2
web-browser daemon
3
4
# MCP endpoint (Streamable HTTP)
5
http://127.0.0.1:49321/mcp
Step 2mcp.config.jsonc
1
{
2
"web-browser": {
3
"url": "http://127.0.0.1:49321/mcp"
4
}
5
6
// If your client only supports stdio, use mcp-remote:
7
// "web-browser": {
8
// "command": "npx",
9
// "args": ["-y", "mcp-remote@latest", "http://127.0.0.1:49321/mcp"]
10
// }
11
}
Quickstart
Install
1
npm i -g web-browser
2
3
# or from source
4
bun install
5
bun run build
One-time setup
1
web-browser install-native
2
3
# Extension (recommended)
4
# 1) Download the extension zip from:
5
# https://github.com/aryasaatvik/web-browser/releases
6
# 2) Unzip it
7
# 3) chrome://extensions -> Developer mode -> Load unpacked
8
# Select the unzipped folder
9
10
# Extension (from source)
11
bun run build:extension
12
# Load unpacked: packages/extension/.output/chrome-mv3
Run + connect
1
web-browser daemon
2
3
MCP: http://127.0.0.1:49321/mcp
MCP server config
1
{
2
"web-browser": {
3
"url": "http://127.0.0.1:49321/mcp"
4
}
5
6
// Stdio-only clients: bridge HTTP -> stdio via mcp-remote
7
// "web-browser": {
8
// "command": "npx",
9
// "args": ["-y", "mcp-remote@latest", "http://127.0.0.1:49321/mcp"]
10
// }
11
}
Architecture
Client → Daemon → Bridge → Extension → Chrome
Tools
navigate
Navigate to a URL
computer
Mouse/keyboard actions, screenshots
read_page
Get accessibility tree with element refs
get_page_text
Get plain text content
find
AI-powered natural language element search
form_input
Set form field values
javascript
Execute JavaScript
tabs_list
List managed tabs
tabs_create
Create new tab
tabs_close
Close tab
cookies_get/set
Manage cookies
storage_get/set
Manage localStorage/sessionStorage
recording_start/stop
Record browser session
gif_export
Export as GIF
Security & Privacy
Local-first by default
Most functionality runs locally: daemon on localhost, bridge via native messaging, extension in your browser.
AI-powered find is optional
The `find` tool may call Anthropic if you configure `ANTHROPIC_API_KEY`. If not configured, it won’t make that request.
Transparent permissions
The extension needs access to the active tab to read DOM/a11y trees when you explicitly run tools.
Web Browser