Skip to content
MCP Shelf

BrowserTools MCP

View on GitHub

Console logs, network calls, screenshots and Lighthouse audits from your own Chrome tab.

  • Started in our test
  • ★ 7.3K GitHub stars
  • 1.7K downloads a week
  • Last commit 16 Oct 2026

At a glance

BrowserTools works with the Chrome session you already have open, through a DevTools extension, instead of starting a fresh automated browser. That means you stay signed in to the app you are debugging, and the agent sees the same console errors, failed requests and selected element that you do. It can also run Lighthouse audits for performance, accessibility, SEO and best practices.

Version 2 is a rewrite that fixed serious security problems in 1.x (open local ports and a network scan), so make sure you are on 2.0 or newer. Clicking, typing and navigation are off unless you start it with --allow-input.

Made by
AgentDesk AI
Licence
MIT
Latest version
2.0.4 (27 Oct 2026)
GitHub stars
7.3K
Downloads
1.7K a week
Last commit
16 Oct 2026
Tools
16
Runs on
Your computer

Our check: We ran this exact config on 27 Oct 2026: it started and answered with 16 tools.

What's in the pod: its tools

We found 16 tools when we started it on 27 Oct 2026. 13 only read. The rest can change things, so keep your app's "ask before each tool call" setting on for them.

How we tested it: Started @agentdeskai/browser-tools-mcp 2.0.4 with no browser extension connected. These are its default tools; navigation and soft clicks and typing appear only with --allow-input.

Changes things3 tools · Can create, edit, send or delete.

ToolWhat it is for
refreshBrowserReloads the inspected tab.
takeScreenshotCaptures the inspected tab and hands the picture straight to the model, plus a saved file path.
wipeLogsClears what has been captured so the next reproduction starts clean.

Only reads13 tools · Looks things up and changes nothing.

ToolWhat it is for
getBrowserStorageReads localStorage, sessionStorage and cookies. Values stay hidden unless you allow them.
getConnectionStatusChecks that the Chrome extension is connected and how much it has captured.
getConsoleErrorsReads only errors and uncaught exceptions, which is the usual first stop when a page breaks.
getConsoleLogsReads console output from a tab, with keyword filters and paging to keep replies short.
getNetworkErrorsReads only requests that failed or came back 4xx or 5xx.
getNetworkLogsReads fetch and XHR requests with status codes, timing and bodies. Credential headers are hidden.
getPageInfoSays which page the inspected tab is on.
getSelectedElementReturns the element you picked in the DevTools Elements panel, with its attributes and markup.
listBrowserTabsLists the tabs that have DevTools open and marks the one the other tools read by default.
runAccessibilityAuditRuns a Lighthouse accessibility audit on the page.
runBestPracticesAuditRuns Lighthouse's best-practices checks.
runPerformanceAuditRuns a Lighthouse performance audit, including Core Web Vitals.
runSEOAuditRuns a Lighthouse SEO audit.

Grouped and described by us. The README on GitHub lists the inputs each tool takes.

How clearly it describes its tools to your assistant

Tools with a description
16 of 16
Say if they change things
16 of 16
Context it takes, at least
~1,000 tokens

Every tool says whether it only reads or can change things, so a client can ask before the risky ones.

From the tool list it sent us. The token figure counts names, descriptions and input names; the full schemas your client loads add more.

Set it up

  1. Download or clone the BrowserTools repository, open chrome://extensions, turn on Developer mode, choose Load unpacked and pick its chrome-extension folder.
  2. Add the config below to your client.
  3. Open DevTools (F12) on the page you want the agent to see: capture starts once DevTools is open.

Pick your app for the exact snippet and where it goes.

Where it goes: claude_desktop_config.json (Settings → Developer → Edit Config)

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

If nothing comes through, run npx @agentdeskai/browser-tools-mcp --doctor, which names the missing piece.

New to this? See the setup guides for Claude Code, Cursor, Claude Desktop and ChatGPT.

Settings

Names are exactly as the project spells them. Required ones are marked.

SettingWhat it does
--portCommand line flagThe local port the built-in connector listens on. The default is 3025.--port 3025
--allow-inputCommand line flagAdds the tools that open URLs, click and type (navigateTab, softClick, softType and friends). Without it the server can only look, which is how we listed it.--allow-input
--extension-idCommand line flagAccepts one specific copy of the extension and refuses any other.--extension-id abcdefghijklmnop
--screenshot-dirCommand line flagWhere screenshots are saved on disk.
--only / --excludeCommand line flagTrims the tool list down to the ones you name, or hides the ones you name.--only getConsoleErrors,getNetworkErrors
--doctorCommand line flagChecks Node, the extension and Chrome, says which piece is missing, then exits.
--verboseCommand line flagPrints every captured log and request as it arrives, which is handy on a fresh install.
CHROME_PATHEnvironment variablePoints the Lighthouse audits at a specific Chrome or Chromium binary.

What it can touch

It can read

  • Console output, network requests and storage from Chrome tabs with DevTools open
  • Screenshots of the page you are on, signed in as you

It can change

  • Reloads the tab
  • With --allow-input, opens URLs and sends clicks and typing to the page

Safer setup: Leave --allow-input off so it can only observe, pin the extension with --extension-id, and keep cookie values hidden, which is the default.

Before you start

  • Node.js 22.19 or newer
  • Chrome (or another Chromium browser) with the BrowserTools extension loaded unpacked

If it does not work

Every tool says the extension is not connected
Load the chrome-extension folder from the repository through chrome://extensions with Developer mode on, then open DevTools on the page. Capture only starts once DevTools is open.
The server will not start
Version 2 needs Node 22.19 or newer. If you use nvm or asdf, make sure your editor starts with the same Node you see in a terminal.
You are still on 1.x, with a separate browser-tools-server
Upgrade. 1.x is unsupported and listened on your whole network. In 2.x the MCP server runs the connector itself, so there is nothing else to start.
Not sure which part is broken
Run npx @agentdeskai/browser-tools-mcp --doctor. It names the missing piece.
Audits cannot reach an API on another local port
Audits only reach the page's own origin by default. Allow the extra origin with --audit-allow-origin.

Peas in a pod: similar servers

How BrowserTools MCP lines up against other browser and web data servers on the shelf.

ServerToolsRuns onLicenceStars
BrowserTools MCP16Your computerMIT7.3K
ExecuteAutomation Playwright MCP33Your computerMIT5.7K
Wigolo10Your computerAGPL-3.0-only5.5K
Perplexity MCP4Your computer or hostedMIT2.6K
Tavily MCP5Your computer or hostedMIT2.5K

Questions

How is it different from Playwright MCP?

Playwright MCP drives a separate browser. BrowserTools reads the Chrome you already have open, so it sees your signed-in session and the bug exactly as you see it.

Does it work in Firefox?

Not officially. The extension has not been tried in Firefox, and the Lighthouse audits need Chrome's DevTools protocol.

Is my data sent anywhere?

No. In version 2 the connector only listens on 127.0.0.1 and every request needs a token for that run.

Is it free?

Yes, MIT licensed.

Full docs on GitHubAgentDeskAI/browser-tools-mcp

Something wrong on this page? Tell us.

More in Browser and web data