Puppeteer MCP Claude logo

Puppeteer MCP Claude

Automates Chromium through Puppeteer and MCP for navigation, page interaction, JavaScript, screenshots, cookies, and request interception.

Install Puppeteer MCP Claude

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "puppeteer-mcp-claude": {
      "command": "npx",
      "args": [
        "-y",
        "puppeteer-mcp-claude"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

puppeteer-mcp-claude gives Claude Code and other MCP-aware clients browser control through Puppeteer and Chromium. It can navigate pages, interact with elements, execute JavaScript, capture screenshots, manage cookies, and intercept requests. The browser launches automatically when a tool needs it, or the server can connect to an existing Chrome instance through a WebSocket endpoint. Use it for browser-driven scraping, form workflows, visual capture, and authenticated sessions.

Use cases

  • Navigate websites and extract structured page data
  • Fill forms and submit browser-based workflows
  • Capture full-page or viewport screenshots
  • Reuse an authenticated Chrome session
  • Block unnecessary resources during scraping

Key features

  • Puppeteer-controlled Chromium automation
  • Navigation, clicking, typing, and selector waits
  • JavaScript evaluation and text extraction
  • Inline PNG screenshots with optional file output
  • Cookie management
  • Request interception and header injection

Tools13

What Puppeteer MCP Claude lets your agent do. Expand a tool for its parameters.

Self-reported~196 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 6d ago via OSV.dev · puppeteer-mcp-claude (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars48Stargazers on the source repository.
npm downloads1.4kPackage downloads in the last 30 days.
Last commit5mo agoMost recent push to the default branch.
Tools exposed13Callable tools this server registers over MCP.

How Puppeteer MCP Claude works

What puppeteer-mcp-claude does

puppeteer-mcp-claude exposes Chromium browser automation as MCP tools for Claude Code and other MCP-aware clients. It supports common page workflows such as opening URLs, clicking controls, entering text, waiting for elements, extracting page content, and taking PNG screenshots. JavaScript can also run in the page context, which supports custom data extraction and browser-side actions.

The server maintains browser and page state for multi-step interactions. Page identifiers default to default, making a single-tab workflow possible without passing a page ID on every call. Additional tabs can be opened when a workflow needs separate pages.

How it works

The server runs over MCP stdio and uses Puppeteer to control Chromium. The browser is started automatically when a tool other than puppeteer_launch is called. puppeteer_launch remains available when you need launch options such as stealth mode, a proxy, a custom viewport, or a connection to an existing Chrome process.

A separate chrome command can start Chrome with remote debugging enabled. After signing in through that browser, an MCP client can use browserWSEndpoint with puppeteer_launch to reuse the existing session. This allows authenticated browser state to remain available across the automation flow.

Tool results are exposed both as TOON text in content[0].text and as typed JSON in structuredContent. Clients can use either representation, depending on how they process MCP responses. Screenshots are returned as inline MCP image blocks and can optionally be written to disk.

Setup and configuration

Node.js 18 or newer is required. Puppeteer downloads Chromium during the initial installation, using approximately 170 MB of storage. The macOS and Linux installer uses install.sh; Windows users can run the PowerShell installer. These scripts install the npm package globally and register the server with Claude Code. Registration defaults to user scope and can be changed to project scope with SCOPE=project.

For a manual setup, install the package globally with npm and register the command with Claude Code:

Terminal
npm install -g puppeteer-mcp-claude
claude mcp add puppeteer-mcp-claude -- npx -y puppeteer-mcp-claude serve

The command-line interface also provides install, uninstall, status, serve, chrome, and help commands. Restart Claude Code after registration.

Tools and capabilities

  • puppeteer_navigate loads a URL.
  • puppeteer_new_page opens a tab, while puppeteer_close_page closes one.
  • puppeteer_click targets an element with a CSS selector.
  • puppeteer_type enters text into a selected input.
  • puppeteer_get_text reads an element's textContent.
  • puppeteer_wait_for_selector waits for an element to appear.
  • puppeteer_evaluate runs a JavaScript expression in page context.
  • puppeteer_screenshot captures a PNG, with optional full-page output and disk storage.
  • Cookie tools set, retrieve, and delete browser cookies.
  • puppeteer_set_request_interception can block selected resource types or add request headers.
  • puppeteer_close_browser shuts down the browser.

Limitations and notes

The server requires an MCP-aware client and a local Chromium download or an accessible Chrome connection. Request interception can block images, media, fonts, and stylesheets for scraping workflows, but the selected resource types are controlled by the tool call. Browser actions target CSS selectors, so workflows depend on the page's DOM structure.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Puppeteer MCP Claude

puppeteer-mcp-claude is an MCP server that connects MCP-aware clients to a real Chromium browser through Puppeteer. Its main tools navigate pages, click and type, execute JavaScript, read text, capture screenshots, wait for selectors, manage cookies, and intercept requests. It can also connect to an existing Chrome instance.

Install it with the macOS/Linux or Windows installer, or run `npm install -g puppeteer-mcp-claude` followed by the Claude Code MCP registration command. Node.js 18 or newer is required, and Puppeteer downloads Chromium during installation.

Yes, puppeteer-mcp-claude works with Cursor because it supports MCP-aware clients. The server runs through its MCP stdio interface and exposes browser tools for navigation, interaction, JavaScript execution, screenshots, cookies, and request interception.

Launch Chrome with `puppeteer-mcp-claude chrome 9222`, then pass its WebSocket endpoint to `puppeteer_launch` through `browserWSEndpoint`. This lets the automation flow use browser state from the launched Chrome instance, including a session signed in to a website.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewPuppeteer MCP Claude AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/puppeteer-mcp-claude?style=directory)](https://allmcps.com/mcp/puppeteer-mcp-claude)
HTML Embed
<a href="https://allmcps.com/mcp/puppeteer-mcp-claude"><img src="https://allmcps.com/api/badge/puppeteer-mcp-claude?style=directory" alt="Puppeteer MCP Claude on AllMCPs" /></a>