Playwright

Playwright

Official

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

Score 94(?)MicrosoftApache-2.033kVerified Top MCPs for Browser Automation

Quick answer

What it does

Exposes Playwright's automation surface as MCP tools: navigate, click, type, screenshot, evaluate JavaScript, and assert on page state across three real browser engines.

Best for

  • Cross-browser testing
  • Auto-wait selector reliability
  • Real Firefox or WebKit
  • Trace-based debugging

Not for

  • Static-HTML scraping
  • Bare-metal speed at scale

Setup recipe

Pick your client, then follow the three steps.

  1. 1

    Install

    claude_desktop_config.json
    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": [
            "-y",
            "@playwright/mcp@latest"
          ]
        }
      }
    }

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

    CLI or .mcp.json
    claude mcp add playwright -- npx -y @playwright/mcp@latest

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

    .cursor/mcp.json
    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": [
            "-y",
            "@playwright/mcp@latest"
          ]
        }
      }
    }

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

    .vscode/mcp.json
    {
      "servers": {
        "playwright": {
          "command": "npx",
          "args": [
            "-y",
            "@playwright/mcp@latest"
          ]
        }
      }
    }

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

    ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": [
            "-y",
            "@playwright/mcp@latest"
          ]
        }
      }
    }

    Open via Cascade → hammer icon → Configure.

    cline_mcp_settings.json
    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": [
            "-y",
            "@playwright/mcp@latest"
          ]
        }
      }
    }

    Open via the Cline sidebar → MCP Servers → Edit.

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

    Continue uses modelContextProtocolServers with a transport block.

    ~/.codex/config.toml
    # ~/.codex/config.toml
    [mcp_servers.playwright]
    command = "npx"
    args = [
      "-y",
      "@playwright/mcp@latest",
    ]

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

    ~/.config/zed/settings.json
    {
      "context_servers": {
        "playwright": {
          "command": {
            "path": "npx",
            "args": [
              "-y",
              "@playwright/mcp@latest"
            ]
          }
        }
      }
    }

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

    ChatGPT → Apps directory

    Playwright 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

    Minimum working prompt pending verification. Try any prompt from the MCP’s README once installed.

Tools & permissions

ToolDescriptionArgsSide effects
browser_navigateNavigate to a URL.url: stringNetwork
browser_clickClick an element.selector: stringExec
browser_typeType text into an input.selector: string, text: stringExec
browser_screenshotTake a screenshot.name: string, fullPage?: booleanRead
browser_evaluateRun JavaScript in the page context.script: stringExec

Security & scope

Access scope
Exec
Sandbox
Spawns a real browser process under the user account. Has full network access; can execute arbitrary JS on pages it visits.
Gotchas
  • Three browser engines downloaded on first run (~400 MB total) unless pinned.
  • Downloads and uploads default to the user home directory.
  • Auto-wait can mask broken pages — combine with explicit assertions.

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 Playwright against a real alternative. Swap the second MCP in [brackets] if you want a different match.
Compare Playwright MCP vs [Puppeteer 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/playwright
- top-mcps.com listing for Puppeteer
Asks the agent to install and verify. Works inside Claude Code, Cursor Agent, Codex CLI.
Install the Playwright 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/playwright (fetch https://top-mcps.com/mcp/playwright.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.

Puppeteer

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

browserautomationscrapingpuppeteer
5 minMedium
Browserbase
Official

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

browsercloudbrowserbaseautomation
5 minMedium
Stagehand
Official

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

browserstagehandbrowserbaseai-automation
5 minMedium

Compared with Playwright

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 →