drio
Open app

Puppeteer MCP Server

Source

This MCP server provides browser automation capabilities through Puppeteer, allowing interaction with both new browser instances and existing Chrome windows.

Catalog onlyCatalog onlySTDIO

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.
  1. Automating web testing and scraping tasks.
  2. Taking automated screenshots of web pages.
  3. Filling out forms and interacting with web applications programmatically.
  4. 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.