文件历史

提交图

39 次代码提交

作者 SHA1 备注 提交日期
Alex Rudenko cb0079efbb refactor: simplify the response texts (#1095)
- removed redundant headers in Markdown
- updates more tests to use snapshots
2026-03-04 07:23:37 +00:00
Alex Rudenko e51ba47203 fix: simplify emulation and script tools (#1073)
- reduces the token usage.
- makes emulation and script compatible with CLI.
- documents .nullable() and .object() restrictions for the future.
- the emulation tools do not have nullable anymore and undefined would
clear the emulation instead. The model is thus required to provide all
emulation settings at once.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/918
2026-03-02 13:31:55 +00:00
Alex Rudenko 40c241bbfc refactor: move dialog handling to McpPage (#1059)
- renamed getSelectedPage to getSelectedPptrPage
- removes getSelectedPptrPage from tool interfaces
- moves dialog handling to McpPage
- makes responses to be optionally McpPage-scoped
2026-02-27 11:49:43 +01:00
Alex Rudenko dfdac2648e feat: integrate Lighthouse audits (#831)
This PR adds tool to perform navigation and snapshot audits using
Lighthouse for Accessibility, SEO and Best practices. For performance
audits existing tools can be used.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/473
2026-02-26 12:30:45 +00:00
Alex Rudenko bc3c40e8f9 refactor: move emulation settings to context (#1000)
- reduces boilerplate 
- allows easily to restore emulation settings

This is in preparation for the integration with Lighthouse.
2026-02-20 11:36:14 +00:00
Alex Rudenko 5a23a8c201 feat: support testing light and dark mode (#858)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/130
2026-01-28 13:57:54 +00:00
Alex Rudenko 849c59071c chore: add structured content for rest of tools (#836)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/689
2026-01-26 14:01:35 +00:00
Natasha Gorshunova 4ad781fee6 chore: implement list_extensions tool for local unpacked extensions (#819)
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org>
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2026-01-26 10:37:13 +00:00
Alex Rudenko a6cd2cd3f2 fix: re-use node ids across snapshots (#814)
previously, Chrome DevTools MCP was strictly requiring the client to use
the latest snapshot. This change updates the behavior to be more
lenient. Previously issued uids will be recognized if the underlying
backend Id (loaderId + backendNodeId) still exists.

Related https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/726
2026-01-22 14:25:39 +00:00
Alex Rudenko fbd22ce869 chore: structured performance responses (#809)
This PR moves formatting out of the tools and to the McpResponse.
Drive-by: clears up past trace results.
2026-01-22 10:01:59 +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 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
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
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
Nikolay Vitkov b30bdd6e17 test: use snapshots for McpResponse (#483) 2025-10-27 16:02:03 +01:00
dependabot[bot] e8394ab113 chore(deps-dev): bump the bundled group with 2 updates (#481)
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.20.1 to 1.20.2
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/7098bff073d78cfaee40869897d84a5929c29570"><code>7098bff</code></a>
chore: bump version for weekly release (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/1042">#1042</a>)</li>
<li><a
href="https://github.com/modelcontextprotocol/typescript-sdk/commit/c54309598505007c4467f78fa7dfb3e7c763679c"><code>c543095</code></a>
fix: Zod to JSONSchema pipe strategies (<a
href="https://redirect.github.com/modelcontextprotocol/typescript-sdk/issues/962">#962</a>)</li>
<li>See full diff in <a
href="https://github.com/modelcontextprotocol/typescript-sdk/compare/1.20.1...1.20.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `puppeteer` from 24.26.0 to 24.26.1
<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.26.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.26.0...puppeteer-core-v24.26.1">24.26.1</a>
(2025-10-22)</h2>
<h3>🛠️ Fixes</h3>
<ul>
<li><strong>a11y:</strong> expose the url property for links (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14357">#14357</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/93d098b060771dbd1e6875f4664273604022f3bd">93d098b</a>)</li>
<li>roll to Chrome 141.0.7390.122 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14360">#14360</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/f2fef816f234bd30a13bb86dfc654f29f5cb2f6b">f2fef81</a>)</li>
</ul>
<h2>puppeteer: v24.26.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.26.0...puppeteer-v24.26.1">24.26.1</a>
(2025-10-22)</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>puppeteer-core bumped from 24.26.0 to 24.26.1</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.26.0...puppeteer-v24.26.1">24.26.1</a>
(2025-10-22)</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>puppeteer-core bumped from 24.26.0 to 24.26.1</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li><strong>a11y:</strong> expose the url property for links (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14357">#14357</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/93d098b060771dbd1e6875f4664273604022f3bd">93d098b</a>)</li>
<li>roll to Chrome 141.0.7390.122 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14360">#14360</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/f2fef816f234bd30a13bb86dfc654f29f5cb2f6b">f2fef81</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/6e2348c27e3493e53b609122888e0950d342e4d2"><code>6e2348c</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14359">#14359</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/21f309239909548b390b7e851d481ff832899e35"><code>21f3092</code></a>
test: fix move to ESM (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14362">#14362</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/5fe1333769dd7bf28b239db308d67f3402633da2"><code>5fe1333</code></a>
test: move to ESM (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14358">#14358</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/f2fef816f234bd30a13bb86dfc654f29f5cb2f6b"><code>f2fef81</code></a>
fix: roll to Chrome 141.0.7390.122 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14360">#14360</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/93d098b060771dbd1e6875f4664273604022f3bd"><code>93d098b</code></a>
fix(a11y): expose the url property for links (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/14357">#14357</a>)</li>
<li>See full diff in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.26.0...puppeteer-v24.26.1">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: Nikolay Vitkov <nvitkov@chromium.org>
2025-10-27 14:08:01 +00:00
Nikolay Vitkov 376f57c972 test: use html helper (#478) 2025-10-27 12:32:47 +00:00
Alex Rudenko b0ce08ae2c feat: support saving snapshots to file (#463)
Refs https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/153

---------

Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2025-10-24 09:20:14 +00: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
Alex Rudenko d47aaa96ff feat: support verbose snapshots (#388)
As an option allow verbose snapshots
https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/363

---------

Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2025-10-15 12:16:34 +00:00
Nikolay Vitkov 579819b5e7 feat: use stable id for network request querying (#382)
Provides stable id when selecting a network request, this should fix
issues with multiple same places and long URL selection.
2025-10-14 14:35:15 +02:00
Nikolay Vitkov 78bf66a7b1 refactor: use different format for reqid (#380) 2025-10-14 12:23:19 +00:00
Nikolay Vitkov f4d7b49bb1 feat: support stable id for network requests (#375)
This is part 1, we just expose the uid here, in a follow up PR we will
be used for finding the request.
2025-10-14 12:45:16 +02:00
Alex Rudenko 2082641cc7 refactor: simplify snapshot generation (#369)
the only difference is that checked/pressed are only included if the
element was checked/pressed.

Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/363
2025-10-13 13:51:49 +00:00
Alex Rudenko f08f8080d0 fix: return the default dialog value correctly (#366)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/364 
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/361

---------

Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2025-10-13 11:46:18 +00:00
Nicholas Roscino dd3c14336e feat: add request and response body (#267)
This PR adds the request and response bodies into the context if they
are available and in a readable format.

---------

Co-authored-by: Nicholas Roscino <nroscino@chromium.org>
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2025-10-08 11:22:10 +02:00
Alex Rudenko 36e64d5ae2 feat: support timeouts in wait_for and navigations (#228)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/223
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/116
2025-10-01 10:48:53 +02:00
Alex Rudenko 205eef5cdf fix: reference to handle_dialog tool (#209) 2025-09-29 14:12:05 +00:00
Oz Tamir 59d81a3325 feat: add network request filtering by resource type (#162)
### Summary
This PR build upon #145 to also adds filtering by resource type to
`list_network_requests` (Also see: #137 and #107).

### Motivation
Agents often need specific request types (e.g., scripts, stylesheets,
images). Filtering reduces noise and improves performance.

### Changes
- **New parameter**: `resourceType` (array) to filter by resource types
- **Supported types**: all resource types supported by Puppeteer
- **Backward compatible**: when omitted, returns all requests

Filtering runs before pagination, so pagination applies to the filtered
results.
2025-09-26 13:17:58 +00:00
Nikolay Vitkov 15277541d8 chore: add additional EsLint rule (#147) 2025-09-25 17:20:01 +02:00
Oz Tamir 4c909bb8d7 feat: Add pagination list_network_requests (#145)
## Summary

This PR enhances the `list_network_requests` tool with pagination
support to handle large numbers of network requests efficiently. See
[this
issue](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/136).

## Motivation

In my experience, the `list_network_requests` tool frequently hits LLM
token limits on pages with many requests, making it unusable for modern
web applications. I wanted to add pagination to allow agents to be more
flexible and manage token limits on their own.

## Changes

### Pagination Support
- Added `pageSize` parameter to limit requests per call
- Added `pageToken` parameter for navigation between pages
- Added pagination metadata in responses (nextPageToken,
previousPageToken, startIndex, endIndex, total)

### Implementation Details
- **New utility**: `src/utils/pagination.ts` - generic pagination
function
- **Enhanced McpResponse**: Added pagination options to
`setIncludeNetworkRequests()`
- **Updated network tool**: Added pagination parameters to schema
- **Offset-based pagination**: Uses numeric tokens, handles invalid
tokens gracefully

## Testing
- Comprehensive test coverage for pagination scenarios
- Tests for first page, subsequent pages, invalid tokens, and edge cases
- All existing tests continue to pass

## Backward Compatibility
- If no pagination parameters are provided, the MCP will return all
requests (same as before)
2025-09-25 16:26:43 +02:00
Alex Rudenko 1a4ba4d3e0 fix: add a message indicating that no console messages exist (#91)
To avoid clients being confused about the lack of console messages.

Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/87
2025-09-23 22:10:46 +02:00
Nikolay Vitkov 0208bfdcf6 fix: expose timeout when Emulation is enabled (#73)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2025-09-23 11:17:53 +02:00
Alex Rudenko a9cf9d77f7 test: await dialog dismiss to prevent async activity errors (#70) 2025-09-22 17:11:04 +02:00
Alex Rudenko 014a8bc52e feat: validate uids (#37)
- generate snapshot IDs.
- change uid to be a string.
- validate that uid is not coming from a stale snapshot.
2025-09-16 11:54:35 +00:00
Alex Rudenko 31a0bdce26 feat: initial version 2025-09-11 12:46:05 +02:00