Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "brave-mcp",
"version": "0.4.0",
"version": "0.5.0",
"description": "Reliable automation, in-depth debugging, and performance analysis in Brave using DevTools and Puppeteer",
"mcpServers": {
"brave-devtools": {
Expand Down
18 changes: 0 additions & 18 deletions .github/workflows/release-please.yml

This file was deleted.

21 changes: 21 additions & 0 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,27 @@ jobs:
shell: bash
run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns

- name: Install Brave Browser (Ubuntu)
if: ${{ matrix.os == 'ubuntu-latest' }}
shell: bash
run: |
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \
https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" \
| sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt-get update
sudo apt-get install -y brave-browser

- name: Install Brave Browser (macOS)
if: ${{ matrix.os == 'macos-latest' }}
shell: bash
run: brew install --cask brave-browser

- name: Install Brave Browser (Windows)
if: ${{ matrix.os == 'windows-latest' }}
shell: pwsh
run: choco install brave -y --no-progress

- name: Run tests
shell: bash
# Retry tests if they fail in the merge queue.
Expand Down
49 changes: 29 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ If Brave is not detected automatically, set `BRAVE_PATH`:
"mcpServers": {
"brave-devtools": {
"command": "node",
"args": ["/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js"],
"args": [
"/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js"
],
"env": {
"BRAVE_PATH": "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
Expand Down Expand Up @@ -139,7 +141,12 @@ brave-browser --remote-debugging-port=9222
"mcpServers": {
"brave-devtools": {
"command": "npx",
"args": ["-y", "brave-mcp@latest", "--browserUrl", "http://localhost:9222"]
"args": [
"-y",
"brave-mcp@latest",
"--browserUrl",
"http://localhost:9222"
]
}
}
}
Expand All @@ -154,7 +161,8 @@ Or if running from source:
"command": "node",
"args": [
"/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js",
"--browserUrl", "http://localhost:9222"
"--browserUrl",
"http://localhost:9222"
]
}
}
Expand Down Expand Up @@ -198,7 +206,8 @@ If you are interested in only basic browser tasks, use `--slim` mode:
"command": "node",
"args": [
"/absolute/path/to/brave-devtools-mcp/build/src/bin/brave-devtools-mcp.js",
"--slim", "--headless"
"--slim",
"--headless"
]
}
}
Expand Down Expand Up @@ -650,16 +659,16 @@ The Brave DevTools MCP server supports the following configuration options:
<!-- BEGIN AUTO GENERATED OPTIONS -->

- **`--autoConnect`/ `--auto-connect`**
If specified, automatically connects to a browser (Chrome 144+) running locally from the user data directory identified by the channel param (default channel is stable). Requires the remote debugging server to be started in the Chrome instance via chrome://inspect/#remote-debugging.
If specified, automatically connects to a Brave instance running locally from the user data directory identified by the channel param (default channel is release). Requires the remote debugging server to be started in the Brave instance via brave://inspect/#remote-debugging.
- **Type:** boolean
- **Default:** `false`

- **`--browserUrl`/ `--browser-url`, `-u`**
Connect to a running, debuggable Chrome instance (e.g. `http://127.0.0.1:9222`). For more details see: https://github.com/ChromeDevTools/chrome-devtools-mcp#connecting-to-a-running-chrome-instance.
Connect to a running, debuggable Brave instance (e.g. `http://127.0.0.1:9222`).
- **Type:** string

- **`--wsEndpoint`/ `--ws-endpoint`, `-w`**
WebSocket endpoint to connect to a running Chrome instance (e.g., ws://127.0.0.1:9222/devtools/browser/<id>). Alternative to --browserUrl.
WebSocket endpoint to connect to a running Brave instance (e.g., ws://127.0.0.1:9222/devtools/browser/<id>). Alternative to --browserUrl.
- **Type:** string

- **`--wsHeaders`/ `--ws-headers`**
Expand All @@ -672,32 +681,32 @@ The Brave DevTools MCP server supports the following configuration options:
- **Default:** `false`

- **`--executablePath`/ `--executable-path`, `-e`**
Path to custom Chrome executable.
Path to custom Brave executable. Can also be set via BRAVE_PATH environment variable.
- **Type:** string

- **`--isolated`**
If specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed. Defaults to false.
- **Type:** boolean

- **`--userDataDir`/ `--user-data-dir`**
Path to the user data directory for Chrome. Default is $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE
Path to the user data directory for Brave. Default is $HOME/.cache/brave-devtools-mcp/brave-profile$CHANNEL_SUFFIX_IF_NON_RELEASE
- **Type:** string

- **`--channel`**
Specify a different Chrome channel that should be used. The default is the stable channel version.
Specify a different Brave channel that should be used. The default is the release channel.
- **Type:** string
- **Choices:** `canary`, `dev`, `beta`, `stable`
- **Choices:** `release`, `beta`, `nightly`, `dev`

- **`--logFile`/ `--log-file`**
Path to a file to write debug logs to. Set the env variable `DEBUG` to `*` to enable verbose logs. Useful for submitting bug reports.
- **Type:** string

- **`--viewport`**
Initial viewport size for the Chrome instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
Initial viewport size for the Brave instances started by the server. For example, `1280x720`. In headless mode, max size is 3840x2160px.
- **Type:** string

- **`--proxyServer`/ `--proxy-server`**
Proxy server configuration for Chrome passed as --proxy-server when launching the browser. See https://www.chromium.org/developers/design-documents/network-settings/ for details.
Proxy server configuration for Brave passed as --proxy-server when launching the browser. See https://www.chromium.org/developers/design-documents/network-settings/ for details.
- **Type:** string

- **`--acceptInsecureCerts`/ `--accept-insecure-certs`**
Expand All @@ -717,15 +726,15 @@ The Brave DevTools MCP server supports the following configuration options:
- **Type:** string

- **`--categoryExperimentalWebmcp`/ `--category-experimental-webmcp`**
Set to true to enable debugging WebMCP tools. Requires Chrome 149+ with the following flags: `--enable-features=WebMCPTesting,DevToolsWebMCPSupport`
Set to true to enable debugging WebMCP tools. Requires Brave with the following flags: `--enable-features=WebMCPTesting,DevToolsWebMCPSupport`
- **Type:** boolean

- **`--chromeArg`/ `--chrome-arg`**
Additional arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.
- **`--braveArg`/ `--brave-arg`**
Additional arguments for Brave. Only applies when Brave is launched by brave-devtools-mcp.
- **Type:** array

- **`--ignoreDefaultChromeArg`/ `--ignore-default-chrome-arg`**
Explicitly disable default arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.
- **`--ignoreDefaultBraveArg`/ `--ignore-default-brave-arg`**
Explicitly disable default arguments for Brave. Only applies when Brave is launched by brave-devtools-mcp.
- **Type:** array

- **`--categoryEmulation`/ `--category-emulation`**
Expand Down Expand Up @@ -759,9 +768,9 @@ The Brave DevTools MCP server supports the following configuration options:
- **Default:** `true`

- **`--usageStatistics`/ `--usage-statistics`**
Set to false to opt-out of usage statistics collection. Google collects usage data to improve the tool, handled under the Google Privacy Policy (https://policies.google.com/privacy). This is independent from Chrome browser metrics. Disabled if `CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS` or `CI` env variables are set.
Usage statistics collection (disabled by default in this fork).
- **Type:** boolean
- **Default:** `true`
- **Default:** `false`

- **`--slim`**
Exposes a "slim" set of 3 tools covering navigation, script execution and screenshots only. Useful for basic browser tasks.
Expand Down
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ export default defineConfig([
'eslint.config.mjs',
'rollup.config.mjs',
'skills/memory-leak-debugging/references/compare_snapshots.js',
'tests/e2e/brave-integration.test.mjs',
],
},
},
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "brave-mcp",
"version": "0.4.0",
"version": "0.5.0",
"description": "MCP server for Brave DevTools",
"type": "module",
"bin": {
Expand Down
4 changes: 2 additions & 2 deletions scripts/generate-cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import {createTools} from '../build/src/tools/tools.js';

const OUTPUT_PATH = path.join(
import.meta.dirname,
'../src/bin/chrome-devtools-cli-options.ts',
'../src/bin/brave-devtools-cli-options.ts',
);

async function fetchTools() {
Expand All @@ -35,7 +35,7 @@ async function fetchTools() {
const transport = new StdioClientTransport({
command: 'node',
args: [serverPath, '--viaCli'],
env: {...process.env, CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS: 'true'},
env: {...process.env, BRAVE_DEVTOOLS_MCP_NO_USAGE_STATISTICS: 'true'},
});

const client = new Client(
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
"url": "https://github.com/triuzzi/brave-devtools-mcp",
"source": "github"
},
"version": "0.4.0",
"version": "0.5.0",
"packages": [
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "brave-mcp",
"version": "0.4.0",
"version": "0.5.0",
"transport": {
"type": "stdio"
},
Expand Down
6 changes: 3 additions & 3 deletions src/bin/brave-devtools-mcp-cli-options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,8 @@ export const cliOptions = {
},
executablePath: {
type: 'string',
description: 'Path to custom Brave executable. Can also be set via BRAVE_PATH environment variable.',
description:
'Path to custom Brave executable. Can also be set via BRAVE_PATH environment variable.',
conflicts: ['browserUrl', 'wsEndpoint'],
alias: 'e',
},
Expand Down Expand Up @@ -252,8 +253,7 @@ export const cliOptions = {
usageStatistics: {
type: 'boolean',
default: false,
describe:
'Usage statistics collection (disabled by default in this fork).',
describe: 'Usage statistics collection (disabled by default in this fork).',
},
clearcutEndpoint: {
type: 'string',
Expand Down
4 changes: 1 addition & 3 deletions src/bin/check-latest-version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ const cachePath = process.argv[2];

if (cachePath) {
try {
const response = await fetch(
'https://registry.npmjs.org/brave-mcp/latest',
);
const response = await fetch('https://registry.npmjs.org/brave-mcp/latest');
const data = response.ok ? await response.json() : null;

if (
Expand Down
Loading
Loading