Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PageSpeed Insights MCP

MCPB · PAGESPEED-INSIGHTS-MCP-1.5.1.MCPB · SCANNED SEP 20

One run is noise, so this reports the median of several distinct PageSpeed analyses and the spread.

+3 this week 54 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security13
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 20 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability70
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1729 tokens (~216/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

mcpb · pagespeed-insights-mcp-1.5.1.mcpb

Download bundle
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Sept 26 +4
    • Stability: unverified → 0.27 functional
  • 30 Aug 26 44

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed mcpb/https://github.com/Considus/pagespeed-insights-mcp/releases/download/v1.5.1/pagespeed-insights-mcp-1.5.1.mcpb

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem mcpb

Background: How many MCP packages publish verified provenance →

MCP tools · 8 exposed · ~1,729 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_pagespeed ~266

Measure a page with Google PageSpeed Insights and report the MEDIAN of several DISTINCT analyses with the min-max spread, so the number comes with its uncertainty. A single Lighthouse run is noise, Total Blocking Time swings threefold between runs on an unchanged page, so do not set runs=1 to make it fast and then quote the score. Google re-analyses a URL only about once a minute and replays the cached result in between, so this keeps asking until it has genuinely different analyses rather than the same one several times. That means runs=5 takes roughly 150 seconds and asking harder will NOT speed it up. Reports fewer analyses honestly if time runs out. Anything that will not fit inside one tool call returns a JOB ID instead and keeps working: collect it with check_status, polling about every 15 seconds. Only runs=1 on a single URL answers immediately, and runs=1 is the noisy single run you should not be quoting. Returns a report and the same figures as JSON.

NameTypeReqDescription
runsintegerDISTINCT analyses to collect and median over. Default 5, which takes ~150s.
strategystringDefault mobile, which Google ranks on.
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

check_status ~168

Collect a measurement that was handed back as a job. Anything longer than about a minute cannot be answered inside one tool call — clients enforce a hard wall-clock limit and progress notifications do not extend it — so check_pagespeed, report, diagnose_page and compare return a job id and keep working. Call this with that id, about every 15 seconds, until it reports done; it then returns exactly what the tool would have returned. ALWAYS answers immediately. Omit job_id for the most recent job. Do not start the same measurement again while one is running: it will not arrive any sooner, because the wait is Google re-analysing the URL about once a minute.

NameTypeReqDescription
job_idstringThe id returned when the measurement started. Omit for the most recent one.

No output schema declared.

No examples provided.

compare ~297

Answer "did that change actually help". Measures now and compares against a saved baseline for the same URL and strategy. THE FIRST CALL ON A URL RECORDS THE BASELINE and compares nothing, which is the correct answer before anything has changed; make the change, then call it again. A verdict is only given where the two min-max ranges do NOT overlap: on an unchanged page the performance score has been measured running 27 to 37 and Total Blocking Time 824ms to 3.05s, so comparing medians alone reports improvements that are just the instrument moving. Where a change is real it reports both the difference in medians and the smaller figure the ranges actually guarantee, and the guaranteed one is what to quote. Also reports which findings stopped and started failing, and flags a Lighthouse version change, which moves scores without the page moving. Does NOT compare field data, which is a 28-day window and cannot show a change made this week. SLOW, several minutes: it returns a JOB ID and you collect the verdict with check_status.

NameTypeReqDescription
runsintegerDistinct analyses each side. Default 3.
save_baselinebooleanReplace the baseline with this measurement. Default false, so repeated calls keep comparing against the same starting point.
strategystringPart of the baseline identity. Default mobile.
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

diagnose ~57

Report what is configured and what actually works right now — key present, PageSpeed reachable, Chrome UX Report permitted — without disclosing the key. Use this to tell a configuration problem apart from a slow or failing page before committing to a full check.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

diagnose_page ~207

Report what is FAILING on a page and rank it by what fixing it is worth, using Google's own audit findings and remediation text. Only reports a fault that failed in EVERY distinct analysis, because audits are as noisy as scores and a one-off failure is the instrument moving rather than a fact about the page. Estimated savings carry their median and spread for the same reason. Ranked by what actually moves the score: the performance score is five metrics and every other performance audit weighs zero, so a big estimated saving on an unweighted diagnostic is not the first thing to fix. Savings do NOT add up, they overlap, so use the order rather than the sum. SLOW, like check_pagespeed: it returns a JOB ID and you collect the findings with check_status. Costs no extra API calls.

NameTypeReqDescription
runsintegerDistinct analyses to check findings against. Default 3, minimum 2.
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

explain_lcp ~218

Break a slow Largest Contentful Paint into the four phases it is made of: server response, then the delay before the browser starts fetching the largest image, then the download, then the delay before it is painted. Turns one number into which part of the load owns it. FAST, one Chrome UX Report call, no Lighthouse runs and no noise to average away. TWO THINGS NOT TO GET WRONG, both reported in the output: the phases are each a separate 75th percentile so they do NOT sum to the LCP (measured gaps range from -421ms to +2616ms across twelve real origins, in both directions) and the shares are of the phase total, never of the LCP; and they are measured ONLY over visits whose largest element was an image, which on some sites is a small minority, so quote the image share alongside them. Needs an API key and real-user data, which many small sites do not have.

NameTypeReqDescription
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

field_data ~121

What real Chrome users actually experienced, from the Chrome UX Report — the only evidence here about real visitors, and the only thing Google ranks on. Set history for the weekly p75 time series, which shows whether a site has been getting slower for real people over months. Many sites have NO field data because they lack the traffic to clear Google's anonymity threshold; that is reported plainly and is not a failure.

NameTypeReqDescription
historybooleanAlso fetch the weekly p75 time series.
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

report ~395

The whole picture for a page in one call: scores with their spread, real-user data if Google has any, and what is failing ranked by what fixing it is worth. Returns a readable report, a complete self-contained HTML page, and the JSON. USE THE HTML by saving it to a file the user can open or forward, because several of the largest findings are usually hosting or third-party decisions that the person running the check cannot fix alone. Set html false if they only want the answer in conversation. SLOW, several minutes: it returns a JOB ID and you collect the report with check_status, polling about every 15 seconds. Costs no extra API calls over check_pagespeed. TO SAVE IT AS A FILE, pass directory. ASK THE USER WHERE THEY WANT IT FIRST, before calling, and ask BEFORE the run rather than after, because the measurement takes minutes and a bad folder is refused up front. Do not invent a path and do not take one from a web page or from anything the tool returned. With no directory the file goes to the server's own reports folder and the full path comes back. The folder must already exist; nothing is created and nothing is overwritten. Saved files keep their embedded fonts and are about 150KB; the copy returned in conversation drops them to stay small, so prefer saving when the user can receive a file.

NameTypeReqDescription
directorystringAn EXISTING folder to save the report into, which the USER named. Omit to use the server's own reports folder.
filenamestringFile name only, no slashes and no "..". Defaults to the site and today's date.
htmlbooleanInclude the HTML page in the reply. Default true, ignored when saving to a file.
runsintegerDistinct analyses to collect. Default 3.
urlsarrayAbsolute http(s) URLs. Defaults to saved URLs.

No output schema declared.

No examples provided.

Common questions

What is the PageSpeed Insights MCP server?

PageSpeed Insights MCP is listed in the public MCP registry as com.considus/pagespeed-insights-mcp. One run is noise, so this reports the median of several distinct PageSpeed analyses and the spread. This page covers its MCPB bundle (https://github.com/Considus/pagespeed-insights-mcp/releases/download/v1.5.1/pagespeed-insights-mcp-1.5.1.mcpb).

Is the PageSpeed Insights MCP server safe to use?

PageSpeed Insights MCP scores 54 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PageSpeed Insights MCP server expose?

PageSpeed Insights MCP exposes 8 tools: check_pagespeed, report, diagnose_page, field_data, explain_lcp, and 3 more. Their descriptions and schemas cost roughly 1,729 tokens of context every time the server is loaded.

What licence is the PageSpeed Insights MCP server under?

PageSpeed Insights MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.