Puppeteer is a Browser Automation MCP server that lets Claude Code, Cursor, Windsurf and any MCP-compatible AI agent headless Chrome automation. Install in 1 minute with mcpizy install puppeteer.
Browser Automation
Headless Chrome automation
Official homepagemcpizy install puppeteernpx -y @modelcontextprotocol/server-puppeteerpuppeteer_navigateNavigate to a URL
Inputs
urlstringrequiredpuppeteer_screenshotTake a screenshot of the page
Inputs
namestringrequiredselectorstringoptionalpuppeteer_clickClick on an element
Inputs
selectorstringrequiredpuppeteer_fillFill an input field
Inputs
selectorstringrequiredvaluestringrequiredpuppeteer_selectSelect an option in a dropdown
Inputs
selectorstringrequiredvaluestringrequiredpuppeteer_evaluateEvaluate JavaScript in the page
Inputs
scriptstringrequiredWorks identically across clients. Only the config file path differs.
~/.claude.json{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}.cursor/mcp.json{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}~/.codeium/windsurf/mcp_config.json{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
}No auth — downloads Chromium on first run
Paste any of these prompts into Claude Code, Cursor or another MCP-compatible client.
“Go to hackernews and screenshot the front page”
Uses: puppeteer_navigate, puppeteer_screenshot
“Scrape product titles from example-shop.com”
Uses: puppeteer_navigate, puppeteer_evaluate
Puppeteer MCP exposes Puppeteer (Chromium-only browser automation from the Chrome team) as agent tools: `puppeteer_navigate`, `puppeteer_click`, `puppeteer_fill`, `puppeteer_screenshot`, `puppeteer_evaluate`, `puppeteer_select`, `puppeteer_hover`. It's a leaner version of Playwright MCP — Chromium only, no Firefox/WebKit, but with a smaller install footprint and a simpler API surface. The community-maintained Puppeteer MCP is one of the most-used tools in the catalog for quick scrape-and-screenshot tasks.
We use Puppeteer MCP for two workflows. First, quick screenshots for documentation or bug reports — "go to this URL, click this button, take a screenshot" is a 4-tool-call chain that returns a PNG. Second, login-gated scraping where the site is Chromium-friendly and you don't need cross-browser coverage. Token cost is moderate; `puppeteer_evaluate` returns whatever your JS expression returns, so it can be tightly bounded (return just the data you need, not the whole DOM).
Compared to Playwright MCP, Puppeteer is the right pick when you need a lighter footprint, only need Chromium, and prefer the smaller tool count. Playwright wins on reliability of waits, accessibility-tree targeting, and cross-browser. Compared to fetch-based scraping, Puppeteer wins for any site that requires JavaScript execution (most modern SPAs); fetch wins for static HTML. The honest trade-off: Puppeteer's selectors are CSS-based, which breaks more often on rerenders than Playwright's role-based targeting — agents will need more retry logic.
`puppeteer_evaluate` is the highest-risk tool — it runs arbitrary JS in page context. Prompt injection from page content can exfiltrate cookies or local storage. Lock down what scripts the agent is allowed to run.
Chromium downloads happen on first MCP launch (~150 MB). On ephemeral agent runners (Docker, Lambda), this can add 30+ seconds to cold-start. Pre-bake the image.
CSS selectors break on rerenders. If the agent clicks `button.submit-btn` today and the class becomes `button.submit-btn-v2` next week, the chain breaks silently. For long-lived scrapers, prefer text-based or attribute-based selectors over class chains.
Headless mode is detected by some anti-bot solutions (Cloudflare Turnstile, PerimeterX). For protected sites, the agent needs to use `headless: false` (visible browser) or a stealth plugin.
Honest pros/cons against the closest browser automation MCP servers.
| Server | Strengths | Trade-offs |
|---|---|---|
| Playwright MCP | Multi-browser, accessibility-tree targeting, more reliable waits | Heavier install, larger tool count |
| Browserless MCP | Managed Puppeteer as a service, no infra | Cost per browser-second, network round-trip |
| fetch MCP | Free, zero dependencies, sub-second | No JavaScript execution — static HTML only |
Firefox automation via WebDriver BiDi
Fetch YouTube subtitles and transcripts
Next-generation platform for AI agents and browser automation. Headless browsing at scale.
Manage GoLogin browser profiles for multi-account automation and anti-detect browsing.
If Puppeteer doesn't fit your stack, these Browser Automation MCP servers solve similar problems.
The Puppeteer MCP server is an Browser Automation Model Context Protocol server that lets Claude Code, Cursor, Windsurf, VS Code with Copilot, and other MCP-compatible AI agents headless Chrome automation. It exposes Puppeteer's capabilities as tools the AI can call directly from your editor or CLI.
The fastest way is the MCPizy CLI: run `mcpizy install puppeteer` and MCPizy will add the server to your `.claude.json` automatically. You can also install it manually by adding an entry under `mcpServers` in `.claude.json` with the command `npx -y @modelcontextprotocol/server-puppeteer` and restarting Claude Code.
Yes. The Puppeteer MCP server is free and open source (see the GitHub repository linked on this page). You may still need a Puppeteer account or API key to connect the server to the underlying service, but the MCP layer itself has no MCPizy subscription cost.
Yes. Any MCP-compatible client works — including Claude Code, Claude Desktop, Cursor (via `.cursor/mcp.json`), Windsurf, VS Code with Copilot Chat, and custom agents built on the MCP SDK. The same install command targets all of them; only the config file path differs.
Once installed, your AI agent can headless Chrome automation directly inside your conversation. Typical use cases include asking Claude Code or Cursor to run Puppeteer operations, inspect results, chain Puppeteer with other MCP servers (see our Workflow Recipes), and automate repetitive browser automation tasks without leaving your editor.