puppeteer-mcp-server
MCP ServerFreeExperimental MCP server for browser automation using Puppeteer (inspired by @modelcontextprotocol/server-puppeteer)
Capabilities8 decomposed
headless-browser-automation-via-mcp
Medium confidenceExposes Puppeteer browser automation capabilities through the Model Context Protocol (MCP), allowing LLM agents and tools to control headless Chrome/Chromium instances via standardized MCP tool calls. Implements a server that translates MCP function-calling schemas into Puppeteer API invocations, enabling remote browser control without direct library imports.
Wraps Puppeteer as an MCP server rather than a direct library, enabling LLM agents to invoke browser automation through standardized tool-calling protocols without managing browser lifecycle or connection pooling themselves
Provides MCP-native browser automation (compatible with Claude and other MCP clients) whereas direct Puppeteer requires custom API wrappers and manual integration into LLM tool schemas
page-navigation-and-content-retrieval
Medium confidenceImplements MCP tools for navigating to URLs, waiting for page load completion, and extracting page content (HTML, text, metadata). Uses Puppeteer's page.goto() with configurable wait conditions (networkidle, load, domcontentloaded) and exposes page.content() and page.evaluate() for flexible content extraction.
Exposes Puppeteer's page.goto() and content extraction through MCP tool schemas with configurable wait conditions, allowing LLM agents to specify load strategies (networkidle vs domcontentloaded) without managing browser state directly
More flexible than simple HTTP clients (handles JavaScript rendering) and more accessible than raw Puppeteer (no Node.js library dependency in the LLM client, works via MCP protocol)
dom-element-interaction-and-selection
Medium confidenceProvides MCP tools for querying DOM elements via CSS selectors or XPath, clicking elements, filling form inputs, and extracting element properties. Implements Puppeteer's page.$(selector), page.$$(selector), and element.evaluate() patterns, with error handling for missing elements and stale references.
Wraps Puppeteer's element query and interaction methods (page.$, page.click, page.type) as discrete MCP tools, allowing LLM agents to compose multi-step interactions (find element → extract property → click → wait) without managing Puppeteer's page object
More granular than Selenium (which requires explicit driver management) and more accessible than raw Puppeteer (no JavaScript knowledge required from LLM client, works via tool schemas)
screenshot-and-visual-capture
Medium confidenceImplements MCP tools for capturing full-page or viewport screenshots as PNG/JPEG, with options for clipping to specific regions or elements. Uses Puppeteer's page.screenshot() with configurable quality, format, and clip parameters, returning base64-encoded image data for transmission via MCP.
Exposes Puppeteer's screenshot capability through MCP with base64 encoding, enabling LLM vision models to analyze rendered page state without requiring direct image file access or external storage
More efficient than HTTP-based screenshot APIs (no round-trip to external service) and more flexible than static HTML snapshots (captures actual rendered output including CSS, fonts, images)
javascript-execution-and-page-evaluation
Medium confidenceProvides MCP tools for executing arbitrary JavaScript in the page context via page.evaluate(), allowing LLM agents to run custom scripts, extract computed properties, or trigger page-specific logic. Returns serialized JavaScript values (primitives, objects, arrays) with error handling for non-serializable results.
Exposes Puppeteer's page.evaluate() as an MCP tool, allowing LLM agents to execute arbitrary JavaScript without managing the Puppeteer page object or handling serialization/deserialization
More powerful than DOM-only queries (can access JavaScript state and computed properties) but requires LLM to generate valid JavaScript, unlike higher-level tools that abstract away code generation
wait-and-synchronization-primitives
Medium confidenceImplements MCP tools for waiting on page conditions (selector visibility, navigation completion, network idle, timeout-based delays) using Puppeteer's page.waitForSelector(), page.waitForNavigation(), and page.waitForFunction(). Enables LLM agents to synchronize browser state with automation logic without polling.
Exposes Puppeteer's wait primitives (waitForSelector, waitForNavigation, waitForFunction) as discrete MCP tools, allowing LLM agents to compose synchronization logic without managing Promise chains or async/await
More reliable than fixed-delay sleeps (responds to actual page state changes) and more accessible than raw Puppeteer (no Promise or async JavaScript knowledge required from LLM client)
cookie-and-session-management
Medium confidenceProvides MCP tools for getting, setting, and deleting cookies via page.cookies() and page.setCookie(), enabling session persistence and authentication workflows. Stores cookies in memory per browser instance or optionally persists to external storage for cross-session reuse.
Wraps Puppeteer's cookie management API as MCP tools, enabling LLM agents to handle authentication and session state without direct browser object access or manual cookie serialization
More flexible than HTTP-only cookie handling (supports domain-specific cookies and attributes) but requires manual cookie management logic in the LLM agent (no automatic refresh or expiration handling)
mcp-server-lifecycle-and-connection-management
Medium confidenceImplements the MCP server protocol for browser automation, handling client connections, tool registration, and request/response serialization. Uses Node.js MCP SDK to expose Puppeteer capabilities as standardized MCP tools, with automatic browser instance creation and cleanup on client disconnect.
Implements the full MCP server protocol for Puppeteer, handling client lifecycle, tool schema registration, and request routing without requiring clients to manage browser state or Puppeteer dependencies
Standardizes browser automation through MCP (compatible with Claude and other MCP clients) whereas custom REST APIs require client-specific integration code and lack tool discovery
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with puppeteer-mcp-server, ranked by overlap. Discovered automatically through the match graph.
Browserbase
** - Automate browser interactions in the cloud (e.g. web navigation, data extraction, form filling, and more)
@hisma/server-puppeteer
Fork and update (v0.6.5) of the original @modelcontextprotocol/server-puppeteer MCP server for browser automation using Puppeteer.
Puppeteer
** - Browser automation and web scraping.
puppeteer-mcp-server
Experimental MCP server for browser automation using Puppeteer (inspired by @modelcontextprotocol/server-puppeteer)
@mseep/puppeteer-mcp-server
Experimental MCP server for browser automation using Puppeteer (inspired by @modelcontextprotocol/server-puppeteer)
@todoforai/puppeteer-mcp-server
Experimental MCP server for browser automation using Puppeteer (inspired by @modelcontextprotocol/server-puppeteer)
Best For
- ✓AI agents and LLM applications requiring web scraping or browser interaction
- ✓Teams building multi-agent systems where browser automation is a shared capability
- ✓Developers integrating Puppeteer into Claude or other MCP-compatible LLM platforms
- ✓Web scraping workflows where page load timing is critical
- ✓LLM agents that need to read and analyze web content
- ✓Automated testing or monitoring scenarios requiring page state verification
- ✓Automated form submission and data entry workflows
- ✓Web scraping with precise element targeting
Known Limitations
- ⚠Headless-only execution — no native support for rendering visual interactions in real browsers
- ⚠Single browser instance per server connection — concurrent requests require connection pooling or multiple server instances
- ⚠Network latency between MCP client and server adds overhead compared to direct Puppeteer library usage
- ⚠Limited to Puppeteer's supported browser versions (Chromium-based only, no Firefox/Safari support)
- ⚠Wait conditions (networkidle) can timeout on slow or continuously-loading pages (e.g., infinite scroll, WebSocket streams)
- ⚠JavaScript-heavy SPAs may require explicit wait-for-selector or wait-for-navigation calls beyond standard load events
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Package Details
About
Experimental MCP server for browser automation using Puppeteer (inspired by @modelcontextprotocol/server-puppeteer)
Categories
Alternatives to puppeteer-mcp-server
Search the Supabase docs for up-to-date guidance and troubleshoot errors quickly. Manage organizations, projects, databases, and Edge Functions, including migrations, SQL, logs, advisors, keys, and type generation, in one flow. Create and manage development branches to iterate safely, confirm costs
Compare →Are you the builder of puppeteer-mcp-server?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →