Puppeteer

Community
merajmehrabi

Community Puppeteer MCP with new-tab and attach modes.

Actively maintained Puppeteer server by Meraj Mehrabi, picking up where the archived reference server left off. Launches fresh Chromium or attaches to an existing debug port.

1.1k6.4k74/100

What it does

  • Takes full-page or element-level screenshots as PNG or JPEG
  • Evaluates arbitrary JavaScript in the page context and returns the serialised result
  • Clicks, types, and form-fills by CSS or XPath selector
  • Navigates with wait-for-selector and wait-for-load-state primitives so flaky sites settle first
  • Attaches to an existing Chrome instance via --remote-debugging-port (useful for sessions behind SSO)
  • Optionally intercepts requests so an agent can fill auth headers without shipping a credential into the page

Best for

JavaScript-rendered scrapingAuthenticated browser sessionsScreenshot generationEnd-to-end visual tests
About Puppeteer

Puppeteer is a MCP server categorised under web scraping, official, browser, scraping. Actively maintained Puppeteer server by Meraj Mehrabi, picking up where the archived reference server left off. Launches fresh Chromium or attaches to an existing debug port.

How to install

Pick your MCP client from the Install panel on this page to get a one-click install link (Cursor, VS Code) or a ready-to-paste configuration for Claude Desktop, Claude Code, Gemini, Codex, Windsurf, and other MCP-compatible clients. No local setup required for remote servers.

License

Puppeteer is released under the MIT license. This is a permissive open-source license, so you can freely use, modify, and distribute it — subject to its terms.

No reviews yet

Be the first to leave a review after using this server in production.

README

This community server replaces the archived @modelcontextprotocol/server-puppeteer. The fork by Meraj Mehrabi is inspired by the reference implementation but fixes the CDP-attach flow and tracks a recent Chromium release. Use it when a page will not render without JavaScript. What it does: - Takes full-page or element-level screenshots as PNG or JPEG - Evaluates arbitrary JavaScript in the page context and returns the serialised result - Clicks, types, and form-fills by CSS or XPath selector - Navigates with wait-for-selector and wait-for-load-state primitives so flaky sites settle first - Attaches to an existing Chrome instance via --remote-debugging-port (useful for sessions behind SSO) - Optionally intercepts requests so an agent can fill auth headers without shipping a credential into the page Example: Launch with "npx -y puppeteer-mcp-server". Give an agent the task "open the status dashboard at status.example.com, wait for the incidents list, and screenshot the banner" — the agent navigates, waits for the React tree to hydrate, and returns a base64 image plus the extracted title text. Setup: No required env vars. Optional PUPPETEER_EXECUTABLE_PATH for a custom Chromium, PUPPETEER_REMOTE_DEBUGGING_PORT to attach to an already-running browser. Because Chromium is bundled, the first run downloads ~150 MB. Transport: stdio. A Chrome process is spawned per session and torn down on disconnect. Notes: Heavier than the Fetch entry — full Chromium rather than an HTTP client. If your site is static HTML with minor JS use Fetch first and reach for Puppeteer only when the rendered DOM diverges from the initial HTML. Attach mode is particularly valuable for agents that need to operate behind SSO: launch Chrome once, log in manually, then let the agent reuse the authenticated browser context.

Alternatives

Fetch
web scraping
Featured

URL fetcher that returns clean markdown.

officialhttpscraping
90/10063kpython
Filesystem
file system
Verified

Scoped file access with configurable allow-lists.

officialfilesystemnode
94/10063ktypescript
GitHub
version control
Verified

GitHub's own MCP server for issues, PRs, and code search.

officialgithubgit
92/10023kgo
Time
productivity
free

Time-zone math and conversions.

officialtimetimezone
91/10063kpython