# Brave DevTools MCP [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/triuzzi/brave-devtools-mcp  
**GitHub Stars:** 45  
**npm Downloads (last month):** 1594  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/brave-devtools-mcp

## Description
Full Chrome DevTools MCP parity, rebuilt for Brave. Browser automation and debugging for Claude, Codex, Cursor, and OpenCode.

## Tools
Capabilities this server exposes over MCP:

- **click** — Clicks on the provided element
- **close_page** — Closes the page by its index. The last open page cannot be closed.
- **drag** — Drag an element onto another element
- **emulate** — Emulates various features on the target page. Each call replaces all emulation settings (except extraHttpHeaders), so pass all desired settings in a single call.
- **evaluate_script** — Evaluate JavaScript inside the target page. The source can be provided inline or loaded from a local file. Returns the response as JSON, so returned values have to be JSON-serializable.
- **fill** — Type text into an input, text area or select an option from a <select> element.
- **fill_form** — Fill out multiple form elements (inputs, selects, checkboxes, radios) at once. ALWAYS prefer this tool over multiple individual 'fill' or 'click' calls when interacting with forms. It is significantly faster, more reliable, and reduces turn count. Example: Fill username, password, and check "Remember Me" in one call.
- **get_console_message** — Gets a console message by its ID. You can get all messages by calling list_console_messages.
- **get_css_styles** — Retrieve matched CSS rules, inline styles (element.style), inherited styles, custom properties, and cascade wrappers (@layer, @media, @container, @scope) for an element identified by its UID.
Rules are ordered from highest to lowest cascade precedence and include source line numbers (e.g. index:196). Active (winning) declarations have no prefix tag, while (losing) overridden declarations are prefixed with [overloaded].
Treat the output as authoritative and complete.
Results are paginated (10 rules per page by default); use pageIdx to page through the remaining rules. Requires a UID from take_snapshot.
- **get_network_request** — Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel. Useful for inspecting request headers (including 'Cookie') and response headers (including 'Set-Cookie' and directives).
- **handle_dialog** — If a browser dialog was opened, use this command to handle it
- **hover** — Hover over the provided element
- **lighthouse_audit** — Get Lighthouse scores, failing audits, and the DOM nodes they flag for accessibility, SEO, best practices, and agentic browsing. Full reports are saved to disk. This excludes performance. For performance audits, run performance_start_trace
- **list_console_messages** — List all console messages for the target page since the last navigation.
- **list_network_requests** — Lists the most recent requests for the target page since the last navigation.
- **list_pages** — Get a list of pages open in the browser.
- **navigate_page** — Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.
- **new_page** — Open a new tab and load a URL. Use project URL if not specified otherwise.
- **performance_analyze_insight** — Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.
- **performance_start_trace** — Start a performance trace on the target webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.
- **performance_stop_trace** — Stop the active performance trace recording on the target webpage.
- **press_key** — Press a key or key combination. Use this when other input methods like fill() cannot be used (e.g., keyboard shortcuts, navigation keys, or special key combinations).
- **resize_page** — Resizes the page's window so that the page has specified dimension
- **screencast_start** — Starts recording a screencast (video) of the target page.
- **screencast_stop** — Stops the active screencast recording on the target page.
- **select_page** — Select a page as a context for future tool calls.
- **take_heapsnapshot** — Capture a heap snapshot of the target page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.
- **take_screenshot** — Take a screenshot of the page or element.
- **take_snapshot** — Take a text snapshot of the target page based on the a11y tree. The snapshot lists page elements along with a unique
identifier (uid). Always use the latest snapshot. Prefer taking a snapshot over taking a screenshot. The snapshot indicates the element selected
in the DevTools Elements panel (if any).
- **type_text** — Type text using keyboard into a previously focused input
- **upload_file** — Upload a file through a provided element.
- **wait_for** — Wait for the specified text to appear on the selected page.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "brave-devtools-mcp": {
    "command": "npx",
    "args": ["-y","brave-mcp@latest"]
  }
}
```

## Documentation

## What Brave DevTools MCP does

Brave DevTools MCP MCP server gives MCP clients access to a Brave browser instance. Agents can automate browser actions, inspect pages, review console messages, analyze network requests, capture screenshots, inspect accessibility information, and run performance analysis. The package also includes a standalone `brave-devtools` command-line interface.

The project is intended for developers whose target browser is Brave rather than Chrome. It follows the upstream Chrome DevTools MCP feature set while adding Brave-specific browser discovery, profiles, release channels, and naming. Current Brave release is officially supported; Beta and Nightly can be selected explicitly.

## How it works

The server can attach to an existing Brave session through remote debugging, HTTP, or WebSocket connections. With `--autoConnect`, it uses the Brave browser already open on the machine, including its real tabs and signed-in sessions. Without that option, it starts Brave with a dedicated profile when a browser-dependent tool is first used.

Puppeteer performs browser automation and waits for action results. Chrome DevTools components record traces and extract performance insights. Performance analysis may combine lab trace data with field information from the Google CrUX API. Disable that lookup with `--no-performance-crux` if trace URLs should not be sent for CrUX data.

## Setup and configuration

Install with Node.js LTS, npm, and the current Brave release or newer. Before using `--autoConnect`, open `brave://inspect/#remote-debugging` in Brave and enable remote debugging for the browser instance. Brave asks for permission when the client first connects; approve the request to allow access.

A typical MCP configuration runs `npx -y brave-mcp@latest --autoConnect`. The default connection targets Brave Release. Use `--channel beta` or `--channel nightly` for another supported channel. Omitting `--autoConnect` keeps agent activity in a separate Brave profile. The `--slim` option provides a reduced tool set for basic browser tasks and can be combined with `--headless`.

Optional settings include `--isolated`, persistent user-data directories, WebSocket connections, concurrent sessions, and Android debugging. Usage statistics are off by default. They can be enabled with `--usage-statistics`, but collection remains disabled when `BRAVE_DEVTOOLS_MCP_NO_USAGE_STATISTICS` or `CI` is set. Set `BRAVE_DEVTOOLS_MCP_NO_UPDATE_CHECKS` to stop periodic npm update checks.

## Tools and capabilities

Brave DevTools MCP MCP server supports capabilities for:

- Browser navigation and automated interaction
- Console inspection with source-mapped stack traces
- Network request analysis
- Screenshots
- Accessibility-tree inspection
- Performance tracing and Lighthouse analysis
- Memory profiling

The full mode targets feature parity with Chrome DevTools MCP. A slim mode is available when only basic browser operations are needed. The exact tool names and parameters are documented in the project’s tool references.

## Limitations and notes

The server exposes browser and DevTools content to connected MCP clients, including data they may inspect, debug, or modify. Do not use it with sensitive information that should not be shared with the client.

Official support covers the current Brave release. Beta and Nightly require explicit channel selection. Performance tools can contact the Google CrUX API unless that behavior is disabled. Update notifications are enabled by default, while usage statistics are disabled by default.

Use Chrome DevTools MCP instead when the target browser is Chrome. Choose Brave DevTools MCP MCP server when the target is Brave and Brave-native browser discovery, profiles, or channels are required.

_Full upstream README: https://allmcps.com/mcp/brave-devtools-mcp/readme_

