Alex Rudenko
fd0a9193b3
docs: estimate tokens using tiktoken ( #959 )
2026-02-16 08:22:50 +00:00
Alex Rudenko
482a288c7e
chore: evaluate select_page scenario ( #925 )
...
Passes the test with gemini-2.5-flash with no errors.
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/921
2026-02-10 10:11:23 +00:00
Alex Rudenko
c0435a2d53
fix: disable usage statistics when CI or CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS env is set ( #862 )
...
When CI or CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS env variables are
set, we override the set cli args and disable the usage statistics.
2026-01-30 07:58:45 +00:00
Alex Rudenko
aa0a3679f5
feat: add a skill for using chrome-devtools-mcp ( #830 )
...
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/710
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/709
2026-01-26 10:04:39 +00:00
Alex Rudenko
4b8e9f2875
feat: allow skipping snapshot generation for input tools ( #821 )
...
Input tools have snapshots not re-generated by default now with an
option to opt-in to get a snapshot.
Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/726
2026-01-23 13:43:00 +00:00
Alex Rudenko
57e07eed7b
chore: token count tool ( #820 )
...
small helper
2026-01-23 12:56:22 +00:00
dependabot[bot]
5bd77d3e97
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1570343 to 1.0.1571573 in the bundled-devtools group ( #811 )
...
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend ).
Updates `chrome-devtools-frontend` from 1.0.1570343 to 1.0.1571573
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5563496226fd71a8ab7681e7fdae4f99bb5e9fb5 "><code>5563496</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/92f6ef8e6da11408cbdabc22e565e2c22d21fd66 "><code>92f6ef8</code></a>
Update Chrome (for Testing) PIN</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5a8e2a0ef05a79898ff8444eeddeebc7ed8cc6d9 "><code>5a8e2a0</code></a>
Node screenshots in OOPiF</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/bdd5124e030ee4cf59b78af0df257faef3f65a1b "><code>bdd5124</code></a>
Make <code>ComputedStyleModel</code> take a DOMNode explicitly.</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/09497c921d594414d34a45fec5fcf9db3b8276db "><code>09497c9</code></a>
Migrate XLink in templates</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/ed7883b3fd6f6fcc2170a89a1dc2c3b7cd7d763d "><code>ed7883b</code></a>
Roll browser-protocol</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/52c709a810c92ff1f925772b8262190c0935ec56 "><code>52c709a</code></a>
Add initial //agents/prompts folder and some prompts</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/5e8a5c29da01203e176019cc9443dd51967a93c8 "><code>5e8a5c2</code></a>
Update Chrome (for Testing) PIN</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/76990dded48a1b8d29e71d505af9c2877b0cbe22 "><code>76990dd</code></a>
Remove default jslog name for devtools-link</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8b9a227cf425a51e2825dad31e7cdc3bd3c4d606 "><code>8b9a227</code></a>
Trace: remove outdated comment</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1570343...v1.0.1571573 ">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
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-01-22 12:47:10 +00:00
Alex Rudenko
a8169676f9
feat: support device viewport and user agent emulation ( #798 )
...
This PR adds two emulation attributes `viewport` and `userAgent` that
allow emulating a mobile or a different desktop device.
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/272
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/619
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/410
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/280
(the recommended way is to emulate via the MCP server instead of a
parallel DevTools session)
2026-01-20 14:07:57 +00:00
Alex Rudenko
aa9a176956
fix: improve performance tool description ( #800 )
...
Drive-by: refactor and improve eval scripts.
2026-01-20 11:38:51 +00:00
Natasha Gorshunova
24d15a9375
chore: Implement uninstall_extension tool ( #796 )
...
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org >
2026-01-20 07:01:10 +00:00
Alex Rudenko
a83a338351
fix: increase timeouts for long text input ( #787 )
...
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/786
2026-01-19 13:01:41 +00:00
Alex Rudenko
9b21f8b2e9
fix: handle beforeunload dialogs in navigations ( #788 )
...
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/713
2026-01-19 10:04:45 +00:00
Natasha Gorshunova
1e0ee69d3a
chore: Implement install_extension command ( #764 )
...
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org >
2026-01-19 07:57:25 +00:00
zyzyzyryxy
f028f8c075
chore: Update eslint rule to require empty line after license notice. ( #784 )
...
We should make sure there is always an empty line after license notice,
otherwise it gets dropped during build if it happens to be before import
statement.
---------
Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org >
2026-01-16 16:35:45 +00:00
Alex Rudenko
67c1f80b28
chore: refactor eval script more ( #781 )
...
add args parsing and simplify output (support debug logging + headless).
2026-01-16 08:49:06 +00:00
Alex Rudenko
303a1383e1
chore: add more eval scenarios ( #780 )
2026-01-16 08:38:45 +00:00
Alex Rudenko
0284d18b7b
chore: support an html route in evals ( #770 )
...
Allows using the server URL in the prompt.
2026-01-14 17:11:53 +00:00
Alex Rudenko
257b9943e9
chore: add basic eval ( #766 )
...
This PR adds a tool based on the node test runner that runs a loop to
see what tools a model chooses given a prompt. The expectations are
encoding for each prompt. Run `npm run eval` to get results. Currently,
only Gemini and needs and API key.
2026-01-14 14:15:21 +00:00
Alex Rudenko
10baac9c48
test: add a retry for the merge queue ( #762 )
...
The tests need to pass checks before being added to the merge queue so
we can avoid merge queue failures in case there are flaky tests.
2026-01-13 12:03:17 +00:00
Alex Rudenko
c4e493b411
test: support testing a single test file without only ( #761 )
...
This PR adds a test.ts wrapper over the test runner to simplify scripts
in package.json and allow running a single test file.
2026-01-13 11:53:54 +00:00
Alex Rudenko
b204ad7009
build: update verify server.json ( #759 )
...
move download to the script, run script without deleting server.json
2026-01-13 10:10:19 +00:00
Alex Rudenko
a94dc0e614
chore: experimental vision mode ( #745 )
...
this PR adds the `--experimental-vision` argument that exposes
additional tool for visual automation (currently, click_at(x, y)).
2026-01-09 12:45:31 +00:00
Simon Zünd
79ab800b1e
chore(build): remove obsolete protocol_client.js modifications ( #739 )
...
The `self.Protocol` assignment and register call have moved to the
InspectorBackend constructor. The `self.Protocol` assignment now use
`globalThis`. The register call is necessary to make DevTools foundation
work.
2026-01-08 13:05:01 +01:00
Alex Rudenko
81cbd99f52
docs: enhance cli docs + sort required vs opt params ( #674 )
2025-12-13 09:16:04 +00:00
Alex Rudenko
94b899c205
build: bundle devtools frontend ( #656 )
2025-12-11 11:51:04 +01:00
Alex Rudenko
7a072c0012
build: rewrite docs generator ( #640 )
...
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/562
2025-12-03 09:44:46 +01:00
Simon Zünd
589d994974
chore: add UniverseManager to create DevTools Universes for each Page ( #621 )
...
A follow-up PR will add a single instance of the `UniverseManager` to
`McpContext` similarly to the *Collectors. We don't do that in this PR
yet, as we need to wait for some chrome-devtools-frontend changes to
roll.
2025-11-28 09:19:50 +00:00
Alex Rudenko
a5c40d14a9
chore: remove i18n mocks ( #576 )
...
i18n can now run in node.js.
2025-11-19 09:32:54 +00:00
Natasha Gorshunova
c1e4118992
feat: report console issues in list_console_messages ( #505 )
...
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org >
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com >
2025-11-17 10:38:46 +01:00
Nikolay Vitkov
2fd4cc9ac6
chore: restrict DevTools imports ( #547 )
2025-11-12 10:15:11 +00:00
Alex Rudenko
aae8c0fab0
build: remove outdated prepare.ts steps ( #501 )
2025-10-30 10:58:38 +01:00
Nikolay Vitkov
40e1753d2e
docs: remove unnecessary replace ( #475 )
2025-10-27 15:38:40 +00:00
dependabot[bot]
12eb494466
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1524741 to 1.0.1531367 in the chrome-devtools-frontend group ( #429 )
...
Bumps the chrome-devtools-frontend group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend ).
Updates `chrome-devtools-frontend` from 1.0.1524741 to 1.0.1531367
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/6f4312a899ff0af345ba1a51ba719d0c0a1bf5d2 "><code>6f4312a</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/03ffc0b5fc5f07fdde976d2ad47670138bf5cca7 "><code>03ffc0b</code></a>
Update Chrome (for Testing) PIN</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a717fef99f53ea02dbc91867206546800ae52f69 "><code>a717fef</code></a>
[RPP] Actually hide Workspaces in trace app</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9ac40d2b0c7d7cf9d6493905df1a72dd4b90803b "><code>9ac40d2</code></a>
Increase performance tests timeout</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/ca1486a6501f6926009969c0c1aa3a577ec93210 "><code>ca1486a</code></a>
Create throttling/blocking conditions from the context menu</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/19213823907008766d5759b8b25feca602ea93fa "><code>1921382</code></a>
[Console Insights Teasers] Add error state</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/2678dc3548a7fbb9aa80455ffa0dc13fd0714e86 "><code>2678dc3</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/db045b91de4fa65c651bda1968ad882f78160a26 "><code>db045b9</code></a>
[Console Insights Teasers] Handle slowness</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a95ceaf384f7917fe9e3a2aac3d10000a8f14fc6 "><code>a95ceaf</code></a>
Fix console sidebar filter selection</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a32c47b13d74ba38f478f3369d57bf9647a458b1 "><code>a32c47b</code></a>
Support individual request throttling in the request blocking panel</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1524741...v1.0.1531367 ">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub ">https://www.npmjs.com/~GitHub </a>
Actions), a new releaser for chrome-devtools-frontend since your current
version.</p>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
---------
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 >
2025-10-22 13:02:29 +02:00
Alex Rudenko
0fe2b8a2b4
feat: allow configuring tool categories ( #454 )
...
This PR introduces a feature to disable some of the MCP server tool
categories to tailor it to specific use cases.
For example,
```
npx chrome-devtools-mcp@latest --no-category-emulation Disable tools in the emulation category
npx chrome-devtools-mcp@latest --no-category-performance Disable tools in the performance category
npx chrome-devtools-mcp@latest --no-category-network Disable tools in the network category
```
2025-10-22 12:32:16 +02:00
Nikolay Vitkov
2e0961f36d
ci: verify schema is correct on release PRs ( #314 )
...
Also gets the latest mcp-publisher based on GitHub latest tag.
2025-10-13 12:01:30 +02:00
Nikolay Vitkov
b1d239ece1
refactor: use release-please to bump version in files ( #349 )
2025-10-12 11:14:27 +00:00
Alex Rudenko
03b59f0bca
fix: do not set channel if executablePath is provided ( #150 )
...
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/148
2025-09-25 18:44:31 +02:00
Nikolay Vitkov
15277541d8
chore: add additional EsLint rule ( #147 )
2025-09-25 17:20:01 +02:00
Jack Franklin
d64ba0d902
fix(performance): ImageDelivery insight errors ( #144 )
...
This fixes the ImageDelivery insight which throws when we try to
generate it
because of its dependency on core/i18n. The long term fix here is to
remove the reliance of models/trace on the core/i18n package, or at
least dependency inject it, but this is a quick fix to at least make
this insight available.
The irony is that we don't even use the string in the AI output; but if
we don't have the method available we cannot generate the insight.
This fixes part of #124 by making this insight not error. The other
required work for that bug is to deal with Insights that do error. That
work is done in DevTools, but we need to ship & roll a new version into
the MCP server.
2025-09-25 13:38:52 +02:00
Alex Rudenko
adfcecf987
fix: validate and report incompatible Node versions ( #113 )
...
Ref https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/92
2025-09-24 14:45:27 +02:00
Alex Rudenko
cae1cf13d5
fix: manually bump server.json versions based on package.json ( #105 )
...
it appears that mcp registry publishing tools would not sync
automatically with package.json.
2025-09-24 10:23:06 +02:00
Sebastian Benz
0c7daa0b86
chore: refactor docs generating ( #55 )
...
* add script `npm run docs` that builds, generate docs and runs
formatter to auto fix formatting after doc generation
* rename generate-docs to docs:generate
* update presubmit workflow
* add docs process to contributing.md
2025-09-19 15:57:10 +02:00
Jack Franklin
0cb6147b87
feat: use Performance Trace Formatter in trace output ( #36 )
...
Note: this will error until a chrome-devtools-frontend with this change
https://chromiumdash.appspot.com/commit/62e1652b2bf044ec53a2ec212cf53b1a62bc357e
is released on npm.
2025-09-16 17:07:58 +00:00
Sebastian Benz
8ba8460b98
docs: polish readme ( #2 )
...
* add configuration section
* move user-data-dir to new concepts section
2025-09-12 12:30:30 +02:00
Nikolay Vitkov
03cede89cf
ci: preconfigure CI jobs ( #3 )
2025-09-11 11:46:56 +00:00
Alex Rudenko
31a0bdce26
feat: initial version
2025-09-11 12:46:05 +02:00