Brave DevTools MCP – Control Brave from Claude, Codex, and Cursor Brave Software released brave-mcp, a Model Context Protocol server that gives Claude Code, Codex, Cursor, OpenCode, and other MCP clients native access to Brave for browser automation, network and console debugging, performance analysis, screenshots, accessibility inspection, and memory profiling. The tool offers full parity with Chrome DevTools MCP, is currently 0 commits behind upstream, and disables usage telemetry by default, with a standalone CLI included. Full Chrome DevTools MCP parity, rebuilt for Brave. brave-mcp gives Claude Code, Codex, Cursor, OpenCode, and other MCP clients direct access to Brave for browser automation, network and console debugging, performance analysis, screenshots, accessibility inspection, and memory profiling. A standalone brave-devtools /triuzzi/brave-devtools-mcp/blob/main/docs/cli.md CLI is included too. claude mcp add brave-devtools --scope user -- npx -y brave-mcp@latest cursor --add-mcp '{"name":"brave-devtools","command":"npx","args": "-y","brave-mcp@latest" }' codex mcp add brave-devtools -- npx -y brave-mcp@latest opencode mcp add brave-devtools -- npx -y brave-mcp@latest Restart your client, then try this prompt: Open my app in Brave. Find console errors and failed network requests, inspect the accessibility tree, run Lighthouse, and explain the highest-impact issue. | Capability | brave-mcp | chrome-devtools-mcp | |---|---|---| | Browser launched and discovered natively | Brave Release, Beta, and Nightly | Chrome Stable, Beta, Dev, and Canary | | Attach to an existing browser | Brave profiles, HTTP, or WebSocket | Chrome profiles, HTTP, or WebSocket | | Upstream DevTools features | Full parity; currently 0 commits behind | Source implementation | | Usage telemetry | Disabled by default | Enabled by default | | Standalone CLI | brave-devtools | chrome-devtools | Use Chrome DevTools MCP https://github.com/ChromeDevTools/chrome-devtools-mcp when your target browser is Chrome. Use brave-mcp when your target browser is Brave and you want Brave-native discovery, profiles, channels, naming, and privacy defaults without giving up upstream features. Get performance insights : Uses Chrome DevTools https://github.com/ChromeDevTools/devtools-frontend to record traces and extract actionable performance insights. Advanced browser debugging : Analyze network requests, take screenshots and check browser console messages with source-mapped stack traces . Reliable automation . Uses puppeteer https://github.com/puppeteer/puppeteer to automate actions in Brave and automatically wait for action results. brave-mcp exposes content of the browser instance to the MCP clients allowing them to inspect, debug, and modify any data in the browser or DevTools. Avoid sharing sensitive or personal information that you don't want to share with MCP clients. brave-mcp officially supports the current Brave release. Beta and Nightly channels can be selected explicitly. Performance tools may send trace URLs to the Google CrUX API to fetch real-user experience data. This helps provide a holistic performance picture by presenting field data alongside lab data. This data is collected by the Chrome User Experience Report CrUX https://developer.chrome.com/docs/crux . To disable this, run with the --no-performance-crux flag. Usage statistics collection is disabled by default in this fork. It can be enabled explicitly with --usage-statistics , which uses the upstream Google Clearcut implementation: "args": "-y", "brave-mcp@latest", "--usage-statistics" When enabled, Google handles this data in accordance with the Google Privacy Policy https://policies.google.com/privacy . Collection remains disabled if BRAVE DEVTOOLS MCP NO USAGE STATISTICS or CI is set. By default, the server periodically checks the npm registry for updates and logs a notification when a newer version is available. You can disable these update checks by setting BRAVE DEVTOOLS MCP NO UPDATE CHECKS . Add the following config to your MCP client: { "mcpServers": { "brave-devtools": { "command": "npx", "args": "-y", "brave-mcp@latest" } } } Note Using brave-mcp@latest ensures that your MCP client will always use the latest version of the Brave DevTools MCP server. If you are interested in doing only basic browser tasks, use the --slim mode: { "mcpServers": { "brave-devtools": { "command": "npx", "args": "-y", "brave-mcp@latest", "--slim", "--headless" } } } See Slim tool reference /triuzzi/brave-devtools-mcp/blob/main/docs/slim-tool-reference.md . Amp Follow https://ampcode.com/manual mcp https://ampcode.com/manual mcp and use the config provided above. You can also install the Brave DevTools MCP server using the CLI: amp mcp add brave-devtools -- npx brave-mcp@latest Antigravity To use the Brave DevTools MCP server follow the instructions from Antigravity's docs https://antigravity.google/docs/mcp to install a custom MCP server. Add the following config to the MCP servers config: { "mcpServers": { "brave-devtools": { "command": "npx", "args": "-y", "brave-mcp@latest", "--browser-url=http://127.0.0.1:9222" } } } This will make the Brave DevTools MCP server automatically connect to the browser that Antigravity is using. If you are not using port 9222, make sure to adjust accordingly. Brave DevTools MCP will not start the browser instance automatically using this approach because the Brave DevTools MCP server connects to Antigravity's built-in browser. If the browser is not already running, you have to start it first by clicking the Chrome icon at the top right corner. Bob Follow the IBM Bob MCP guide https://bob.ibm.com/docs/ide/configuration/mcp/mcp-in-bob and add the Brave DevTools MCP server to your Bob MCP configuration. Use the global config ~/.bob/mcp.json to apply it across all workspaces, or a project config .bob/mcp.json to scope it to one project: { "mcpServers": { "brave-devtools": { "command": "npx", "args": "-y", "brave-mcp@latest" } } } You can edit these files from Bob panel → Settings → MCP → Edit Global MCP or Edit Project MCP . Bob hot-reloads on save. Once the server appears in the MCP tab, switch to the 🌎 Browser Dev mode to get guided browser debugging directly in Bob. Claude Code Install via CLI MCP only Use the Claude Code CLI to add the Brave DevTools MCP server guide https://code.claude.com/docs/en/mcp : claude mcp add brave-devtools --scope user npx brave-mcp@latest Install as a Plugin MCP + Skills NOTE If you already had Brave DevTools MCP installed previously for Claude Code, make sure to remove it first from your installation and configuration files. To install Brave DevTools MCP with skills, add the marketplace registry in Claude Code: /plugin marketplace add triuzzi/brave-devtools-mcp Then, install the plugin: /plugin install brave-devtools-mcp@brave-devtools-plugins Restart Claude Code to have the MCP server and skills load check with /skills . TIP If the plugin installation fails with a Failed to clone repository error e.g., HTTPS connectivity issues behind a corporate firewall , see the troubleshooting guide for workarounds, or use the CLI installation method above instead. Cline Follow https://docs.cline.bot/mcp/configuring-mcp-servers https://docs.cline.bot/mcp/configuring-mcp-servers and use the config provided above. Codex Follow the configure MCP guide https://developers.openai.com/codex/mcp/ configure-with-the-cli using the standard config from above. You can also install the Brave DevTools MCP server using the Codex CLI: codex mcp add brave-devtools -- npx brave-mcp@latest On Windows 11 Configure the Brave install location and increase the startup timeout by updating .codex/config.toml and adding the following env and startup timeout ms parameters: mcp servers.brave-devtools command = "cmd" args = "/c", "npx", "-y", "brave-mcp@latest", env = { SystemRoot="C:\\Windows", PROGRAMFILES="C:\\Program Files" } startup timeout ms = 20 000 Copilot CLI Start Copilot CLI: copilot Start the dialog to add a new MCP server by running: /mcp add Configure the following fields and press CTRL+S to save the configuration: Server name: brave-devtools Server Type: 1 Local Command: npx -y brave-mcp@latest Copilot / VS Code Install as a Plugin Recommended The easiest way to get up and running is to install brave-mcp as an agent plugin. This bundles the MCP server and all skills together, so your agent gets both the tools and the expert guidance it needs to use them effectively. - Open the Command Palette Cmd+Shift+P on macOS or Ctrl+Shift+P on Windows/Linux . - Search for and run the Chat: Install Plugin From Source command. - Paste in our repository name: triuzzi/brave-devtools-mcp . That's it Your agent is now supercharged with Brave DevTools capabilities. Install as an MCP Server MCP only Click the button to install: Or install manually: Follow the VS Code MCP configuration guide https://code.visualstudio.com/docs/copilot/chat/mcp-servers add-an-mcp-server using the standard config from above, or use the CLI: For macOS and Linux: code --add-mcp '{"name":"io.github.triuzzi/brave-devtools-mcp","command":"npx","args": "-y","brave-mcp" ,"env":{}}' For Windows PowerShell : code --add-mcp '{"""name""":"""io.github.triuzzi/brave-devtools-mcp""","""command""":"""npx""","""args""": """-y""","""brave-mcp""" }' Cursor Click the button to install: Or install manually: Go to Cursor Settings - MCP - New MCP Server . Use the config provided above. Devin CLI Install via CLI MCP only Use the Devin CLI to add the Brave DevTools MCP server guide https://docs.devin.ai/cli/extensibility/mcp/configuration : devin mcp add brave-devtools -- npx brave-mcp@latest Gemini CLI Install the Brave DevTools MCP server using the Gemini CLI. Project wide: Either MCP only: gemini mcp add brave-devtools npx brave-mcp@latest Or as a Gemini extension MCP+Skills : gemini extensions install --auto-update https://github.com/triuzzi/brave-devtools-mcp Globally: gemini mcp add -s user brave-devtools npx brave-mcp@latest Alternatively, follow the MCP guide https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md how-to-set-up-your-mcp-server and use the standard config from above. Gemini Code Assist Follow the configure MCP guide https://cloud.google.com/gemini/docs/codeassist/use-agentic-chat-pair-programmer configure-mcp-servers using the standard config from above. JetBrains AI Assistant & Junie Go to Settings | Tools | AI Assistant | Model Context Protocol MCP - Add . Use the config provided above. The same way brave-mcp can be configured for JetBrains Junie in Settings | Tools | Junie | MCP Settings - Add . Use the config provided above. Kiro In Kiro Settings , go to Configure MCP Open Workspace or User MCP Config Use the configuration snippet provided above. Or, from the IDE Activity Bar Kiro MCP Servers Click Open MCP Config . Use the configuration snippet provided above. Katalon Studio The Brave DevTools MCP server can be used with Katalon StudioAssist via an MCP proxy. Step 1: Install the MCP proxy by following the MCP proxy setup guide https://docs.katalon.com/katalon-studio/studioassist/mcp-servers/setting-up-mcp-proxy-for-stdio-mcp-servers . Step 2: Start the Brave DevTools MCP server with the proxy: mcp-proxy --transport streamablehttp --port 8080 -- npx -y brave-mcp@latest Note: You may need to pick another port if 8080 is already in use. Step 3: In Katalon Studio, add the server to StudioAssist with the following settings: Connection URL: http://127.0.0.1:8080/mcp Transport type: HTTP Once connected, the Brave DevTools MCP tools will be available in StudioAssist. Mistral Vibe Add in ~/.vibe/config.toml: mcp servers name = "brave-devtools" transport = "stdio" command = "npx" args = "brave-mcp@latest" OpenCode Add the following configuration to your opencode.json file. If you don't have one, create it at ~/.config/opencode/opencode.json guide https://opencode.ai/docs/mcp-servers : { "$schema": "https://opencode.ai/config.json", "mcp": { "brave-devtools": { "type": "local", "command": "npx", "-y", "brave-mcp@latest" } } } Qoder In Qoder Settings , go to MCP Server + Add Use the configuration snippet provided above. Alternatively, follow the MCP guide https://docs.qoder.com/user-guide/chat/model-context-protocol and use the standard config from above. Qoder CLI Install the Brave DevTools MCP server using the Qoder CLI guide https://docs.qoder.com/cli/using-cli mcp-servers : Project wide: qodercli mcp add brave-devtools -- npx brave-mcp@latest Globally: qodercli mcp add -s user brave-devtools -- npx brave-mcp@latest Warp Go to Settings | AI | Manage MCP Servers - + Add to add an MCP Server https://docs.warp.dev/knowledge-and-collaboration/mcp adding-an-mcp-server . Use the config provided above. Windsurf Follow the configure MCP guide https://docs.windsurf.com/windsurf/cascade/mcp mcp-config-json using the standard config from above. Enter the following prompt in your MCP Client to check if everything is working: Check the performance of https://developers.chrome.com Your MCP client should open the browser and record a performance trace. Note The MCP server will start the browser automatically once the MCP client uses a tool that requires a running browser instance. Connecting to the Brave DevTools MCP server on its own will not automatically start the browser. If you run into any issues, checkout our troubleshooting guide /triuzzi/brave-devtools-mcp/blob/main/docs/troubleshooting.md . Input automation 10 tools Navigation automation 6 tools Emulation 2 tools Performance 3 tools Network 2 tools Debugging 8 tools Memory 12 tools take heapsnapshot close heapsnapshot compare heapsnapshots get heapsnapshot class nodes get heapsnapshot details get heapsnapshot dominators get heapsnapshot duplicate strings get heapsnapshot edges get heapsnapshot object details get heapsnapshot retainers get heapsnapshot retaining paths get heapsnapshot summary Extensions 5 tools Third-party 2 tools WebMCP 2 tools Progressive Web Apps 4 tools The Brave DevTools MCP server supports the following configuration option: - If specified, automatically connects to a Brave instance running locally from the user data directory identified by the channel parameter default channel is release . Requires remote debugging to be enabled via brave://inspect/ remote-debugging. --autoConnect / --auto-connect Type: boolean Default: false - Connect to a running, debuggable Brave instance e.g. --browserUrl / --browser-url , -u http://127.0.0.1:9222 . For more details see: https://github.com/triuzzi/brave-devtools-mcp connecting-to-a-running-brave-instance https://github.com/triuzzi/brave-devtools-mcp connecting-to-a-running-brave-instance . Type: string Default: false - WebSocket endpoint to connect to a running Brave instance e.g., ws://127.0.0.1:9222/devtools/browser/ . Alternative to --browserUrl. --wsEndpoint / --ws-endpoint , -w Type: string Default: false - Custom headers for WebSocket connection in JSON format e.g., '{"Authorization":"Bearer token"}' . Only works with --wsEndpoint. --wsHeaders / --ws-headers Type: string Default: false - Whether to run in headless no UI mode. --headless Type: boolean Default: false - Path to a custom Brave executable. Can also be set via BRAVE PATH. --executablePath / --executable-path , -e Type: string Default: false - If specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed. Defaults to false. --isolated Type: boolean Default: false - Path to the user data directory for Brave. Default is $HOME/.cache/brave-devtools-mcp/brave-profile$CHANNEL SUFFIX IF NON RELEASE --userDataDir / --user-data-dir Type: string Default: false - Specify a different Brave channel. The default is the release channel. --channel Type: string Choices: release , beta , nightly Default: false - Path to a file to write debug logs to. Set the env variable --logFile / --log-file DEBUG to to enable verbose logs. Useful for submitting bug reports. Type: string Default: false - Initial viewport size for Brave instances started by the server. For example, --viewport 1280x720 . In headless mode, max size is 3840x2160px. Type: string Default: false - Proxy server configuration for Brave passed as --proxy-server when launching the browser. See --proxyServer / --proxy-server https://www.chromium.org/developers/design-documents/network-settings/ https://www.chromium.org/developers/design-documents/network-settings/ for details. Type: string Default: false - If enabled, ignores errors relative to self-signed and expired certificates. Use with caution. --acceptInsecureCerts / --accept-insecure-certs Type: boolean Default: false - Whether to expose pageId on page-scoped tools and route requests by page ID useful for concurrent agent sessions . --experimentalPageIdRouting / --experimental-page-id-routing Type: boolean Default: false - Whether to enable automation over DevTools targets --experimentalDevtools / --experimental-devtools Type: boolean Default: false - Whether to enable coordinate-based tools such as click at x,y . Usually requires a computer-use model able to produce accurate coordinates by looking at screenshots. --experimentalVision / --experimental-vision Type: boolean Default: false - Whether to enable memory debugging tools. --memoryDebugging / --memory-debugging , -experimentalMemory Type: boolean Default: false - Whether to output structured formatted content. --experimentalStructuredContent / --experimental-structured-content Type: boolean Default: false - Whether to include all kinds of pages such as webviews or background pages as pages. --experimentalIncludeAllPages / --experimental-include-all-pages Type: boolean Default: false - Exposes experimental screencast tools requires ffmpeg . Install ffmpeg --experimentalScreencast / --experimental-screencast https://www.ffmpeg.org/download.html https://www.ffmpeg.org/download.html and ensure it is available in the MCP server PATH. Type: boolean Default: false - Path to ffmpeg executable for screencast recording. --experimentalFfmpegPath / --experimental-ffmpeg-path Type: string Default: false - Set to true to enable debugging WebMCP tools. Requires a recent Brave version with the following flags: --categoryExperimentalWebmcp / --category-experimental-webmcp --enable-features=WebMCP,DevToolsWebMCPSupport Type: boolean Default: false - Additional arguments for Brave. Only applies when Brave is launched by brave-devtools-mcp. --braveArg / --brave-arg Type: array Default: false - Restricts browser's network access by blocking specified URL patterns uses --blockedUrlPattern / --blocked-url-pattern https://urlpattern.spec.whatwg.org/ https://urlpattern.spec.whatwg.org/ . Silently detaches from targets with blocked URLs upon connection, and blocks runtime requests including navigations and subresources . Accepts an array of patterns. Type: array Default: false - Restricts browser's network access by allowing only specified URL patterns uses --allowedUrlPattern / --allowed-url-pattern https://urlpattern.spec.whatwg.org/ https://urlpattern.spec.whatwg.org/ . Requires a recent Brave version. Silently detaches from targets with unallowed URLs upon connection, and blocks runtime requests including navigations and subresources . Accepts an array of patterns. Type: array Default: false - Explicitly disable default arguments for Brave. Only applies when Brave is launched by brave-devtools-mcp. --ignoreDefaultBraveArg / --ignore-default-brave-arg Type: array Default: false - Set to false to exclude tools related to emulation. --categoryEmulation / --category-emulation Type: boolean Default: true - Set to false to exclude tools related to performance. --categoryPerformance / --category-performance Type: boolean Default: true - Set to false to exclude tools related to network. --categoryNetwork / --category-network Type: boolean Default: true - Set to true to include tools related to extensions. This feature is only supported with a pipe connection; autoConnect, browserUrl, and wsEndpoint are not supported. --categoryExtensions / --category-extensions Type: boolean Default: false - Set to true to enable third-party developer tools exposed by the inspected page itself --categoryExperimentalThirdParty / --category-experimental-third-party Type: boolean Default: false - Set to true to include tools for automating Progressive Web Apps install, launch, uninstall, and OS state . This feature is only supported with a pipe connection; autoConnect, browserUrl, and wsEndpoint are not supported. --categoryPwa / --category-pwa Type: boolean Default: false - Set to false to disable sending URLs from performance traces to CrUX API to get field performance data. --performanceCrux / --performance-crux Type: boolean Default: true - Usage statistics collection is disabled by default in this fork. --usageStatistics / --usage-statistics Type: boolean Default: false - Override the default output format used by take screenshot when the caller does not specify one. JPEG and WebP are ~3-5x smaller than PNG, which helps reduce context size in AI conversations. Unset preserves the existing default "png" . --screenshotFormat / --screenshot-format Type: string Choices: jpeg , png , webp Default: false - Override the default compression quality 0-100 used by take screenshot for JPEG and WebP when the caller does not specify one. Lower values mean smaller files. Ignored for PNG. Unset preserves the Puppeteer default. --screenshotQuality / --screenshot-quality Type: number Default: false - Maximum width in pixels for screenshots. If the captured image is wider, it is downscaled preserving aspect ratio before being returned. Reduces context size in AI conversations. Unset means no resize. --screenshotMaxWidth / --screenshot-max-width Type: number Default: false - Maximum height in pixels for screenshots. If the captured image is taller, it is downscaled preserving aspect ratio before being returned. Can be combined with --screenshot-max-width; the smaller scale factor wins. Unset means no resize. --screenshotMaxHeight / --screenshot-max-height Type: number Default: false - Exposes a "slim" set of 3 tools covering navigation, script execution and screenshots only. Useful for basic browser tasks. --slim Type: boolean Default: false - If true, redacts some of the network headers considered sensitive before returning to the client. --redactNetworkHeaders / --redact-network-headers Type: boolean Default: false - If set, disables the default path restriction that applies when the MCP client does not negotiate the roots capability. By default, file-writing tools are restricted to the OS temp directory when no roots are configured. Use this only when connecting a trusted local client that does not implement MCP roots and requires access to paths outside the temp directory. --allowUnrestrictedPaths / --allow-unrestricted-paths Type: boolean Default: false Pass them via the args property in the JSON configuration. For example: { "mcpServers": { "brave-devtools": { "command": "npx", "args": "brave-mcp@latest", "--channel=nightly", "--headless=true", "--isolated=true" } } } You can connect directly to a Brave WebSocket endpoint and include custom headers e.g., for authentication : { "mcpServers": { "brave-devtools": { "command": "npx", "args": "brave-mcp@latest", "--wsEndpoint=ws://127.0.0.1:9222/devtools/browser/