Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server for browser automation with AI agents, enabling network payload capture and QA workflows.

README.md

Playwright MCP Mario

![version](https://github.com/mariocosttaa/mario-playwright-mcp/releases) ![Node.js](https://nodejs.org/) ![Playwright](https://playwright.dev/) ![License](LICENSE)

Browser MCP for AI agents — based on Microsoft Playwright MCP with extensions for network payload capture and QA workflows.

---

What is this?

An MCP server that lets LLMs control a browser through accessibility snapshots (no vision models needed). This fork adds network payload capture and sensitive redaction — better for API debugging and QA.

flowchart LR
    subgraph Card1["1- Default Playwright"]
        D1[Microsoft upstream]
    end

    subgraph Card2["2- Mario Playwright"]
        D2[network payloads · redaction]
    end

    subgraph Card3["3- Mario agent skills"]
        D3[qa-agent · QA workflows]
    end

    subgraph Runtime[runtime]
        direction LR
        subgraph BrowserCard["4- Browser"]
            Browser[Chromium]
        end
        subgraph ToolsCard["5- Tools"]
            T1[navigate]
            T2[click · type]
            T3[snapshot · screenshot]
            T4[network ++]
        end
    end

    Card1 --> Card2 --> Card3 --> Runtime
    BrowserCard --> ToolsCard
  • MCP = bridge that controls the browser and returns snapshots, screenshots, console, network.
  • Recommended: qa-agent skill for QA workflows.
  • Mario vs upstream: full payloads, URL filter, sensitive redaction — not just [POST] url => [200].

---

Quick start

1. Clone and install

git clone https://github.com/YOUR_ORG/mario-playwright-mcp.git
cd mario-playwright-mcp
npm install
npx playwright install chromium

2. Configure your MCP client

Cursor (in ~/.cursor/mcp.json or Settings → MCP):

{
  "mcpServers": {
    "playwright-mcp": {
      "command": "node",
      "args": [
        "/path/to/mario-playwright-mcp/packages/playwright-mcp/cli.js",
        "--output-dir",
        ".mcp-output"
      ]
    }
  }
}

Output (console logs, screenshots, etc.) goes to .mcp-output/ in the workspace. Add .mcp-output/ to .gitignore to keep the repo clean.

Generic config (VS Code, Claude Desktop, etc.) — use node + path to cli.js as above.

3. Use it

Open a project, start a chat, and use tools like browser_navigate, browser_snapshot, browser_network_requests.

QA Agent skill (recommended)

For QA workflows and structured test reports, use the qa-agent skill — an agent skill for QA engineers that uses this MCP for browser testing, post-action analysis (console + network), and evidence capture.

---

Tools

All tools the Playwright MCP exposes. ✨ = Mario-enhanced (better in this fork).

Core (always available)

| Tool | Description | |------|-------------| | browser_navigate | Navigate to a URL | | browser_navigate_back | Go back | | browser_snapshot | Capture accessibility tree (better than screenshot for actions) | | browser_take_screenshot | Take a screenshot | | browser_console_messages | Get console logs | | browser_network_requests ✨ | List network requests — Mario: adds includePayloads, url filter, maxBodySize, sensitive redaction | | browser_click | Click an element | | browser_type | Type text into an element | | browser_hover | Hover over an element | | browser_drag | Drag and drop | | browser_fill_form | Fill multiple form fields | | browser_select_option | Select dropdown option | | browser_press_key | Press a key | | browser_resize | Set viewport size — browser opens at native resolution by default; use to test Mobile (375×667), Tablet (768×1024), Desktop (1920×1080) | | browser_evaluate | Run JavaScript on the page | | browser_run_code | Run Playwright code snippet | | browser_file_upload | Upload files | | browser_handle_dialog | Accept/dismiss dialogs | | browser_wait_for | Wait for text or time | | browser_tabs | List, create, close, or switch tabs | | browser_close | Close the browser | | browser_install | Install the browser (if missing) |

Opt-in (pass --caps=…)

| Capability | Tools | |------------|-------| | --caps=pdf | browser_pdf_save — Save page as PDF | | --caps=vision | browser_mouse_move_xy, browser_mouse_click_xy, browser_mouse_drag_xy, browser_mouse_down, browser_mouse_up, browser_mouse_wheel — Coordinate-based actions | | --caps=testing | browser_generate_locator, browser_verify_element_visible, browser_verify_list_visible, browser_verify_text_visible, browser_verify_value — Test assertions |

---

Extensions (vs upstream)

Network payload capture

browser_network_requests supports:

| Param | Description | |-------|-------------| | includePayloads | When true, include request/response headers and bodies | | url | Filter by URL substring (e.g. /login, /api/users) | | maxBodySize | Max response body size (default 50KB) | | includeStatic | Include images, fonts, etc. (default false) |

Example — get full details for a login call:

browser_network_requests(url: "/login", includePayloads: true)

Output:

[POST] https://api.example.com/login => [200] OK
  Request headers: { "content-type": "application/json", ... }
  Request body: {"email":"user@example.com","password":"***"}
  Response headers: { "content-type": "application/json", ... }
  Response body: {"token":"***","user":{...}}

Sensitive keys (password, token, secret, authorization, cookie, api_key) are redacted as ***.

Workflow

  1. browser_network_requests(includeStatic: false) → list URLs
  2. browser_network_requests(url: "/api/endpoint", includePayloads: true) → headers + bodies for that request

---

Project structure

mario-playwright-mcp/
├── packages/
│   ├── playwright-mcp/     # MCP server
│   └── extension/          # Browser extension (upstream)
├── patches/                # Network payload patch for Playwright
├── docs/                   # Extra docs
│   └── UPSTREAM.md         # Update from Microsoft upstream
└── README.md

---

Update from upstream

git remote add upstream https://github.com/microsoft/playwright-mcp.git
git fetch upstream
git merge upstream/main
npm install

If Playwright version changes and the patch fails, re-apply changes in node_modules/playwright/lib/mcp/browser/tools/network.js and run npx patch-package playwright. See docs/UPSTREAM.md.

---

Requirements

  • Node.js 18+
  • MCP client (Cursor, VS Code, Claude Desktop, Goose, etc.)

For client-specific configs (Amp, Cline, LM Studio, etc.) and CLI options, see the upstream README.

---

Versioning

  • main — development branch
  • 1.1 — first Mario fork release (network payload capture, .mcp-output, etc.)
  • 1.2, 1.3, … — future releases as changes land

Use semantic versioning: patch for fixes (1.1.1), minor for features (1.2.0).

---

License

Apache 2.0 — see LICENSE. Based on Microsoft Playwright MCP.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Browser & Scraping servers.