Measures pages with repeated PageSpeed runs, reports score variability, diagnoses issues, and compares results with real-user data.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by PageSpeed Insights MCP.
reportEverything in one call, and the one most people want. Scores with their spread, real-user data if Google has any, and what is failing ranked by what fixing it is worth. Returns a self-contained HTML page as well, to save or forward. Comes back as a job id.
check_pagespeedScores only. Median of N distinct analyses with the spread. `urls`, `strategy` (mobile, desktop or both), `runs` (1-10, default 5). Anything past a single analysis comes back as a job id.
diagnose_pageWhat is failing, ranked. Only reports a fault that failed in every analysis, because audits are as noisy as scores. Comes back as a job id.
field_dataReal-user data from the Chrome UX Report. `urls`, and `history` for the weekly p75 series.
explain_lcpWhich of four phases owns a slow Largest Contentful Paint: server response, the wait before the browser starts fetching the largest image, the download, then the wait before it is painted. One call, answers at once.
compareDid the change actually help. Measures now and compares against a saved baseline, giving a verdict only where the two ranges do not overlap. Comes back as a job id.
PageSpeed Insights MCP MCP server lets an MCP-speaking assistant measure web pages through Google PageSpeed Insights. It reports a median across multiple distinct analyses and places the observed spread beside scores and metrics. This makes variation visible rather than treating one Lighthouse result as a stable fact.
The server also queries the Chrome UX Report when data is available. Lab measurements and real-user results remain separate: PageSpeed analyses describe a controlled test, while Chrome UX Report data describes experiences from real Chrome visitors. If no field data exists, the result states that instead of substituting a lab score.
Use it to check a page before and after a deployment, investigate a slow Largest Contentful Paint, or determine whether a reported regression exceeds the measurement range.
A score request can run between one and ten analyses, with five as the default for check_pagespeed. The server seeks distinct results and excludes cached replays where possible. It reports the number of usable analyses and their minimum-to-maximum range, rather than padding a result when time or quota prevents the requested count.
Long-running operations return a job ID. Call check_status with that ID to collect the result; omitting the ID retrieves the most recent job. The report, check_pagespeed, diagnose_page, and compare operations can use this pattern.
The comparison workflow stores a baseline, then evaluates a later measurement against it. A change receives a verdict only when the two observed ranges do not overlap. explain_lcp breaks LCP delay into server response, resource discovery, resource download, and paint wait phases.
You need Python 3.9 or newer, Git, and a Google API key. Enable the PageSpeed Insights API in Google Cloud before creating the key. Enable the Chrome UX Report API as well if field data and its weekly history are required; the same key can be used for both APIs.
Clone the repository into a permanent location and run the setup script:
The setup process opens a local browser page for entering the key, validates it with Google, and provides the MCP connection details. It does not require a virtual environment, pip, or compiled dependencies. After adding the generated configuration to an MCP client, restart that client so it loads the server.
report: Returns scores, variability, available field data, ranked failures, and a self-contained HTML report.check_pagespeed: Measures mobile, desktop, or both strategies and returns score statistics.diagnose_page: Lists faults that fail consistently across the analyses.field_data: Retrieves Chrome UX Report data and optional weekly p75 history for up to six months.explain_lcp: Identifies which of four LCP phases contributes the delay.compare: Compares a current measurement with a saved baseline.check_status: Retrieves results associated with an asynchronous job.diagnose: Checks the API key, Chrome UX Report access, and stored baselines without exposing the key.Results depend on Google’s available APIs, quota, and cached analysis behavior. Chrome UX Report information is not guaranteed for every site. Lab results and field data answer different questions and should not be merged into one performance number.
The server uses a Google API key, and API restrictions must permit the enabled services. Requests beyond a single analysis may be asynchronous, so clients need to handle the returned job ID and poll with check_status.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/pagespeed-insights-mcp)<a href="https://allmcps.com/mcp/pagespeed-insights-mcp"><img src="https://allmcps.com/api/badge/pagespeed-insights-mcp?style=directory" alt="PageSpeed Insights MCP on AllMCPs" /></a>