Real-user Core Web Vitals from the Chrome UX Report (CrUX) API for any origin or URL.
Google CrUX MCP (io.github.A1-x-Tech/mcp-google-crux)
This MCP server provides real-user Core Web Vitals data from the Chrome UX Report (CrUX) API for any origin or URL. It exposes CrUX-based metrics so clients can retrieve performance-related information grounded in real user experiences.
🛠️ Key Features
Real-user Core Web Vitals sourced from the Chrome UX Report (CrUX) API
Supports querying for any origin or URL
🚀 Use Cases
Fetching real-user web performance signals for a given origin or URL
Integrating Core Web Vitals data into tooling via MCP
⚡ Developer Benefits
Uses CrUX real-user measurements as the data source
A named MCP server package with a public repository and CI workflow
⚠️ Limitations
Scope is limited to CrUX real-user Core Web Vitals; no other performance datasets are described
A1 Google CrUX MCP brings real-user Core Web Vitals data into an AI app. Check whether a public site or page passes LCP, INP and CLS, compare mobile with desktop, and see how the metrics changed over time.
It reads Google’s Chrome UX Report dataset — field data collected from Chrome users, not a synthetic speed test or a way to change your site.
6 read-only tools. Core Web Vitals assessment, device comparison, origin-versus-page comparison, 40-week trend and raw latest or historical records.
Real-user data. It is the same CrUX field data used by PageSpeed Insights and Google’s Core Web Vitals signals.
Clear availability boundary. Only public origins and URLs with enough real-user traffic have data; no_data is a valid result.
Known quota cost. CrUX allows 150 queries per minute per project. Device comparison makes four API calls; origin-versus-page makes two.
Start with a read-only question:
Does https://example.com pass Core Web Vitals on mobile?
In Settings → MCP servers, select Add server, choose STDIO, enter the command npx -y mcp-google-crux@latest and environment variables CRUX_API_KEY, then select Save and Restart.
The current official path is Settings → Extensions. For a custom desktop extension, open Advanced settings → Extension Developer → Install Extension…, select a .mcpb file and follow the prompts.
This repository currently publishes an npm stdio package and does not contain a .mcpb bundle. For Claude Desktop builds that still support local configuration, use the following JSON stdio configuration as a fallback:
In those builds, save it to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.
Add {"mcpServers":{"google-crux":{"type":"stdio","command":"npx","args":["-y","mcp-google-crux@latest"],"env":{"CRUX_API_KEY":"your_key"}}}} to ~/.cursor/mcp.json on macOS/Linux or %USERPROFILE%\.cursor\mcp.json on Windows. Cursor MCP documentation
VS Code
Run MCP: Open User Configuration and add:
json
{"servers":{"google-crux":{"type":"stdio","command":"npx","args":["-y","mcp-google-crux@latest"],"env":{"CRUX_API_KEY":"${input:crux_api_key}"}}},"inputs":[{"type":"promptString","id":"crux_api_key","description":"Google Cloud API key","password":true}]}
Does this public origin or URL pass Core Web Vitals?
Compare phone, desktop, tablet and all-device results.
Is this page faster or slower than the site average?
How did LCP, INP and CLS change during the last 25 weeks?
Show the raw CrUX histograms and percentiles for a technical review.
How to read CrUX data
CrUX reports a rolling 28-day window, updated daily. Historical data is weekly and updates on Mondays. The key value is p75: 75% of observed visits are at or below it. get_core_web_vitals interprets metric thresholds for you; raw record tools expose full histograms and density fractions.
No data does not mean the site is broken. It means Google has no sufficiently large public Chrome-user sample for that origin, URL or device group. Tablets and individual URLs often have no data.
Getting access
In Google Cloud Console, create or select a project; no billing account is needed for CrUX.
Create an API key in APIs & Services → Credentials.
Restrict the key to Chrome UX Report API and pass it as CRUX_API_KEY.
The key is stored in the MCP client configuration and is sent in the API request URL, so treat it as a password.
Configuration
Variable
Required
Description
CRUX_API_KEY
Yes
Google Cloud key with Chrome UX Report API enabled.
CRUX_API_BASE
No
API base URL override.
CRUX_TIMEOUT_MS
No
Per-request timeout; default 30000 ms.
CRUX_MAX_RETRIES
No
Retries for 429, 5xx and network failures; default 3.
Data, limits and background work
Read-only public dataset. The server cannot alter sites, Search Console, CrUX records or Google rankings.
Quota-aware retries. It retries 429, 5xx and network errors with backoff. Keep compound comparisons in mind when budgeting the 150 queries per minute project quota.
No background monitoring. The server works only while called. If your AI app supports scheduled tasks, it can create a recurring performance report.
Anonymous telemetry. It sends installation and version data plus tool names, never API keys, queried URLs, results, arguments or prompts. Set ASKADS_TELEMETRY=0 to opt out.