---
title: "ExecuteAutomation Playwright MCP: Browser Tests and Scraping"
url: "https://mcpshelf.co/servers/executeautomation-playwright"
description: "ExecuteAutomation's Playwright MCP server drives Chromium, Firefox or WebKit, records test code and emulates 143 devices. Config, tools and how it differs."
updated: "2026-10-27"
site: "MCP Shelf"
---

# ExecuteAutomation Playwright MCP

> A community Playwright server that also writes test code and emulates phones and tablets.

## At a glance

This is the Playwright server from ExecuteAutomation, a test-automation training site, and it predates Microsoft's own Playwright MCP. The model drives a real Chromium, Firefox or WebKit browser by CSS selector: open pages, click, fill forms, run JavaScript, save PDFs and take screenshots. It can also record what it did as Playwright test code and make plain HTTP requests for API checks.

Its party trick is device emulation: one call switches the page to any of 143 Playwright device profiles, such as an iPhone 13 or an iPad in landscape. The last release was in December 2025, so for day-to-day browsing Microsoft's server is the safer default; this one suits people who want test code and device checks out of the session.

|  |  |
| --- | --- |
| Made by | ExecuteAutomation (Karthik KK) |
| GitHub | https://github.com/executeautomation/mcp-playwright |
| Licence | MIT |
| npm package | [@executeautomation/playwright-mcp-server](https://www.npmjs.com/package/@executeautomation/playwright-mcp-server) 1.0.12 (12 Dec 2025) |
| GitHub stars | 5.7K |
| Downloads | 7K a week |
| Last commit | 13 Dec 2025 |
| Tools | 33 |
| Runs on | Your computer |
| Install check | Started in our test |
| Category | [Browser and web data](https://mcpshelf.co/categories/browser-and-web) |

**Our check:** We ran this exact config on 27 Oct 2026: it started and answered with 33 tools. The shared database listed "@michaellatman/mcp-get", an installer, as the package. The server itself is @executeautomation/playwright-mcp-server, version 1.0.12.

## Tools

We listed 33 tools on 27 Oct 2026. 1 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `start_codegen_session` | changes | Starts recording the browser actions that follow, for turning into a test. |
| `end_codegen_session` | changes | Stops recording and writes a Playwright test file. |
| `get_codegen_session` | reads | Shows what a recording session has captured so far. |
| `clear_codegen_session` | changes | Throws a recording away without writing a test. |
| `playwright_navigate` | changes | Opens a URL, starting the browser if needed. You can pick Chromium, Firefox or WebKit, the window size and headless mode. |
| `playwright_screenshot` | changes | Captures the page or one element, full page if you like, and can save it as a PNG. |
| `playwright_click` | changes | Clicks an element found by CSS selector. |
| `playwright_iframe_click` | changes | Clicks an element inside an iframe. |
| `playwright_iframe_fill` | changes | Types into a field inside an iframe. |
| `playwright_fill` | changes | Types a value into an input. |
| `playwright_select` | changes | Picks an option in a select box. |
| `playwright_hover` | changes | Moves the mouse over an element, for menus and tooltips. |
| `playwright_upload_file` | changes | Attaches a local file to a file input. |
| `playwright_evaluate` | changes | Runs JavaScript in the page and returns the result. |
| `playwright_console_logs` | changes | Reads the browser console, filtered by type or text. |
| `playwright_resize` | changes | Changes the viewport by size or by one of 143 device presets, with orientation. |
| `playwright_close` | changes | Closes the browser and frees its resources. |
| `playwright_get` | changes | Sends an HTTP GET request outside the page. |
| `playwright_post` | changes | Sends an HTTP POST request. |
| `playwright_put` | changes | Sends an HTTP PUT request. |
| `playwright_patch` | changes | Sends an HTTP PATCH request. |
| `playwright_delete` | changes | Sends an HTTP DELETE request. |
| `playwright_expect_response` | changes | Starts waiting for a network response that matches a URL pattern. |
| `playwright_assert_response` | changes | Finishes that wait and checks the response that came back. |
| `playwright_custom_user_agent` | changes | Sets the browser's user agent string. |
| `playwright_get_visible_text` | changes | Returns the readable text of the page. |
| `playwright_get_visible_html` | changes | Returns the page HTML, with scripts removed unless you ask for them. |
| `playwright_go_back` | changes | Goes back one page in history. |
| `playwright_go_forward` | changes | Goes forward one page in history. |
| `playwright_drag` | changes | Drags one element onto another. |
| `playwright_press_key` | changes | Presses a keyboard key, optionally on a focused element. |
| `playwright_save_as_pdf` | changes | Saves the page as a PDF file. |
| `playwright_click_and_switch_tab` | changes | Clicks a link that opens a new tab and carries on in that tab. |

### How clearly it describes its tools

33 of 33 tools have a description and 0 of 33 say whether they change things. The tool list takes at least ~1,300 tokens of context. No tool says whether it only reads or can change things, so your client treats them all alike: keep approvals on.

## Set it up

### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "executeautomation-playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
```

### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add-json executeautomation-playwright '{"command":"npx","args":["-y","@executeautomation/playwright-mcp-server"]}'
```

### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "executeautomation-playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
```

### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "executeautomation-playwright": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
```

### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "executeautomation-playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
```

### ChatGPT

Where: Not supported

ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.

For a client that connects by URL, start it with npx @executeautomation/playwright-mcp-server --port 8931 and point the client at http://localhost:8931/mcp.

## Settings

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `--port` | flag | no | Runs it as an HTTP server on that port instead of over stdio, for clients that connect by URL. The endpoint is /mcp. Example: `--port 8931` |
| `headless` | config | no | An option on playwright_navigate. Ask for headless mode when there is no screen, or leave it off to watch the browser work. |
| `browserType` | config | no | An option on playwright_navigate: chromium, firefox or webkit. |

## What it can touch

**It can read**

- Any web page it opens, including text, HTML and console output
- Responses from HTTP requests it sends

**It can change**

- Forms and pages it clicks through, signed in as whoever the browser session is
- Files it saves: screenshots, PDFs and generated tests
- Any API you point its HTTP tools at

**Safer setup:** It starts a fresh browser profile, so it is not signed in to your accounts unless you sign in during the session. Keep the HTTP tools away from production APIs.

## Before you start

- Node.js 18 or newer
- Disk space for the Playwright browser it downloads on first use

## Good for

- Turning a manual click-through into a Playwright test file
- Checking a page on phone and tablet sizes from a chat
- Quick API checks alongside the browser

## If it does not work

**The first call takes a long time**
On first use it downloads the browser it needs. Run npx playwright install chromium beforehand to get that out of the way.

**A headed browser fails on a server or in a container**
There is no display. Ask for headless mode, or run the server in HTTP mode on a machine with a screen.

**HTTP mode does not connect**
Clients need "type": "http" alongside the URL http://localhost:8931/mcp. Claude Desktop only supports the stdio config.

**No logs appear in the terminal**
In stdio mode it writes logs to ~/playwright-mcp-server.log so they do not break the protocol.

## Similar servers

| Server | Tools | Runs on | Stars |
| --- | --- | --- | --- |
| [Wigolo](https://mcpshelf.co/servers/wigolo) | 10 | Your computer | 5.5K |
| [Perplexity MCP](https://mcpshelf.co/servers/perplexity) | 4 | Your computer or hosted | 2.6K |
| [Tavily MCP](https://mcpshelf.co/servers/tavily) | 5 | Your computer or hosted | 2.5K |
| [DuckDuckGo Search MCP](https://mcpshelf.co/servers/duckduckgo) | 3 | Your computer | 1.6K |

## Questions

### Is this the official Playwright MCP?

No. Microsoft publishes its own server, @playwright/mcp, which works from the accessibility tree. This one is a community project from ExecuteAutomation that uses CSS selectors and adds test recording and API tools.

### Which one should I use?

Microsoft's for general browsing and current Playwright releases. This one if you want generated test files, device emulation presets or HTTP request tools in the same server.

### Is it still maintained?

The latest release, 1.0.12, came out in December 2025, and the repository has been quiet since. It still installs and starts.

### Is it free?

Yes, under the MIT licence.

Full docs on GitHub: https://github.com/executeautomation/mcp-playwright

---

From [MCP Shelf](https://mcpshelf.co/): A short shelf of MCP servers that are worth installing. Index for agents: https://mcpshelf.co/llms.txt

