Puppeteer Py
FreeNot checkedMCP server providing browser automation via Playwright (Python), enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real br
About
MCP server providing browser automation via Playwright (Python), enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser.
README
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
- Install the required packages:
pip install -r requirements.txt
- 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.
Installing Puppeteer Py
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/twolven/mcp-server-puppeteer-pyFAQ
Is Puppeteer Py MCP free?
Yes, Puppeteer Py MCP is free — one-click install via Unyly at no cost.
Does Puppeteer Py need an API key?
No, Puppeteer Py runs without API keys or environment variables.
Is Puppeteer Py hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Puppeteer Py in Claude Desktop, Claude Code or Cursor?
Open Puppeteer Py on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Playwright
Browser automation, scraping, screenshots
by MicrosoftPuppeteer
Browser automation and web scraping.
by modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
by opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
by robhunterCompare Puppeteer Py with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All browse MCPs
