browser-use-mcp
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-mcpNavigate to example.com and give me a snapshot of the page."
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
Chrome MV3 扩展与 MCP,附带 TypeSafe Jev 决策实验。
真实实验结果与限制:保留全部 180 个候选的页面选择,以及双字段确认保存,已通过原生 MCP 和独立结果核验。高层 jev_run 目前仅面向本地实验站,不是通用网站自动驾驶接口。
本地复刻与设计整理:架构、JobShark 拆分关系、验证记录及 Jev 接入建议。
TypeSafe 全站阅读:109 页阅读笔记与纠正 · 逐页清单。
Jev 实验已接通:运行说明与真实浏览器验证。
Source: ShunL12324/browser-use@5a16c5dca40b457f6232cdbbba404783957eba20 (Git remote: upstream).
MCP-driven browser automation. Pair the Chrome extension with the browser-use-mcp bridge to drive Chrome from Claude Code (or any MCP client) with no Electron host.
Claude Code <--stdio MCP--> browser-use-mcp (Node) <--ws://127.0.0.1:17329--> Chrome ExtensionThe extension does the DOM work; the bridge translates MCP tool calls into a small WebSocket protocol. 18 tools, all browser_*-prefixed: snapshot, view, navigate, click, type, press_key, select, hover, upload_file, wait_for, scroll, tabs, network_log, eval_js, inspect, get_cookie, request, batch.
License
MIT. Maintained by ShunL12324 and contributors. The extension and bridge originate from ShunL12324/browser-use; historical extraction from JobShark is documented above. Third-party dependencies retain their own licenses.
Related MCP server: Chrome Browser Control
Requirements
Chrome 124+ (for
chrome.dom.openOrClosedShadowRoot— needed to pierce closed shadow DOM, e.g. Salesforce Lightning).Node 20+ to run the bridge.
Setup
1. Build
cd /home/shun/projects/jev-browser-use
npm ci
npm run buildThis produces:
packages/extension/dist/— the unpacked extensionpackages/bridge/dist/— the Node MCP server
2. Load the extension
Open
chrome://extensionsToggle Developer mode (top right)
Click Load unpacked and select
packages/extension/dist/Pin the extension. The badge shows a red dot until the bridge connects.
3. Wire it to Claude Code
Add to your MCP config (~/.claude.json or run claude mcp add):
{
"mcpServers": {
"browser-use": {
"command": "node",
"args": ["/home/shun/projects/jev-browser-use/packages/bridge/dist/index.js"]
}
}
}Restart Claude Code. /mcp should list browser-use as connected. The extension badge flips to green within ~5s.
Trying it
Navigate to example.com and snapshot the page.
Expect two tool calls — browser_navigate then browser_snapshot — with a list of interactable refs returned.
How it works
Bridge is the WebSocket server, extension is the client. The bridge binds
127.0.0.1:17329/mcponly — unreachable from the network.Each MCP tool call → bridge sends a
commandframe → extension dispatches the matching tool → sends aresultframe → bridge returns to MCP.The extension's universal automation surface (snapshot/refs, content-script tools, network capture) was ported from the jobshark project. The MCP bridge replaces what was previously an Electron host.
Tool error model
Errors come back as MCP isError: true with a JSON body:
{
"code": "STALE_REF",
"short_term": true,
"message": "ref e42 no longer in DOM"
}code— stable identifier (STALE_REF, TIMEOUT, NO_ACTIVE_TAB, BRIDGE_DISCONNECT, EXTENSION_NOT_CONNECTED, …).short_term—trueif the LLM should retry;falseif it's a permanent fact to remember.
Known limits (v0.1)
One Claude Code session at a time. The bridge owns port 17329; a second invocation gets
EADDRINUSEand exits. Multi-session support (a persistent broker daemon) is a v0.2 feature.No image capture. The
viewtool returns reading-order markdown only. Image capture is disabled inpackages/extension/src/lib/tools/view.ts(one-line revert).No Chrome Web Store distribution. Manual
Load unpackedonly.Closed shadow DOM requires Chrome 124+. Older Chromes silently fail to pierce, so site-specific automation (Salesforce, etc.) will be flaky.
Debugging
Bridge stderr is visible in Claude Code's MCP server pane.
Extension service worker logs:
chrome://extensions→ click the extension's service worker link → DevTools console.Popup: click the toolbar icon — shows current bridge state, URL, and the last 5 tool calls.
Repo layout
packages/
extension/ # Chrome MV3 extension (Vite + @crxjs/vite-plugin)
bridge/ # Node MCP server, talks stdio ↔ WebSocketScripts:
npm test— bridge regression tests and stdio/WebSocket integration smoke test (simulated extension)npm run build— both packagesnpm run build:extensionnpm run build:bridgenpm --workspace browser-use-extension run dev— Vite HMRnpm --workspace browser-use-extension run pack— zip the extension
隔离复杂页面实验与高层 jev_run:见 J0 实验指南。
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Live browser debugging for AI assistants — DOM, console, network via MCP.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to control the Google Chrome browser through a Node.js WebSocket bridge and a dedicated browser extension. It provides tools for capturing screenshots, executing JavaScript, managing tabs, and extracting page content via the MCP protocol.2-
- AlicenseBqualityAmaintenanceEnables controlling a local Chrome browser via MCP tools, using a Chrome extension and WebSocket broker for browser automation.3025 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables browser automation over MCP using a real Chrome browser with existing profile, supporting real tabs, downloads, cookies, and RPA workflows.72 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to drive a live Chrome or Brave browser over stdio, with tools for navigation, clicking, typing, screenshots, and executing automation goals.3MIT