Puppeteer MCP Server (Python Implementation)

Puppeteer MCP Server (Python Implementation)

By MCP-Mirror GitHub

Mirror of

puppeteer browser-automation
Overview

what is Puppeteer MCP Server?

Puppeteer MCP Server is a Model Context Protocol server implemented in Python that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.

how to use Puppeteer MCP Server?

To use the server, install the required packages, set up the Playwright browsers, and start the server with a simple Python command. Configuration for Claude desktop is also provided for integration.

key features of Puppeteer MCP Server?

  • Full browser automation capabilities
  • Page navigation
  • Full-page or element-specific screenshot capture
  • Form interaction, including clicking and filling forms
  • JavaScript execution in the browser
  • Comprehensive error handling and logging

use cases of Puppeteer MCP Server?

  1. Automating web testing and navigation
  2. Capturing screenshots for web scraping and documentation
  3. Executing JavaScript for dynamic web content manipulation

FAQ from Puppeteer MCP Server?

  • What programming language is Puppeteer MCP Server built with?

It is built in Python using Playwright for browser automation.

  • Is there any error handling mechanism in place?

Yes! The server provides detailed error messages for common failures including navigation and element not found errors.

  • Can I run this server in headless mode?

By default, the server runs in non-headless mode for better debugging, but configurations allow headless operation.

Content

Puppeteer MCP Server (Python Implementation)

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.

Overview

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.

Key Features

  • Full browser automation
  • Page navigation
  • Screenshot capture (full page or elements)
  • Form interaction (clicking and filling)
  • JavaScript execution
  • Console log monitoring
  • Configurable timeouts
  • Detailed error handling
  • Comprehensive logging

Prerequisites

  • Python 3.8+
  • pip (Python package installer)

Installation

  1. Install the required packages:
pip install -r requirements.txt
  1. Install Playwright browsers:
playwright install

Usage

Starting the Server

Run the server directly:

python puppeteer_server.py

Claude Desktop Configuration

Add this to your Claude configuration file:

{
  "mcpServers": {
    "puppeteer": {
      "command": "python",
      "args": ["path/to/puppeteer.py"]
    }
  }
}

Available Tools

puppeteer_navigate

Navigate to any URL in the browser.

{
  "name": "puppeteer_navigate",
  "arguments": {
    "url": "https://example.com",
    "timeout": 60000  // optional, defaults to 60000ms
  }
}

puppeteer_screenshot

Capture screenshots of the entire page or specific elements.

{
  "name": "puppeteer_screenshot",
  "arguments": {
    "name": "my_screenshot",
    "selector": "#specific-element",  // optional
    "width": 1280,  // optional, default: 1280
    "height": 720,  // optional, default: 720
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_click

Click elements on the page.

{
  "name": "puppeteer_click",
  "arguments": {
    "selector": ".button-class",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_fill

Fill out input fields.

{
  "name": "puppeteer_fill",
  "arguments": {
    "selector": "#input-id",
    "value": "text to fill",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

puppeteer_evaluate

Execute JavaScript in the browser console.

{
  "name": "puppeteer_evaluate",
  "arguments": {
    "script": "document.title",
    "timeout": 30000  // optional, defaults to 30000ms
  }
}

Error Handling

The server provides detailed error messages for common scenarios:

  • Navigation failures
  • Element not found
  • Timeout errors
  • JavaScript execution errors
  • Screenshot failures

Logging

Comprehensive logging is implemented with different levels:

  • INFO: Standard operations
  • ERROR: Operation failures
  • DEBUG: Detailed execution information

Notes

  • Browser launches in non-headless mode for better debugging
  • Default viewport size is 1280x720
  • All timeouts are configurable
  • Console logs are captured and stored
  • Screenshots are stored in memory with base64 encoding

Contributing

Contributions are welcome! Please read the repository's contributing guidelines before submitting pull requests.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

No tools information available.
AutoBrowser MCP
AutoBrowser MCP by autobrowser-ai

Autobrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser

autobrowser browser-automation
View Details
Playwright
Playwright by microsoft

-

playwright browser-automation
View Details
playwright-mcp
playwright-mcp by playwright-mcp

This MCP Server will help you run browser automation and webscraping using Playwright

playwright browser-automation mcp playwright
View Details
Steel Puppeteer
Steel Puppeteer by MCP-Mirror

Mirror of

puppeteer browser-automation
View Details

Configurable Puppeteer MCP Server

puppeteer browser-automation
View Details

Python-based MCP toolset with Echo server for testing and Browser Automation server using browser-use and LangChain for AI-driven web interactions

mcp browser-automation
View Details

A universal Playwright MCP server for browser automation in containerized environments

playwright browser-automation
View Details