Airsc miễn phí cho tất cả. Nếu nó giúp bạn, hãy ủng hộ $2–$20.

Ủng hộ
MCP serverAn toànTự động trình duyệt & dữ liệu webCần cài đặt chút Đã chạy thử thật

browser-tools-mcp

AgentDeskAI · AgentDeskAI/browser-tools-mcp

Cho phép tác nhân AI của bạn giám sát phiên Chrome trực tiếp, truyền trực tiếp đầu ra console, hoạt động mạng, ảnh chụp màn hình và kiểm tra Lighthouse.

Giám sát nhật ký trình duyệt trực tiếp từ Cursor và các IDE tương thích MCP khác.

7.3k sao537Giấy phép: MITCập nhật 2 tháng trước0 lượt mở

Xem trước

▍

Bạn có thể làm gì với nó

  • Gỡ lỗi ứng dụng web bằng cách cho tác nhân xem nhật ký trình duyệt và yêu cầu mạng theo thời gian thực.
  • Nhận các kiểm tra hiệu suất và khả năng tiếp cận Lighthouse trên trang web bạn đang mở.
  • Hiểu luồng tương tác của người dùng bằng cách truyền ảnh chụp màn hình phiên Chrome của bạn cho tác nhân.

Đã chạy thử thật · 16 tool

Chúng tôi đã khởi động MCP server này trong máy ảo cách ly, và nó cung cấp các tool sau:

  • listBrowserTabs

    Every browser tab that currently has DevTools open, with the tabId you can pass to any other tool. Call this when a result reported otherTabs above 0, or when the user mentions a page other than the o

  • getConsoleLogs

    Console output from the current tab. Use keywords and limit to keep responses small — an unfiltered read can be large. Pass tabId for a different tab, or allTabs to read every tab; the result reports

  • getConsoleErrors

    Only error-level console output and uncaught exceptions from the current tab. Start here when diagnosing a failure. Pass tabId for a different tab, or allTabs to read every tab.

  • getNetworkLogs

    XHR and fetch requests from the current tab, including status and timing. Credential headers are redacted. Pass tabId for a different tab, or allTabs to read every tab.

  • getNetworkErrors

    Only requests that failed or returned a 4xx/5xx status. An empty result means there were no failures, which is a success, not an error.

  • getSelectedElement

    The DOM element the user has selected in the Chrome DevTools Elements panel, with its attributes and markup.

  • getPageInfo

    Which page the browser is currently on. Call this before reading telemetry so you know what the logs describe. If connectedTabs is above 1, call listBrowserTabs before assuming this is the page the us

  • getConnectionStatus

    Whether the Chrome extension is connected and how much telemetry has been captured. Call this first when something returns nothing.

  • takeScreenshot

    Captures the visible area of the current tab and returns the image directly, plus the path it was saved to and the url captured. Pass tabId to capture a different tab.

  • refreshBrowser

    Reloads the inspected tab. Useful for capturing a clean reproduction after calling wipeLogs.

  • getBrowserStorage

    Lists localStorage, sessionStorage and cookie entries for the current page. Values are withheld unless includeValues is set, because they routinely contain session tokens.

  • wipeLogs

    Discards captured console and network entries for every tab, or one tab if you name it. Use before reproducing a problem so the next read contains only relevant output.

  • runAccessibilityAudit

    Lighthouse accessibility audit of the current page: contrast, labels, semantics and screen-reader support. Takes up to a minute and launches a separate headless browser.

  • runPerformanceAudit

    Lighthouse performance audit of the current page, including Core Web Vitals. Takes up to a minute and launches a separate headless browser.

  • runSEOAudit

    Lighthouse SEO audit of the current page: metadata, indexability and crawlability. Takes up to a minute and launches a separate headless browser.

npx -y @agentdeskai/browser-tools-mcp@latest · 6/10/2026

Kiểm tra an toàn

An toàn

Không thấy dấu hiệu rủi ro trong các file đã quét.

Quét tự động các file trong repo. Luôn xem lại code trước khi chạy.

Trích từ README

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

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
listBrowserTabsEvery tab with DevTools open, and the id to address it by
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.

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 Lig
Xem mã nguồn trên GitHub