browser-use MCP
Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.
- MCP server
- Official
browser-use · 119,597 stars
MCP server
MCP server published on npm as chrome-devtools-mcp. Transports: stdio. Maintained in ChromeDevTools/chrome-devtools-mcp.
Checked 2026-10-31
claude mcp add chrome-devtools-mcp -- npx -y chrome-devtools-mcpcodex mcp add chrome-devtools-mcp -- npx -y chrome-devtools-mcpgemini mcp add chrome-devtools-mcp npx -y chrome-devtools-mcpCommands come from the project's own docs or registry entry. Check them against the source before you run them.
Loading poll...
Chrome DevTools MCP is Google's MCP server for letting a coding agent debug and measure web pages in a real Chrome browser. It can navigate and click, record performance traces, read console and network logs, run Lighthouse audits, take screenshots and capture heap snapshots. It is Apache-2.0 and runs with npx -y chrome-devtools-mcp@latest. We checked the README and docs on 31 October 2026.
Maintainer | Chrome DevTools team ( |
License | Apache-2.0 |
Latest release we saw | v1.12.0, published 22 Oct 2026 |
Last push we saw | 30 Oct 2026 |
Run |
|
Requires | Current LTS Node.js, current stable Chrome, npm |
Browser support | Google Chrome and Chrome for Testing officially; others "may work" |
Transport | stdio (client launches it) |
Extras | A |
Price | Free |
The server starts Chrome only when the client first uses a tool that needs a browser. Connecting alone does not open one.
Where a browser-automation server clicks through flows, this one gives the agent the same instruments a front-end developer opens DevTools for. The tool reference groups them like this:
Group | Tools |
|---|---|
Input automation |
|
Navigation |
|
Emulation |
|
Performance |
|
Network |
|
Debugging |
|
Memory |
|
Memory tools are behind a flag (--memory-debugging), and coordinate-based tools such as click_at need --experimental-vision.
The README's suggested first prompt shows the intent:
Check the performance of https://developers.chrome.comYour client should open the browser and record a performance trace.
The package includes agent skills that teach the model how to use the tools:
Skill | Use it to |
|---|---|
| Debug and automate pages with the MCP tools |
| Run the CLI and write shell scripts with it |
| Audit and fix accessibility issues |
| Debug cookies, sessions and authentication |
| Debug and improve Largest Contentful Paint |
| Find and fix memory leaks |
| Fix connection problems between MCP and Chrome |
The README warns that skills describe the tools of a specific version, so update them whenever you update the server or CLI. Outdated skills can tell the agent to use tools or parameters that changed. See our skills guide for where to put them.
The standard config:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}From the project's client guide:
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latestOr install the plugin, which brings the server and all the skills:
/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
/plugin install chrome-devtools-mcp@chrome-devtools-pluginsUse the install button in the guide, or Cursor Settings, MCP, New MCP Server, with the standard config above.
codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latestOn Windows the guide suggests wrapping with cmd /c and raising the startup timeout in .codex/config.toml, since npx can be slow to start.
gemini mcp add chrome-devtools npx chrome-devtools-mcp@latestOr install the extension with automatic updates:
gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcpTo add it at user scope: gemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest. The project's README points to Gemini CLI's browser agent as a reference implementation for building a browser subagent.
code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'Or run Chat: Install Plugin From Source and enter ChromeDevTools/chrome-devtools-mcp.
Agent | Route |
|---|---|
| |
Install button or | |
| |
| |
|
The configuration guide lists many parameters. Useful ones:
Option | What it does |
|---|---|
| Run without a window |
| Use a temporary profile instead of the default |
| Expose a reduced tool set for basic browser tasks |
| Chrome channel: |
| Starting viewport |
| Proxy for the launched Chrome |
| Ignore certificate errors; the guide says to use with caution |
| Restrict the browser's network access by URL pattern (the allow list needs Chrome 149 or newer) |
| Shrink screenshots to save context |
| Opt out of Google's usage statistics |
| Do not send trace URLs to the CrUX API |
| Write debug logs for bug reports |
Advanced usage covers concurrent sessions, persistent user data directories, connecting to an already running Chrome and debugging on Android.
Read these before you point it at anything private. They come from the project's own README.
--no-usage-statistics. The statistics are independent of Chrome's own, so opting out of one does not opt you out of the other. Collection is off if CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS or CI is set.--no-performance-crux.CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS to stop it.evaluate_script runs JavaScript in the page. The configuration guide notes that experimental DevTools automation exposes the DevTools UI, including a console that can evaluate JavaScript in the inspected page, and that a "no JavaScript evaluation" flag does not restrict that. Leave experimental flags off.@latest runs the newest published package each time.The same cautions that apply to any browser agent apply here: logged-in sessions are reachable, and web pages can carry instructions aimed at the model. Use a fresh profile (--isolated) for public sites.
By default the server launches its own Chrome. The configuration guide also lets it attach to a running one, with --browser-url (for example the remote-debugging address of a Chrome you started) or a WebSocket endpoint. That is useful when you need your logged-in state or a specific profile, and it is the riskiest mode: the agent is now inside a browser that holds your real sessions. Use a separate Chrome profile for it, and keep the debugging port bound to localhost.
The server can read a configuration file. The guide lists security-sensitive options that can live in it, such as the Chrome executable path, extra Chrome arguments and the allowed and blocked URL patterns. It then warns that if an agent can create or modify that file, it can change those settings and bypass restrictions, so the file and its parent directory must not be writable by the agent. Some changes apply live (future requests and navigations are restricted), but targets already open on a newly blocked URL stay attached, and options that launch or connect to the browser need a restart.
In practice: put the config somewhere your agent's file tools cannot write, and deny edits to it in your permission rules.
node --version and that Chrome is current./mcp in Claude Code and Codex).--no-usage-statistics if you do not want to share statistics.--headless --isolated for repeatable runs.--slim if the full tool list is too heavy for your context.A single trace is a snapshot, and one noisy run can send you chasing a problem that is not there. A short protocol makes the agent's findings trustworthy. Use it whenever you ask for a performance review.
--isolated and --headless, the same viewport and the same URL each time, so the browser starts from the same state. Note whether the cache was warm or cold.A prompt that follows this protocol:
Record a performance trace of http://localhost:3000/ with a cold cache and
report the main loading and layout metrics. Name the three biggest causes of
delay with evidence from the trace. Do not change any code yet. Save the
numbers to perf-baseline.md.Then, after your fix:
Record the same trace again under the same conditions, compare with
perf-baseline.md, and say whether the change helped. If the difference is
small, run it twice more before you conclude anything.The last sentence matters. Without it, models tend to report a small change as an improvement. Lab measurements also differ from what real users see, so treat the trace as a way to find causes and use field data, which the server can pull from the CrUX service unless you disable it, to judge the result.
When the problem is a bug, not speed, a fixed order saves tokens.
Step | Ask for | Why |
|---|---|---|
1 | The console errors on page load | Most breakage announces itself |
2 | Failed network requests, with status codes | Finds missing files and blocked calls |
3 | A screenshot of the broken state | Confirms you and the agent see the same thing |
4 | The DOM or style of the one broken element | Narrows the cause before any edit |
5 | A proposed fix, with the line it changes | Keeps the change small and reviewable |
6 | A rerun of steps 1 to 3 after the fix | Proves the symptom is gone |
Do not let the agent edit before step 4. A model that sees an error will often guess a fix from the message alone, and a guess that happens to silence the error can leave the real fault in place.
Traces and screenshots are the biggest items an agent can pull into a session. The configuration options above help: --screenshot-format and --screenshot-max-width shrink images, and --slim trims the tool list. Beyond those:
--log-file only while debugging the server itself, since logs can contain page content.Some failures are not the page's fault. A site may behave differently in a headless, isolated browser than in your daily one, because of missing extensions, no login, a different locale or a blocked cookie. If the agent reports something you cannot reproduce, check three things before assuming it is wrong: the profile (isolated or yours), the viewport and the Chrome channel. A page that serves a consent banner to new visitors will look different to a clean profile every time, which is correct behaviour and worth knowing before you file a bug.
Performance check
Open https://localhost:3000, record a performance trace of the page
load, and summarise the three biggest issues with the Largest
Contentful Paint. Use the insight tools for details.Console and network triage
Load /checkout, then list console errors and any failed network
requests. For the first failed request show the status and headers.Accessibility pass
Run a Lighthouse audit on /pricing, report the accessibility score and
list each failing audit with the element it applies to.Responsive check
Emulate a phone viewport and a slow network, reload the homepage and
take a screenshot. Tell me what overflows.Memory leak
Take a heap snapshot, open and close the modal 20 times, take another,
and compare them. Report object classes that grew the most.For a flow-level QA pass, add Playwright MCP. Our browser QA recipe combines them.
npx can be slow on first run, especially on Windows. The guide shows a longer startup timeout.--slim and the screenshot-size options.Option | Choose it when |
|---|---|
You need cross-browser flows and test generation | |
You want a minimal Puppeteer wrapper; the reference server is archived, so check what is current | |
You want a hosted browser | |
The | You prefer shell commands over MCP tools |
You only need page text |
All five covered here have a documented route. Claude Code and Gemini CLI add a plugin or extension that carries the skills, which makes the tools easier for the model to use well. The project also points to Gemini CLI's browser agent as the reference for embedding a browser subagent in a product.
We did not run this server for this page; the notes are from the README and docs.
Pick it when the question is "why is this page slow or broken in Chrome". Traces, Lighthouse, heap snapshots and network detail are what a developer would open DevTools for, and giving an agent those tools closes the loop on performance work in a way that screenshots cannot.
Pick Playwright MCP when the question is "does this flow work". They overlap on clicking and screenshots. Many front-end setups run both.
The privacy defaults are the thing to read twice. Usage statistics on by default and CrUX lookups are documented, easy to switch off, and still worth deciding on purpose before you point it at an internal tool.
What does Chrome DevTools MCP do? It lets an agent control and inspect a live Chrome.
How do I install it? npx -y chrome-devtools-mcp@latest as a stdio server.
Does it collect data? Yes by default; opt out with the flags above.
Which browsers does it support? Chrome and Chrome for Testing officially.
How is it different from Playwright MCP? DevTools-level debugging and performance vs cross-browser flows.
*Product names are used descriptively. We are not affiliated with Google.*
Tried it with one of these? Vote below: works for me, or not.
It lets a coding agent control and inspect a live Chrome browser: navigate, click, record performance traces, read the console and network, run Lighthouse and take screenshots and heap snapshots.
Add npx -y chrome-devtools-mcp@latest as a stdio server. In Claude Code: claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest.
Google collects usage statistics by default, and performance tools may send trace URLs to the CrUX API. You can opt out with --no-usage-statistics and --no-performance-crux.
Google Chrome and Chrome for Testing officially. Other Chromium browsers may work but are not guaranteed.
Chrome DevTools MCP focuses on DevTools-level debugging and performance in Chrome. Playwright MCP focuses on automating flows across several browsers.
Loading poll...
Loading reviews…
Only members can review this page. Sign in
Browser Use is an open-source Python library for AI browser agents, and our entry covers its MCP route.
browser-use · 119,597 stars
Scrapling is a Python web scraping framework from D4Vinci, described on GitHub as handling everything from a single request to a full-scale crawl, and this entry is its MCP server.
D4Vinci · 90,477 stars
Netdata is an observability platform, and this entry is its hosted MCP endpoint at app.netdata.cloud, reached over streamable HTTP.
netdata · 81,227 stars
Claude Flow is published on npm as claude-flow, and its repository now sits at ruvnet/ruflo, which the GitHub description calls the original agent harness for deploying multi-agent swarms and coordinating autonomous workflows.
ruvnet · 80,298 stars
Context7 is an MCP server from Upstash that serves up-to-date library documentation to coding agents, so the model reads current docs instead of guessing from training data.
upstash · 63,974 stars
tldraw is an infinite-canvas SDK for React, and this entry is a hosted MCP endpoint run on a tldraw Workers address, reachable over streamable HTTP and SSE.
tldraw · 51,163 stars
The all-in-one WordPress community stack
Also ours: wbcomdesigns.comvapvarun.combrndle.com