Serveur MCP

State of Web Vitals

io.github.corewebvitals/state-of-cwv
Données et analytique Outils développeur Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Returns aggregated Core Web Vitals and technique metrics, distributions, filters, and comparisons by CMS, CDN, framework, and provider.

get_histogram
What 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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'required': ['metric'], 'properties': {'filter': {'type': 'object', 'properties': {'cdn': {'type': 'string', 'description': 'Only sites on this CDN key (cloudflare, origin, …).'}, 'cms': {'type': 'string', 'description': 'Only sites on this CMS key (wordpress, shopify, wix, …).'}, 'device': {'enum': ['all', 'phone', 'desktop'], 'type': 'string', 'description': 'CrUX device slice. Default: all.'}, 'provider': {'type': 'string', 'description': 'Only sites that load this third-party provider key (google_analytics_4, …).'}, 'framework': {'type': 'string', 'description': 'Only sites that include this JS framework key (react, vue, jquery, …).'}}, 'description': 'AND filters. Omit for all sites in the dataset. Keys: device (all|phone|desktop), cms, framework, cdn, provider (key), provider_category (e.g. analytics — use with provider or alone is not enough; prefer group_by for rankings).', 'additionalProperties': False}, 'metric': {'type': 'string', 'description': 'lcp | inp | cls | fcp | ttfb, or a contract scalar path.'}}}
get_metrics
What 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 - 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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'focus': {'enum': ['lcp', 'inp', 'cls', 'fcp', 'ttfb'], 'type': 'string', 'description': 'CWV used when correlating technique metrics. Default: lcp.'}, 'limit': {'type': 'integer', 'description': 'Max groups or top categories. Default: 25, max: 100.'}, 'filter': {'type': 'object', 'properties': {'cdn': {'type': 'string', 'description': 'Only sites on this CDN key (cloudflare, origin, …).'}, 'cms': {'type': 'string', 'description': 'Only sites on this CMS key (wordpress, shopify, wix, …).'}, 'device': {'enum': ['all', 'phone', 'desktop'], 'type': 'string', 'description': 'CrUX device slice. Default: all.'}, 'provider': {'type': 'string', 'description': 'Only sites that load this third-party provider key (google_analytics_4, …).'}, 'framework': {'type': 'string', 'description': 'Only sites that include this JS framework key (react, vue, jquery, …).'}}, 'description': 'AND filters. Omit for all sites in the dataset. Keys: device (all|phone|desktop), cms, framework, cdn, provider (key), provider_category (e.g. analytics — use with provider or alone is not enough; prefer group_by for rankings).', 'additionalProperties': False}, 'metrics': {'description': 'Metrics to return. Default: lcp,inp,cls,ttfb,good_all3. String (comma-separated) or array of strings.'}, 'group_by': {'type': 'string', 'description': 'Break results down by this dimension: cms, frameworks, cdn, or a provider category (analytics, tag_managers, …). Omit for a single aggregate.'}, 'min_sites': {'type': 'integer', 'description': 'When group_by is set, drop groups with fewer sites. Default: 50.'}}}
list_options
Discover 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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'Optional contract kind: scalar, boolean, categorical, set, weighted_set, measures.'}, 'include_paths': {'type': 'boolean', 'description': 'Include full contract path list. Default true.'}}}
Ajouté
list_options
17 September 2026 12:41
Ajouté
get_histogram
17 September 2026 12:41
Ajouté
get_metrics
17 September 2026 12:41