Playwright MCP vs computer use: when an AI agent needs a browser tool and when it needs the whole Mac
Playwright MCP is faster and more precise for web pages. Computer use is for native apps, system dialogs and sites that should see a normal browser. How to tell which one a task needs.
Short answer: Use Playwright MCP when the whole task happens on web pages: it reads pages as structured accessibility snapshots, acts on exact elements, needs no vision model and can run headless or in isolated profiles. Use computer use when the task leaves the browser, for example into a native Mac app, a system dialog or desktop software without an API, or when a site should see a normal browser window and a person's input. Many real tasks need both, one after the other.
Two different ways to reach a web page
Playwright MCP is Microsoft's MCP server for browser automation. It starts a browser through Playwright and lets the model work with "structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models" (README). The agent asks for a snapshot of the page, gets a tree of elements with references, and clicks, types or fills a form by reference. It only ever sees and touches the browser it controls.
Computer use works one level lower. The agent looks at an app window, as a screenshot plus its accessibility elements, and operates it with a pointer and keyboard the way a person does. A browser is just one more app. That makes it slower and less exact on web pages, but it reaches everything with a window. What a computer use MCP server does explains the loop in detail.
Side by side
| Playwright MCP | Computer use (for example ShadowCursor) | |
|---|---|---|
| Reaches | Web pages in the browser it controls | Any app with a window: browsers, native apps, system dialogs |
| What the model reads | Accessibility snapshot of the page; screenshots optional | Screenshot and accessibility elements of a window |
| How it acts | By element reference through the browser's automation interface | Pointer and keyboard input into the window |
| Vision model needed | No | Yes, the model reads screenshots |
| Speed and precision on web pages | High | Lower: each step is a screenshot and a pointer action |
| Browsers | Chrome, Firefox, WebKit, Edge; headless or headed | The browsers installed on your Mac, as normal windows |
| Your logins | Its own persistent profile, isolated sessions, or your Chrome or Edge through an extension | The browser profile the agent's window uses |
| Platforms | Anywhere Node.js 18+ runs | Depends on the tool; ShadowCursor needs macOS 15+ |
| Price | Free, Apache 2.0 | Depends on the tool; ShadowCursor is paid after a 7-day trial |
Playwright facts are from the Playwright MCP README, checked on 2026-10-20.
When Playwright MCP is the better tool
- The task is entirely on the web. Searching, reading, comparing, filling and submitting web forms, checking a page after a deploy. Element references are exact, so there is no guessing at pixels.
- You test your own web app. Playwright MCP was built for exploratory automation and self-healing tests. It can read console messages and network requests, set cookies and local storage, emulate devices and run with a fixed starting state.
- You want it headless or on a server. It runs headless, in Docker and on Linux or Windows. Computer use needs a desktop session.
- You want isolation. With
--isolatedeach session gets a fresh in-memory profile, and a storage state file can preload exactly the logins a test needs. - Context is tight. Snapshots are text, which is usually cheaper than screenshots. For coding agents, the README goes further and recommends its Playwright CLI with skills, because CLI commands keep large tool schemas and accessibility trees out of the model's context.
Two practical details from the README: uploads on a page go through browser_file_upload with file paths, and JavaScript dialogs through browser_handle_dialog, so neither needs a native window. And a persistent profile "can only be used by one browser instance at a time", so parallel clients need --isolated or separate --user-data-dir folders.
When you need computer use
- The task leaves the browser. The invoice is downloaded, and now it has to go into Numbers, Excel or an accounting app. Playwright stops at the browser's edge; computer use continues into the next app.
- Native Mac apps and desktop software. Calendar, Notes, Preview, Finder, settings windows, internal tools without an API. Playwright cannot reach them at all.
- System dialogs. Open and save panels, permission prompts and print dialogs belong to macOS, not to the page.
- Sites that react to how they are operated. A Playwright browser is driven through an automation interface, and some sites check for automated browsers and block or challenge them. Playwright MCP's README does not address bot detection. Computer use operates a normal browser window, and a tool that moves like a person gives hover menus, sliders and date pickers the input they expect. That is not a promise to pass every check.
- Your real browser setup. Extensions, password managers, a specific Safari profile: with computer use the agent works in the browser exactly as it is installed. Playwright MCP reaches an existing Chrome or Edge through its browser extension or a CDP endpoint, and its browser options are Chrome, Firefox, WebKit and Edge, not Safari itself.
Using both in one task
They are not rivals. An agent in Claude Code, Codex or Cursor can have Playwright MCP and a computer use server connected at the same time and pick per step. Claude Code's own documentation describes the same order: a dedicated MCP server or the shell where one fits, browser tools for web work, and computer use for what is left (source).
A typical split:
- Playwright MCP signs in to the supplier portal, filters last month's invoices and downloads them.
- The shell moves the files into the right folder.
- Computer use opens the spreadsheet in Numbers and enters the totals.
Each tool does the part it is good at, and the slow, general tool only runs where nothing faster can.
Computer use with ShadowCursor
ShadowCursor is a Mac app and MCP server for the computer use half. Every agent gets its own cursor, drawn in its color with a name tag, its own keyboard whose keys arrive only in its window, its own clipboard, and its own windows, which it works in even when yours cover them. Several agents can work at once. The pointer moves in curves with natural speed and typing has a human rhythm at about 200 words per minute, so hover menus in Safari, sliders, date pickers and signature fields react as they do to a person. It connects to Claude Code, Codex, Cursor and VS Code with one click, next to whatever browser server you already use.
Its limits in the browser: an agent cannot use a background tab of your browser window, so it opens its own window; hover without a click works in Safari but not in Chrome or Electron apps; dragging files, tabs or text between windows is cancelled rather than dropped; and minimized windows cannot be operated. If a task is purely on the web, Playwright MCP will usually be faster. For the background idea in general, see background computer use on the Mac.
FAQ
Is Playwright MCP a computer use tool?
No. Playwright MCP automates a browser through Playwright and works on page structure, not on screenshots of your desktop. Its README offers optional coordinate-based "vision" tools, but they still act only inside the browser it controls.
Which is faster for web tasks?
Usually Playwright MCP. It acts on exact element references without a screenshot round trip per step. Computer use pays for its reach with speed, so keep it for the steps outside the browser or the sites that need a normal window.
Can Playwright MCP use my logged-in browser?
It keeps its own persistent profile by default, which stays signed in between sessions. To use your existing Chrome or Edge tabs and logins, install its browser extension and start the server with --extension, or connect it to a running browser through --cdp-endpoint.
Can Playwright MCP handle file uploads and dialogs?
Within a page, yes: browser_file_upload passes file paths to the page's file chooser and browser_handle_dialog accepts or dismisses JavaScript dialogs. Dialogs that belong to macOS itself, outside the page, need computer use.
Can I use Playwright MCP and ShadowCursor together?
Yes. Both are MCP servers, so one agent can have both connected and use Playwright for web pages and ShadowCursor for Mac apps in the same task.