文件历史

提交图

20 次代码提交

作者 SHA1 备注 提交日期
Alex Rudenko 58ba174273 refactor: move remaining McpContext getters (#2342)
Moves various getters to McpPage.
2026-07-10 12:46:01 +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 b39131172b chore: reflect emulated device in CrUX data (#2131)
CrUX data returned with the performance tool now reflects the emulated
device

Closes: #1813
2026-05-27 14:49:41 +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 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
Paul Irish b747f9d74a feat: Integrate CrUX data into performance trace summaries (#733)
We upgrade the performance trace tools to include real-user experience
data from the Chrome User Experience Report (CrUX).

https://developer.chrome.com/docs/crux
https://developer.chrome.com/docs/crux/methodology

### Deets

* When a trace is stopped, the server now extracts the primary
navigation URLs from the trace (determined by insightSets).
* It calls the public CrUX API to fetch field metrics (LCP, INP, CLS)
for each unique URL/Origin.
* The formatting of crux data is handled by upstream TraceFormatter, but
it looks like this:

```md
Metrics (field / real users):
  - LCP: 2595 ms (scope: url)
  - LCP breakdown:
    - TTFB: 1273 ms (scope: url)
    - Load delay: 86 ms (scope: url)
    - Load duration: 451 ms (scope: url)
    - Render delay: 786 ms (scope: url)
  - INP: 140 ms (scope: url)
  - CLS: 0.06 (scope: url)
  - The above data is from CrUX–Chrome User Experience Report. It's how the page performs for real users.
  - The values shown above are the p75 measure of all real Chrome users
  - The scope indicates if the data came from the entire origin, or a specific url
  - Lab metrics describe how this specific page load performed, while field metrics are an aggregation of results from real-world users. Best practice is to prioritize metrics that are bad in field data. Lab metrics may be better or worse than fields metrics depending on the developer's machine, network, or the actions performed while tracing.
 ```
 
**Privacy Considerations:**

*   Updates the server README to inform users that performance analysis tools may send trace URLs to the Google CrUX API.
*   Adds a notification message to the server startup logs regarding the CrUX API interaction.


Doc: go/crux-in-bifrost 
Fixes b/446630695

---------

Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2026-02-05 07:27:15 +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 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 68ae2f8253 feat: support filePath in performance tools (#686)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/680
2026-01-13 11:22:14 +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
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
dependabot[bot] 247e1b6a71 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1539728 to 1.0.1541169 in the bundled-devtools group (#536)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1539728 to 1.0.1541169
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/393435aef80c8bff3fa7ed835992704ea5a7339e"><code>393435a</code></a>
Update Chrome (for Testing) PIN</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/59cc38b28a0697eb6908ba9e6c2502edb08fe349"><code>59cc38b</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/67a631561ba193aaf72303215d5ef5bd2def4811"><code>67a6315</code></a>
[RPP] Simplify insight set id</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/941f21add00a7a522cb5dfa13c99b032f3c782be"><code>941f21a</code></a>
[AI] Present trace facts grouped by insight set</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8ae5a850eb98c42fd882dab3a59115e6f2d6a8ef"><code>8ae5a85</code></a>
Revert from <code>fetch</code> back to <code>http.request</code> in
resultsdb.ts</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/774cfe78fe219714e5d89354d7815ac91342dc2a"><code>774cfe7</code></a>
Update Chrome (for Testing) PIN</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/76cbb2c5b1627eb6903b8ad9f8a93ef77f442ed9"><code>76cbb2c</code></a>
[eslint] Add <code>eslint-plugin-lit</code></li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/92be0b6fde17878efced6c91330b29b3adefe6a9"><code>92be0b6</code></a>
Replace <code>outline-width: 0</code> with <code>outline-style:
none</code></li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/fa72d9702d35727a48d567a67df26a23e6e2ef74"><code>fa72d97</code></a>
Move affected count updates out of list rendering</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/baec26cf66c7dae30594b4a03f696fb3f17fa337"><code>baec26c</code></a>
Roll browser-protocol</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1539728...v1.0.1541169">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1539728&new-version=1.0.1541169)](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-11-10 14:23:08 +00:00
Connor Clark 36504d29ca feat: add insightSetId to performance_analyze_insight (#518)
This should land with / after
https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/508
2025-11-04 08:18:04 +00:00
leslie liu 8200194c80 fix: guard performance_stop_trace when tracing inactive (#295)
PR Description

- Fix the stop-trace guard to call context.isRunningPerformanceTrace()
so we skip page.tracing.stop() when nothing is recording, avoiding the
Puppeteer error that bubbled up
    to users.
- Extend the “does nothing” test to stub tracing.stop() and assert it
stays untouched, guaranteeing the guard path is covered.
2025-10-07 12:04:41 +00:00
Nikolay Vitkov 15277541d8 chore: add additional EsLint rule (#147) 2025-09-25 17:20:01 +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
Jack Franklin e8fb30c1bf fix: rework performance parsing & error handling (#75)
This PR tidies up the code around performance parsing and what we
respond with from our tools. It introduces the ability to have no
Insights from a trace (relatively rare, but can happen), and also adds
more information to the output in the event that something went wrong.

Previously we just logged errors, but if we respond with them here that
will also help users report issues and increase the chances that we can
debug them.
2025-09-23 15:42:35 +02:00
Jack Franklin 21e175b862 feat: add performance_analyze_insight tool. (#42) 2025-09-17 12:25:40 +00:00
Alex Rudenko 31a0bdce26 feat: initial version 2025-09-11 12:46:05 +02:00