State of Web Vitals
io.github.corewebvitals/state-of-cwvVersion 1.0.1Core Web Vitals metrics by CMS, CDN, and framework — free remote MCP, no auth.
Status
Responds153 msAnswered our handshake without sign-in.- 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 msNo sign-in
Claude Code
claude mcp add --transport http state-of-cwv https://www.corewebvitals.io/api/state-of-cwv/mcpClaude 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/mcpCursor
{
"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.
Tools
3 tools
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. | No | Yes | Not declared | Not 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. | No | Yes | Not declared | Not 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. | No | Yes | Not declared | Not 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