Puppeteer

Puppeteer

Full browser automation: navigate, click, screenshot, and scrape.

Score 48(?)Community (Hisma — fork of archived Anthropic reference)MIT1Verified Top MCPs for Browser Automation

Quick answer

What it does

Controls a headless Chromium browser via Puppeteer, enabling navigation, DOM interaction, form filling, screenshot capture, and JavaScript execution.

Best for

  • Web scraping with JavaScript
  • Form automation
  • Screenshot capture
  • End-to-end testing

Not for

  • Simple page reading
  • High-speed bulk scraping

Setup recipe

Pick your client, then follow the three steps.

  1. 1

    Install

    claude_desktop_config.json
    {
      "mcpServers": {
        "puppeteer": {
          "command": "npx",
          "args": [
            "-y",
            "@hisma/server-puppeteer"
          ]
        }
      }
    }

    Paste under mcpServers. Fully quit and reopen Claude after editing.

    CLI or .mcp.json
    claude mcp add puppeteer -- npx -y @hisma/server-puppeteer

    Run from your repo. Commit .mcp.json to share with your team.

    .cursor/mcp.json
    {
      "mcpServers": {
        "puppeteer": {
          "command": "npx",
          "args": [
            "-y",
            "@hisma/server-puppeteer"
          ]
        }
      }
    }

    Global path: ~/.cursor/mcp.json. Reload window after editing.

    .vscode/mcp.json
    {
      "servers": {
        "puppeteer": {
          "command": "npx",
          "args": [
            "-y",
            "@hisma/server-puppeteer"
          ]
        }
      }
    }

    VS Code uses the "servers" key (not "mcpServers").

    ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "puppeteer": {
          "command": "npx",
          "args": [
            "-y",
            "@hisma/server-puppeteer"
          ]
        }
      }
    }

    Open via Cascade → hammer icon → Configure.

    cline_mcp_settings.json
    {
      "mcpServers": {
        "puppeteer": {
          "command": "npx",
          "args": [
            "-y",
            "@hisma/server-puppeteer"
          ]
        }
      }
    }

    Open via the Cline sidebar → MCP Servers → Edit.

    ~/.continue/config.json
    {
      "experimental": {
        "modelContextProtocolServers": [
          {
            "transport": {
              "type": "stdio",
              "command": "npx",
              "args": [
                "-y",
                "@hisma/server-puppeteer"
              ]
            }
          }
        ]
      }
    }

    Continue uses modelContextProtocolServers with a transport block.

    ~/.codex/config.toml
    # ~/.codex/config.toml
    [mcp_servers.puppeteer]
    command = "npx"
    args = [
      "-y",
      "@hisma/server-puppeteer",
    ]

    Codex uses TOML. Each server is a [mcp_servers.<name>] subtable.

    ~/.config/zed/settings.json
    {
      "context_servers": {
        "puppeteer": {
          "command": {
            "path": "npx",
            "args": [
              "-y",
              "@hisma/server-puppeteer"
            ]
          }
        }
      }
    }

    Zed calls them "context_servers". Settings live-reload on save.

    ChatGPT → Apps directory

    Puppeteer doesn't ship a hosted HTTPS endpoint today. ChatGPT supports remote MCP servers only — to use this server in ChatGPT you'll need to deploy it to a public HTTPS URL first (e.g. via Cloudflare Workers or Vercel) or wait for an official remote build.

  2. 2

    Set required secrets

    No credentials required — this MCP runs over stdio without authentication.

  3. 3

    Try a minimum working prompt

    Screenshot a page and extract its headlines

    Open https://news.ycombinator.com, take a full-page screenshot named `hn.png`, then return the top 5 headlines with their score and number of comments.

    Tested with: Claude Desktop, Cursor.

Tools & permissions

ToolDescriptionArgsSide effects
puppeteer_navigateNavigate the browser to a URL.url: stringNetwork
puppeteer_screenshotTake a screenshot of the current page or a selector.name: string, selector?: string, width?: number, height?: numberRead
puppeteer_clickClick an element by CSS selector.selector: stringExec
puppeteer_fillFill an input element.selector: string, value: stringExec
puppeteer_selectSelect an option from a dropdown.selector: string, value: stringExec
puppeteer_hoverHover over an element.selector: stringExec
puppeteer_evaluateRun a JavaScript expression in the page context.script: stringExec

Security & scope

Access scope
Exec
Sandbox
Launches a headless Chromium process under the user account running the MCP. The browser has the same network and filesystem access the user has.
Gotchas
  • Chromium can execute arbitrary JavaScript on pages it visits — treat it like a browsing agent running with your credentials.
  • Downloaded files land in the user home directory unless `downloadPath` is configured.
  • Heavy memory footprint — one Chromium process per MCP launch, not reused across tool calls by default.

Agent prompt pack

— copy into Claude, Cursor, or ChatGPT.
Paste into Claude, Cursor, or ChatGPT. Edit the [brackets] before sending.
Recommend the best MCP servers for [task: e.g. browser automation work] in [client: Claude].

Constraints:
- Prefer tools that are [official | open-source | read-only] — pick what matters for my use case.
- Exclude MCPs that require [e.g. a paid plan, OAuth-only flows, remote-only transport].
- Return at most 3 picks, ranked.

For each pick include:
1. One-sentence rationale.
2. The ready-to-paste install snippet for my client.
3. Any required secrets I need to create before installing.

Cross-check the top-mcps.com listing: https://top-mcps.com/top-mcps-for-browser-automation
Compare Puppeteer against a real alternative. Swap the second MCP in [brackets] if you want a different match.
Compare Puppeteer MCP vs [Fetch MCP] for the following job: [describe the job, e.g. "let an agent create GitHub issues on bug triage"].

Judge them on:
- Setup time and complexity (what a new user hits first).
- Auth model (none / API key / OAuth 2.1) and credential risk.
- Transport (stdio / Streamable HTTP / SSE) and where the server runs.
- Required secrets and the blast radius if they leak.
- Operational risk in an unattended agent loop.
- Which one is "good enough" for a weekend prototype vs. production.

End with one sentence: which should I pick for my scenario, which is: [my scenario].

References:
- https://top-mcps.com/mcp/puppeteer
- top-mcps.com listing for Fetch
Asks the agent to install and verify. Works inside Claude Code, Cursor Agent, Codex CLI.
Install the Puppeteer MCP server for my [client: Claude] at the default config path for that client.

Use the exact install snippet published at https://top-mcps.com/mcp/puppeteer (fetch https://top-mcps.com/mcp/puppeteer.json for the canonical server.json if you can read URLs).

Before finishing:
1. Create the required secrets (no secrets) and put them in the appropriate env block — do not hard-code them.
2. Restart or reload the client so it picks up the new server.
3. Verify the server is connected (green / running state) and at least one tool is listed.
4. If anything fails, read the client's MCP logs and report the exact error — do not silently retry.

Confirm when done and list the tools the server now exposes.

Frequently asked questions

What changed

2 updates tracked.
  1. Refreshed install snippets and fact sheet; verified for 2026.

  2. Initial directory listing.

More Browser Automation MCPs

Other tools in the same category worth evaluating.

Playwright
Official

Official Microsoft browser automation across Chromium, Firefox, and WebKit.

browser, automation, playwright, testing
5 minMedium
Browserbase
Official

Hosted, isolated Chromium runtime for AI agents that need a fresh browser per task.

browser, cloud, browserbase, automation
5 minMedium
Stagehand
Official

AI-native browser automation: act, observe, and extract in plain English.

browser, stagehand, browserbase, ai-automation
5 minMedium

Compared with Puppeteer

Side-by-side breakdowns for the choices people most often weigh against this MCP.

Exploring Top MCPs for Browser Automation? See all Browser Automation MCPs →