Repository navigation
playwright mcp alternative
Microsoft's playwright-mcp is Apache-2.0, 36.9k stars when read on 2026-09-13, and maintained by the Playwright team. If you cannot name what it fails to do for you, there is no reason to replace it. This page is organised around the four complaints that are real, because three of them have a fix that is not a different server.
This page is about swapping one MCP server for another. If your question is whether to use MCP at all rather than a library, a function call or a plain script, that is a different question with a different answer: MCP alternatives.
The most common one, and it arrives as browser is already in use. A persistent profile can only be opened by one browser at a time, and the server defaults to a single fixed profile.
Fix without switching: --isolated for a throwaway profile per session, or
a distinct --user-data-dir per client. Both are documented options.
When a switch is warranted: if your client only lets you register a bare command with no arguments, you may not be able to pass either flag, and a server that has no shared profile to fight over saves you the fight. invisible_playwright_mcp is one: a server is one identity for its whole life, so two registered servers are two browsers by construction rather than two clients racing for one directory.
Every tool description is in the model's context on every turn, and a browsing session is a lot of turns. Reasonable complaint, wrong first move.
Fix without switching: trim the capability set. --caps is additive, so do
not enable vision, pdf and devtools if you are not using them. Do not register a
second browser server alongside it "just in case": the overlapping tool names
also make the model choose worse, not just cost more.
When a switch is warranted: if you genuinely need one job done, a four-tool server does it with a fraction of the surface. That is the design point of the smallest wrappers listed in stealth MCP servers compared.
The one case where the alternative really is a different server, because the cause is the engine and no flag reaches it. playwright-mcp drives a stock automation build; that is a specific set of observable choices and it travels with the server.
Before switching, attribute the failure. Most reports of "the agent gets detected" are machine and network facts that no server changes: a datacenter IP, no GPU, a container font set, or an agent clicking faster than a person can. Why an agent gets blocked works through how to tell which one you have. Switching servers over an IP problem costs you a day and fixes nothing.
If it really is the browser: the engine-modified servers are the row that differs. Camoufox, nodriver and Patchright wrappers, and this project. Stealth MCP servers compared is the comparison, including which of their claims we could not verify.
Sometimes the alternative to an MCP server is not an MCP server.
If you are running the same known flow every night, a model rediscovering it each time is slower and more expensive than a script. Playwright MCP vs the CLI has the split. If you are pulling structured data at volume, see MCP for web scraping: the working pattern is a model to establish the shape once and plain code for the repetition. If you want an autonomous program rather than a tool inside your assistant, you want an agent library - browser-use, Skyvern, Stagehand - and open-source agentic browsers lays out that layer.
Engine-modified MCP servers. Camoufox, nodriver and Patchright wrappers. Address complaint 3 only. Younger and smaller than Microsoft's, so check push dates.
invisible_playwright_mcp (ours, MIT). A Firefox patched at the C++ source, identity derived from a seed so a failing run replays exactly, one identity per server with a helper browser that shares nothing with it, and the agent interface in the same package. Addresses complaints 1 and 3. It does not make the model better, does not solve captchas, and covers Windows and Linux only.
Agent libraries. Not MCP at all. The right answer to complaint 4 when you wanted a program.
Staying, with flags. The right answer to complaints 1 and 2 most of the time, and the cheapest.
Is there a better Playwright MCP? Better at a named thing, yes. Better in general, no, and any page telling you otherwise is selling something.
What is the closest alternative to Microsoft's server? Functionally, the Camoufox and Patchright wrappers - the same shape with a different engine.
Can I run two MCP browser servers at once? Yes, and it costs context on every turn plus a harder choice for the model. Prefer one, configured properly.
Does an alternative server make my agent undetectable? No. Nobody can say that honestly. The engine changes what the browser looks like and nothing else.
Is playwright-mcp being maintained? Yes, actively, by the Playwright team. The alternatives are the ones where maintenance tempo is worth checking.
See also: Choosing an MCP server for browser automation, Playwright MCP best practices, and the MCP server.
-
microsoft/playwright-mcp, retrieved 2026-09-10: licence, stars,
--isolated,--user-data-dir,--caps. - The wrappers and engines surveyed in stealth MCP servers compared, with dates.
Written while maintaining an alternative to the tool this page is about. Three of the four complaints resolve without us, and they are listed first for that reason.
- OpenAI Operator alternatives
- Open-source Operator-style agents
- Is OpenAI Operator still available?
- OpenAI Operator vs Claude computer use
- browser-use alternatives
- Choosing an AI browser agent
- Open-source AI browser agents
- Open-source computer-use agents
- What is an AI web agent?
- AI browser agents vs traditional scraping
- Cloud browser infrastructure for AI agents, explained
- Browserbase alternatives
- Firecrawl vs an AI browser agent
- Skyvern alternatives
- Stagehand vs browser-use
- Project Mariner is gone: what replaced it
- Manus alternatives
- Gemini computer use vs Claude computer use
- A stealth browser MCP, reviewed honestly by its own wiki
- AI browser vs AI browser agent: which one do you want?
- AI browser agent vs RPA: which one fits the job
- AI browser agent vs n8n, Zapier and Make
- Vercel agent-browser alternatives, compared honestly
- What is an agentic browser? Definition and the two kinds
- Open-source agentic browsers: the three layers, compared
- Choosing an MCP server for browser automation: four axes
- Stealth MCP servers compared: Camoufox, nodriver, Patchright
- Playwright MCP alternatives, and the three you don't need
- Autonomous browser agents: the four rungs of autonomy
- What is actually free in the AI browser agent stack
- browser-use on GitHub: what the repo actually gives you
- Playwright MCP vs Chrome DevTools MCP: different jobs
- How to choose among MCP servers: a map by category
- Which MCP servers are worth adding to Claude Code
- MCP on GitHub: finding servers and judging them fast
- MCP vs an API: the decision, and what the wrapper costs
- MCP alternatives: when the protocol is the wrong shape
- Why does my AI agent get blocked?
- The timing signal AI agents give off
- Agent retry loops trip rate limits, not fingerprints
- Claude computer use detected as a bot
- browser-use getting blocked: what you can and cannot change
- Playwright MCP session blocked: four causes, four fixes
- Playwright MCP and captchas: what actually gets you past
- Cloudflare and a browser MCP server: what is being read
- Can an AI agent solve a captcha? The honest answer
- Getting an AI agent to fill out forms
- The best model for an MCP browser agent, and what it really costs
- Browser problem or model problem?
- How to use a Playwright MCP server with Claude Code
- Extracting data to a CSV with an AI agent
- Monitoring a page for changes with an AI agent
- How to let Claude Desktop control a browser
- How to add a browser to Cursor as an MCP server
- Using an AI agent to hunt for apartments
- Getting website data into Google Sheets with an AI agent
- Using an AI agent to download invoices from portals
- AI agents for web research
- Using an AI agent to test your own website
- How to add a browser to Cline as an MCP server
- Posting to social media with an AI agent
- Posting to Facebook with an AI agent
- Posting to Instagram with an AI agent
- Posting to X with an AI agent
- Automating LinkedIn posts: read this first
- Appointment bots: what they are and what an agent can legitimately do
- Track prices across sites with an AI agent
- Build a lead list with an AI browser agent
- Run an AI browser agent on a schedule
- AI browser agent with a local LLM: what changes
- Should you log your AI agent into your accounts?
- How to write a task an AI browser agent can follow
- Move data between two web apps with an AI agent
- The MCP server
- How the tools are shaped, and why
- Playwright MCP vs the Playwright CLI: which fits when
- Playwright MCP: browser is already in use, and the fix
- Playwright MCP best practices: four decisions that matter
- Playwright MCP with a proxy, and the three leaks it leaves
- A browser MCP server in GitHub Copilot: setup and limits
- Using a browser MCP server for web scraping: the pattern
- Which LLM for browser automation: the four properties
- How to build a browser agent, and what to take instead
- Getting an AI agent to log into a website: three routes
- MCP tools, resources and prompts: who controls each
- How many MCP tools is too many? The context arithmetic
- How to build an MCP server: the decisions, not the scaffold
- Local or remote MCP server: what changes, and what does not
- Writing an MCP client in Python: the thirty-line version
- Self-hosted AI agent: what one actually costs to run
- How long an AI browser agent takes per step, measured
- Text, HTML, snapshot or screenshot: what the agent should read
- Giving an AI browser agent a stopping condition
- Keeping an AI browser agent out of destructive actions
- Why did the AI agent click the wrong thing
- When the page changes under the AI agent
- Running one AI agent task across a list of sites
- Seeing a page as it appears in another country
- Getting data out of a dashboard with no export button
- Two browsers in one session: main and support
- Finding the dead links on a site with an AI agent
- Filling a CRM record from a company's website
- One form submission per spreadsheet row, with an AI agent
- Dated screenshots of a page as evidence
- Checking order and delivery status with an AI agent
- Reading a PDF that opens inside the browser
- Summarising a long page or thread with an AI agent
- Collecting every image on a page with its caption
- Collecting event and course listings with an AI agent
- Cancelling a subscription with an AI agent
- What an AI agent can and cannot do inside an iframe
- Shadow DOM and an AI agent: you can click it, you cannot read it
- How to add a browser to Codex as an MCP server
- What a page snapshot costs, per control
- How to let Gemini CLI use a browser
- Native selects and the ones that only look like selects
- Clicking by selector or by coordinates
- How long the agent waits before it gives up
- What a second browser costs
- Uploading a file with an AI agent, and why this one cannot
- Watching the agent work, and when it is worth it
- When not to use an AI browser agent
- Agent or script: deciding once instead of every time
- Using the keyboard instead of the mouse
- Secrets in an agent task: where they end up
- What an agent run should log
- Deduplicating what an AI agent collects
- Normalising values across sites
- Validating an AI agent's output
- Reading a table with an AI agent
- Driving a site's own search and filters
- The task works headed and fails headless
- How to let the AdaL CLI use a browser