@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:queryRecord
  • https://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 400 INVALID_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.
  • origin and url are 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_history points 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 with
  • 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

Regenerated from source · build September 18, 2026