invisible-playwright-mcp
Automates a patched Firefox-based engine binary (optionally a user-supplied build pinned to the required version), sending realistic pointer and keyboard input so pages see it as an ordinary Firefox with a seed-derived fingerprint, proxy, locale and timezone.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@invisible-playwright-mcpOpen example.com, search for wireless headphones, and read me the top result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Other AI browser agents get captchas. This one is invisible to anti-bots.
Two ways to use this browser agent
1. From your assistant, over MCP
Windows, in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/envThen install it in your assistant.
Claude Code:
claude plugin marketplace add feder-cr/invisible_playwright_mcp
claude plugin install invisible-playwright-mcp@feder-crCodex:
codex plugin marketplace add feder-cr/invisible_playwright_mcp
codex plugin add invisible-playwright-mcp@feder-crGemini CLI:
gemini extensions install https://github.com/feder-cr/invisible_playwright_mcp2. Standalone: the web UI
We bring the interface, you bring an OpenRouter key. Chat on the left, the live browser on the right.
Windows, in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
uvx invisible-playwright-mcp ui --openrouter-key sk-or-...Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uvx invisible-playwright-mcp ui --openrouter-key sk-or-...Then open http://127.0.0.1:8765 and type the same thing.
Related MCP server: puppeteer-real-browser-mcp-server
What to ask a web browsing agent
Anything that needs real web automation: a browser rather than an API, and a person's judgement about what is on the page.
Go to
<paste the URL>. One way, Milan to Lisbon, economy, one checked bag, one adult. Check every date from the 12th to the 16th of next month, one at a time, and read the cheapest fare for each day. The date field is a calendar widget, so click the days rather than typing them. If a date has no availability, say so. Do not guess a number.
It drives the page the way a person would: the pointer moves, keys are pressed.
Options: proxy, profile, seed
--openrouter-keyYour key, or theOPENROUTER_API_KEYvariable.--modelAn OpenRouter model id, orINVISIBLE_MCP_MODEL. Defaults toz-ai/glm-5.3-flash.--proxyOptional.http://user:pass@proxy.example.com:8080orsocks5://proxy.example.com:1080. Host and port are both required. The timezone, locale and egress follow it.--binaryAn engine binary you already have. It must be the build the seal pins, or startup refuses: this skips the download, not the version check.--seedAn integer. Same seed, same browser identity, every run.--profile-dirA directory to keep the profile in, so logins and cookies survive restarts.--headedShow the browser window. The interface shows you the page anyway.--host,--port127.0.0.1and8765. Changing the host exposes an interface that has no authentication.
A .env beside the command
Rather than retyping the key and the binary path, put them in a .env in the
directory you run from:
OPENROUTER_API_KEY=sk-or-...
STEALTHFOX_BINARY=/path/to/firefoxIt is read at startup, and on the way in it never overrides something
already set, so the order is --flag > the environment > .env > the default.
Only the directory you are in is read - there is no search upwards, so running
from a subfolder cannot silently pick up a different key. The startup line names
the variables it applied and never prints their values.
Passing --openrouter-key puts the key in your shell history, and on Linux in
the process list. OPENROUTER_API_KEY in the environment or in a .env avoids
both.
The wiki: AI browser-agent guides
The reading room around the agent lives in the wiki: the AI browser-agent landscape: browser-use, Operator-style and computer-use agents compared, what to check when an agent gets blocked, and what happened to OpenAI Operator, among others. Worked examples, transcripts and their outputs live in articles/.
The rest of the family: engine, core
The MCP server from option 1 ships inside this package: invisible_playwright_mcp with no
subcommand is the server, invisible-playwright-mcp ui the interface. Its config blocks for
clients that take a file, its settings and its tools are on the wiki page
The MCP server.
invisible_playwright The engine, as a Python library, for writing code instead of prompts. The API is Playwright's.
invisible_core Seed to fingerprint to preferences, proxy and geolocation.
Using it responsibly
This automates a browser under your control. Read the terms of the sites you point it at, respect their rate limits, and do not submit anything a human has not read.
Privacy Policy
This browser agent runs on your machine and has no server of its own. What leaves your computer, and to whom:
The sites you visit see the browser, as they would any Firefox.
Your model provider. The web UI sends the conversation and what the agent reads on the page to OpenRouter under your key. Over MCP, the client you plugged it into does the same with whichever model it uses.
GitHub. The engine is downloaded from a GitHub release the first time the server or the interface starts, and a GeoIP database is when a proxy is set. Each browser launch also fetches a one-line counter file from a GitHub release, which is how launches are counted: the request carries no identifier and nothing of yours, and GitHub sees what any HTTPS request shows, your IP address.
Nothing else is collected and nothing is sent to the author. Sessions,
profiles and screenshots are stored locally, under INVISIBLE_MCP_HOME if set and
otherwise in the application-data directory of your system, and are yours to
delete; nothing is retained anywhere else. Questions go to the
issues.
License
MIT. Everything distributed before 2 September 2026 was released under AGPL-3.0 and stays under it.
This server cannot be deployed
Maintenance
Related MCP Connectors
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
Let your AI agent operate any website through a real, logged-in browser session.
Undetectable cloud browser sessions for AI agents and scrapers. Navigate, extract, click, captcha.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Related MCP Servers
- AlicenseAqualityAmaintenanceGives your AI agent a persistent browser identity with anti-detection, credential vault, and multi-persona support for automated web browsing, login, and signup.3113 npm10MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with powerful, detection-resistant browser automation capabilities, allowing them to control a real web browser to navigate, extract content, and perform tasks while avoiding bot detection.471 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to fully control a browser for web automation, including navigation, clicking, typing, scrolling, screenshots, and DOM inspection, with session persistence and anti-bot bypass.4012 npmMIT
- AlicenseCqualityDmaintenanceEnables AI-powered browser automation with real profiles, supporting interaction, navigation, form filling, and advanced features like visual overlays and self-healing selectors.42Apache 2.0