Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.
Warning

Malware flagged

A supply-chain scanner flagged a high-severity malware risk in this package. Treat it as unsafe to install until the finding is cleared. See Supply Chain Security in the trust breakdown.

Brave DevTools MCP

NPM · BRAVE-MCP · SCANNED AUG 17

MCP server and CLI for Brave DevTools

Available components

71 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security55
  • Malware check failed: a supply-chain vendor flagged a high-severity malware risk. See how to fix → Fail
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to triuzzi/brave-devtools-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 4 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability80
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 2933 tokens (~101/item across 29 items; 29 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
  • Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · brave-mcp

# add to Claude Code
claude mcp add triuzzi-brave-mcp -- npx -y brave-mcp
# add to Codex CLI
codex mcp add triuzzi-brave-mcp -- npx -y brave-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "triuzzi-brave-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "brave-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add triuzzi-brave-mcp --command npx --arg -y --arg brave-mcp
# ~/.hermes/config.yaml
mcp_servers:
  triuzzi-brave-mcp:
    command: "npx"
    args: ["-y", "brave-mcp"]
// mcp.json
{
  "mcpServers": {
    "triuzzi-brave-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "brave-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Aug 26 +2
    • Malware scan: unverified → fail security
    • Malware indicator (automated code analysis): high security
    • Malware indicator (automated code analysis): high security
    • Stability: unverified → 0.03 functional
    • Package version: 1.7.0 → 1.7.1 functional
  • 11 Aug 26 66

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Aug 2026 · Analysed npm/brave-mcp@1.7.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo triuzzi/brave-devtools-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/triuzzi/brave-devtools-mcp/.github/workflows/publish-to-npm-on-tag.yml@refs/heads/main
Rekor log index 2435872257
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:37ef7e0dc9be8100589e3a054b84ac690d2a0837b3d1457e2624e85f4b8848f54db83622cfa4a208588536237039a45a41ac0ced930dd7e24facb181f
Dependencies 0 packages
Packages resolved 0
Tree resolution Complete
MCP tools · 29 exposed · ~2,933 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
click ~72

Clicks on the provided element

NameTypeReqDescription
dblClickbooleanSet to true for double clicks. Default is false.
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
uidstringyesThe uid of an element on the page from the page content snapshot

No output schema declared.

No examples provided.

close_page ~46

Closes the page by its index. The last open page cannot be closed.

NameTypeReqDescription
pageIdnumberyesThe ID of the page to close. Call list_pages to list pages.

No output schema declared.

No examples provided.

drag ~65

Drag an element onto another element

NameTypeReqDescription
from_uidstringyesThe uid of the element to drag
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
to_uidstringyesThe uid of the element to drop into

No output schema declared.

No examples provided.

emulate ~278

Emulates various features on the selected page.

NameTypeReqDescription
colorSchemestringEmulate the dark or the light mode. Set to "auto" to reset to the default.
cpuThrottlingRatenumberRepresents the CPU slowdown factor. Omit or set the rate to 1 to disable throttling
extraHttpHeadersstringExtra HTTP headers as a JSON string object, e.g. {"X-Custom": "value", "Authorization": "Bearer token"}. Headers are included into every HTTP request originating from the page and persist across navi…
geolocationstringGeolocation (`<latitude>,<longitude>`) to emulate. Latitude between -90 and 90. Longitude between -180 and 180. Omit to clear the geolocation override.
networkConditionsstringThrottle network. Omit to disable throttling.
userAgentstringUser agent to emulate. Set to empty string to clear the user agent override.
viewportstringEmulate device viewports '<width>x<height>x<devicePixelRatio>[,mobile][,touch][,landscape]'. 'touch' and 'mobile' to emulate mobile devices. 'landscape' to emulate landscape mode.

No output schema declared.

No examples provided.

evaluate_script ~202

Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON, so returned values have to be JSON-serializable.

NameTypeReqDescription
argsarrayAn optional list of arguments to pass to the function.
dialogActionstringHandle dialogs while execution. "accept", "dismiss", or string for response of window.prompt. Defaults to accept.
filePathstringThe absolute or relative path to a file to save the script output to. If omitted, the output is returned inline.
functionstringyesA JavaScript function declaration to be executed by the tool in the currently selected page. Example without arguments: `() => document.title` or `async () => await fetch("example.com")`. Example wit…
waitForStableDombooleanWhether to wait for the DOM to settle. Pass false if the script only reads data. Defaults to true.

No output schema declared.

No examples provided.

fill ~99

Type text into an input, text area or select an option from a <select> element.

NameTypeReqDescription
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
uidstringyesThe uid of an element on the page from the page content snapshot
valuestringyesThe value to fill in. "true" or "false" for checkboxes and toggles, "true" for radio buttons.

No output schema declared.

No examples provided.

fill_form ~109

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.

NameTypeReqDescription
elementsarrayyesElements from snapshot to fill out.
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.

No output schema declared.

No examples provided.

get_console_message ~51

Gets a console message by its ID. You can get all messages by calling list_console_messages.

NameTypeReqDescription
msgidnumberyesThe msgid of a console message on the page from the listed console messages

No output schema declared.

No examples provided.

get_network_request ~132

Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel.

NameTypeReqDescription
reqidnumberThe reqid of the network request. If omitted returns the currently selected request in the DevTools Network panel.
requestFilePathstringThe absolute or relative path to a .network-request file to save the request body to. If omitted, the body is returned inline.
responseFilePathstringThe absolute or relative path to a .network-response file to save the response body to. If omitted, the body is returned inline.

No output schema declared.

No examples provided.

handle_dialog ~52

If a browser dialog was opened, use this command to handle it

NameTypeReqDescription
actionstringyesWhether to dismiss or accept the dialog
promptTextstringOptional prompt text to enter into the dialog.

No output schema declared.

No examples provided.

hover ~53

Hover over the provided element

NameTypeReqDescription
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
uidstringyesThe uid of an element on the page from the page content snapshot

No output schema declared.

No examples provided.

lighthouse_audit ~90

Get Lighthouse score and reports for accessibility, SEO, best practices, and agentic browsing. This excludes performance. For performance audits, run performance_start_trace

NameTypeReqDescription
devicestringDevice to emulate.
modestring"navigation" reloads & audits. "snapshot" analyzes current state.
outputDirPathstringDirectory for reports. If omitted, uses temporary files.

No output schema declared.

No examples provided.

list_console_messages ~168

List all console messages for the currently selected page since the last navigation.

NameTypeReqDescription
includePreservedMessagesbooleanSet to true to return the preserved messages over the last 3 navigations.
includeStackTracesbooleanSet to true to include the stack trace for each message when available. Increases the response size.
pageIdxintegerPage number to return (0-based). When omitted, returns the first page.
pageSizeintegerMaximum number of messages to return. When omitted, returns all messages.
serviceWorkerIdstringFilter messages to only return messages of the specified service worker.
typesarrayFilter messages to only return messages of the specified resource types. When omitted or empty, returns all messages.

No output schema declared.

No examples provided.

list_network_requests ~121

Lists the most recent requests for the currently selected page since the last navigation.

NameTypeReqDescription
includePreservedRequestsbooleanSet to true to return the preserved requests over the last 3 navigations.
pageIdxintegerPage number to return (0-based). When omitted, returns the first page.
pageSizeintegerMaximum number of requests to return. When omitted, returns all requests.
resourceTypesarrayFilter requests to only return requests of the specified resource types. When omitted or empty, returns all requests.

No output schema declared.

No examples provided.

list_pages ~18

Get a list of pages open in the browser.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

navigate_page ~155

Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.

NameTypeReqDescription
handleBeforeUnloadstringWhether to auto accept or beforeunload dialogs triggered by this navigation. Default is accept.
ignoreCachebooleanWhether to ignore cache on reload.
initScriptstringA JavaScript script to be executed on each new document before any other scripts for the next navigation.
timeoutintegerMaximum wait time in milliseconds. If set to 0, the default timeout will be used.
typestringNavigate the page by URL, back or forward in history, or reload.
urlstringTarget URL (only type=url)

No output schema declared.

No examples provided.

new_page ~135

Open a new tab and load a URL. Use project URL if not specified otherwise.

NameTypeReqDescription
backgroundbooleanWhether to open the page in the background without bringing it to the front. Default is false (foreground).
isolatedContextstringIf specified, the page is created in an isolated browser context with the given name. Pages in the same browser context share cookies and storage. Pages in different browser contexts are fully isolat…
timeoutintegerMaximum wait time in milliseconds. If set to 0, the default timeout will be used.
urlstringyesURL to load in a new page.

No output schema declared.

No examples provided.

performance_analyze_insight ~97

Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.

NameTypeReqDescription
insightNamestringyesThe name of the Insight you want more information on. For example: "DocumentLatency" or "LCPBreakdown"
insightSetIdstringyesThe id for the specific insight set. Only use the ids given in the "Available insight sets" list.

No output schema declared.

No examples provided.

performance_start_trace ~157

Start a performance trace on the selected webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.

NameTypeReqDescription
autoStopbooleanDetermines if the trace recording should be automatically stopped.
filePathstringThe absolute file path, or a file path relative to the current working directory, to save the raw trace data. For example, trace.json.gz (compressed) or trace.json (uncompressed).
reloadbooleanDetermines if, once tracing has started, the current selected page should be automatically reloaded. Navigate the page to the right URL using the navigate_page tool BEFORE starting the trace if reloa…

No output schema declared.

No examples provided.

performance_stop_trace ~66

Stop the active performance trace recording on the selected webpage.

NameTypeReqDescription
filePathstringThe absolute file path, or a file path relative to the current working directory, to save the raw trace data. For example, trace.json.gz (compressed) or trace.json (uncompressed).

No output schema declared.

No examples provided.

press_key ~106

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).

NameTypeReqDescription
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
keystringyesA key or a combination (e.g., "Enter", "Control+A", "Control++", "Control+Shift+R"). Modifiers: Control, Shift, Alt, Meta

No output schema declared.

No examples provided.

resize_page ~41

Resizes the selected page's window so that the page has specified dimension

NameTypeReqDescription
heightnumberyesPage height
widthnumberyesPage width

No output schema declared.

No examples provided.

select_page ~62

Select a page as a context for future tool calls.

NameTypeReqDescription
bringToFrontbooleanWhether to focus the page and bring it to the top.
pageIdnumberyesThe ID of the page to select. Call list_pages to get available pages.

No output schema declared.

No examples provided.

take_heapsnapshot ~58

Capture a heap snapshot of the currently selected page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.

NameTypeReqDescription
filePathstringyesA path to a .heapsnapshot file to save the heapsnapshot to.

No output schema declared.

No examples provided.

take_screenshot ~165

Take a screenshot of the page or element.

NameTypeReqDescription
filePathstringThe absolute path, or a path relative to the current working directory, to save the screenshot to instead of attaching it to the response.
formatstringType of format to save the screenshot as. Default is "png"
fullPagebooleanIf set to true takes a screenshot of the full page instead of the currently visible viewport. Incompatible with uid.
qualitynumberCompression quality for JPEG and WebP formats (0-100). Higher values mean better quality but larger file sizes. Ignored for PNG format.
uidstringThe uid of an element on the page from the page content snapshot. If omitted, takes a page screenshot.

No output schema declared.

No examples provided.

take_snapshot ~130

Take a text snapshot of the currently selected 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).

NameTypeReqDescription
filePathstringThe absolute path, or a path relative to the current working directory, to save the snapshot to instead of attaching it to the response.
verbosebooleanWhether to include all possible information available in the full a11y tree. Default is false.

No output schema declared.

No examples provided.

type_text ~55

Type text using keyboard into a previously focused input

NameTypeReqDescription
submitKeystringOptional key to press after typing. E.g., "Enter", "Tab", "Escape"
textstringyesThe text to type

No output schema declared.

No examples provided.

upload_file ~83

Upload a file through a provided element.

NameTypeReqDescription
filePathsarrayyesOne or more local paths of files to upload.
includeSnapshotbooleanWhether to include a snapshot in the response. Default is false.
uidstringyesThe uid of the file input element or an element that will open file chooser on the page from the page content snapshot

No output schema declared.

No examples provided.

wait_for ~67

Wait for the specified text to appear on the selected page.

NameTypeReqDescription
textarrayyesNon-empty list of texts. Resolves when any value appears on the page.
timeoutintegerMaximum wait time in milliseconds. If set to 0, the default timeout will be used.

No output schema declared.

No examples provided.