
Puppeteer MCP Server (community)
Community Puppeteer MCP server that can launch a browser or attach to an existing Chrome window.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y puppeteer-mcp-serverPaste 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_tabAttach to an existing Chrome window running with remote debugging on port 9222 and target a non-extension tab
puppeteer_navigateNavigate the browser to a URL
puppeteer_screenshotCapture a screenshot of the page or a specific element
puppeteer_clickClick an element by selector
puppeteer_fillType text into an input field
puppeteer_selectChoose an option in a select/dropdown element
puppeteer_hoverHover over an element
puppeteer_evaluateExecute 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
- 1Ensure Node.js 18+ is installed
- 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`
- 3For attach mode, start Chrome with `--remote-debugging-port=9222` before connecting
- 4Restart the MCP client to load the server
- 5Call puppeteer_connect_active_tab to attach, or puppeteer_navigate to launch a new instance
- 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.
Popular community Playwright + API testing MCP server with codegen, screenshots, and device emulation.
Official Browserbase cloud-browser MCP built on Stagehand — natural-language act/extract/observe.
Compare Puppeteer MCP Server (community) with: