Chrome DevTools MCP
OFFICIAL SERVERLets an assistant control and inspect a live Chrome browser: automate pages, debug, trace performance.
Streams console, network, screenshots and Lighthouse audits from your own Chrome tabs to an MCP client
By AgentDeskAI TypeScript Local · stdio Browser automationDeveloper toolsTesting
65 popularity score ★ 7.3k ↓ 5.0k/wk
Opens the app, which asks before it adds the server.
claude mcp add browsertools -- npx -y @agentdeskai/browser-tools-mcp@latest{
"mcpServers": {
"browsertools": {
"command": "npx",
"args": [
"-y",
"@agentdeskai/browser-tools-mcp@latest"
]
}
}
}{
"mcpServers": {
"browsertools": {
"command": "npx",
"args": [
"-y",
"@agentdeskai/browser-tools-mcp@latest"
]
}
}
}{
"servers": {
"browsertools": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentdeskai/browser-tools-mcp@latest"
]
}
}
}[mcp_servers.browsertools]
command = "npx"
args = ["-y", "@agentdeskai/browser-tools-mcp@latest"]gemini mcp add --scope user browsertools npx -- -y @agentdeskai/browser-tools-mcp@latestBROWSER_TOOLS_PORT |
Optional: Port of the local connector the extension talks to. |
|---|---|
BROWSER_TOOLS_SCREENSHOT_DIR |
Optional: Folder where screenshots and the last audit reports are written. |
BROWSER_TOOLS_TOOLS |
Optional: Comma-separated tools to expose, hiding the rest (same as --only). |
BROWSER_TOOLS_EXCLUDE_TOOLS |
Optional: Comma-separated tools to hide (same as --exclude). |
BROWSER_TOOLS_EXTENSION_ID |
Optional: Accept pairing only from this extension id. |
BROWSER_TOOLS_REDACT |
Optional: Set to false to stop scrubbing credentials from captured data. |
BROWSER_TOOLS_TOKEN secret |
Optional: Token for attaching to a connector that is already running. |
BROWSER_TOOLS_AUDIT_ALLOW_ORIGINS |
Optional: Local or private origins audits may reach without an open tab. |
BROWSER_TOOLS_VERBOSE |
Optional: Set to true to print each captured entry as it arrives. |
BrowserTools MCP gives a coding assistant in Cursor, Claude Code, Windsurf, Cline, Zed or Gemini CLI a view of the Chrome session you already have open and logged in to. It reads console output, network requests, the element picked in the Elements panel, page info and browser storage. It can also take screenshots, reload the tab and run Lighthouse audits for accessibility, performance, SEO and best practices. The idea is to debug the app in front of you instead of starting a fresh automated browser.
There are two pieces. The npm package @agentdeskai/browser-tools-mcp runs the MCP server and starts its own local connector, so nothing else needs launching. The Chrome extension is loaded unpacked from the chrome-extension folder of the repository. Capture for a tab starts once DevTools is open on it. Long histories, HAR files and full audit reports are served as MCP resources that the client can fetch when it wants them.
Version 2.0 rewrote the project. The maintainers say 1.x is unsupported and has critical vulnerabilities, including remote code execution, that will not be patched there. The README on the main branch also lists tab tools such as listTabs, readTab and softClick, but the v2.0.4 package registers 16 tools and none of those (src/mcp/server.ts at the v2.0.4 tag).
| Runtime | Node.js 22.19+ |
|---|---|
| Runs on | macOS, Windows, Linux |
| Also |
|
Download or clone the repository, open chrome://extensions, switch on Developer mode and use Load unpacked on the chrome-extension folder. Then open DevTools (F12) on the page you want read. Running the package with --doctor reports which part is missing. Audits find a Chromium-based browser on their own; set CHROME_PATH to pick another.
Good for a developer who wants an assistant to look at the console, failing requests or storage of a web app they are already signed in to, with Lighthouse scores on the side. It runs locally and mostly reads, and the only changes it makes are reloading a tab, saving screenshots and clearing captured logs. In the released version it cannot click, type or navigate. For scripted end-to-end tests in a clean browser, the README points to Playwright MCP or Chrome DevTools MCP. Those start their own automated browser, while this one reads the profile you are signed in to.
13 only read, 2 change things, 1 can delete or overwrite. A ? marks an optional parameter.
getConsoleLogskeywords?: arraytabId?: anyallTabs?: booleanlimit?: integeroffset?: integergetConsoleErrorskeywords?: arraytabId?: anyallTabs?: booleanlimit?: integeroffset?: integergetNetworkLogsurlKeywords?: arraybodyKeywords?: arraytabId?: anyallTabs?: booleanlimit?: integeroffset?: integergetNetworkErrorsurlKeywords?: arraytabId?: anyallTabs?: booleanlimit?: integeroffset?: integergetSelectedElementtabId?: anygetPageInfogetConnectionStatuslistBrowserTabstakeScreenshot changesname?: stringtabId?: anyrefreshBrowser changestabId?: anygetBrowserStoragekinds?: arrayincludeValues?: booleantabId?: anywipeLogs deletestabId?: anyrunAccessibilityAuditurl?: stringtabId?: anyrunPerformanceAuditurl?: stringtabId?: anyrunSEOAuditurl?: stringtabId?: anyrunBestPracticesAuditurl?: stringtabId?: anybrowser-tools://console/{tabId|all}browser-tools://network/{tabId|all}browser-tools://har/{tabId|all}browser-tools://screenshot/{name}browser-tools://audit/{reportId}debuggerModeauditModenextjsSeoAudit