Alex Rudenko
348975d808
refactor: clean up McpResponse.handle ( #2392 )
...
- remove unused toolName
- extract helpers and fetch data in parallel
2026-07-21 06:53:11 +00:00
dependabot[bot]
9a7e04daa2
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1652307 to 1.0.1660788 in the bundled-devtools group across 1 directory ( #2299 )
...
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.1652307 to 1.0.1656897
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a5ae2f34eb11c5c58a460e6930b6bce270a3121b "><code>a5ae2f3</code></a>
Use lit-html in ServiceWorkersView.ts</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/251a23abd90438b2f2bb33961e894fe0b4452057 "><code>251a23a</code></a>
Refactor ElementsPanel dependency injection and clean up
DOMModel.cancelSearch</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8382f01f7b9644b98beb1fa335fac9f511f16139 "><code>8382f01</code></a>
[global-state] Fix FrameManager access in DOMNode</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/78704b2ecc77051877bd7f805eed1bf6f88d0ff9 "><code>78704b2</code></a>
[Sheriff]: Fix a couple of flaky tests.</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8b198ec693b44abe00d41a5bca65639bda55180b "><code>8b198ec</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/430a8bdfa2c06e2f4e974f0dade1e0cfd8bf4e88 "><code>430a8bd</code></a>
[global-state] Remove static instance from SimpleAppProvider</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/137dae29bacbf164674a578eb5592cb12308e141 "><code>137dae2</code></a>
[global-state] Stash CrUXManager on DevToolsContext and add to
universe</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/4f881fd9caf41e7416b03397892c17e3e9f93d0a "><code>4f881fd</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/d46071e5459a66871e38b89ac11d5573ad2ed4fb "><code>d46071e</code></a>
Make SourceMapCache instantiable instead of a singleton</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/466be4a9e6a4db8867f8c04e034d3383f624d99f "><code>466be4a</code></a>
Roll browser-protocol and CfT</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1652307...v1.0.1656897 ">compare
view</a></li>
</ul>
</details>
<br />
---------
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Vitkov <nvitkov@chromium.org >
2026-07-15 13:05:34 +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
c53c1ec4c9
refactor: use response page in formatting ( #2349 )
2026-07-13 07:55:37 +00:00
Alex Rudenko
58ba174273
refactor: move remaining McpContext getters ( #2342 )
...
Moves various getters to McpPage.
2026-07-10 12:46:01 +00:00
Alex Rudenko
5b33debf1a
refactor: clean up McpContext getters ( #2340 )
2026-07-10 07:46:31 +00:00
Alex Rudenko
9cd734b0a3
refactor: clean up more of the context interface ( #2335 )
...
- removed redundant page getters
2026-07-09 13:50:48 +00:00
Nicholas Roscino
29e389848f
feat: implement extension service worker logs ( #1915 )
...
This PR introduces the possiblity to collect console messages from
service workers.
2026-06-08 12:30:37 +00:00
Alex Rudenko
f8fb2a9236
test: drop node20 code in tests ( #2146 )
2026-05-27 11:12:22 +00:00
Samiya Caur
f1afe842ae
test: add tests for checking behavior when dialog is open ( #1977 )
...
This is the first part of adding tests for checking tool behavior when a
dialog is already open (related to #1069 )
In future CL, I will be focusing on tools which currently get blocked
due to open dialogs. As part of those CLs, proactive rejection of tool
execution will be implemented.
2026-04-29 10:38:27 +00:00
Wolfgang Beyer
e046c23563
chore: in-page tool output: stash DOM elements and preprocess for serialization ( #1877 )
...
Improvements for handling in-page tool responses. In order to
successfully pass an in-page tool response from the page context to the
MCP server, the response needs to be serializable. The code walks the
response object an performs the following changes:
- DOM elements are stashed onto the window object and replaced with an
ID. On the MCP server side this ID is used to map back to the
corresponding UID in the page snapshot generated from the accessibility
tree.
- Circular references are replaced with a string.
- Class instances (which can be complex or non-serializable) are
replaced with a string.
- Functions are replaced with a string.
If the in-page tool response contains DOM elements which are not part of
the page snapshot, a new snapshot is created add the missing elements
are added explicitly.
2026-04-22 14:51:09 +00:00
Nicholas Roscino
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
Alex Rudenko
c2d8009ff7
refactor: move main files ( #1120 )
...
- `chrome-devtools-mcp.js` is the `npx chrome-devtools-mcp`
- `chrome-devtools.js` is the new CLI
- `-cli-options.js` is the corresponding options
- all these files are in the bin folder to indicate they are executable
2026-03-05 21:51:37 +00:00
Alex Rudenko
4cb5a17b57
refactor: remove page passing via context ( #1061 )
...
- removes several redundant getters on the context.
- removes passing page instances via context.
2026-02-27 12:08:10 +00:00
Alex Rudenko
d6c06c56a7
refactor: make cdp resolvers use McpPage ( #1060 )
...
Makes cdp resolvers scoped to the page. Once collectors are per McpPage,
the entire method could be moved to McpPage.
2026-02-27 10:58:49 +00:00
Alex Rudenko
302e5a0419
refactor: consistently use McpPage in tools ( #1057 )
...
Follow-up to
https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/caf601a32832bb87cfac801a6bbeacb87508412f
The work is not complete and as a follow-up I will handle other Context
methods and moved whatever is relevant to the McpPage. Also, duplicate
getters would go away.
2026-02-27 09:41:08 +00:00
Alex Rudenko
5f694c60ff
refactor: improve type safety for page scoped tools ( #1051 )
...
I think we should create proper classes for tool definitions soon.
Follow-up for
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/1022
2026-02-26 14:33:57 +00:00
Nicholas Roscino
1a4eaba95b
chore: list service workers ( #1035 )
...
This PR adds the extension service workers to the output of listPages.
This is available only behind "--category-extensions" flag
2026-02-25 13:49:37 +00:00
Simon Zünd
8e2380b434
fix: console formatter hides frames from ignored scripts ( #927 )
...
This PR wires up the default DevTools ignore listing to hide frames from
third party scripts in stack traces. By default, we ignore:
* Scripts with `/node_modules/` in their URL or where the URL starts
with `node:/`
* Scripts that are marked as ignore listed in the source map
* Content scripts from extensions
The PR adds both, unit tests and an e2e test. This is because we allow
the unit test to pass a mocked ignore checker, where-as the e2e uses the
real DevTools one.
2026-02-10 07:24:09 +00:00
Alex Rudenko
6d0eb491fd
test: add a console error object test ( #910 )
2026-02-06 12:50:27 +00:00
Simon Zünd
05b01ecaba
feat: include Error.cause chain for uncaught errors and logged Errors ( #906 )
2026-02-06 11:57:33 +00:00
Simon Zünd
ffa00dab1b
feat: show message and stack trace in details when console.log'ging Error objects ( #902 )
...
This PR improves the `get_console_message` tool when logging `Error`
objects. We use the existing `getExceptionDetails` CDP command to
retrieve the structured stack trace, we'll then source map.
Example:
```js
try {
compute();
} catch (e) {
console.log('Compute failed', e);
}
```
Before:
```txt
### Arguments
Arg #0 : Compute failed
Arg #1 : {}
```
After:
```txt
### Arguments
Arg #0 : Compute failed
Arg #1 : ComputeError: Invariant violation
at compute (foo.ts:1:20)
at <anonymous> (main.ts:2:8)
Note: line and column numbers use 1-based indexing
```
---------
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com >
2026-02-06 09:38:27 +00:00
Simon Zünd
ecef712e70
feat: include source-mapped stack trace for uncaught errors ( #876 )
...
Note that we replace the existing "pageerror" handler with our new
`UncaughtError` handler. The latter has a structured stack trace
attached which we can source map via DevTools.
This regresses the current functionality slightly, as we lose
"pageerror"s for workers and oopif.
2026-02-03 12:24:23 +00:00
Simon Zünd
a3a00210a3
feat: include stack trace in 'get_console_message' tool ( #740 )
...
This is the stack trace of the console message itself. If the argument
is an Error object or an "Error.stack" like string we don't do anything
special (yet).
The stack trace is source mapped if source maps are available.
The function matches the target ID of the console message to the
`SDK.Target` of DevTools. The only oddity is that DevTools works in a
lazy manor: It creates stack traces upfront and as source maps come in,
stack traces get updated. This does not work for the MCP server.
Instead, we wait for script parsed events and source maps to attach
before creating the stack trace. Since this could take potentially a
while, we guard it with a time out.
2026-01-20 09:58:29 +00:00
Alex Rudenko
3fcca026cb
chore: support structured content ( #744 )
...
The idea is to turn formatters into instances and support both text and
JSON formatting. The structured content is output if the experimental
structured content flag is passed. For now, only the snapshots are
returned in a structured way.
Refs https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/689
2026-01-12 13:53:12 +00:00
Alex Rudenko
657b996733
build: namespace devtools exports ( #662 )
2025-12-11 13:12:01 +01:00
Alex Rudenko
94b899c205
build: bundle devtools frontend ( #656 )
2025-12-11 11:51:04 +01:00
dependabot[bot]
4e69ed4bca
chore(deps-dev): bump the bundled group with 2 updates ( #641 )
...
Bumps the bundled group with 2 updates:
[@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk )
and [puppeteer](https://github.com/puppeteer/puppeteer ).
Updates `@modelcontextprotocol/sdk` from 1.21.1 to 1.24.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/modelcontextprotocol/typescript-sdk/releases "><code>@modelcontextprotocol/sdk</code>'s
releases</a>.</em></p>
<blockquote>
<h2>1.24.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(streamableHttp): fix infinite retries when maxRetries is set to
0 by <a href="https://github.com/mrorigo "><code>@mrorigo</code></a> in
<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1216 ">modelcontextprotocol/typescript-sdk#1216</a></li>
<li>chore: update protocol version to 2025-11-25 by <a
href="https://github.com/dsp-ant "><code>@dsp-ant</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1218 ">modelcontextprotocol/typescript-sdk#1218</a></li>
<li>chore: bump version for release by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1219 ">modelcontextprotocol/typescript-sdk#1219</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mrorigo "><code>@mrorigo</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1216 ">modelcontextprotocol/typescript-sdk#1216</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/1.24.0...1.24.1 ">https://github.com/modelcontextprotocol/typescript-sdk/compare/1.24.0...1.24.1 </a></p>
<h2>1.24.0</h2>
<h2>Summary</h2>
<p>This release brings us up to speed with the latest MCP spec
<code>2025-11-25</code>. Take a look at the <a
href="https://modelcontextprotocol.io/specification/2025-11-25 ">latest
spec</a> as well as the release <a
href="https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-anniversary/ ">blog
post.</a></p>
<h2>What's Changed</h2>
<ul>
<li>fix: update spec links from latest to draft by <a
href="https://github.com/domdomegg "><code>@domdomegg</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1171 ">modelcontextprotocol/typescript-sdk#1171</a></li>
<li>Make sure to consume HTTP error response bodies by <a
href="https://github.com/GreenStage "><code>@GreenStage</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1173 ">modelcontextprotocol/typescript-sdk#1173</a></li>
<li>docs: add GET request handling for streamableHttp stateless mode by
<a href="https://github.com/saharis9988 "><code>@saharis9988</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1161 ">modelcontextprotocol/typescript-sdk#1161</a></li>
<li>SEP-1686: Tasks by <a
href="https://github.com/LucaButBoring "><code>@LucaButBoring</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1041 ">modelcontextprotocol/typescript-sdk#1041</a></li>
<li>Fix JSON parse error on SSE events with empty data by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1184 ">modelcontextprotocol/typescript-sdk#1184</a></li>
<li>Fix StreamableHTTPClientTransport instantiation by <a
href="https://github.com/yuwzho "><code>@yuwzho</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/944 ">modelcontextprotocol/typescript-sdk#944</a></li>
<li>feat: eslint rule to prefer node protocols by <a
href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1187 ">modelcontextprotocol/typescript-sdk#1187</a></li>
<li>fix: call tasks/result to deliver side-channel messages by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1185 ">modelcontextprotocol/typescript-sdk#1185</a></li>
<li>Add invalid_target oauth error (rfc 8707) by <a
href="https://github.com/GreenStage "><code>@GreenStage</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1183 ">modelcontextprotocol/typescript-sdk#1183</a></li>
<li>fix(client): use StreamableHTTPError instead of plain Error in
send() by <a
href="https://github.com/yamadashy "><code>@yamadashy</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1178 ">modelcontextprotocol/typescript-sdk#1178</a></li>
<li>coerce 'expires_in' to be a number by <a
href="https://github.com/adam-kuhn "><code>@adam-kuhn</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1111 ">modelcontextprotocol/typescript-sdk#1111</a></li>
<li>Allow HTTP issuer URLs when MCP_DEV_MODE is enabled by <a
href="https://github.com/jerome3o-anthropic "><code>@jerome3o-anthropic</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1189 ">modelcontextprotocol/typescript-sdk#1189</a></li>
<li>fix: update registerTool signature for proper typed ToolCallback by
<a href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in
<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1188 ">modelcontextprotocol/typescript-sdk#1188</a></li>
<li>SEP-1046: Client credentials flow for M2M without user interaction
by <a
href="https://github.com/KKonstantinov "><code>@KKonstantinov</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1157 ">modelcontextprotocol/typescript-sdk#1157</a></li>
<li>adds the transitive <code>@types/express-serve-static-core</code>
dependency as a direct devDependency by <a
href="https://github.com/mgyarmathy "><code>@mgyarmathy</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1078 ">modelcontextprotocol/typescript-sdk#1078</a></li>
<li>Fix optional argument handling in prompts for Zod V4 by <a
href="https://github.com/filip-bartuska-ipf "><code>@filip-bartuska-ipf</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1199 ">modelcontextprotocol/typescript-sdk#1199</a></li>
<li>fix hanging stdio servers by <a
href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1200 ">modelcontextprotocol/typescript-sdk#1200</a></li>
<li>README refactor by <a
href="https://github.com/KKonstantinov "><code>@KKonstantinov</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1197 ">modelcontextprotocol/typescript-sdk#1197</a></li>
<li>[Docs] Fix typo by <a
href="https://github.com/koic "><code>@koic</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1067 ">modelcontextprotocol/typescript-sdk#1067</a></li>
<li>feat: add closeSSEStream callback to RequestHandlerExtra by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1166 ">modelcontextprotocol/typescript-sdk#1166</a></li>
<li>fix: improve SSE reconnection behavior by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1191 ">modelcontextprotocol/typescript-sdk#1191</a></li>
<li>fix: normalize headers in sse transport by <a
href="https://github.com/marcrasi "><code>@marcrasi</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/856 ">modelcontextprotocol/typescript-sdk#856</a></li>
<li>feat: add closeStandaloneSSEStream for GET stream polling by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1203 ">modelcontextprotocol/typescript-sdk#1203</a></li>
<li>fix: normalize null to undefined in ElicitResultSchema content field
by <a href="https://github.com/mattzcarey "><code>@mattzcarey</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1204 ">modelcontextprotocol/typescript-sdk#1204</a></li>
<li>Modify Origin header validation in validateRequestHeaders
(streamableHttp.ts and sse.ts) to allow requests without an Origin, as
they are not relevant to server DNS rebinding protection. by <a
href="https://github.com/jacopoc "><code>@jacopoc</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1205 ">modelcontextprotocol/typescript-sdk#1205</a></li>
<li>fix: allow zod 4 transformations by <a
href="https://github.com/mattzcarey "><code>@mattzcarey</code></a> in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1213 ">modelcontextprotocol/typescript-sdk#1213</a></li>
<li>feat: backwards-compatible createMessage overloads for SEP-1577 by
<a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1212 ">modelcontextprotocol/typescript-sdk#1212</a></li>
<li>chore: bump version for release by <a
href="https://github.com/felixweinberger "><code>@felixweinberger</code></a>
in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1215 ">modelcontextprotocol/typescript-sdk#1215</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/GreenStage "><code>@GreenStage</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1173 ">modelcontextprotocol/typescript-sdk#1173</a></li>
<li><a
href="https://github.com/saharis9988 "><code>@saharis9988</code></a>
made their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1161 ">modelcontextprotocol/typescript-sdk#1161</a></li>
<li><a href="https://github.com/yuwzho "><code>@yuwzho</code></a> made
their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/944 ">modelcontextprotocol/typescript-sdk#944</a></li>
<li><a href="https://github.com/yamadashy "><code>@yamadashy</code></a>
made their first contribution in <a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/pull/1178 ">modelcontextprotocol/typescript-sdk#1178</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/6dd7cd4e16cf7ece373dff4138e9a065aa1c6ae7 "><code>6dd7cd4</code></a>
chore: bump version for release (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1219 ">#1219</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/600859f10586e5d49910a04ed877901bfec171b3 "><code>600859f</code></a>
chore: update protocol version to 2025-11-25 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1218 ">#1218</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/bfad917cad8d84c40047ae352b7611b61377ef59 "><code>bfad917</code></a>
fix(streamableHttp): fix infinite retries when maxRetries is set to 0
(<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1216 ">#1216</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/356b7e61c83af723a0b7ad67d8193de70a5f03ca "><code>356b7e6</code></a>
chore: bump version for release (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1215 ">#1215</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/09623e2aa5044f9e9da62c73d820a8250b9d97ed "><code>09623e2</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/cf51343cc12fc83db34d07b7d7269b73d413cc06 "><code>cf51343</code></a>
feat: backwards-compatible createMessage overloads for SEP-1577 (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1212 ">#1212</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/82041262dc9cee1c27b787edeee828a0ed51e122 "><code>8204126</code></a>
fix: allow zod 4 transformations (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1213 ">#1213</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/608360047dc6899f1cf4f0226eb62fe7b11b3898 "><code>6083600</code></a>
Modify Origin header validation in validateRequestHeaders
(streamableHttp.ts ...</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/a6ee2cb3c234960b6c448eb9ffb4e442233e6c10 "><code>a6ee2cb</code></a>
fix: normalize null to undefined in ElicitResultSchema content field (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1204 ">#1204</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/4b651b8fe17a567c8563b98c8fd677d9df688c0a "><code>4b651b8</code></a>
feat: add closeStandaloneSSEStream for GET stream polling (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1203 ">#1203</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/1.21.1...1.24.1 ">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~pcarleton ">pcarleton</a>, a new releaser
for <code>@modelcontextprotocol/sdk</code> since your current
version.</p>
</details>
<br />
Updates `puppeteer` from 24.31.0 to 24.32.0
<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: v24.32.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.31.0...puppeteer-core-v24.32.0 ">24.32.0</a>
(2025-12-03)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add browser.screens, .addScreen and .removeScreen methods (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14445 ">#14445</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/98ae5e75fda3d01c067dac6926370dba05cd720c ">98ae5e7</a>)</li>
<li>bluetooth emulation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14448 ">#14448</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e181c1befaebadfa74ec4e1b6742f26187bd3a2a ">e181c1b</a>)</li>
<li>roll to Chrome 143.0.7499.40 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14476 ">#14476</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b0e15aff5143b1c08d0ad66555cfc5c9a369d5dd ">b0e15af</a>)</li>
<li>support channel in puppeteer.connect (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14466 ">#14466</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/bc3a52185d43618756c491e9cc930ca9340f9776 ">bc3a521</a>)</li>
<li>support new page window positioning (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14446 ">#14446</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/20881f8a52b8a29abaf6e5353dc8642474348fa0 ">20881f8</a>)</li>
<li><strong>webdriver:</strong> bluetooth emulation via WebDriver BiDi
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14455 ">#14455</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e17263c815cb6638c035d0d91934ab8536f03b7b ">e17263c</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>ignore non-page DevTools targets when handleDevToolsAsPage=true (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14472 ">#14472</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/11bf1d205707e02c874cb6e3c5ee6f12b1e27f70 ">11bf1d2</a>)</li>
<li>prevent accessibility nodes attributes with false from being ignored
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14475 ">#14475</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/086a8ab650c424192ec8edf489fce90bad318bb2 ">086a8ab</a>)</li>
<li>roll to Firefox 145.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14462 ">#14462</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/97ca8944d5fb5f169804f230d431a62cb600bbfc ">97ca894</a>)</li>
<li><strong>webdriver:</strong> allow for scripts to throw platform
objects (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14456 ">#14456</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/7c0d3d977b2c3370516c42218977bd4338421b28 ">7c0d3d9</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 2.10.13 to 2.11.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v24.32.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.31.0...puppeteer-v24.32.0 ">24.32.0</a>
(2025-12-03)</h2>
<h3>🎉 Features</h3>
<ul>
<li>roll to Chrome 143.0.7499.40 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14476 ">#14476</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b0e15aff5143b1c08d0ad66555cfc5c9a369d5dd ">b0e15af</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 2.10.13 to 2.11.0</li>
<li>puppeteer-core bumped from 24.31.0 to 24.32.0</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</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-v24.31.0...puppeteer-v24.32.0 ">24.32.0</a>
(2025-12-03)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add browser.screens, .addScreen and .removeScreen methods (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14445 ">#14445</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/98ae5e75fda3d01c067dac6926370dba05cd720c ">98ae5e7</a>)</li>
<li>bluetooth emulation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14448 ">#14448</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e181c1befaebadfa74ec4e1b6742f26187bd3a2a ">e181c1b</a>)</li>
<li>roll to Chrome 143.0.7499.40 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14476 ">#14476</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b0e15aff5143b1c08d0ad66555cfc5c9a369d5dd ">b0e15af</a>)</li>
<li>support channel in puppeteer.connect (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14466 ">#14466</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/bc3a52185d43618756c491e9cc930ca9340f9776 ">bc3a521</a>)</li>
<li>support new page window positioning (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14446 ">#14446</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/20881f8a52b8a29abaf6e5353dc8642474348fa0 ">20881f8</a>)</li>
<li><strong>webdriver:</strong> bluetooth emulation via WebDriver BiDi
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14455 ">#14455</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/e17263c815cb6638c035d0d91934ab8536f03b7b ">e17263c</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 2.10.13 to 2.11.0</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>ignore non-page DevTools targets when handleDevToolsAsPage=true (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14472 ">#14472</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/11bf1d205707e02c874cb6e3c5ee6f12b1e27f70 ">11bf1d2</a>)</li>
<li>prevent accessibility nodes attributes with false from being ignored
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14475 ">#14475</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/086a8ab650c424192ec8edf489fce90bad318bb2 ">086a8ab</a>)</li>
<li>roll to Firefox 145.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14462 ">#14462</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/97ca8944d5fb5f169804f230d431a62cb600bbfc ">97ca894</a>)</li>
<li><strong>webdriver:</strong> allow for scripts to throw platform
objects (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14456 ">#14456</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/7c0d3d977b2c3370516c42218977bd4338421b28 ">7c0d3d9</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/c324e1bb5b1a33e793324669d402fd2e32e28707 "><code>c324e1b</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14454 ">#14454</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/b0e15aff5143b1c08d0ad66555cfc5c9a369d5dd "><code>b0e15af</code></a>
feat: roll to Chrome 143.0.7499.40 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14476 ">#14476</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/086a8ab650c424192ec8edf489fce90bad318bb2 "><code>086a8ab</code></a>
fix: prevent accessibility nodes attributes with false from being
ignored (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/1 ">#1</a>...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/11bf1d205707e02c874cb6e3c5ee6f12b1e27f70 "><code>11bf1d2</code></a>
fix: ignore non-page DevTools targets when handleDevToolsAsPage=true (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14472 ">#14472</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/bc3a52185d43618756c491e9cc930ca9340f9776 "><code>bc3a521</code></a>
feat: support channel in puppeteer.connect (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14466 ">#14466</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/4913b9bdf966889bb7ffc48703fc9ab8e8271ff1 "><code>4913b9b</code></a>
test: update canary expectations (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14467 ">#14467</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/45f82aff4343d0bb00871a084f734f87934b2f65 "><code>45f82af</code></a>
test: fix more path related issues in tests (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14465 ">#14465</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/372b2806cee3893c6935afa98cc9b836b7c1cce1 "><code>372b280</code></a>
fix: avoid hard-coded separators in chrome.ts (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14464 ">#14464</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/e17263c815cb6638c035d0d91934ab8536f03b7b "><code>e17263c</code></a>
feat(webdriver): bluetooth emulation via WebDriver BiDi (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14455 ">#14455</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/97ca8944d5fb5f169804f230d431a62cb600bbfc "><code>97ca894</code></a>
fix: roll to Firefox 145.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14462 ">#14462</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.31.0...puppeteer-v24.32.0 ">compare
view</a></li>
</ul>
</details>
<br />
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-12-03 09:05:24 +00:00
Alex Rudenko
d8921453c7
feat: integrate DevTools issues into the console tools ( #636 )
...
Now that all PRs by @nattallius have landed, this PR removes the feature
flag introduced in
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/575 and makes
issues available by default.
- list_console_messages has a new message type called `issue` to filter
for DevTools issues
- get_console_message returns details for the issues.
DevTools issues help to identify and fix problems on web pages. See
https://developer.chrome.com/docs/devtools/issues for more details.
PRs contributing this feature:
- https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/505
- https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/594
- https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/594
2025-12-02 11:04:37 +01:00
Alex Rudenko
7114bb1bf3
chore: integrate issues and fix up checks ( #628 )
2025-11-28 09:16:32 +00:00
Alex Rudenko
05ffabdf7c
test: fix issue test ( #623 )
2025-11-28 09:12:18 +01:00
Simon Zünd
8e90a92780
chore: split withBrowser into withBrowser and withMcpContext ( #620 )
...
I split this PR off from my "create one DevTools universe per page" PR
in preparation. This allows tests to re-use browser instances without
creating an `McpContext`.
Drive-by: Move mocked browser/page into utils.ts.
2025-11-28 07:52:52 +01:00
Natasha Gorshunova
63b826cfe0
chore: report issues in details in get_console_mesasge ( #611 )
...
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org >
2025-11-27 08:08:47 +01:00
Natasha Gorshunova
326c279179
chore: report console issues in get_console_messages ( #594 )
...
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org >
2025-11-25 11:41:14 +01:00
zyzyzyryxy
94752ffade
fix: prevent dropping license notices on some files when publishing ( #604 )
...
This PR prevents license notices being dropped when creating package for
publication.
This can happen when first import in the file is type-only import that
gets removed during build. When there is no empty line between the
license block comment and such import, the comment is treated as related
to the import and gets removed alongside it.
Adding an empty line between copyright notice and the import fixes the
issue.
Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org >
2025-11-24 12:38:30 +00:00
Alex Rudenko
08e9a9f42e
refactor: disable issues in list_console_messages for now ( #575 )
...
Disabled the feature until the detail tool is ready.
2025-11-19 09:28:31 +01:00
Alex Rudenko
c3784d1990
refactor: clear issue aggregator on page navigation ( #565 )
...
- fixes a memory leak introduced previously (I could not pinpoint it but
McpContext was retained for subsequent tests).
- adds a test that issue continue being aggregated on reload.
- moves page-specific logic to a class.
2025-11-17 15:52:37 +01: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
b6b42ecb99
fix: pageerror for non-error types ( #442 )
...
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/432
2025-10-20 17:43:37 +02:00
Alex Rudenko
5c871c3bd9
refactor: cleanup data fetching ( #441 )
...
Drive-by: fixed extra newline
2025-10-20 13:05:05 +00:00
Alex Rudenko
962ac88445
chore: improve console message format ( #440 )
...
I checked Puppeteer implementation and it computes the text based on all
args so we should treat the first arg in a special way. Also, changes
the format to print count of args in the list and full args in the
details only.
2025-10-20 14:49:09 +02:00
Alina Varkki
92055933dc
feat: tool to get a verbose single console message ( #435 )
2025-10-20 11:18:41 +02:00
Alina Varkki
15d942c4f3
feat: add filters and pagination to the console messages tool ( #387 )
...
In the next pr, we will add ids to messages and another tool to get more
details by id
2025-10-15 18:22:15 +02:00
Nikolay Vitkov
15277541d8
chore: add additional EsLint rule ( #147 )
2025-09-25 17:20:01 +02:00
Alex Rudenko
31a0bdce26
feat: initial version
2025-09-11 12:46:05 +02:00