The original Chromium automation reference server — simple, screenshot-driven browser control.
The Puppeteer MCP server was one of the first reference servers Anthropic shipped alongside the Model Context Protocol, and it's still the quickest way to understand what browser automation over MCP feels like. It wraps Google's Puppeteer library around a headless (or headful) Chromium and exposes a small, legible toolset: go to a page, click, type, run a snippet of JavaScript, take a screenshot.
Where Playwright's server reads the accessibility tree, Puppeteer's takes the screenshot-first approach — the model looks at captured images and the page's text to decide what to do next. That's simpler to reason about and totally fine for light automation, though it burns more tokens and is more sensitive to layout changes on complex pages.
Worth knowing before you commit: Anthropic has archived the reference servers repository, so this server no longer receives active development. It remains genuinely useful for learning MCP, quick scraping jobs and one-off automations — the npm package still works — but for production-grade browser work the actively maintained Playwright server is the better bet. Think of Puppeteer's server as the well-worn hand tool and Playwright's as the power tool that replaced it.
The puppeteer_evaluate tool deserves a special mention: being able to run arbitrary JavaScript in the page context is a powerful escape hatch when the built-in tools don't cover an interaction.
PUPPETEER_LAUNCH_OPTIONS takes the full Puppeteer launch object, so {"headless": false, "defaultViewport": {"width": 1280, "height": 800}} lets you watch a run and pin the viewport in one setting.The smallest possible surface area for understanding how an assistant drives a browser.
Grab content from client-side-rendered pages that plain HTTP fetching can't see.
Fill a form, download a report, poke at a page — without writing a script.
| Tool | What it does |
|---|---|
| puppeteer_navigate | Navigate the browser to a URL |
| puppeteer_screenshot | Capture a screenshot of the page or a specific element |
| puppeteer_click | Click an element by CSS selector |
| puppeteer_fill | Type a value into an input field |
| puppeteer_select | Choose an option in a select element |
| puppeteer_evaluate | Run arbitrary JavaScript in the page context and return the result |
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}Node.js 18+. Downloads its own Chromium on first run.
| Variable | Description | Required |
|---|---|---|
| PUPPETEER_LAUNCH_OPTIONS | JSON launch options passed to Puppeteer (e.g. headless mode, window size)e.g. {"headless": false} | Optional |
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
Industrial-strength web extraction — render, scrape, crawl and search entire sites into clean markdown.
Give your coding agent the full DevTools toolbox: traces, network, console, heap snapshots and Lighthouse.
Puppeteer-powered browser control that drives pages from the accessibility tree instead of pixels.
Cloud browsers for AI agents — automation sessions that run in Browserbase's fleet, not on your machine.
Put 6,000+ pre-built scrapers at your assistant's fingertips through one MCP endpoint.