Free tools Windows power users keep installed
One-click scans. No signup required.
An MCP server for browser control connects an AI client to browser-automation tools. The client can ask the server to open pages, inspect controls, click, type, navigate, and extract information. Playwright MCP is a documented example: it uses the Model Context Protocol and structured accessibility snapshots for ordinary page understanding rather than requiring screenshots for every interaction.
This guide shows how to run Playwright MCP, choose a browser and session mode, connect to an existing or remote browser, expose only the capabilities you need, and avoid treating browser context as a security boundary.
What an MCP browser-control server does
Model Context Protocol (MCP) standardizes how an AI application discovers and calls tools. A browser-control MCP server translates those tool calls into browser automation. The assistant can inspect a page, locate accessible buttons and fields, submit forms, follow links, and continue a multi-step task.
Playwright MCP is one concrete implementation. Its normal page representation is an accessibility snapshot: a structured view of roles, names, states, and values. That is often more reliable and less expensive for interaction than sending a screenshot for every step. Screenshots remain useful when visual layout itself is the subject of a task.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →#1 Best Overall
Requirements and a first local configuration
- Node.js 20 or newer.
- An MCP-compatible client, such as VS Code, Cursor, Windsurf, Claude Code, or Claude Desktop.
- A browser supported by the selected Playwright configuration.
The standard server command is npx @playwright/mcp@latest. In your client’s MCP server configuration, create an entry whose command is npx and whose arguments include @playwright/mcp@latest. Client configuration file locations and JSON keys differ, so use the current instructions for your client.
Headed and headless operation
Headed mode is the documented default, which lets you watch the browser. Add --headless to the server arguments for a machine without a display or for unattended work. Browser selection options include Chrome, Firefox, WebKit, and Microsoft Edge; select the channel that matches your testing or production requirement.
Choose how browser state is managed
Persistent profile
A persistent profile keeps cookies, local storage, and login state between sessions. It is convenient for recurring work, but it also gives the server access to everything in that profile. The project documentation notes that a persistent profile is limited to one browser instance at a time.
Isolated context
An isolated context starts clean. It is appropriate for reproducible tasks, guest flows, and jobs that must not inherit a user’s accounts. In-memory cookies and storage disappear when the context closes unless you deliberately use persistent state or storage-state mechanisms.
Rank #2
Extension mode
Extension mode attaches to an existing Chrome or Edge profile. It can reuse already-open tabs, cookies, extensions, SSO, and a session that has completed two-factor authentication. That convenience increases the importance of reviewing exactly which profile and tabs the model can reach.
Connect to a browser that is already running
The server does not have to launch its own browser. Playwright MCP documents several connection paths:
- Browser channel: select a locally installed browser channel.
- Chromium CDP endpoint: connect to a browser exposing the Chrome DevTools Protocol.
- Playwright server endpoint: connect through a separately running Playwright service.
- Extension: attach to an existing Chrome or Edge session.
CDP is also the documented way to reach compatible cloud-browser services. In every case, confirm which machine owns the browser, where credentials are stored, and what network destinations it can access.
Run Playwright MCP as a standalone HTTP server
An HTTP deployment is useful when an IDE worker cannot launch a headed browser directly or when the browser runs as a separate process. Start the server with a port argument such as --port 8931, then configure the client to connect to http://localhost:8931/mcp.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteRank #3
HTTP sessions use a five-second heartbeat timeout by default. If a client or proxy does not answer server-initiated pings quickly enough, set PLAYWRIGHT_MCP_PING_TIMEOUT_MS to a larger value. Setting it to 0 disables the heartbeat. Disabling it can prevent false disconnects, but it also removes an automatic liveness check.
Control which tools the model receives
Playwright’s capabilities setting determines which MCP tools are exposed. Basic browser automation remains available, while optional capabilities can add specialized operations. Expose only what a workflow needs: fewer tools make the model’s choices clearer and reduce accidental actions.
- Start with basic navigation and page inspection.
- Add interaction capabilities only for workflows that click, type, upload, or download.
- Review network and context settings before granting access to internal sites.
- Remove capabilities that are not required by an agent or client.
Security: the browser context is not a boundary
The Playwright MCP documentation states, “Playwright MCP is not a security boundary.” Shared browser context is likewise described as a convenience, not a security boundary. A profile mode, network rule, or isolated context should therefore not be treated as a complete containment system.
Before connecting sensitive accounts
- Use a dedicated browser profile for automation rather than your personal profile.
- Prefer an isolated context for untrusted or one-off tasks.
- List the internal hosts, cloud services, and file paths reachable from the browser machine.
- Keep secrets out of page text and avoid granting an agent unnecessary upload, download, or payment capability.
- Run the server under a restricted operating-system account where practical.
- Audit the enabled MCP capabilities and client permissions.
If a task requires SSO or an existing authenticated tab, extension mode may be appropriate, but treat that session as highly privileged. Browser automation can perform the actions available to the account; it does not make those actions safe by itself.
Rank #4
Browser-control choices at a glance
| Choice | Best fit | Main trade-off |
|---|---|---|
| Server-launched, headed | Interactive development and debugging | Needs a display and exposes a visible session |
| Server-launched, headless | CI, workers, and unattended jobs | Harder to diagnose visually |
| Persistent profile | Recurring workflows that need login state | Profile credentials and state are exposed to the server |
| Isolated context | Clean, reproducible tasks | Login state is not retained by default |
| Extension mode | Existing SSO, 2FA, tabs, and extensions | Shares the privileges of the attached desktop profile |
| Local HTTP endpoint | Separate IDE worker and browser process | Requires heartbeat and endpoint management |
| CDP or cloud endpoint | Remote browser infrastructure | State and network access move to the remote service |
A practical setup procedure
- Install Node.js 20 or newer and an MCP client.
- Add an MCP server entry that invokes
npx @playwright/mcp@latest. - Start headed for the first run so you can observe navigation and permission prompts.
- Choose Chrome, Firefox, WebKit, or Edge explicitly when browser compatibility matters.
- Use an isolated context for a clean test; select a dedicated persistent profile only when retained login state is required.
- Enable the smallest capability set that supports the workflow.
- Test with a non-sensitive page, then inspect the browser profile, network access, and client logs before connecting accounts.
- For a separate process, launch with
--port 8931and point the client athttp://localhost:8931/mcp.
Troubleshooting common failures
The client cannot start the server
Check that Node.js is version 20 or newer and that the client is invoking npx with the package name exactly. Run the command manually in a terminal to reveal PATH, permission, or package-resolution errors.
The browser opens and immediately closes
Confirm that the selected browser is installed and that the process has access to a display when headed mode is enabled. Try --headless on a server, or choose the correct browser channel.
Login disappears between tasks
You are likely using an isolated context or a non-persistent profile. Use a dedicated persistent profile, storage state, or extension mode when policy permits; do not reuse a personal profile merely to preserve cookies.
The HTTP client disconnects after a few seconds
A proxy or client may not answer the default five-second heartbeat. Increase PLAYWRIGHT_MCP_PING_TIMEOUT_MS, or set it to 0 only when you understand the loss of heartbeat monitoring.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Best Value
The model cannot perform an expected action
Inspect the enabled capabilities. Basic automation is always available, but specialized tools may not be exposed until their capability is enabled. Also verify that the page has loaded and that the target control is present in the accessibility snapshot.
A remote browser cannot be reached
Check the CDP or Playwright endpoint, firewall rules, DNS, and whether the endpoint is reachable from the MCP server’s machine. Remote access changes where cookies, downloads, and network traffic reside.
When a screenshot is the actual requirement
Browser-control MCP is designed for interaction and structured inspection. If your deliverable is a rendered PNG, JPEG, WebP, or PDF, a screenshot API can be simpler and more repeatable than maintaining a browser session. ScreenshotNeo is the first service to try: it removes consent banners, newsletter popups, and chat widgets before capture, bills only clean shots, and has a $5 paid plan for 3,000 shots.
Or skip the browser setup
For a single clean capture, call ScreenshotNeo’s API instead of configuring Playwright. The request below returns a WebP file; see the ScreenshotNeo documentation for all options.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallcURL
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo can also capture full pages, individual CSS-selected elements, PDFs, HTML/CSS, dark-mode and device variants, and asynchronous or bulk jobs. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. You get 1,000 screenshots per month free without a card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.
Operational guidance
- Use headed mode while developing, then headless mode for stable unattended runs.
- Keep persistent profiles dedicated and backed up only under an explicit credential policy.
- Prefer isolated contexts for repeatable tests and lower cross-task leakage.
- Record which browser channel, profile mode, endpoint, and capabilities each job used.
- For remote deployments, secure the endpoint at the network and identity layers; MCP context settings alone are not sufficient.
Frequently Asked Questions
Does an MCP browser server replace a browser?
No. It exposes automation controls to an MCP client while a real local or remote browser performs the navigation and rendering.
Can I use an existing Chrome login?
Yes. Extension mode can attach to an existing Chrome or Edge profile, including its tabs and cookies, but that profile should be treated as highly privileged.
Is Playwright MCP safe for untrusted websites?
The documentation says it is not a security boundary. Restrict the profile, operating-system account, network access, and exposed capabilities before browsing untrusted or sensitive sites.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

