Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
a728c04
format
AlinaVarkki Sep 30, 2025
ee14198
format
AlinaVarkki Sep 30, 2025
56ab321
option handle seperately
AlinaVarkki Oct 1, 2025
b1506ed
add test
AlinaVarkki Oct 1, 2025
047c403
make value string
AlinaVarkki Oct 1, 2025
c680b3c
remove value
AlinaVarkki Oct 1, 2025
dcced0f
use option text as value
AlinaVarkki Oct 1, 2025
e873cd9
check if element is selector through ax node and extract method
AlinaVarkki Oct 2, 2025
8775b54
docs: fix macOS typo (#263)
retX0 Oct 7, 2025
b15c44b
fix: guard performance_stop_trace when tracing inactive (#295)
leslieo2 Oct 7, 2025
75f63a2
fix(cli): tolerate empty browser URLs (#298)
OrKoN Oct 7, 2025
5bc6379
fix: change default screen size in headless (#299)
OrKoN Oct 7, 2025
f9290a5
chore(main): release chrome-devtools-mcp 0.6.1 (#297)
browser-automation-bot Oct 8, 2025
c5e399e
docs: fix typo in save configuration shortcut (#307)
harshithluc073 Oct 8, 2025
5fc53d7
feat: add request and response body (#267)
nroscino Oct 8, 2025
af8152f
ci: add rerun for publish (#309)
Lightning00Blade Oct 8, 2025
05bd82c
chore: provide a structured bug template (#301)
Lightning00Blade Oct 8, 2025
85829d9
chore: fix manual workflow (#310)
Lightning00Blade Oct 8, 2025
bb9e22c
chore: fix manual workflow (#312)
Lightning00Blade Oct 8, 2025
d3ae91f
fix: publishing to MCP registry (#313)
Lightning00Blade Oct 8, 2025
799c780
fix: use default ProtocolTimeout (#315)
Lightning00Blade Oct 8, 2025
3890723
chore: switch to issue type in bug template (#325)
Lightning00Blade Oct 9, 2025
c955124
docs: fix arg name typo (#327)
OrKoN Oct 10, 2025
0129f7b
feat: Add offline network emulation support to emulate_network comman…
iamitesh Oct 10, 2025
ffde28b
chore(deps): bump puppeteer (#331)
OrKoN Oct 10, 2025
adebb8f
docs: Add note on node version when building (#333)
zyzyzyryxy Oct 10, 2025
8b14d56
fix: ordering of information in performance trace summary (#334)
jackfranklin Oct 10, 2025
847c8ec
chore(main): release chrome-devtools-mcp 0.7.0 (#308)
browser-automation-bot Oct 10, 2025
28f2e79
chore(deps): bump pptr (#336)
OrKoN Oct 10, 2025
1a64686
fix: document that console and requests are since the last nav (#335)
OrKoN Oct 10, 2025
5062e9d
docs: Add step-by-step guide for connecting to running Chrome instanc…
natorion Oct 10, 2025
a0d9609
chore: experimental devtools-on-devtools support (#51)
OrKoN Oct 10, 2025
ec3848d
chore(main): release chrome-devtools-mcp 0.7.1 (#337)
browser-automation-bot Oct 10, 2025
1a5aa18
feat: support passing args to Chrome (#338)
OrKoN Oct 10, 2025
0009725
chore(main): release chrome-devtools-mcp 0.8.0 (#339)
browser-automation-bot Oct 10, 2025
eac4d7a
docs: update browser URL from localhost to 127.0.0.1 (#342)
OrKoN Oct 11, 2025
6a0d013
refactor: use release-please to bump version in files (#349)
Lightning00Blade Oct 12, 2025
854f71a
chore(deps): bump the dependencies group across 1 directory with 2 up…
dependabot[bot] Oct 12, 2025
7c0e47f
ci: extract devtools frontend to a separate group (#353)
OrKoN Oct 12, 2025
cce927f
refactor: sort tools alphabetically (#346)
OrKoN Oct 12, 2025
9624a68
chore(deps-dev): bump the dev-dependencies group across 1 directory w…
dependabot[bot] Oct 12, 2025
d97c646
docs: add Amp configuration to MCP client setup docs (#343)
jupblb Oct 12, 2025
0e5f914
docs: add instructions for Kiro (#347)
siegerts Oct 12, 2025
8034a29
review changes
AlinaVarkki Oct 13, 2025
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
72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/01-bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Bug report
description: File a bug report for chrome-devtools-mcp
title: '<short description of the bug>'
type: 'Bug'
body:
- id: description
type: textarea
attributes:
label: Description of the bug
description: >
A clear and concise description of what the bug is.
placeholder:
validations:
required: true

- id: reproduce
type: textarea
attributes:
label: Reproduction
description: >
Steps to reproduce the behavior:
placeholder: |
1. Use tool '...'
2. Then use tool '...'

- id: expectation
type: textarea
attributes:
label: Expectation
description: A clear and concise description of what you expected to happen.

- id: mcp-configuration
type: textarea
attributes:
label: MCP configuration

- id: node-version
type: input
attributes:
label: Node version
description: >
Please verify you have the minimal supported version listed in the README.md

- id: chrome-version
type: input
attributes:
label: Chrome version

- id: coding-agent-version
type: input
attributes:
label: Coding agent version

- id: model-version
type: input
attributes:
label: Model version

- id: chat-log
type: input
attributes:
label: Chat log

- id: operating-system
type: dropdown
attributes:
label: Operating system
description: What supported operating system are you running?
options:
- Windows
- macOS
- Linux
31 changes: 0 additions & 31 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ updates:
dependency-type: production
exclude-patterns:
- 'puppeteer*'
- 'chrome-devtools-frontend'
patterns:
- '*'
dev-dependencies:
Expand All @@ -23,6 +24,9 @@ updates:
puppeteer:
patterns:
- 'puppeteer*'
chrome-devtools-frontend:
patterns:
- 'chrome-devtools-frontend'
- package-ecosystem: github-actions
directory: /
schedule:
Expand Down
19 changes: 15 additions & 4 deletions .github/workflows/publish-to-npm-on-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,16 @@ on:
push:
tags:
- 'chrome-devtools-mcp-v*'
workflow_dispatch:
inputs:
npm-publish:
description: 'Try to publish to NPM'
default: false
type: boolean
mcp-publish:
description: 'Try to publish to MCP registry'
default: true
type: boolean

permissions:
id-token: write # Required for OIDC
Expand All @@ -12,6 +22,7 @@ permissions:
jobs:
publish-to-npm:
runs-on: ubuntu-latest
if: ${{ (github.event_name != 'workflow_dispatch') || (inputs.npm-publish && always()) }}
steps:
- name: Check out repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
Expand Down Expand Up @@ -42,6 +53,7 @@ jobs:
publish-to-mcp-registry:
runs-on: ubuntu-latest
needs: publish-to-npm
if: ${{ (github.event_name != 'workflow_dispatch' && needs.publish-to-npm.result == 'success') || (inputs.mcp-publish && always()) }}
steps:
- name: Check out repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
Expand All @@ -65,12 +77,11 @@ jobs:
- name: Build
run: npm run build

- name: Bump
run: npm run sync-server-json-version

- name: Install MCP Publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
export VERSION="1.2.1"
export OS=$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v${VERSION}/mcp-publisher_${VERSION}_${OS}.tar.gz" | tar xz mcp-publisher

- name: Login to MCP Registry
run: ./mcp-publisher login github-oidc
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.6.0"
".": "0.8.0"
}
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# Changelog

## [0.8.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.7.1...chrome-devtools-mcp-v0.8.0) (2025-10-10)


### Features

* support passing args to Chrome ([#338](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/338)) ([e1b5363](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/e1b536365363e1e1a3aa7661dd84290c794510ad))

## [0.7.1](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.7.0...chrome-devtools-mcp-v0.7.1) (2025-10-10)


### Bug Fixes

* document that console and requests are since the last nav ([#335](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/335)) ([9ad7cbb](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/9ad7cbb2de3d285e46e5f3e7c098b0a7535c7e7a))

## [0.7.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.6.1...chrome-devtools-mcp-v0.7.0) (2025-10-10)


### Features

* Add offline network emulation support to emulate_network command ([#326](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/326)) ([139ce60](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/139ce607814bf25ba541a7264ce96a04b2fac871))
* add request and response body ([#267](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/267)) ([dd3c143](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/dd3c14336ee44d057d06231a5bfd5c5bcf661029))


### Bug Fixes

* ordering of information in performance trace summary ([#334](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/334)) ([2d4484a](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/2d4484a123968754b4840d112b9c1ca59fb29997))
* publishing to MCP registry ([#313](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/313)) ([1faec78](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/1faec78f84569a03f63585fb84df35992bcfe81a))
* use default ProtocolTimeout ([#315](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/315)) ([a525f19](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/a525f199458afb266db4540bf0fa8007323f3301))

## [0.6.1](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.6.0...chrome-devtools-mcp-v0.6.1) (2025-10-07)


### Bug Fixes

* change default screen size in headless ([#299](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/299)) ([357db65](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/357db65d18f87b1299a0f6212b7ec982ef187171))
* **cli:** tolerate empty browser URLs ([#298](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/298)) ([098a904](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/098a904b363f3ad81595ed58c25d34dd7d82bcd8))
* guard performance_stop_trace when tracing inactive ([#295](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/295)) ([8200194](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/8200194c8037cc30b8ab815e5ee0d0b2b000bea6))

## [0.6.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.5.1...chrome-devtools-mcp-v0.6.0) (2025-10-01)


Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ for PR and commit titles.

## Installation

Check that you are using node version specified in .nvmrc, then run following commands:

```sh
git clone https://github.com/ChromeDevTools/chrome-devtools-mcp.git
cd chrome-devtools-mcp
Expand Down
94 changes: 90 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@ Add the following config to your MCP client:

### MCP Client configuration

<details>
<summary>Amp</summary>
Follow https://ampcode.com/manual#mcp and use the config provided above. You can also install the Chrome DevTools MCP server using the CLI:

```bash
amp mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
```

</details>

<details>
<summary>Claude Code</summary>
Use the Claude Code CLI to add the Chrome DevTools MCP server (<a href="https://docs.anthropic.com/en/docs/claude-code/mcp">guide</a>):
Expand Down Expand Up @@ -111,7 +121,7 @@ Start the dialog to add a new MCP server by running:
/mcp add
```

Configure the following fields and press `CTR-S` to save the configuration:
Configure the following fields and press `CTRL+S` to save the configuration:

- **Server name:** `chrome-devtools`
- **Server Type:** `[1] Local`
Expand Down Expand Up @@ -177,6 +187,15 @@ The same way chrome-devtools-mcp can be configured for JetBrains Junie in `Setti

</details>

<details>
<summary>Kiro</summary>

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.

</details>

<details>
<summary>Visual Studio</summary>

Expand Down Expand Up @@ -280,7 +299,7 @@ The Chrome DevTools MCP server supports the following configuration option:
- **Type:** string

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

- **`--proxyServer`**
Expand All @@ -291,6 +310,10 @@ The Chrome DevTools MCP server supports the following configuration option:
If enabled, ignores errors relative to self-signed and expired certificates. Use with caution.
- **Type:** boolean

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

<!-- END AUTO GENERATED OPTIONS -->

Pass them via the `args` property in the JSON configuration. For example:
Expand Down Expand Up @@ -320,14 +343,77 @@ You can also run `npx chrome-devtools-mcp@latest --help` to see all available co
`chrome-devtools-mcp` starts a Chrome's stable channel instance using the following user
data directory:

- Linux / MacOS: `$HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL`
- Linux / macOS: `$HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL`
- Windows: `%HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL`

The user data directory is not cleared between runs and shared across
all instances of `chrome-devtools-mcp`. Set the `isolated` option to `true`
to use a temporary user data dir instead which will be cleared automatically after
the browser is closed.

### Connecting to a running Chrome instance

You can connect to a running Chrome instance by using the `--browser-url` option. This is useful if you want to use your existing Chrome profile or if you are running the MCP server in a sandboxed environment that does not allow starting a new Chrome instance.

Here is a step-by-step guide on how to connect to a running Chrome Stable instance:

**Step 1: Configure the MCP client**

Add the `--browser-url` option to your MCP client configuration. The value of this option should be the URL of the running Chrome instance. `http://127.0.0.1:9222` is a common default.

```json
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--browser-url=http://127.0.0.1:9222"
]
}
}
}
```

**Step 2: Start the Chrome browser**

> [!WARNING]
> Enabling the remote debugging port opens up a debugging port on the running browser instance. Any application on your machine can connect to this port and control the browser. Make sure that you are not browsing any sensitive websites while the debugging port is open.

Start the Chrome browser with the remote debugging port enabled. Make sure to close any running Chrome instances before starting a new one with the debugging port enabled. The port number you choose must be the same as the one you specified in the `--browser-url` option in your MCP client configuration.

For security reasons, [Chrome requires you to use a non-default user data directory](https://developer.chrome.com/blog/remote-debugging-port) when enabling the remote debugging port. You can specify a custom directory using the `--user-data-dir` flag. This ensures that your regular browsing profile and data are not exposed to the debugging session.

**macOS**

```bash
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
```

**Linux**

```bash
/usr/bin/google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
```

**Windows**

```bash
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-profile-stable"
```

**Step 3: Test your setup**

After configuring the MCP client and starting the Chrome browser, you can test your setup by running a simple prompt in your MCP client:

```
Check the performance of https://developers.chrome.com
```

Your MCP client should connect to the running Chrome instance and receive a performance report.

For more details on remote debugging, see the [Chrome DevTools documentation](https://developer.chrome.com/docs/devtools/remote-debugging/).

## Known limitations

### Operating system sandboxes
Expand All @@ -336,5 +422,5 @@ Some MCP clients allow sandboxing the MCP server using macOS Seatbelt or Linux
containers. If sandboxes are enabled, `chrome-devtools-mcp` is not able to start
Chrome that requires permissions to create its own sandboxes. As a workaround,
either disable sandboxing for `chrome-devtools-mcp` in your MCP client or use
`--connect-url` to connect to a Chrome instance that you start manually outside
`--browser-url` to connect to a Chrome instance that you start manually outside
of the MCP client sandbox.
Loading