Puppeteer MCP Server
Provides browser automation capabilities including page navigation, element interaction (clicking, hovering, form filling), screenshot capture, and JavaScript execution in a real browser environment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Puppeteer MCP Servertake a screenshot of news.ycombinator.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
This server can access local files and local/internal IP addresses since it runs a browser on your machine. Exercise caution when using this MCP server to ensure this does not expose any sensitive data.
Components
Tools
puppeteer_navigate
Navigate to any URL in the browser
Inputs:
url(string, required): URL to navigate tolaunchOptions(object, optional): PuppeteerJS LaunchOptions. Default null. If changed and not null, browser restarts. Example:{ headless: true, args: ['--user-data-dir="C:/Data"'] }allowDangerous(boolean, optional): Allow dangerous LaunchOptions that reduce security. When false, dangerous args like--no-sandbox,--disable-web-securitywill throw errors. Default false.
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 heightencoded(boolean, optional): If true, capture the screenshot as a base64-encoded data URI (as text) instead of binary image content. Default false.
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
Related MCP server: dev-chrome-monitor
Key Features
Browser automation
Console log monitoring
Screenshot capabilities
JavaScript execution
Basic web interaction (navigation, clicking, form filling)
Customizable Puppeteer launch options
Configuration to use Puppeteer Server
Usage with Claude Desktop
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"]
}
}
}Usage with VS Code
For quick installation, use one of the one-click install buttons below...
For manual installation, add the following JSON block to your User Settings (JSON) file in VS Code. You can do this by pressing Ctrl + Shift + P and typing Preferences: Open User Settings (JSON).
Optionally, you can add it to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others.
Note that the
mcpkey is not needed in the.vscode/mcp.jsonfile.
For NPX installation (opens a browser window):
{
"mcp": {
"servers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
}For Docker installation (uses headless chromium):
{
"mcp": {
"servers": {
"puppeteer": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"-e",
"DOCKER_CONTAINER=true",
"mcp/puppeteer"
]
}
}
}
}Launch Options
You can customize Puppeteer's browser behavior in two ways:
Environment Variable: Set
PUPPETEER_LAUNCH_OPTIONSwith a JSON-encoded string in the MCP configuration'senvparameter:{ "mcpServers": { "mcp-puppeteer": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-puppeteer"], "env": { "PUPPETEER_LAUNCH_OPTIONS": "{ \"headless\": false, \"executablePath\": \"C:/Program Files/Google/Chrome/Application/chrome.exe\", \"args\": [] }", "ALLOW_DANGEROUS": "true" } } } }Tool Call Arguments: Pass
launchOptionsandallowDangerousparameters to thepuppeteer_navigatetool:{ "url": "https://example.com", "launchOptions": { "headless": false, "defaultViewport": { "width": 1280, "height": 720 } } }
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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables LLMs to perform web browsing tasks, take screenshots, and execute JavaScript using Puppeteer for browser automation.Last updated429,2671MIT
- Alicense-qualityDmaintenanceEnables interaction with Chromium browser instances through Puppeteer for inspecting dev builds, capturing screenshots, and automating UI interactions. Features permission-gated tools for secure browser navigation, DOM manipulation, and JavaScript evaluation.Last updated221MIT
- AlicenseBqualityDmaintenanceEnables AI agents to automate browser interactions including navigation, content extraction, form filling, screenshots, and JavaScript execution across multiple tabs using Puppeteer.Last updated27801MIT
- Alicense-qualityDmaintenanceEnables LLMs to perform browser automation tasks including web scraping, taking screenshots, and executing JavaScript using Playwright. It facilitates real-time interaction with web pages and the generation of automated test code.Last updated8MIT
Related MCP Connectors
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lijingle1/puppeteer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server