Model Context Protocol server enabling LLMs to perform robust browser automation with Playwright in Python, including page navigation, screenshot capture, form interaction, JavaScript execution, and detailed error handling with comprehensive logging.
Unlock the full potential of Puppeteer MCP Server through LangDB's AI Gateway. Get enterprise-grade security, analytics, and seamless integration with zero configuration.
Free tier available • No credit card required
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.
pip install -r requirements.txt
playwright install
Run the server directly:
python puppeteer_server.py
Add this to your Claude configuration file:
{ "mcpServers": { "puppeteer": { "command": "python", "args": ["path/to/puppeteer.py"] } } }
Navigate to any URL in the browser.
{ "name": "puppeteer_navigate", "arguments": { "url": "https://example.com", "timeout": 60000 // optional, defaults to 60000ms } }
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 } }
Click elements on the page.
{ "name": "puppeteer_click", "arguments": { "selector": ".button-class", "timeout": 30000 // optional, defaults to 30000ms } }
Fill out input fields.
{ "name": "puppeteer_fill", "arguments": { "selector": "#input-id", "value": "text to fill", "timeout": 30000 // optional, defaults to 30000ms } }
Execute JavaScript in the browser console.
{ "name": "puppeteer_evaluate", "arguments": { "script": "document.title", "timeout": 30000 // optional, defaults to 30000ms } }
The server provides detailed error messages for common scenarios:
Comprehensive logging is implemented with different levels:
Contributions are welcome! Please read the repository's contributing guidelines before submitting pull requests.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!