Puppeteer MCP Server
This MCP server provides browser automation capabilities through Puppeteer, allowing interaction with both new browser instances and existing Chrome windows.
Overview
Puppeteer MCP Server is a browser automation tool that allows users to interact with both new browser instances and existing Chrome windows using Puppeteer.
To use the server, you can either launch a new browser instance or connect to an existing Chrome window with remote debugging enabled. Follow the setup instructions to connect and utilize various automation tools provided by the server.
- Navigate web pages - Take screenshots - Click elements - Fill forms - Select options - Hover elements - Execute JavaScript - Smart Chrome tab management including connection to active tabs and preserving existing instances.
- Automating web testing and scraping tasks.
- Taking automated screenshots of web pages.
- Filling out forms and interacting with web applications programmatically.
- Managing multiple Chrome tabs for testing or data collection.
Add to your AI client
Use these steps to connect Puppeteer MCP Server in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.
Cursor
Add this to your .cursor/mcp.json file in your project root, then restart Cursor.
.cursor/mcp.json
{
"mcpServers": {
"puppeteer-mcp-server-merajmehrabi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}Claude Desktop
Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"puppeteer-mcp-server-merajmehrabi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}Claude Code
Add this to your project's .mcp.json file. Claude Code will detect it automatically.
.mcp.json (project root)
{
"mcpServers": {
"puppeteer-mcp-server-merajmehrabi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}VS Code (Copilot)
Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.
.vscode/mcp.json
{
"servers": {
"puppeteer-mcp-server-merajmehrabi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}Windsurf
Add this to your Windsurf MCP config file, then restart Windsurf.
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"puppeteer-mcp-server-merajmehrabi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}Cline
Open Cline settings, navigate to MCP Servers, and add this server configuration.
Cline MCP Settings (via UI)
{
"mcpServers": {
"puppeteer-mcp-server-merajmehrabi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-puppeteer-mcp-server-merajmehrabi"
]
}
}
}FAQ
Can I connect to any Chrome instance?
Yes, as long as it is launched with remote debugging enabled.
Is there a limit to the number of tabs I can manage?
No, you can manage multiple tabs as long as they are within the same Chrome instance.
What should I do if I encounter connection issues?
Ensure that Chrome is running with the correct debugging port and that no other instances are interfering.