# Playwright MCP

> Microsoft's MCP server for browser automation with Playwright: your agent navigates, clicks and fills in pages from structured snapshots.

Playwright MCP is Microsoft's MCP server for browser automation. It lets your agent drive a real browser through Playwright, reading pages as structured accessibility snapshots rather than screenshots, so it doesn't need a vision model and its actions are precise.

What you can do with it
- Navigate pages, click, type, hover, drag and select options
- Fill out forms and upload files
- Check that text, elements and values appear on the page
- Take screenshots, and read console messages and network requests
- Manage tabs, handle dialogs and run code in the page
- Turn on more when you need it: cookies and storage, network routing, saving PDFs, tracing and video, and clicking by coordinates

How it connects
It runs on your machine with npx @playwright/mcp@latest and needs Node.js 18 or newer. There's also a Docker image, which runs headless Chromium only.

Your browser profile
By default it keeps a persistent browser profile for each project, so sign-ins carry over between sessions. Use --isolated for a fresh profile every session, or --extension to connect to your own running Chrome or Edge through the Playwright Extension.

Good to know
Playwright MCP isn't a security boundary: your agent can do anything in that browser. For coding agents, Microsoft suggests Playwright CLI with skills, which uses less of the agent's context.

- Type: Plugin
- Made by: Microsoft
- Category: Web & browser
- Formats: Local MCP, Claude plugins
- Version: 0.0.83
- Website: https://github.com/microsoft/playwright-mcp
- Source: https://github.com/microsoft/playwright-mcp
- Page: https://pluginboard.ai/plugins/playwright-mcp

## Works with

- Claude
- GitHub Copilot
- Cursor
- Claude Code
- Codex
- Antigravity
- Gemini CLI
- OpenClaw
- OpenCode
- Hermes Agent

## Install

### Claude

Add to claude_desktop_config.json:

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

### GitHub Copilot

Add to VS Code: vscode:mcp/install?%7B%22name%22%3A%22playwright-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40playwright%2Fmcp%400.0.82%22%5D%7D

Run in your terminal:

```shell
code --add-mcp '{"name":"playwright-mcp","command":"npx","args":["-y","@playwright/mcp@0.0.82"]}'
```

Copilot CLI:

```shell
copilot mcp add playwright-mcp -- npx -y @playwright/mcp@0.0.82
```

### Cursor

Add to Cursor: cursor://anysphere.cursor-deeplink/mcp/install?name=playwright-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBwbGF5d3JpZ2h0L21jcEAwLjAuODIiXX0%3D

Add to .cursor/mcp.json:

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

### Claude Code

Run in your terminal:

```shell
claude mcp add playwright-mcp -- npx -y @playwright/mcp@0.0.82
```

### Codex

Run in your terminal:

```shell
codex mcp add playwright-mcp -- npx -y @playwright/mcp@0.0.82
```

### Antigravity

Add to ~/.gemini/config/mcp_config.json:

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

### Gemini CLI

Run in your terminal:

```shell
gemini mcp add playwright-mcp npx -y @playwright/mcp@0.0.82
```

### OpenClaw

In a terminal: Run openclaw mcp add playwright-mcp --command npx, with --arg before each argument (-y @playwright/mcp@0.0.82) and --env NAME=value for each variable it needs.

### OpenCode

Run in your terminal:

```shell
opencode mcp add playwright-mcp -- npx -y @playwright/mcp@0.0.82
```

### Hermes Agent

Add to ~/.hermes/config.yaml:

```json
{
  "mcp_servers": {
    "playwright-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@0.0.82"
      ]
    }
  }
}
```

---
From Pluginboard (https://pluginboard.ai).
