B

Browser Tools MCP

Monitor browser logs directly from Cursor and other MCP compatible IDEs.

  • InstallableWe know how to install it, but have not yet seen it complete a handshake.
  • Health: ActiveRecent health check succeeded.Last checked 10/27/2026, 5:15:30 AM
  • Browser Automation
  • 7.3kstars
  • No ratings User RatingsBe the first to rate and review this MCP server!
  • UpdatedOct 27, 2026
  • Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.

Install Browser Tools MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "browser-tools-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@agentdeskai/browser-tools-mcp"
      ]
    }
  }
}

Settings β†’ Developer β†’ Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-testedβ€” we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

Tools21

What Browser Tools MCP lets your agent do. Expand a tool for its parameters.

Self-reported~332 tokens of context

Security & health

What it can reach and how reliably it runs β€” from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

GitHub stars7.3kStargazers on the source repository.
Last commitTodayMost recent push to the default branch.
Tools exposed21Callable tools this server registers over MCP.

From the project README

BrowserTools MCP

If you are still on 1.x, upgrade. 1.x is unsupported. It has known critical vulnerabilities (remote code execution, unauthenticated access to captured data) that were fixed in 2.0 and will not be patched on 1.x. See SECURITY.md and MIGRATION.md.

Give your AI coding agent eyes on the browser. BrowserTools MCP streams console output, network activity, screenshots and Lighthouse audits from your real Chrome session β€” the one already logged into your app β€” to any MCP-compatible client: Cursor, Claude Code, Windsurf, Cline, Zed, Gemini CLI, and others.

Version 2.0 is a rewrite. One process instead of three, no unauthenticated local server, credentials scrubbed before they leave the browser, and a real test suite. Coming from 1.x? Read MIGRATION.md.


Why this instead of a CDP-based server

Tools like Chrome DevTools MCP and Playwright MCP drive a fresh, automated browser. That is the right choice for writing tests. It is the wrong choice for debugging the app you are actually looking at, because since Chrome 136 the browser refuses remote debugging on your default profile β€” the one holding your logins. So you end up recreating your auth state in a throwaway profile before you can debug anything.

BrowserTools attaches to the session you are already in, through a DevTools extension. You stay logged in, on the page you were already on, and your agent reads what you see. It also reports Lighthouse-grade performance, accessibility and SEO data, which the automation-first servers do not.

Install

Two pieces: an MCP server (one command) and a Chrome extension.

1. Point your MCP client at the server

config.json
{
  "mcpServers": {
    "browser-tools": {
      "command": "npx",
      "args": ["-y", "@agentdeskai/browser-tools-mcp@latest"]
    }
  }
}

On Windows, if your client cannot find npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "@agentdeskai/browser-tools-mcp@latest"].

Requires Node 22.19 or newer. Check with node --version; if you use nvm or asdf, make sure your editor inherits the same version.

2. Load the Chrome extension

  1. Download or clone this repository.
  2. Open chrome://extensions and turn on Developer mode.
  3. Choose Load unpacked and select the chrome-extension directory.

That is the whole setup. There is no second server to start β€” the MCP server runs the connector itself.

3. Use it

Open Chrome DevTools (F12) on the page you want to inspect. Capture begins as soon as DevTools is open; the BrowserTools panel is only for settings and status. Then ask your agent something like "check the console for errors" or "run an accessibility audit on this page".

Not working? Run npx @agentdeskai/browser-tools-mcp --doctor, which reports exactly which piece is missing.

To watch capture happen live β€” useful when checking a fresh install β€” start the connector with --verbose:

Terminal
npx @agentdeskai/browser-tools-server --verbose
Code
Β· console error tab 42 Uncaught TypeError: total is not a function
Β· network 500 POST tab 42 https://myapp.local/api/pay (1310ms)

Without it the connector only reports connect and disconnect, so a working setup and a silent one look the same.

Tools

ToolWhat it does
getConsoleLogsConsole output, filterable by keyword with paging
getConsoleErrorsError-level output and uncaught exceptions
getNetworkLogsXHR/fetch requests with status, timing and bodies
getNetworkErrorsOnly failed and 4xx/5xx requests
getSelectedElementThe element selected in the Elements panel
getPageInfoWhich page the browser is currently on
getConnectionStatusWhether the extension is connected, and capture counts
listBrowserTabsTabs with DevTools open, addressed by a DevTools-connected tabId
listTabsTabs chrome.tabs returns (not every open tab), addressed by chromeTabId
readTabHeadings, excerpt, and a snapshot of a chromeTabId, without the debugger
navigateBrowserLoad a URL in a DevTools-connected tab, without focusing it
navigateTabLoad a URL in the background from listTabs, visible window only
softClick / softTypeUntrusted click or type. Result is worked or needs a real gesture
takeScreenshotScreenshot returned as an image, plus its file path
refreshBrowserReloads the inspected tab
getBrowserStoragelocalStorage, sessionStorage and cookies (values gated)
wipeLogsClears captured telemetry before a clean reproduction
runAccessibilityAuditLighthouse accessibility audit
runPerformanceAuditLighthouse performance audit with Core Web Vitals
runSEOAuditLighthouse SEO audit
runBestPracticesAuditLighthouse best-practices audit

Three prompts ship alongside them β€” debuggerMode, auditMode and nextjsSeoAudit β€” giving your agent a systematic workflow instead of a wall of static text in every tool listing.

All tools declare MCP output schemas, so clients receive structured data rather than prose they have to parse, and read-only tools are annotated as such so clients can auto-approve them safely.

Tabs without DevTools

listTabs, readTab, navigateTab, softClick, and softType use chrome.tabs and chrome.scripting. They do not attach the debugger, so they do not show the debugging banner, and they do not activate a tab or focus a window.

chromeTabId comes from listTabs. tabId on the other tools comes from listBrowserTabs. They are different id spaces. Pass each id only to the tool that issued it.

listTabs reports the tabs chrome.tabs returns in the windows it returns. Other Arc Spaces, Little Arc, pinned favorites, split-view partners, and slept tabs may be missing. Incognito is skipped. This is not every open tab. Background navigation stays in the visible window until that is measured on Arc.

The popup switch has to be on. Navigation and soft input also need --allow-input on browser-tools-mcp, or --allow-actions on the browser-tools CLI. The same origin rules as other input apply. An asleep tab is reported and not reloaded. A soft action says worked or needs a real gesture and does not claim a failed action worked.

Several tabs at once

Every tab with DevTools open is tracked separately. Telemetry is attributed to the tab that produced it, and retention is per tab, so a chatty page cannot push out the history of the one you care about.

Tools act on the current tab β€” the one you most recently opened DevTools on. A tab whose connection drops and comes back does not steal that position, which is what used to make screenshots capture the wrong page. Every result reports the tabId and url it came from, plus otherTabs, so a wrong-tab answer is visible rather than silent. To target a specific tab, call listBrowserTabs and pass its tabId to any tool; pass allTabs: true to read across every tab.

Large data stays out of the context window

Whole-history payloads are exposed as MCP resources rather than inlined, and tools link to them with resource_link so your agent fetches them only when it decides to:

ResourceWhat it is
browser-tools://console/{tabId|all}Every console entry, with no per-call budget
browser-tools://network/{tabId|all}Every captured request, including bodies
browser-tools://har/{tabId|all}The same traffic as a HAR 1.2 file
browser-tools://screenshot/{name}A screenshot you captured earlier
browser-tools://audit/{reportId}The unabridged Lighthouse result behind a summary

Log tools attach a link when a read had to be cut short; network reads always offer the HAR; screenshots always link to the stored image, which is the only way to see one too large to inline. The last 20 full Lighthouse reports are kept under audits/ in the screenshot directory.

Keeping responses small

Log payloads are the usual cause of a blown context window. Every read tool takes limit and offset, and the log tools take keyword filters:

Code
getConsoleErrors({ keywords: ["hydration"], limit: 20 })
getNetworkLogs({ urlKeywords: ["/api/"], bodyKeywords: ["quota"], limit: 10 })

Results are returned newest-first and always report total alongside returned, so an agent knows when it is only seeing part of the picture.

Privacy and security

This tool captures whatever your browser sees, so it treats that data carefully:

Reviews

No reviews yet β€” be the first to share how it worked for you.

Frequently Asked Questions about Browser Tools MCP

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "browser-tools-mcp": { "command": "npx", "args": ["-y","@agentdeskai/browser-tools-mcp"] } }

Monitor browser logs directly from Cursor and other MCP compatible IDEs.

We don't have confirmed pricing for browser-tools-mcp. Listing it on AllMCPs is free, but that says nothing about what the server itself costs β€” check the project's own site for current pricing.

Related MCP servers

Add a badge to your READMEShow it’s listed β€” live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewBrowser Tools MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/browser-tools-mcp?style=directory)](https://allmcps.com/mcp/browser-tools-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/browser-tools-mcp"><img src="https://allmcps.com/api/badge/browser-tools-mcp?style=directory" alt="Browser Tools MCP on AllMCPs" /></a>