Commit Graph

16 Commits

Author SHA1 Message Date
Nikolay Vitkov f0058d55d2 refactor: move transform logic to Clearcut level (#2637)
I think this makes a little bit cleaner structures. As now Clearcut
holds the responsibility of how the data is formatted.
2026-09-02 12:42:48 +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
Tolgahan Demirbaş 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
yulunz 6506425a46 fix: do not append page url when the previously selected page is gone. (#2588)
See
https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2033#issuecomment-5328348778
the description of the issue.
2026-08-19 07:45:59 +00:00
Alex Rudenko 57adfa963c refactor: make validatePath return resolved url (#2572)
This changes the internal responsibility: validatePath is the only place
that is expected to follow symlinks if it can. It then returns a
resolved path for all consumers in the MCP server who are expected not
to follow symlinks.

This is to be combined with the followSymlinks=false setting in
https://github.com/puppeteer/puppeteer/pull/15335
2026-08-17 10:19:41 +00:00
Nikolay Vitkov 5d0283969c refactor: move config files out of bin (#2578) 2026-08-14 14:17:28 +00:00
Alex Rudenko c0a74175f8 fix: do not validate local files for remote browsers (#2573)
I noticed that we validate file paths locally that are handled by
potentially remote browsers. This PR extends `verifyFilesSchema` to
validate file paths for local or remote browsers or both + test
coverage.

---------

Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2026-08-13 12:01:02 +00:00
yulunz df2c753006 feat(telemetry): log devtools data. (#2460)
This puts relevant logs fields into the `ToolInvocationContext` object,
and moves construction logic all into `src/telemetry/transformation.ts`.

Objects are only logged if they have at least one attribute, following
existing convention.

Tests are refactored accordingly.
2026-08-03 15:43:21 +00:00
yulunz 6398b7e9a4 feat(telemetry): report whether tool call is made on localhost. (#2455) 2026-08-03 12:53:33 +00:00
yulunz 6f60eabf59 feat(telemetry): log is_devtools_open with each tool call. (#2445) 2026-07-31 09:35:26 +00:00
Nikolay Vitkov 775ea2d3a3 refactor: re-use Puppteer Mutex (#2444) 2026-07-30 18:07:39 +00:00
Alex Rudenko 9c3542bd74 refactor: move and rename files (#2355)
- move utilities to sub-folders where applicable
- changes issue-descriptions to issuesDescriptions.ts and moves it to
devtools/
2026-07-13 10:58:14 +00:00
Alex Rudenko 68cfce2bcb refactor: clean up page snapshot generation (#2348)
- remove obsolete devtools page detection step
- move isolated context processing out of the browser pages fetching
- move filtering of pages out of getPages(). That should just be a
getter.
2026-07-13 08:08:59 +00:00
Nikolay Vitkov 2e039c09e1 refactor: use validate files on the tool level (#2152)
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2138
Closes #2150
2026-05-28 17:13:02 +00:00
lmlm 041b208378 fix: report unknown tool arguments (#2064)
## Summary
- register tool input schemas as passthrough so extra named arguments
reach ToolHandler validation
- report unknown arguments with an explicit error that names the unknown
and expected arguments
- stop before invoking tool handlers when unknown arguments are present
- add ToolHandler coverage for reporting an extra argument

Fixes #1940

## Tests
- `npm run check-format`
- `npx tsc --noEmitOnError false` *(emits build artifacts but still
reports the existing `chrome-devtools-frontend` type conflict in
`ModelImpl.ts`)*
- `node --experimental-strip-types --no-warnings=ExperimentalWarning
scripts/post-build.ts`
- `NODE_TEST_REPORTER=spec npm run test:no-build --
tests/ToolHandler.test.ts`
2026-05-15 15:52:57 +00:00
Alex Rudenko 178b790493 refactor: extract ToolHandler (#2032)
Follow-up for
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2030
2026-05-11 14:56:47 +00:00