Skip to main content
Community resource — not affiliated with Anthropic. Learn more


Puppeteer MCP

Browser & Web · Official

Headless Chrome automation. Claude can take screenshots, interact with dynamic JavaScript-heavy pages, and automate web workflows using Puppeteer.

4.6 rating 6,800+ connects Free · Open source Protocol v1.0
Chrome Headless Screenshots Official JavaScript

Connect command

claude mcp add puppeteer -- npx -y @modelcontextprotocol/server-puppeteer
View on GitHub →

Free · Open source · MIT license

6.8kConnects
4.6Rating

What it does

Puppeteer MCP wraps the official Puppeteer library — Google's Node.js API for controlling headless Chrome. Claude gets a real Chromium browser instance, enabling it to interact with any web page exactly as a user would, including full JavaScript execution, cookie handling, and dynamic content rendering.

It is part of the official Anthropic MCP reference server collection, making it a reliable choice for tasks like taking visual screenshots, testing web applications, automating repetitive browser tasks, or scraping content from JavaScript-dependent pages.

  • Navigate to any URL with full JS execution
  • Take full-page or viewport screenshots
  • Click elements, type text, and submit forms
  • Evaluate arbitrary JavaScript in the page context
  • Extract HTML content from rendered pages
  • Wait for specific selectors before proceeding

How to connect

terminal
claude mcp add puppeteer -- npx -y @modelcontextprotocol/server-puppeteer

Available tools

  • navigate — go to a URL and wait for page load
  • screenshot — capture a PNG screenshot of the current page
  • click — click an element by CSS selector
  • type — type text into a focused element
  • evaluate — execute JavaScript in the page context
  • get_content — return the page's HTML content
  • wait_for_selector — wait until a selector is visible

Example usage

Ask Claude to take a screenshot of a competitor's pricing page or extract rendered text from a SPA:

example prompt
# User prompt
Take a full-page screenshot of github.com and
describe the layout and key UI elements you see.
tool call sequence
navigate("https://github.com")
wait_for_selector(".application-main")
screenshot({ fullPage: true })
→ returns base64 PNG, ~1200x3400px
→ Claude describes layout elements

Playwright vs Puppeteer: Both automate real browsers, but Playwright supports Chromium, Firefox, and WebKit, offers more robust waiting strategies, and is generally preferred for new projects. Use Puppeteer if you already have existing Puppeteer familiarity or scripts.