Puppeteer MCP Server

Enables LLMs to interact with web pages by providing browser automation capabilities, including screenshot capture and JavaScript execution.

Local serverstdioPython★ 17

What is the Puppeteer MCP Server?

Enables LLMs to interact with web pages by providing browser automation capabilities, including screenshot capture and JavaScript execution.

What it actually does

A Model Context Protocol server that provides browser automation capabilities using Playwright (Python's equivalent to Puppeteer). This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.

This Python implementation provides a stable alternative to the TypeScript version, offering the same capabilities with improved error handling and logging. It uses Playwright, which is the Python equivalent to Puppeteer, providing robust browser automation capabilities.

  • Full browser automation
  • Page navigation
  • Screenshot capture (full page or elements)
  • Form interaction (clicking and filling)
  • JavaScript execution
  • Console log monitoring

Configuration

  • Python 3.8+ * pip (Python package installer)

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
puppeteer_navigateNavigate to any URL in the browser. json { "name": "puppeteer_navigate", "arguments": { "url": "https://example.com", "timeout": 60000 // optional, defaults to 60000ms } }
puppeteer_screenshotCapture screenshots of the entire page or specific elements. json { "name": "puppeteer_screenshot", "arguments": { "name": "my_screenshot", "selector": "#specific-element", // optional "width": 1280, // optional, default
puppeteer_clickClick elements on the page. json { "name": "puppeteer_click", "arguments": { "selector": ".button-class", "timeout": 30000 // optional, defaults to 30000ms } }
puppeteer_fillFill out input fields. json { "name": "puppeteer_fill", "arguments": { "selector": "#input-id", "value": "text to fill", "timeout": 30000 // optional, defaults to 30000ms } }
puppeteer_evaluateExecute JavaScript in the browser console. json { "name": "puppeteer_evaluate", "arguments": { "script": "document.title", "timeout": 30000 // optional, defaults to 30000ms } }

Configuration

  • Python 3.8+ * pip (Python package installer)

Example prompts to try

  • “Use Puppeteer to puppeteer navigate.”
  • “Use Puppeteer to puppeteer screenshot.”
  • “Use Puppeteer to puppeteer click.”

Frequently asked questions

It offers full browser automation, page navigation, screenshot capture, form interaction, JavaScript execution, configurable timeouts, detailed error handling, and comprehensive logging.