Puppeteer MCP runs a headless Chromium that the model controls. Useful for scraping JS-rendered pages, testing flows, taking screenshots of staging deploys, and verifying that "did the deploy actually update the homepage" without leaving Claude.

Navigate, click, screenshot, and scrape live web pages.

Use Case

Verifying a Vercel preview deploy actually shows the new content,Scraping a JS-heavy page that fetch + readability cannot parse,Testing a login flow end-to-end with screenshot evidence,Capturing competitor pages for design or pricing comparison

When Not to Use

Anti-bot protected sites (Cloudflare Turnstile, hCaptcha) — will fail,When you only need page text — use a Fetch MCP, much lighter,Long-running monitoring — Puppeteer is per-call, not persistent

Common Pitfalls

  • First call downloads ~150MB Chromium — patience on initial install
  • Headless detection on some sites — set userAgent or use Playwright instead
  • Screenshots over 1MB get truncated in some clients — scope to viewport