Skip to content

Commit 55105dd

Browse files
authored
Merge branch 'main' into breakpoints
2 parents c839ff1 + ae311fc commit 55105dd

42 files changed

Lines changed: 1522 additions & 480 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.18.1"
2+
".": "0.19.0"
33
}

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,45 @@
11
# Changelog
22

3+
## [0.19.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.18.1...chrome-devtools-mcp-v0.19.0) (2026-03-05)
4+
5+
6+
### 🎉 Features
7+
8+
* add pageId routing for parallel multi-agent workflows ([#1022](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1022)) ([caf601a](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/caf601a32832bb87cfac801a6bbeacb87508412f)), closes [#1019](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1019)
9+
* Add skill which helps with onboarding of the mcp server ([#1083](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1083)) ([7273f16](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/7273f16ec08f6d5b46a2693b0ad4d559086ded89))
10+
* integrate Lighthouse audits ([#831](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/831)) ([dfdac26](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/dfdac2648e560d756a8711ad3bb1fa470be8e7c9))
11+
12+
13+
### 🛠️ Fixes
14+
15+
* improve error messages around --auto-connect ([#1075](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1075)) ([bcb852d](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/bcb852dd2e440b0005f4a9ad270a1a7998767907))
16+
* improve tool descriptions ([#965](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/965)) ([bdbbc84](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/bdbbc84c125bdd48f4be48aa476bec0323de611c))
17+
* repair broken markdown and extract snippets in a11y-debugging skill ([#1096](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1096)) ([adac7c5](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/adac7c537ee304f324c5e7284fb363396d1773f5))
18+
* simplify emulation and script tools ([#1073](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1073)) ([e51ba47](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/e51ba4720338951e621585b77efc6a0e07678d99))
19+
* simplify focus state management ([#1063](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1063)) ([f763da2](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/f763da24a10e27605c0a5069853ce7c92974eec2))
20+
* tweak lighthouse description ([#1112](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1112)) ([5538180](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/55381804ae7ffa8a1e5933b621a9b8390b3000ff))
21+
22+
23+
### 📄 Documentation
24+
25+
* Adapt a11y skill to utilize Lighthouse ([#1054](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1054)) ([21634e6](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/21634e660c346e469ae62116b1824538f51567dd))
26+
* add feature release checklist to CONTRIBUTING.md ([#1118](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1118)) ([0378457](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/03784577ffb6e238bcb2d637bff9ad759723ea7b))
27+
* fix typo in README regarding slim mode ([#1093](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1093)) ([92f2c7b](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/92f2c7b48b56a6b1d6ac7c9e2f2e92beb26bcf62))
28+
29+
30+
### 🏗️ Refactor
31+
32+
* clean up more of the context getters ([#1062](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1062)) ([9628dab](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/9628dabcb4d39f0b94d152a0fc419e049246a29d))
33+
* consistently use McpPage in tools ([#1057](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1057)) ([302e5a0](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/302e5a04191ba0558e3c79f1486d01d5eb0f6896))
34+
* improve type safety for page scoped tools ([#1051](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1051)) ([5f694c6](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/5f694c60ffd21f8b022554c92b2ad4cbdb457375))
35+
* make cdp resolvers use McpPage ([#1060](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1060)) ([d6c06c5](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/d6c06c56a7b8e4968318adc9fc7c820ace9f5bd9))
36+
* move dialog handling to McpPage ([#1059](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1059)) ([40c241b](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/40c241bbfc80d6282953ab325b30a597d3d85ade))
37+
* move server to a separate file ([#1043](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1043)) ([a8bf3e5](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/a8bf3e585682c3126dfd378e9f98b5dc7ab6045d))
38+
* remove page passing via context ([#1061](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1061)) ([4cb5a17](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/4cb5a17b57f57d8a367cd423c960ba122b9952e3))
39+
* set defaults to performance trace tool ([#1090](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1090)) ([dfa9b79](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/dfa9b79a4ecc9e67f5b043f2dd97f6889d1fee0b))
40+
* simplify the response texts ([#1095](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1095)) ([cb0079e](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/cb0079efbbd41874f6913772fe3f2a037e9f5f8f))
41+
* type-cast as internal CdpPage interface ([#1064](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1064)) ([2d5e4fa](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/2d5e4fa3579650a384ff21c88c2e6b9cda031e1a))
42+
343
## [0.18.1](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.18.0...chrome-devtools-mcp-v0.18.1) (2026-02-25)
444

545

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ To use the Chrome DevTools MCP server follow the instructions from <a href="http
122122

123123
This will make the Chrome DevTools MCP server automatically connect to the browser that Antigravity is using. If you are not using port 9222, make sure to adjust accordingly.
124124

125-
Chrome DevTools MCP will not start the browser instance automatically using this approach as as the Chrome DevTools MCP server runs in 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.
125+
Chrome DevTools MCP will not start the browser instance automatically using this approach because the Chrome 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.
126126

127127
</details>
128128

docs/cli.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ chrome-devtools lighthouse_audit --mode snapshot
7575
By default, the CLI outputs a human-readable summary of the tool's result. For programmatic use, you can request raw JSON:
7676

7777
```sh
78-
chrome-devtools list_pages --format=json
78+
chrome-devtools list_pages --output-format=json
7979
```
8080

8181
## Troubleshooting
@@ -91,3 +91,11 @@ For more verbose logs, set the `DEBUG` environment variable:
9191
```sh
9292
DEBUG=* chrome-devtools list_pages
9393
```
94+
95+
## CLI generation
96+
97+
Implemented in `scripts/generate-cli.ts`. Some commands are excluded from CLI
98+
generation such as `wait_for` and `fill_form`.
99+
100+
`chrome-devtools-mcp` args are also filtered in `src/bin/chrome-devtools.ts`
101+
because not all args make sense in a CLI interface.

docs/troubleshooting.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,32 @@ Possible workarounds include:
100100

101101
- **Use Powershell or Git Bash** instead of WSL.
102102

103+
### Windows 10: Error during discovery for MCP server 'chrome-devtools': MCP error -32000: Connection closed
104+
105+
- **Solution 1** Call using `cmd` (For more info https://github.com/modelcontextprotocol/servers/issues/1082#issuecomment-2791786310)
106+
107+
```json
108+
"mcpServers": {
109+
"chrome-devtools": {
110+
"command": "cmd",
111+
"args": ["/c", "npx", "-y", "chrome-devtools-mcp@latest"]
112+
}
113+
}
114+
```
115+
116+
> **The Key Change:** On Windows, running a Node.js package via `npx` often requires the `cmd /c` prefix to be executed correctly from within another process like VSCode's extension host. Therefore, `"command": "npx"` was replaced with `"command": "cmd"`, and the actual `npx` command was moved into the `"args"` array, preceded by `"/c"`. This fix allows Windows to interpret the command correctly and launch the server.
117+
118+
- **Solution 2** Instead of another layer of shell you can write the absolute path to `npx`:
119+
> Note: The path below is an example. You must adjust it to match the actual location of `npx` on your machine. Depending on your setup, the file extension might be `.cmd`, `.bat`, or `.exe` rather than `.ps1`. Also, ensure you use double backslashes (`\\`) as path delimiters, as required by the JSON format.
120+
```json
121+
"mcpServers": {
122+
"chrome-devtools": {
123+
"command": "C:\\nvm4w\\nodejs\\npx.ps1",
124+
"args": ["-y", "chrome-devtools-mcp@latest"]
125+
}
126+
}
127+
```
128+
103129
### Connection timeouts with `--autoConnect`
104130

105131
If you are using the `--autoConnect` flag and tools like `list_pages`, `new_page`, or `navigate_page` fail with a timeout (e.g., `ProtocolError: Network.enable timed out` or `The socket connection was closed unexpectedly`), this usually means the MCP server cannot handshake with the running Chrome instance correctly. Ensure:

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"name": "chrome-devtools-mcp",
3-
"version": "0.18.1",
3+
"version": "0.19.0",
44
"description": "MCP server for Chrome DevTools",
55
"type": "module",
6-
"bin": "./build/src/index.js",
7-
"main": "./build/src/server.js",
6+
"bin": "./build/src/bin/chrome-devtools-mcp.js",
7+
"main": "./build/src/index.js",
88
"scripts": {
99
"cli:generate": "node --experimental-strip-types scripts/generate-cli.ts",
1010
"clean": "node -e \"require('fs').rmSync('build', {recursive: true, force: true})\"",

scripts/generate-cli.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import path from 'node:path';
1010
import {Client} from '@modelcontextprotocol/sdk/client/index.js';
1111
import {StdioClientTransport} from '@modelcontextprotocol/sdk/client/stdio.js';
1212

13-
import {parseArguments} from '../build/src/cli.js';
13+
import {parseArguments} from '../build/src/bin/chrome-devtools-mcp-cli-options.js';
1414
import {labels} from '../build/src/tools/categories.js';
1515
import {createTools} from '../build/src/tools/tools.js';
1616

@@ -22,7 +22,10 @@ const OUTPUT_PATH = path.join(
2222
async function fetchTools() {
2323
console.log('Connecting to chrome-devtools-mcp to fetch tools...');
2424
// Use the local build of the server
25-
const serverPath = path.join(import.meta.dirname, '../build/src/index.js');
25+
const serverPath = path.join(
26+
import.meta.dirname,
27+
'../build/src/bin/chrome-devtools-mcp.js',
28+
);
2629

2730
const transport = new StdioClientTransport({
2831
command: 'node',
@@ -99,8 +102,23 @@ function schemaToCLIOptions(schema: JsonSchema): CliOption[] {
99102

100103
async function generateCli() {
101104
const tools = await fetchTools();
105+
102106
// Sort tools by name
103-
const sortedTools = tools.sort((a, b) => a.name.localeCompare(b.name));
107+
const sortedTools = tools
108+
.sort((a, b) => a.name.localeCompare(b.name))
109+
.filter(tool => {
110+
// Skipping fill_form because it is not relevant in shell scripts
111+
// and CLI does not handle array/JSON args well.
112+
if (tool.name === 'fill_form') {
113+
return false;
114+
}
115+
// Skipping wait_for because CLI does not handle array/JSON args well
116+
// and shell scripts have many mechanisms for waiting.
117+
if (tool.name === 'wait_for') {
118+
return false;
119+
}
120+
return true;
121+
});
104122

105123
const staticTools = createTools(parseArguments());
106124
const toolNameToCategory = new Map<string, string>();

scripts/generate-docs.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import {StdioClientTransport} from '@modelcontextprotocol/sdk/client/stdio.js';
1111
import type {Tool} from '@modelcontextprotocol/sdk/types.js';
1212
import {get_encoding} from 'tiktoken';
1313

14-
import {cliOptions} from '../build/src/cli.js';
15-
import type {ParsedArguments} from '../build/src/cli.js';
14+
import {cliOptions} from '../build/src/bin/chrome-devtools-mcp-cli-options.js';
15+
import type {ParsedArguments} from '../build/src/bin/chrome-devtools-mcp-cli-options.js';
1616
import {ToolCategory, labels} from '../build/src/tools/categories.js';
1717
import {createTools} from '../build/src/tools/tools.js';
1818

@@ -24,7 +24,7 @@ async function measureServer(args: string[]) {
2424
// 1. Connect to your actual MCP server
2525
const transport = new StdioClientTransport({
2626
command: 'node',
27-
args: ['./build/src/index.js', ...args], // Point to your built MCP server
27+
args: ['./build/src/bin/chrome-devtools-mcp.js', ...args], // Point to your built MCP server
2828
});
2929

3030
const client = new Client(

server.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
"url": "https://github.com/ChromeDevTools/chrome-devtools-mcp",
88
"source": "github"
99
},
10-
"version": "0.18.1",
10+
"version": "0.19.0",
1111
"packages": [
1212
{
1313
"registryType": "npm",
1414
"registryBaseUrl": "https://registry.npmjs.org",
1515
"identifier": "chrome-devtools-mcp",
16-
"version": "0.18.1",
16+
"version": "0.19.0",
1717
"transport": {
1818
"type": "stdio"
1919
},

0 commit comments

Comments
 (0)