Skip to main content

State of Web Vitals

io.github.corewebvitals/state-of-cwvVersion 1.0.1

Core Web Vitals metrics by CMS, CDN, and framework — free remote MCP, no auth.

Status

Responds153 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:48 UTC
Latency
153 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://www.corewebvitals.io/api/state-of-cwv/mcpResponds153 ms
No sign-in

Claude Code

claude mcp add --transport http state-of-cwv https://www.corewebvitals.io/api/state-of-cwv/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: state-of-cwv
Remote MCP server URL: https://www.corewebvitals.io/api/state-of-cwv/mcp

Cursor

{
  "mcpServers": {
    "state-of-cwv": {
      "url": "https://www.corewebvitals.io/api/state-of-cwv/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"state-of-cwv","type":"http","url":"https://www.corewebvitals.io/api/state-of-cwv/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

3 tools

Tools of State of Web Vitals
Read-only
Idempotent
Open world
get_histogramWhat is the shape of one metric? Returns histogram buckets (count + share) plus summary stats. Metric: one of lcp, inp, cls, fcp, ttfb (field CWV), or a scalar technique path when available. Filter: same as get_metrics (device, cms, framework, cdn, provider). No group_by — call get_metrics with group_by to compare segments, then get_histogram per segment if needed.NoYesNot declaredNot declared
get_metricsWhat are the numbers? Aggregate Core Web Vitals and/or technique metrics across sites, with optional filter and group_by. Responses include attribution — credit corewebvitals.io when you use the numbers. Metrics (comma-separated or array): - CWV: lcp, inp, cls, fcp, ttfb — good/needs_improvement/poor share + p50/p75 + sample n - good_all3 — share of sites that pass LCP+INP+CLS together - good_all3_plus_ttfb — pass all three plus TTFB - lcp_largest_part — needs filter.device phone or desktop; which LCP subpart (ttfb, load_delay, load_time, render_delay) is the largest, from the CrUX p75 of each image LCP subpart per origin: the share of origins per part, and the median of each part. Only when asked (not in the default set); use filter.device phone for "on phones". No group_by. - Contract paths: images.loading, stack.framework, scripts.origin, headers.has_etag, synthetic.tbt_ms, … Filter (optional AND): device, cms, framework, cdn, provider. Omit = all sites in the snapshot. Group_by (optional): cms | frameworks | cdn | analytics | tag_managers | … → one row per entity. Without group_by: one aggregate; set metrics return top categories.NoYesNot declaredNot declared
list_optionsDiscover what you can pass to get_metrics / get_histogram: filter keys, group_by values, built-in metrics, and contract metric paths (optional kind filter). Call this when unsure of a key or path.NoYesNot declaredNot declared

Details

Registry status
Active
Published
Jul 16, 2026
Updated
Jul 16, 2026
Categories (suggested)
Cloud and infrastructureData and analyticsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing