PlugWiki
WebPerf Snippets logo

WebPerf Snippets MCP Server: Setup for Claude, Cursor and Other Apps

CommunityLocal
Getnpmwebperf-snippetsnucliweb/webperf-snippets

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.

Install WebPerf Snippets MCP

Claude Code

  1. 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. 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_snippet

  • Runs 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_workflow

  • Lists 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_snippets

  • Gets 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_crux

  • Opens 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_page

  • Clicks, 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 · interact

  • Reads 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_results

  • Shows 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_details

  • Closes 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 toAny http or https URL you ask it to measure. Chrome UX Report API (only for get_crux)
Sign-in and keysOptional CrUX API key in the server's environment variable, set in your client's config.
Scopes
  • CRUX_API_KEY (optional, Chrome UX Report API)

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

WebsiteGitHubnpmOfficial MCP RegistryChangelogIssues

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 3
  1. README.md · github.com
  2. server.js · github.com
  3. MCP · webperf-snippets.net

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 2, 2026.