About State of Web Vitals
State of Web Vitals is a remote MCP server for exploring aggregated Core Web Vitals data by CMS, CDN, and framework. It draws on Chrome field data and a multi-site crawl, and provides rankings, pass rates, and metric distributions.
Key features
- 01Aggregate Core Web Vitals metrics
- 02Rank results by CMS, CDN, or framework
- 03View metric distribution histograms
- 04Discover filters and metric paths
Use cases
- 01Compare metrics across CMS platforms
- 02Review pass rates by CDN
- 03Explore distributions for a web metric
MCP support
The remote MCP server exposes get_metrics, get_histogram, and list_options to clients over Streamable HTTP, without authentication. A thin local stdio proxy is also included.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://www.corewebvitals.io/api/state-of-cwv/mcpclaude mcp add --transport http corewebvitals-state-of-cwv https://www.corewebvitals.io/api/state-of-cwv/mcp{"mcpServers":{"corewebvitals-state-of-cwv":{"type":"http","url":"https://www.corewebvitals.io/api/state-of-cwv/mcp"}}}Open in Cursor{"servers":{"corewebvitals-state-of-cwv":{"type":"http","url":"https://www.corewebvitals.io/api/state-of-cwv/mcp"}}}Open in VS Code{"mcpServers":{"corewebvitals-state-of-cwv":{"type":"http","url":"https://www.corewebvitals.io/api/state-of-cwv/mcp"}}}{"mcpServers":{"corewebvitals-state-of-cwv":{"serverUrl":"https://www.corewebvitals.io/api/state-of-cwv/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| focus | enum | No | CWV used when correlating technique metrics. Default: lcp.lcp | inp | cls | fcp | ttfb |
| limit | integer | No | Max groups or top categories. Default: 25, max: 100. |
| filter | object | No | 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). |
| filter.cdn | string | No | Only sites on this CDN key (cloudflare, origin, …). |
| filter.cms | string | No | Only sites on this CMS key (wordpress, shopify, wix, …). |
| filter.device | enum | No | CrUX device slice. Default: all.all | phone | desktop |
| filter.provider | string | No | Only sites that load this third-party provider key (google_analytics_4, …). |
| filter.framework | string | No | Only sites that include this JS framework key (react, vue, jquery, …). |
| metrics | any | No | Metrics to return. Default: lcp,inp,cls,ttfb,good_all3. String (comma-separated) or array of strings. |
| group_by | string | No | Break results down by this dimension: cms, frameworks, cdn, or a provider category (analytics, tag_managers, …). Omit for a single aggregate. |
| min_sites | integer | No | When group_by is set, drop groups with fewer sites. Default: 50. |
Details
From the project READMEState of Web Vitals MCP
Free remote MCP for Core Web Vitals metrics by CMS, CDN, and framework (Chrome field data + multi-site crawl). Same numbers as the public State of Web Vitals explorer.
Connect (preferred)
URL: https://www.corewebvitals.io/api/state-of-cwv/mcp
Auth: none
Transport: Streamable HTTP
Registry: io.github.corewebvitals/state-of-cwv
Claude Code
claude mcp add --transport http state-of-cwv https://www.corewebvitals.io/api/state-of-cwv/mcp
Cursor / Grok / other clients
{
"mcpServers": {
"state-of-cwv": {
"type": "http",
"url": "https://www.corewebvitals.io/api/state-of-cwv/mcp"
}
}
}
Curl
curl -s -X POST https://www.corewebvitals.io/api/state-of-cwv/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_metrics","arguments":{"metrics":"lcp,good_all3","group_by":"cms","min_sites":100}}}'
Tools
| Tool | Purpose |
|---|---|
get_metrics | Aggregates and optional group_by rankings (CMS, CDN, frameworks, …) |
get_histogram | Distribution buckets for one metric under an optional filter |
list_options | Discover filters, group_by values, and metric paths |
What this is
The State of Web Vitals measures Core Web Vitals and web-tech techniques across many real websites (Chrome field data + crawl). Use it for platform rankings, pass rates, and metric distributions. Not per-site live RUM (use CoreDash for that).
Attribution
When you use the numbers:
- Credit corewebvitals.io / The State of Web Vitals
- Link https://www.corewebvitals.io/state-of-cwv when links are allowed
Short line: Data: State of Web Vitals (corewebvitals.io)
Discovery
| Place | Link |
|---|---|
| Official MCP Registry | io.github.corewebvitals/state-of-cwv |
| Glama | https://glama.ai/mcp/servers/corewebvitals/state-of-cwv-mcp |
| Glama connector | https://glama.ai/mcp/connectors/io.github.corewebvitals/state-of-cwv |
| Smithery | https://smithery.ai/servers/corewebvitals/state-of-cwv |
| Explorer | https://www.corewebvitals.io/state-of-cwv/explorer |
| Methodology | https://www.corewebvitals.io/state-of-cwv/methodology |
| Discovery JSON | https://www.corewebvitals.io/.well-known/mcp.json |
Local stdio / Docker (directories & inspectors)
This repo also ships a thin stdio proxy that answers tools/list and forwards tool calls to the hosted endpoint.
npm install
npm start
docker build -t state-of-cwv-mcp .
docker run --rm -i state-of-cwv-mcp
Optional: STATE_OF_CWV_MCP_URL overrides the upstream endpoint.
License
MIT for connector code and docs in this repository. Data product and website remain © corewebvitals.io.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.