What Is Puppeteer MCP Server?

Puppeteer MCP Server exposes browser automation capabilities to Claude through the Model Context Protocol, enabling Claude to control a Chromium browser instance to navigate pages, capture screenshots, and interact with UI elements. It is maintained by the Model Context Protocol team as part of the official modelcontextprotocol/servers repository.


Quick Facts

FieldValue
Package@modelcontextprotocol/server-puppeteer
Installnpx @modelcontextprotocol/server-puppeteer
Compatible withClaude Code, Claude Desktop
Statusactive
GitHubgithub.com/modelcontextprotocol/servers/…/puppeteer

What You Can Do With It

  • Web scraping: Direct Claude to load a URL and extract structured data from the rendered DOM, including JavaScript-heavy pages that static HTTP clients cannot parse.
  • Screenshots: Capture full-page or viewport screenshots of any publicly accessible URL and receive the image as output.
  • Form filling: Instruct Claude to locate input fields, type values, and submit forms programmatically.
  • Browser automation: Chain multi-step navigation sequences — click links, wait for elements, scroll, and evaluate in-page JavaScript.
  • UI testing: Have Claude verify that specific elements are present, visible, or contain expected text after an interaction sequence.

How to Set It Up

Prerequisites: Node.js 18 or later. The package downloads Chromium automatically on first run.

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-puppeteer"]
    }
  }
}
The config file is located at:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

**Claude Code (`.claude/mcp.json` in your project root):**

```json
{
  "mcpServers": {
    "puppeteer": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-puppeteer"]
    }
  }
}

After saving the config, restart Claude Desktop or reload the Claude Code session to pick up the new server.


Works Best With

Puppeteer MCP Server is documented as compatible with both Claude Code and Claude Desktop. Claude Code is the natural fit for automation tasks embedded in a development workflow — running browser tests alongside code generation, for example. Claude Desktop suits interactive use cases where you want to point Claude at a URL during a conversation and inspect results in real time.


Known Limitations

  • Authentication flows: Puppeteer can submit login forms, but managing session cookies, OAuth redirects, or multi-factor authentication requires additional orchestration that the server does not handle natively.
  • Headless environment requirements: Running this server in CI or containerized environments requires a Chromium-compatible OS with the necessary shared libraries. Minimal Docker images often need additional dependencies (libnss3, libatk1.0, etc.).
  • No persistent browser state: Each server session starts a fresh browser context. Cookies and local storage do not persist across MCP server restarts.
  • Rate limiting and anti-bot measures: Sites using bot detection (Cloudflare, reCAPTCHA, etc.) may block automated navigation. The server provides no built-in bypass mechanisms.
  • Resource usage: Spawning a Chromium instance is memory-intensive. Long-running or high-frequency automation tasks can cause noticeable memory pressure on the host machine.

Community Resources

This article contains affiliate links. We may earn a commission at no extra cost to you. Learn more.

Share: X