
Puppeteer
Browser automation and web scraping
what is Puppeteer?
Puppeteer is a Model Context Protocol server that provides browser automation capabilities, allowing LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
how to use Puppeteer?
To use Puppeteer, configure your machine as specified in the provided configuration JSON and interact with the server via its various tools for navigation, screenshots, and web interactions.
key features of Puppeteer?
- Browser automation for web scraping and interaction
- Capture screenshots of web pages or individual elements
- Console log monitoring to track browser activities
- Execute JavaScript commands in the browser
- Support for basic interactions like clicking and form filling
use cases of Puppeteer?
- Automating data collection from websites for analysis
- Testing web applications by simulating user interactions
- Taking screenshots for documentation and reporting purposes
FAQ from Puppeteer?
- What can Puppeteer automate?
Puppeteer can automate various web interactions such as navigation, form filling, and element clicks.
- Is there any cost to use Puppeteer?
No, Puppeteer is free to use under the MIT License.
- How do I install Puppeteer?
You can install Puppeteer by running the specified command in the project's configuration setup.
Puppeteer
A Model Context Protocol server that provides browser automation capabilities using Puppeteer. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.
Components
Tools
-
puppeteer_navigate
- Navigate to any URL in the browser
- Input:
url
(string)
-
puppeteer_screenshot
- Capture screenshots of the entire page or specific elements
- Inputs:
name
(string, required): Name for the screenshotselector
(string, optional): CSS selector for element to screenshotwidth
(number, optional, default: 800): Screenshot widthheight
(number, optional, default: 600): Screenshot height
-
puppeteer_click
- Click elements on the page
- Input:
selector
(string): CSS selector for element to click
-
puppeteer_hover
- Hover elements on the page
- Input:
selector
(string): CSS selector for element to hover
-
puppeteer_fill
- Fill out input fields
- Inputs:
selector
(string): CSS selector for input fieldvalue
(string): Value to fill
-
puppeteer_select
- Select an element with SELECT tag
- Inputs:
selector
(string): CSS selector for element to selectvalue
(string): Value to select
-
puppeteer_evaluate
- Execute JavaScript in the browser console
- Input:
script
(string): JavaScript code to execute
Resources
The server provides access to two types of resources:
-
Console Logs (
console://logs
)- Browser console output in text format
- Includes all console messages from the browser
-
Screenshots (
screenshot://<name>
)- PNG images of captured screenshots
- Accessible via the screenshot name specified during capture
Key Features
- Browser automation
- Console log monitoring
- Screenshot capabilities
- JavaScript execution
- Basic web interaction (navigation, clicking, form filling)
Configuration to use Puppeteer Server
Here's the Claude Desktop configuration to use the Puppeter server:
Docker
NOTE The docker implementation will use headless chromium, where as the NPX version will open a browser window.
{
"mcpServers": {
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
}
}
NPX
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
Build
Docker build:
docker build -t mcp/puppeteer -f src/puppeteer/Dockerfile .
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Tools
puppeteer_navigate
puppeteer_screenshot
puppeteer_click
puppeteer_fill
puppeteer_select
puppeteer_hover
puppeteer_evaluate
