@pipeworx/chrome-ux-report
Connect: https://gateway.pipeworx.io/chrome-ux-report/mcp · Install: one-click buttons
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Real-user Core Web Vitals for any site with enough traffic, from Google’s Chrome UX Report — the 75th-percentile Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift that actual Chrome visitors experienced over the trailing 28 days, plus the distribution behind each number and ~40 weeks of history.
This is the field dataset Google Search uses for its Core Web Vitals assessment, so it answers “is this site passing Core Web Vitals” — which no lab tool, Lighthouse included, can.
Tools
crux_query_origin(origin, form_factor?, metrics?)— the whole site.crux_query_url(url, form_factor?, metrics?)— one page.crux_history(origin? | url?, form_factor?, metrics?)— ~40 weekly points.
Auth
BYO with platform fallback: _apiKey, or PLATFORM_GOOGLE_API_KEY when that
secret is set on the gateway. There is no keyless path — the API answers an
unkeyed request with HTTP 403 “Method doesn’t allow unregistered callers”.
A key is free, instant and self-service, with no billing account required: create one at https://console.cloud.google.com/apis/credentials and enable the Chrome UX Report API at https://console.cloud.google.com/apis/library/chromeuxreport.googleapis.com. Quota is 150 queries/minute.
The same PLATFORM_GOOGLE_API_KEY serves the pagespeed-insights pack: one
Google Cloud key with both APIs enabled covers both.
Data sources
https://chromeuxreport.googleapis.com/v1/records:queryRecordhttps://chromeuxreport.googleapis.com/v1/records:queryHistoryRecord
Traps, verified live 2026-09-17
- The three credential failures look nothing alike. Missing key → HTTP 403
PERMISSION_DENIED“Method doesn’t allow unregistered callers”. Wrong key → HTTP 400INVALID_ARGUMENT“API key not valid”. Key whose project has not enabled the API → a third shape (SERVICE_DISABLED). Collapsing them into “auth failed” sends the caller after the wrong problem; each is reported separately. originandurlare different questions and exactly one may be sent. Both together is a 400. An origin must have no path.- HTTP 404 is the normal answer for most of the web. CrUX only publishes a
page or origin once it has enough opted-in Chrome traffic to be statistically
sound and non-identifying. That is the dataset’s answer, not an outage, and
this pack returns it as
found: false, reason: "insufficient_traffic". A URL can be absent while its origin is present. Narrower form factors have separate, higher thresholds. - The headline number is p75, not the mean. Search assesses at the 75th percentile; averaging the histogram gives a different, wrong number.
- CLS is unitless; every other metric is milliseconds. CrUX returns CLS p75 as a decimal string while timings are integers. (The PageSpeed Insights API returns the same metric as an integer ×100 — the two Google APIs disagree on the encoding of the same number.)
crux_historypoints are 28-day trailing windows. Consecutive weekly points overlap by 27 days, so a move in the series is a move in a rolling average and a one-week regression shows up damped across four points.
Tools
- crux_query_origin — Real-user Core Web Vitals for an entire website, from Google’s Chrome UX Report — the 75th-percentile Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift that actual Chrome
- crux_query_url — Real-user Core Web Vitals for ONE specific page, from Google’s Chrome UX Report — the 75th-percentile LCP, INP and CLS measured on actual Chrome visits to that exact URL over the trailing 28 days. Use
- crux_history — How a site’s or page’s real-user Core Web Vitals have moved over roughly the last 40 weeks, from Google’s Chrome UX Report history API. Returns a weekly series of 75th-percentile LCP, INP and CLS with
Tools
crux_history— How a site's or page's real-user Core Web Vitals have moved over roughly the last 40 weeks, from Google's Chrome UX Report history API. Returns a weekly series of 75th-percentile LCP, INP and CLS withcrux_query_origin— Real-user Core Web Vitals for an entire website, from Google's Chrome UX Report — the 75th-percentile Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift that actual Chromecrux_query_url— Real-user Core Web Vitals for ONE specific page, from Google's Chrome UX Report — the 75th-percentile LCP, INP and CLS measured on actual Chrome visits to that exact URL over the trailing 28 days. Use