126 Commits
Author SHA1 Message Date
Nikolay Vitkov edd8b2c2b9 chore: use sparse checkout for devtools-frontend (#2835)
Please test locally before mergining. Size on my disk now is ~135MB
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2829
2026-09-25 11:16:27 +00:00
Nikolay Vitkov 08b5e59e6f test: refactor temp files and dir (#2818) 2026-09-23 12:50:34 +00:00
Samiya Caur a0c44a429e test: add eval scenarios for get_css_styles (#2802)
Adds 5 evals for `get_css_styles`:

- `css_important_vs_specificity_test.ts`: an `!important` rule wins even
though another rule has higher specificity
- `css_inline_style_override_test.ts`: an inline style attribute is
overriding the stylesheet
- `css_custom_property_resolution_test.ts`: a CSS variable was redefined
on a parent element, overriding the value set at `:root`
- `css_descendant_specificity_test.ts`: the rule with highest
specificity wins
- `css_cascade_layer_override_test.ts`: an unlayered rule beats the
`@layer` rule
2026-09-22 15:21:47 +00:00
Nikolay Vitkov 5068584894 refactor: simplify our gen scritps (#2793) 2026-09-21 14:39:51 +00:00
Nikolay Vitkov da3c40609a refactor: migrate the MCP SDK to v2 (#2408)
This was generated based on the documents provided in the SDK v2
migration for both the SDK and the MCP version.
It is to serve as a template for pre-factoring and other changes.
2026-09-21 12:49:51 +00:00
Nikolay Vitkov 61780c7498 refactor: prepare for SDK v2 (#2771)
The code changes here are a subset that works for both the current and
the update one. Splitting to reduce the review process.
2026-09-21 08:57:52 +00:00
Nikolay Vitkov 7fee48bcfd chore(eslint): add require-parsed-arguments rule (#2770)
This is required for the SDK v2 migration.
2026-09-21 08:48:25 +00:00
Nikolay Vitkov 882f93e9a8 refactor: unify call type and ensure typesafety (#2659)
Prefactoring for the SDK v2.
2026-09-18 12:09:10 +00:00
Nikolay Vitkov 342d2430ce docs: fix defaults for non-boolean values (#2744)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2722
2026-09-15 08:06:12 +00:00
Nikolay Vitkov 4fbfbc4fd9 fix: don't log Puppeteer logs to file unless requested (#2743)
Currently we unconditionally log all MCP and Puppeteer logs to the
files.
This adds regression test using mocks to simplify testings. 

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2734
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2706
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2731
2026-09-14 11:45:24 +00:00
Samiya CaurandSamiya Caur 4454ae0a8a feat: add get_css_style tool (#2612)
Add `get_css_styles` tool which exposes matched styles and the CSS
cascade to empower accurate CSS debugging workflows.

It integrates `CssFormatter` into `McpPage` and `McpResponse`, adding
container query resolution and rule pagination support.

Co-authored-by: Samiya Caur <samiyac@chromium.org>
2026-09-11 07:51:16 +00:00
Jack Franklin d05cbc0511 fix(performance): prevent memory leak by scoping trace engine model per parse (#2720)
## Rationale

DevTools' `TraceEngine.TraceModel.Model` permanently retains parsed
traces in an internal recordings array (`#traces`). Calling
`engine.resetProcessor()` between runs only resets the underlying
processor and does not clear `#traces`.

Because `engine` was previously instantiated as a module-scoped
singleton, every performance trace recorded or parsed in a session
remained permanently held in heap memory for the lifetime of the
process.

## Changes

- In `src/processors/PerformanceTrace.ts`, instantiate
`DevTools.TraceEngine.TraceModel.Model.createWithAllHandlers()` per
invocation of `parseRawTraceBuffer()`.
- Remove the module-scoped `engine` singleton and the obsolete
`engine.resetProcessor()` call.
- Add a unit test in `tests/trace-processing/parse.test.ts` verifying
that consecutive trace parses construct isolated `Model` instances and
keep internal trace retention bounded at 1.
- Add a profiling regression scenario in
`scripts/profile/scenarios/performance_trace.ts` to guard against memory
retention across consecutive traces during `npm run test:memory`.
2026-09-10 15:37:28 +00:00
Nikolay Vitkov 401a1192b6 refactor: extract category config into a seprate file (#2652) 2026-09-03 15:45:45 +00:00
d00e6f8239 feat: support configurable filesystem roots (#2605)
Fixes #2598

This lets people set filesystem roots through the MCP server or the
Chrome DevTools CLI. Multiple roots work together with any roots sent by
the MCP client, and temp directory access stays the same.

I added tests for the flags and root handling.

---------

Co-authored-by: Joseph B <289838966+joebasrawi@users.noreply.github.com>
Co-authored-by: Joseph B <joebasrawi@users.noreply.github.com>
2026-09-03 09:42:37 +00:00
Nikolay Vitkov 5463101120 docs: split the docs in separate files (#2600) 2026-09-02 07:14:54 +00:00
Michael Hablich 6a67552771 feat: Add cookie-debugging skill and improve network/pages tool descriptions (#2596)
#408
2026-09-01 12:55:06 +00:00
Alex Rudenko a78566ee7c feat: add an option to turn off js execution tools (#2627)
While we keep the evaluate script available by default since it is
useful for many users, we give an option to disable it.
2026-08-31 09:10:30 +00:00
50a16fae69 feat: make pageId required for page-scoped tools by default (#1777)
Removes `--experimental-page-id-routing` making it the default behavior.
To go back to the previous behavior, pass `--pageIdRouting=false` when
starting the server.

---------

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
Co-authored-by: Samiya Caur <samiyac@google.com>
2026-08-24 16:54:06 +00:00
Nikolay Vitkov 5d0283969c refactor: move config files out of bin (#2578) 2026-08-14 14:17:28 +00:00
Alex Rudenko c1ea5bf88f build: move devtools into third_party (#2558) 2026-08-12 11:19:50 +00:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Alex Rudenko
9b9639edaf chore(deps): bump devtools-frontend from a4b4a54 to b89284c (#2550)
Bumps
[devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend)
from `a4b4a54` to `b89284c`.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/b89284cbca3d602273b868f7183ddfc0e1e7c983"><code>b89284c</code></a>
AI Assistance: Add sources skill to v2 agent</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/12c836b0ae0204417547d834d48f9d3fca9331ec"><code>12c836b</code></a>
Update ScreencastView to track FrameNavigated events</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/b12485948f157fd5de86865317e9b66aeeeb1552"><code>b124859</code></a>
Fix layering: Move AiCodeGen out of panels/common</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/922c4de3e13adcafd8be197710b2b384298a75ab"><code>922c4de</code></a>
Fix layering: Move TypeToAllowDialog out of panels/common</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/66f02c4703f20388d85e0e0e7f364a2d2e631c1b"><code>66f02c4</code></a>
Add getRetainedByContextSummary() to HeapSnapshot</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/b20d97a596788469f750cae8adc0c0c1026d0608"><code>b20d97a</code></a>
Implement navigatedWithinDocument events</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/42d89998f6f034be0404f52fffc9606ae78209b0"><code>42d8999</code></a>
Remove resizer icon</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/c717554d7ed0ae40d0ee7ff69ab86ba1350cdecf"><code>c717554</code></a>
AIv2: support empty context in ListPageOrigins V2 tool</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/28731a26267ce6e3527ae015fe42ec6fe39a7c60"><code>28731a2</code></a>
AI: Implement getEventByKey and selectEventByKey tools for
performance</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a5e4620e81e8c9255bb6f730d8815c43794f3181"><code>a5e4620</code></a>
Add a setting to skip all pauses</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/a4b4a54b836da9774714e7ce7a8f748a537978e6...b89284cbca3d602273b868f7183ddfc0e1e7c983">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2026-08-11 16:18:24 +00:00
Alex Rudenko d016152503 test: detect memory leaks (#2551)
Adds an optional job to run leak detection.
2026-08-11 11:57:21 +00:00
Nikolay Vitkov 6e949e9359 chore: add command and remove recursive (#2532)
`--recursive` forces the pull of other submodules give we don't build
DevTools we don't need them

Ran `npm audit fix`
2026-08-10 12:12:50 +00:00
yulunz 71d897b27e chore: add a new profiler scenario for get_console_messages. (#2491)
To see the heap size increase the scenario has to be run with
warmup-iterations=0. I have made the number of iterations different by
scenario, unless they are overriden through the command line.

Once we have the fixes all merged, I will add an assert somewhere and
see if this can be added into the test suite.
2026-08-07 10:24:40 +00:00
yulunz 884c8dee7c chore: refactor the profiler into scenarios. (#2488)
This is mostly a refactor except:
- the url param is removed. The source map server is always turned on.
We can always manually connect the mcp server to an external site and
check for memory usage / leaks. Testing should be deterministic and not
rely on outside resources.
- the reports are now stored by scenario. Console still prints out
report for each scenario, alongside a final report giving a one line
summary per scenario.

Still a bit rough, but useful.
2026-08-07 09:41:23 +00:00
Nikolay Vitkov 72d825272f chore: use ESM instead of CJS (#2487)
Also remove the `.mjs` as we are in a module repo.
2026-08-07 07:31:54 +00:00
Alex Rudenko 011ac74b67 build: consume devtools-frontend as a submodule (#2481)
Adding devtools-frontend from github as a submodule with depth of 1 to
speed up checkouts. prepare.ts script should automatically pull the
right version.
2026-08-06 09:48:28 +00:00
Alex Rudenko d302a47716 chore: add a script to capture memory snapshots (#2464)
I did not catch a leak using the test sites.
 
Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2456
https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2431
2026-08-05 11:16:25 +00:00
mehmet turac d5d91ee787 chore(deps-dev): update eslint to v10 (#2393)
Fixes #955

## Summary

- update ESLint and `@eslint/js` to v10
- replace the import lint plugin with an ESLint 10-compatible
implementation while preserving the existing import and Node protocol
checks
- update the local license rule for ESLint 10's rule-context properties
- align the supported Node.js versions with ESLint 10's engine
requirements
- preserve the current recommended-rule baseline during the major
upgrade

## Testing

- `npm ci`
- `npm run check-format`
- `npm run typecheck`
- `npm run test`
2026-07-29 11:30:10 +00:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Alex RudenkoMathias Bynens
e2c19fed80 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1661063 to 1.0.1664619 in the bundled-devtools group across 1 directory (#2386)
Bumps the bundled-devtools group with 1 update in the / directory:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1661063 to 1.0.1662965
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/69d83ee009fdf624e84ae922a579aee77cf0f071"><code>69d83ee</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/83caa60581c6fed8370cf8afaa6067447a357cc6"><code>83caa60</code></a>
Revert &quot;[ProdExcellence]: Fix XHRBreakpointsSidebarPane
test&quot;</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/3108a1d857828221f68e5c8c9a05e144064f7789"><code>3108a1d</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/3a75f2e1804b402a10950db28db033bfb1156adf"><code>3a75f2e</code></a>
[Ads Panel] Relocate 'Highlight ads' checkbox to the Ads panel</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/4c539fcb2244952aa86ef158022cbe0a720e6bcd"><code>4c539fc</code></a>
[global-state] Migrate ExtensionScope.test.ts to TestUniverse</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/65fd0498a382fe301ab3e1e197c75d0918d660dd"><code>65fd049</code></a>
[global-state] Pass TargetManager to ChangeManager constructor</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/04a5398f3be6378ba9af4adc0ddc721413040674"><code>04a5398</code></a>
[global-state] AiAgent2.ts - Pass TargetManager via constructor
dependency in...</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/052e32ed24542e1d05880da62acf3868635f4951"><code>052e32e</code></a>
Extend SourceView test before the UI eng vision migration</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/d915e63ca3fd4bea4049725c1916bc91682516e5"><code>d915e63</code></a>
Edit &amp; Resend (2/5): Console originator</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/07342db2e5fa2cd844fec8fa23e3616cadbdf75e"><code>07342db</code></a>
Adopt UI eng vision in the IndexedDBViews</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1661063...v1.0.1662965">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
Co-authored-by: Mathias Bynens <mathias@qiwi.be>
2026-07-24 07:27:11 +00:00
Alex Rudenko 38dd346805 docs: fix showing defaults in configuration (#2234)
closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2233
2026-06-19 09:48:30 +00:00
Alex Rudenko f8fb2a9236 test: drop node20 code in tests (#2146) 2026-05-27 11:12:22 +00:00
Alex Rudenko 329fbf1ac9 build: update expected npm publish output (#2140)
It appears the format has changed
https://github.com/ChromeDevTools/chrome-devtools-mcp/actions/runs/26453140812/job/77879380358?pr=2086
2026-05-26 15:13:45 +00:00
Samiya CaurandSamiya Caur 8e8e83e3f8 test: update all the eval scenarios to work with experimentalPageIdRouting flag (#2085)
Refs #2052 

This change updates all the eval scenarios so that they work with and
without experimentalPageIdRouting flag

Co-authored-by: Samiya Caur <samiyac@chromium.org>
2026-05-20 09:46:18 +00:00
Alex Rudenko 30dcd0ba96 docs: remove windows workaround and document Node LTS support (#2074)
Adds test coverage for 26, removes test coverage for 23 and 20.
2026-05-18 08:19:06 +00:00
dependabot[bot]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Alex Rudenko
20021469dc chore(deps-dev): bump puppeteer from 24.43.0 to 25.0.2 in the bundled group across 1 directory (#2045)
Bumps the bundled group with 1 update in the / directory:
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `puppeteer` from 24.43.0 to 25.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v25.0.2</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.0.1...puppeteer-core-v25.0.2">25.0.2</a>
(2026-05-15)</h2>
<h3>🛠️ Fixes</h3>
<ul>
<li>update docs text (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14992">#14992</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/36527b8b9dd856e11a372b46cba23409e5613573">36527b8</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.1 to 3.0.2</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v25.0.2</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.0.1...puppeteer-v25.0.2">25.0.2</a>
(2026-05-15)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.1 to 3.0.2</li>
<li>puppeteer-core bumped from 25.0.1 to 25.0.2</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer-core: v25.0.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.0.0...puppeteer-core-v25.0.1">25.0.1</a>
(2026-05-13)</h2>
<h3>🛠️ Fixes</h3>
<ul>
<li>enabled features should take precedence over disabled features (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14985">#14985</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/f6fd7c29f92e6183b2fd48f0571957306c58d440">f6fd7c2</a>)</li>
<li>roll to Chrome 148.0.7778.167 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14980">#14980</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/84c46fede6b02a1e9a00104b97b28c263f0c84df">84c46fe</a>)</li>
<li>roll to Firefox 150.0.3 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14983">#14983</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/872f77822d6b6b9b6510752d838107a967241bdb">872f778</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.0 to 3.0.1</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v25.0.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.0.0...puppeteer-v25.0.1">25.0.1</a>
(2026-05-13)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.0.1...puppeteer-v25.0.2">25.0.2</a>
(2026-05-15)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.1 to 3.0.2</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>update docs text (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14992">#14992</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/36527b8b9dd856e11a372b46cba23409e5613573">36527b8</a>)</li>
</ul>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.0.0...puppeteer-v25.0.1">25.0.1</a>
(2026-05-13)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.0 to 3.0.1</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>enabled features should take precedence over disabled features (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14985">#14985</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/f6fd7c29f92e6183b2fd48f0571957306c58d440">f6fd7c2</a>)</li>
<li>roll to Chrome 148.0.7778.167 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14980">#14980</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/84c46fede6b02a1e9a00104b97b28c263f0c84df">84c46fe</a>)</li>
<li>roll to Firefox 150.0.3 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14983">#14983</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/872f77822d6b6b9b6510752d838107a967241bdb">872f778</a>)</li>
</ul>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.43.1...puppeteer-v25.0.0">25.0.0</a>
(2026-05-12)</h2>
<h3>⚠ BREAKING CHANGES</h3>
<ul>
<li>remove deprecated Puppeteer.product (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14977">#14977</a>)</li>
<li>bump min NodeJS to 22 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14973">#14973</a>)</li>
<li>return a Promise for executablePath, defaultArgs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14965">#14965</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/3aadc38c533caa8df87f381868291ede870883e2"><code>3aadc38</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14993">#14993</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/36527b8b9dd856e11a372b46cba23409e5613573"><code>36527b8</code></a>
fix: update docs text (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14992">#14992</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/3ea7bd54b97965fb0e1b83a2c017720162785c92"><code>3ea7bd5</code></a>
fix: capitalize &quot;Chrome&quot; in troubleshooting.md (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14991">#14991</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/ae72fdbec9720c982fc2ed818036d7be9b2aa1dc"><code>ae72fdb</code></a>
chore: Tiny punctuation update in troubleshooting.md (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14990">#14990</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/1597fde55de1e7b3c31032aa43dce0607b4307d3"><code>1597fde</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14982">#14982</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/f6fd7c29f92e6183b2fd48f0571957306c58d440"><code>f6fd7c2</code></a>
fix: enabled features should take precedence over disabled features (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14985">#14985</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/bf05fb9bf5bac997e365eda2e31c6067e5ec1677"><code>bf05fb9</code></a>
fix: update browsers to trigger release (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14984">#14984</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/872f77822d6b6b9b6510752d838107a967241bdb"><code>872f778</code></a>
fix: roll to Firefox 150.0.3 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14983">#14983</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/84c46fede6b02a1e9a00104b97b28c263f0c84df"><code>84c46fe</code></a>
fix: roll to Chrome 148.0.7778.167 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14980">#14980</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/ee655d8292f37cc33f279746ef72613e5ccb5db8"><code>ee655d8</code></a>
chore(main): release ng-schematics 0.8.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14978">#14978</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.43.0...puppeteer-v25.0.2">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2026-05-17 06:34:22 +00:00
yulunz 3efd8c0194 chore: add sanity check to error enums (#2059)
This also caught and fixed an issue where the enum index is not
sequential :/

No error enums have been defined on the service side yet so it's
possible to modify the enum index directly.
2026-05-14 22:39:15 +00:00
yulunz 71ccdb0dbf chore: better organize telemetry utilities (#2057)
There is no behavior change. 

This groups utilities into two modules:
- `transformation.ts`: for any logic related to mutating / filtering of
the names, values of telemetry entries.
- `metricsRegistry.ts`: for any logic that related to the maintenance of
metrics.json files.
2026-05-14 05:33:40 +00:00
Piotr PaulskiandPiotr Paulski faac61d2f2 test: fix fill_form eval (#2011)
Improve fill_form eval by checking if fill_form was the only tool called
for the task and provide more descriptive failure messages.

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-05-07 13:59:14 +00:00
Alex Rudenko 14938acd08 docs: remove token estimates (#2003)
since we include conditional tools in the reference, we cannot give
exact estimates since they depend on the configuration.
2026-05-06 09:21:54 +00:00
Alex Rudenko da0441d425 docs: extract WebMCP into its own category (#1993)
Extracting WebMCP tools into a separate category for better grouping in
the docs. This changes `--experimentalWebmcp` to
`--categoryExperimentalWebmcp` to align with other experimental
categories. Debugging category was not a good fit since the tools
provided by WebMCP are not necessarily used for debugging.

cc @beaufortfrancois
2026-05-05 12:50:42 +00:00
Nicholas Roscino 895fc65a1f docs: update generate-docs.ts tools output order (#1991)
Closes: #1932
2026-05-05 08:31:59 +00:00
Nicholas Roscino b2b3e99d67 feat(cli): generate commands for conditional tools (#1962)
This PR adds all tools in the CLI interface. When a tool is not enabled
the server responds with an error guiding the user on how to enable the
category or the experiment.

Closes:
https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1933
2026-04-30 07:59:08 +00:00
Alex Rudenko 8cbdb8d494 fix(cli): re-generate cli correctly (#1969)
Regressed in
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/1120
2026-04-28 14:18:39 +00:00
Piotr PaulskiandPiotr Paulski 21bc5b4476 test: add eval targeting fill_form use with select and checkbox elements (#1968)
This eval represents minimal reproduction scenario for #1942. Currently
fill_form is used in around 25% of the attempts.

It can also be used to reproduce #1941 with about 1:10 chance.

---------

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-04-28 13:39:35 +00:00
yulunz cb6b724fdc chore: combine the update metrics scripts. (#1964)
This is a cleanup to merge the update metrics script together into one.
There is behavior change.
2026-04-28 05:59:57 +00:00
yulunz 7b3b4d306e chore: make json file for flag usage metrics append only (#1882)
This makes the flag_usage_metrics.json file append only. Parent: #1881
2026-04-27 20:12:49 +00:00
Piotr Paulskidependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Piotr Paulski
c9c1683b67 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1613625 to 1.0.1616061 (#1952)
Closes #1908

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-04-24 19:40:09 +00:00
Alex Rudenko 82b67b07d3 refactor: add support for CLI sessionIds in tests (#1919)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1119
2026-04-22 08:15:36 +00:00
3ff21cf30d feat: support Chrome extensions debugging (#1922)
Adds ability to install, uninstall and reload extensions, trigger
extension actions and inspect extension pages, service workers and
content scripts. Specify `--categoryExtensions` to enable.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1173
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/96

---------

Co-authored-by: Mathias Bynens <mathias@qiwi.be>
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2026-04-21 14:03:15 +00:00