Puppeteer MCP Server
Anthropic's reference browser automation server — functional but archived. Playwright MCP is the maintained alternative.
Client Compatibility
What It Does
Browser automation through Puppeteer — navigate pages, click elements, fill forms, select options, hover, evaluate JavaScript, and take screenshots. Claude controls a Chromium browser instance to interact with web pages programmatically.
This is Anthropic’s reference implementation for browser automation via MCP. It has been moved to the servers-archived repository, meaning it still works but receives no updates.
What It Does Well
- Familiar Puppeteer API mapped to clean MCP tools. Seven tools cover the core browser automation workflow: navigate, click, fill, select, hover, evaluate, and screenshot. If you know Puppeteer, the MCP tool names map directly to what you’d expect.
- Customizable launch options via environment variable. Pass PUPPETEER_LAUNCH_OPTIONS as a JSON string to configure headless mode, viewport size, custom args, and other Puppeteer launch parameters. Docker support is included for containerized environments.
- Still works and still installs from npm. Despite being archived, the package is still published and functional. If you have existing automation workflows built on this server, they’ll continue to work.
What It Doesn’t Do Well
- Archived by Anthropic — no future updates or bug fixes. This server has been moved to the servers-archived repository. If Chromium updates break something, or if a new MCP spec feature would improve the server, nobody’s maintaining it. Playwright MCP is the actively maintained alternative from the same team.
- Downloads Chromium on first run, which can surprise users. The first
npxinvocation triggers a Chromium download (100+ MB). On slow connections or in CI environments, this can cause timeout issues. Subsequent runs use the cached browser.
Setup Notes
First run downloads Chromium — expect a delay. After that, the server launches a browser instance that Claude controls. Headless mode is default. Set PUPPETEER_LAUNCH_OPTIONS to {"headless": false} if you want to watch Claude interact with pages.
Docker is supported for isolated environments. The ALLOW_DANGEROUS flag enables custom Chrome executable paths if you need to use an existing Chrome installation instead of downloaded Chromium.
For new projects, we recommend Playwright MCP instead. It’s actively maintained, supports more browsers, and has a larger feature set.
Config
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
Headless off (watch Claude browse):
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"],
"env": {
"PUPPETEER_LAUNCH_OPTIONS": "{\"headless\": false}"
}
}
}
}
Tested With
- Claude Desktop on Windows 11
{
"mcpServers": {
"puppeteer-mcp": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer"
]
}
}
} Environment Variables
PUPPETEER_LAUNCH_OPTIONS— JSON string with Puppeteer launch configuration (optional)ALLOW_DANGEROUS— Enable custom Chrome executable paths (optional)
Prerequisites
- Node.js 18+
View on GitHub · npx -y @modelcontextprotocol/server-puppeteer
Reviewed by J-Dub · February 22, 2026