# invisible_playwright_mcp

An MCP server that hands your assistant a real Firefox: it opens pages, clicks, types and reads them from plain-English instructions.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 877
- Author: feder-cr
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/feder-cr/invisible_playwright_mcp
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/invisible-playwright-mcp

## What it does

The server drives a browser the way a person would. The pointer moves, keys get pressed, and the assistant works out where to click and what to read. Reach for it when a task needs a browser rather than an API, and when what matters is what actually rendered on the page.

It runs through `uvx` as a Python package. There is also a web UI mode: `uvx invisible-playwright-mcp ui --openrouter-key sk-or-...`, chat on the left, live browser on the right, at `http://127.0.0.1:8765`. The OpenRouter key can live in `OPENROUTER_API_KEY` or in a `.env` beside the command, which keeps it out of your shell history and, on Linux, out of the process list. Precedence runs flag, environment, `.env`, default. Only the current directory is read, so a subfolder cannot quietly pick up a different key.

A proxy goes in `--proxy` as `http://user:pass@proxy.example.com:8080` or `socks5://proxy.example.com:1080`; host and port are both required. `--binary` takes an engine build you already have, but it has to match the pinned version or startup refuses. Changing `--host` exposes an interface with no authentication, so keep it local. `--profile-dir` keeps logins and cookies across restarts, and `--seed` reproduces the same browser identity on every run.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Works with: Playwright

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add invisible-playwright-mcp -- uvx invisible-playwright-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from invisible-playwright-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add invisible-playwright-mcp -- uvx invisible-playwright-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from invisible-playwright-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "invisible-playwright-mcp": {
            "command": "uvx",
            "args": [
                "invisible-playwright-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from invisible-playwright-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "invisible-playwright-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "invisible-playwright-mcp"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from invisible-playwright-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add invisible-playwright-mcp uvx invisible-playwright-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from invisible-playwright-mcp <command>

## When to use it
- Pull data from a page that has no API
- Check prices or availability across several dates in a row
- Fill in a form and submit it in a real browser
- Read what actually rendered, not just the raw HTML
- Replay the same scenario with a repeatable browser identity

## Example prompts
- Open the schedule page and list the cheapest fare for each day from the 12th to the 16th
- Go to the site, find the search field, type the product name and show the first results
- Follow the links in this list and collect the headlines and publish dates

## Similar
- [playwright-dev](https://affpapa.org/en/nevibecode/skills/playwright-dev.md) — skill · 3700 installs
- [playwright-recording](https://affpapa.org/en/nevibecode/skills/playwright-recording.md) — skill · 1300 installs
- [playwright-bot-bypass](https://affpapa.org/en/nevibecode/skills/playwright-bot-bypass.md) — skill · 775 installs
- [playwright-in-sandbox](https://affpapa.org/en/nevibecode/skills/playwright-in-sandbox.md) — skill · 508 installs
- [playwright-generate-test](https://affpapa.org/en/nevibecode/skills/playwright-generate-test.md) — skill · 18162 installs
- [playwright-explore-website](https://affpapa.org/en/nevibecode/skills/playwright-explore-website.md) — skill · 14792 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
