MCP Directory

Puppeteer MCP Server (community)

Community Puppeteer MCP server that can launch a browser or attach to an existing Chrome window.

Verified
stdio (local)
No auth
Stale
TypeScript

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
npx -y puppeteer-mcp-server

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "puppeteer-mcp-server-community": {
      "command": "npx",
      "args": [
        "-y",
        "puppeteer-mcp-server"
      ]
    }
  }
}

Before you start

  • Node.js 18+ (run via npx or a global install)
  • Chrome/Chromium — bundled by Puppeteer for new instances; for attach mode, an existing Chrome started with `--remote-debugging-port=9222`
  • No API key or authentication required (local stdio server)

About Puppeteer MCP Server (community)

This community Puppeteer MCP server lets an LLM drive Chrome/Chromium through Puppeteer over a local stdio connection. Its standout feature is the ability to either launch a fresh browser instance or attach to an existing Chrome window that you started with remote debugging enabled (--remote-debugging-port=9222) — so the agent can work inside your already-logged-in, real browser session instead of a clean throwaway one.

The toolset covers the core automation primitives: navigate, screenshot, click, fill, select, hover, and evaluate arbitrary JavaScript. When attached to an existing Chrome, it intelligently targets non-extension tabs and leaves your browser running rather than closing it on disconnect.

The README describes it as an experimental project inspired by the reference @modelcontextprotocol/server-puppeteer, exploring the attach-to-existing-Chrome approach. It is not an official Google or Puppeteer-team product.

Tools & capabilities (8)

puppeteer_connect_active_tab

Attach to an existing Chrome window running with remote debugging on port 9222 and target a non-extension tab

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 selector

puppeteer_fill

Type text into an input field

puppeteer_select

Choose an option in a select/dropdown element

puppeteer_hover

Hover over an element

puppeteer_evaluate

Execute arbitrary JavaScript in the page context and return the result

When to use it

  • Use it when you want the agent to operate inside your already-open, logged-in Chrome session rather than a fresh profile
  • Use it when you need simple, lightweight browser automation without managing a cloud service
  • Use it when you want to navigate, click, and fill forms on a page from an LLM
  • Use it when you need screenshots for visual checks or scraping
  • Use it when you want to run custom JavaScript against a live page to extract data
  • Use it when you want a local, no-auth alternative to the reference Puppeteer MCP server

Quick setup

  1. 1Ensure Node.js 18+ is installed
  2. 2Add the server to your MCP client config with command `npx puppeteer-mcp-server` (stdio), or install globally with `npm install -g puppeteer-mcp-server`
  3. 3For attach mode, start Chrome with `--remote-debugging-port=9222` before connecting
  4. 4Restart the MCP client to load the server
  5. 5Call puppeteer_connect_active_tab to attach, or puppeteer_navigate to launch a new instance
  6. 6Verify by navigating to a URL and taking a screenshot

Security notes

Attaching to an existing Chrome over port 9222 gives the agent full access to the user's logged-in sessions and cookies, so only enable that mode deliberately. It can run arbitrary in-page JavaScript, so untrusted target sites can attempt to influence automation.

Puppeteer MCP Server (community) FAQ

Is this the official Puppeteer/Google MCP server?

No. It is a community project by Meraj Mehrabi, described as experimental and inspired by the reference @modelcontextprotocol/server-puppeteer.

How do I connect to my existing Chrome instead of a new browser?

Launch Chrome with `--remote-debugging-port=9222`, then call puppeteer_connect_active_tab. The server attaches to a non-extension tab and keeps Chrome running on disconnect.

Does it require an API key?

No. It runs locally over stdio with no authentication and drives a browser on your own machine.

Why can't it connect to my active tab?

Chrome must be started with remote debugging enabled on port 9222 and have at least one non-extension tab open; otherwise the connect call has no target to attach to.

Can it run headless?

Yes — when launching a new instance Puppeteer runs headless by default; attach mode uses whatever visible Chrome window you started.

Alternatives to Puppeteer MCP Server (community)

All-in-one web access MCP — Web Unlocker, SERP, Scraper API, and a cloud Scraping Browser.

Verified
stdio (local)
API key
JavaScript
12 tools
Updated 14 days agoRepo

Popular community Playwright + API testing MCP server with codegen, screenshots, and device emulation.

Verified
stdio (local)
No auth
TypeScript
12 tools
Updated 1 month agoRepo

Official Browserbase cloud-browser MCP built on Stagehand — natural-language act/extract/observe.

Verified
stdio (local)
API key
TypeScript
8 tools
Updated 14 days agoRepo