ClaudeCodeMod

All shelves / MCP servers

BrowserTools

agentdeskai/browser-tools-mcp · 7.2k stars · TypeScript · MIT

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

Install

In your shell
npx @agentdeskai/browser-tools-server --verbose

These repos do not share one command. When an entry shows a command, it was copied as published. Check the repo's README before you run it.

Open the repo

Files

README.md

BrowserTools MCP

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. If you are coming from 1.x, read MIGRATION.md — and upgrade, because 1.2.x has a critical vulnerability. See SECURITY.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

{
  "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:

npx @agentdeskai/browser-tools-server --verbose
· 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

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.

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:

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:

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:

  • Loopback only. The connector binds 127.0.0.1 and refuses non-loopback

addresses. In 1.x it bound 0.0.0.0, reachable by anyone on your network.

  • The extension never leaves loopback. 1.x scanned private network ranges

and adopted whichever host answered with a known string — meaning anyone on shared Wi-Fi could receive your logs and screenshots. That scan is gone.

  • Authenticated. The HTTP API requires a per-run token. The WebSocket

accepts browser-extension origins only, so a web page you visit cannot impersonate the extension.

  • Credentials are scrubbed on the way in: Authorization, Cookie and

similar headers, plus JWTs, cloud keys and vendor tokens found anywhere in captured strings, become [REDACTED].

  • Headers are off by default, per direction, and storage values are withheld

unless explicitly requested.

  • Cookie access is an optional permission you grant from the panel, not

something the extension holds by default.

Report vulnerabilities per SECURITY.md.

Configuration

Flags, or the matching BROWSER_TOOLS_* environment variables:

To share one browser session between several MCP clients, start the connector once with npx @agentdeskai/browser-tools-server and every client will attach to it automatically.

Known limits

  • Network capture starts when DevTools opens. Requests that finished before then

are not recorded — reload the page to capture a full page load.

Facts

Kind
MCP server
Repo
agentdeskai/browser-tools-mcp
Group
Uncategorized
Stars
7.2k
License
MIT
Language
TypeScript
Last push
2026-08-12
Forks
535
Homepage
agentdesk.ai
Topics
ai, anthropic, cursor, mcp, mcp-server

More on this shelf

  1. 1Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
  2. 2Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k
  3. 3Gitmodelcontextprotocol/serversA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.85.8k
  4. 4Memorymodelcontextprotocol/serversA basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.85.8k
  5. 5Sequential Thinkingmodelcontextprotocol/serversAn MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process.85.8k
  6. 6Timemodelcontextprotocol/serversA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.85.8k