Pick the way
| Playwright MCP | Your own Playwright script | The browser in Uno Work | |
|---|---|---|---|
| Who decides the clicks | The agent, step by step | Your code, fixed in advance | The agent, step by step |
| Set up | One command | A script per site | Ready on the computer |
| Works without a screen | yes, with --headless | yes | yes, it runs in the cloud |
| You can watch and take over | no | no | yes |
| Good for | Research, forms, checking your own site | The same job every day | Jobs that sometimes need a person: sign-ins, captchas |
Steps
-
Check Node.js
Playwright MCP needs Node.js 18 or newer. If you installed Claude Code or Codex with npm, you have it already.
$ node --version -
Install Chrome and its libraries
A bare server lacks the system libraries a browser needs;
--with-depsinstalls them with apt. Chrome is the default; --browser picks chrome, firefox, webkit or msedge. Playwright downloads each browser, a few hundred megabytes, into ~/.cache/ms-playwright.$ npx playwright install --with-deps chrome -
Add Playwright MCP to Claude Code
Everything after
--is the command Claude Code starts. The browser opens with a window by default; --headless runs it without one: a server has no screen, so add it. Then check that the server is listed.$ claude mcp add playwright -- npx @playwright/mcp@latest --headless $ claude mcp list
-
Or add it to Codex
Codex keeps MCP servers in
~/.codex/config.toml; the command writes them there for you.$ codex mcp add playwright -- npx @playwright/mcp@latest --headless -
Give the agent a browser task
Name the page and the result you want. The agent opens it, reads it and acts.
$ claude "Open https://example.com/pricing with the browser and write every plan name and price to prices.md" -
Choose what the browser remembers
The profile with your logins is kept on disk; --isolated keeps it in memory only, --user-data-dir picks the folder. Use
--isolatedfor research, so no cookies pile up; keep the profile for a site you signed in to. --proxy-server sends the browser through a proxy.$ claude mcp remove playwright $ claude mcp add playwright -- npx @playwright/mcp@latest --headless --isolated
Check that it works
Ask for a page title and a screenshot. A title in the answer means the agent drives the browser; a file means it can see the page too.
$ claude -p "Open https://example.com with the browser, tell me the page title and save a screenshot as example.png" $ ls -l example.png
Why sites block an agent's browser
A server's traffic leaves from a data-center address. Sites know those ranges and treat them as possible bots: more captchas, "Access denied" pages, sign-ins that need extra checks. A headless browser does not fix that; the address does.
Give the agent's browser a clean address
Your computer runs in the Netherlands. Its traffic can leave through a static address of a regular internet provider in one of 8 countries. Only your account works from that address.
- From a data-center address
- Sites see a server range shared with thousands of strangers. The agent's browser hits more captchas and blocks.
- From your Clean exit IP
- Sites see a regular internet provider's address in the country you picked. Fewer captchas, and less reason for Claude or ChatGPT to flag your account: nobody else works from it.
Where to find it: on every paid plan, switch it on in Settings → Network. Nobody else shares it: the address is yours alone: one account, one address.
The short way: the browser that comes with Uno Work
On an Uno computer you skip steps 1–6. Agents in Uno Work open pages, read them, click, type and take screenshots in the computer's own browser. On a cloud computer the browser runs there, so it keeps working after you close the app; you watch the same page live and can take control. For a sign-in, a captcha or a 2FA code the agent asks you, you get a notice in the app and in your messenger, and it continues where you stopped.
Plus: $20 a month
What a browser for the agent does not do
- It does not solve captchas. A clean address means fewer of them, not none; a person still answers the rest.
- It does not make a site's rules go away. Many sites forbid automated access in their terms; read them before the agent signs in.
- It does not share a profile between agents. One profile can serve only one browser at a time: give parallel agents --isolated or their own --user-data-dir.
- It is not light. Each Chrome takes memory of its own, on top of the agent and its builds.
Pick the computer your agent browses from
Every paid plan can switch on a Clean exit IP. Plus has Uno Work in the cloud, with a browser you can watch and take over.
Small
A Telegram bot, a VPN, a small backend
$5/ month
- 1 vCPU · 1 GB
- 15 GB disk
- 25 GB cloud storage
- 5 boosts a month
Plus
Agents that work with your laptop closed
$20/ month
- 4 vCPU · 4 GB
- 40 GB disk
- 100 GB cloud storage
- Uno Work in the cloud
Pro
A product in production, a second MacBook
$70/ month
- 16 vCPU · 16 GB
- 120 GB disk
- 300 GB cloud storage
- Speed of a MacBook Air M4
Max
A team and many agents at once
$200/ month
- 32 vCPU · 48 GB
- 300 GB disk
- 1,024 GB cloud storage
- 5 public IPv4
Add Uno AI to any plan: 40 h of AI work a month on Small, 100 h on Plus, unlimited on Max. Today: GLM-5.3 Flash and MiMo v2.6 Pro. Or sign in with your own Claude or ChatGPT.
Common problems
"Executable doesn't exist" or "browser is not installed"
Chrome fails with missing libraries such as libnss3
--with-deps, from a user that can use sudo."launched a headed browser without having a XServer running"
--headless after @playwright/mcp@latest and start the agent again.