
WebPerf Snippets MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude or Cursor measure Core Web Vitals and other page speed problems on any URL, using 56 tested snippets in a hidden Chromium browser.
WebPerf Snippets runs fixed, tested measurement scripts, so your assistant reports real numbers instead of writing its own measuring code. The MCP server is a mode of the webperf-snippets command-line tool, and it runs on your machine. It opens pages in a hidden Chromium browser, including local dev servers.
You need Node.js and the Playwright Chromium download, which npx does not fetch for you. A free Chrome UX Report API key is only needed for real-user data. This is a community project by nucliweb.
Good for
- Front-end developers debugging slow LCP, CLS or INP
- SEO and performance consultants auditing client pages
- Teams that want the same measurement code every time
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Runs as a local process on your computer, so ChatGPT cannot reach it.
Runs as a local process on your computer, so n8n cannot reach it.
Install WebPerf Snippets MCP
Claude Code
- 1
Copy this prompt.
Add the WebPerf Snippets MCP server to Claude Code. Run this command: claude mcp add webperf -- npx -y webperf-snippets mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js 20.12+, Playwright Chromium.
Read-only mode: There is no read-only mode. Only the interact tool can click and type.
Before first use, run npx playwright install chromium once, because npx does not download the browser. The server starts with the mcp subcommand of the webperf-snippets package, which the plain package name alone does not do. Only get_crux needs a CRUX_API_KEY. Configs for clients other than Claude Code are adapted from the documented command.
From the vendor's docs. Source.
Tools
Measures one performance metric on a web page
Opens a page in a hidden Chromium browser, runs one tested measurement such as LCP or TTFB, and returns the result as structured data. Interaction-based snippets need open_page instead.
Try: “Run the LCP-Subparts snippet on https://example.com on a mobile screen.”
Network ·
run_snippetRuns a set of related measurements and follows up on problems
Runs a chain of snippets for core web vitals, loading, interaction or a full audit, and adds follow-up snippets when a result looks poor, such as a slow LCP.
Try: “Do a full performance audit of https://example.com.”
Network ·
run_workflowLists the available measurements
Returns the names, categories and short aliases of the performance snippets the server can run, so the assistant can pick the right one.
Try: “Which snippets can you run for images?”
Read ·
list_snippetsGets real-user speed data for a page from Chrome's UX report
Fetches the 75th percentile LCP, CLS and INP that real Chrome users had over 28 days, with an optional weekly trend. It needs a free Chrome UX Report API key set on the server.
Try: “What do real users see for LCP on https://example.com on phones, with a 12-week trend?”
Network ·
get_cruxOpens a page that stays open so interactions can be recorded
Starts a hidden browser page and installs the snippets that record interactions. At most 3 pages stay open, and one closes after 10 minutes without use.
Try: “Open https://example.com and track INP so I can test the menu.”
Network ·
open_pageClicks, types, hovers and scrolls on an open page
Runs up to 50 steps on a page you opened, such as click, type, hover, scroll and wait. A click can submit a form or change data on the site, so it is not read-only.
Try: “On the open page, click the Menu button, then scroll down 600 pixels.”
Write ·
interactReads what the tracking snippets recorded
Returns what the interaction snippets recorded on an open page so far, such as INP after you clicked around.
Try: “What did the tracking snippets record after those clicks?”
Read ·
read_resultsShows the full result behind a summary
Large results come back as summaries. This returns the whole object for one snippet of that run without measuring again.
Try: “Show me the full details of the LCP result from the last run.”
Read ·
get_detailsCloses an open page
Closes a page opened earlier. Closing a page that is already closed is not an error.
Try: “Close the page you opened.”
Write ·
close_page
Read from the source code
Permissions
medium risk · 3 things to watch
Medium risk
The server opens any web address you give it in a hidden browser, and one tool can click and type on those pages. Keep it to pages you trust: page content flows back to the assistant, so a hostile page could try to steer it.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
One tool can click and type on pages
The interact tool runs click, type and scroll steps, and the source says a click can submit a form or change data on the site. The browser starts clean with no logins, but do not point it at sites where you want nothing changed. github.com
Page content comes back to the assistant
Selectors, URLs and alt texts from the measured page are returned to the assistant. The server tells the assistant to treat them as data, not instructions, but a hostile page could still try to steer it. github.com
It can open local and private addresses
The URL check only requires http or https, and the tool description says local dev servers work. Measure only addresses you mean to. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | Any http or https URL you ask it to measure. Chrome UX Report API (only for get_crux) |
|---|---|
| Sign-in and keys | Optional CrUX API key in the server's environment variable, set in your client's config. |
| Scopes |
|
Questions
Is the WebPerf Snippets MCP server official?
No. It is a community project by nucliweb, not made by Google or the Chrome team. It is listed in the MCP Registry as io.github.nucliweb/webperf-snippets.
What do I need besides the install command?
You need Node.js 20.12 or newer and the Playwright Chromium browser, which npx does not download. Run npx playwright install chromium once. Without it the tools tell you the same command.
Do I need an API key?
No, except for real-user data. Only the get_crux tool needs a free Chrome UX Report API key from the Google Cloud console, set as CRUX_API_KEY in your client config.
Can I use it in ChatGPT or n8n?
No. It runs as a local process on your computer, so it works in apps that start local servers such as Claude Code, Claude Desktop, Cursor, VS Code and Gemini CLI.
Can it measure a page on localhost?
Yes. The tool description says local development servers such as http://localhost:3000 work.
Can it be made read-only?
No switch exists. Only the interact tool can click and type, so you can tell your assistant not to use it, but the server does not enforce that.
Can I log in to a site before measuring?
Not with this server: its pages open in a fresh hidden browser. The README points to the Agent Skills with Chrome DevTools MCP for measuring pages in your own logged-in Chrome.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
webperf-snippets- Registry
- npm
- Transport
- stdio
- Version
- 1.8.0
- License
- MIT
- Last commit
- Oct 31, 2026
- Open issues
- 2
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.