Puppeteer MCP is the older, screenshot-friendly browser-automation server. Where Playwright MCP bets on accessibility-tree introspection (cheaper, more deterministic), Puppeteer MCP gives the agent screenshots + DOM + click-by-coordinate as the native interaction model.
What it produces: navigate, screenshot, click, fill, evaluate (run arbitrary JS in the page), select. Screenshots returned as base64 data URLs — the model can see what it’s interacting with, which sometimes matters and sometimes burns vision tokens for nothing.
Best for: PDF generation from rendered HTML (Puppeteer’s original killer use case), pixel-perfect screenshot diffs, scraping tasks where the visual layout matters, and any case where the agent benefits from “seeing” the page rather than reading the accessibility tree.
Skip if: your task is “click button, fill form, extract text” — Playwright MCP is cheaper and more deterministic for that pattern. Skip if you don’t need screenshots; vision tokens are not free.
Setup gotchas: server is in servers-archived — Anthropic moved active maintenance to community forks and recommends Playwright MCP as the modern path. Still functional but no new features. First run downloads Chromium (~300MB). Headless by default.
Real-world workflow: the only place I still use Puppeteer over Playwright is HTML-to-PDF rendering (where I want a screenshot of a print-styled page, not its accessibility tree). For everything else, Playwright wins on cost and determinism.
Compatible alternatives: Playwright MCP (recommended for new projects — same use case, better mechanics), Firecrawl MCP for static-content scraping at scale, Fetch MCP for trivial URL fetches.
Use Playwright for new work. Use Puppeteer for legacy compatibility or PDF rendering.