Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Playwright MCP in one of two ways: let your MCP client launch npx @playwright/mcp@latest locally, or run a separate HTTP service and point the client at its /mcp endpoint. Start locally unless you specifically need a shared, remotely managed browser. Playwright MCP requires Node.js 20 or newer and an MCP-compatible client.

Choose the deployment shape first

Your deployment decision determines who owns the process, where the browser runs, and how clients reach it.

Shape How it works Use it when Main concern
Client-managed local process The MCP host starts Playwright with npx, normally over its local transport. The client and browser can run on the same workstation or development host. Each client manages its own process and browser lifecycle.
Standalone HTTP server You start Playwright MCP separately; clients connect to http://host:port/mcp. You need a persistent process, a managed machine, or multiple clients. You must design network reachability, authorization, session isolation and proxy behavior.
Attached browser Playwright connects through CDP, a Playwright server endpoint, or a browser extension. You must use an already-running browser, profile, tabs, or authenticated session. The attached browser’s cookies, extensions and login state become part of the automation surface.

localhost is only local to the machine or network namespace where the server runs. A client on another computer, container or hosted environment needs a reachable address and deployment-specific access controls. A bare public listener is not a production design.

Prerequisites and the first local installation

  • Node.js 20 or newer.
  • An MCP client that can register a server command or remote MCP endpoint.
  • A browser that Playwright can launch or an endpoint/browser extension to which it can attach.

The simplest documented client entry invokes the package through npx:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}
  1. Install or update Node.js to version 20 or later.
  2. Open your MCP client’s server configuration. The exact file or settings path differs between clients such as VS Code, Cursor, Windsurf, Claude Code and Claude Desktop.
  3. Add the playwright entry shown above.
  4. Restart or reload the MCP client.
  5. Ask the client to use the Playwright tools. The browser downloads on first use, so the first invocation may take longer than later ones.

@latest is convenient for evaluation but changes over time. For a controlled deployment, record the package version that your team tested and update it deliberately rather than allowing an unreviewed version change.

Decide how Playwright reaches a browser

Launch a new browser

In its normal mode, Playwright MCP launches a browser for the MCP session. Playwright documents Chrome, Firefox, WebKit and Edge choices. The getting-started behavior is headed (visible) mode; add --headless when no display is available or when your host is intended to run without a graphical session.

Connect through CDP

A Chrome or Edge process can expose a Chrome DevTools Protocol endpoint. Configure Playwright MCP to use that endpoint when another service owns browser startup, flags or profile selection. The endpoint must be reachable from the Playwright process, and its access control remains your deployment responsibility.

Connect to a Playwright server endpoint

If a browser is managed by a separate Playwright server, use that server endpoint instead of launching a local browser. This separates browser lifecycle from MCP process lifecycle but adds another service and network path to operate.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the browser extension mode

The extension can attach to an existing Chrome or Edge profile, reusing its tabs, extensions, cookies and authenticated sessions. That is useful for workflows that cannot log in from a clean profile. It also means the MCP client can act with the permissions of that profile; treat the profile directory and browser process as sensitive state.

Run a standalone HTTP Playwright MCP server

Start the server as its own process on port 8931:

npx @playwright/mcp@latest --port 8931

Register the remote MCP endpoint in your client:

{
  "mcpServers": {
    "playwright-remote": {
      "url": "http://localhost:8931/mcp"
    }
  }
}
  1. Start the process on the machine that will run the browser.
  2. Confirm that the process is listening on port 8931.
  3. Configure the MCP client with the complete /mcp path, not only the host and port.
  4. Connect from the client and perform a harmless navigation before attempting authenticated work.

The HTTP implementation uses a heartbeat for sessions. If a client or intermediary does not answer server-initiated pings, the documented PLAYWRIGHT_MCP_PING_TIMEOUT_MS setting changes the timeout. Set it to 0 to disable the heartbeat, but do so only when you understand the effect on stale sessions and intermediaries.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Containerize the server when you need a managed process

The repository’s Docker pattern maps port 8931 and starts the CLI with headless Chromium, --no-sandbox and --host 0.0.0.0. A representative run command is:

docker run --rm -p 8931:8931 mcr.microsoft.com/playwright:v1.52.0-noble 
  npx @playwright/mcp@latest --port 8931 --host 0.0.0.0 --headless --no-sandbox

Use the image and package versions your team has tested; the version above illustrates the shape of the command, not a universal compatibility guarantee. The documented Docker implementation supports headless Chromium only. It does not provide Firefox, WebKit or headed-browser behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Binding to 0.0.0.0 makes the process listen on container interfaces. Restrict exposure with container networking, firewall rules or a controlled reverse proxy. The command itself supplies neither authentication nor tenant isolation.

Handle profiles, cookies and authenticated sessions

Persistent default profile

The default profile preserves login state and cookies between sessions. Anyone who can use that profile may be able to act as the logged-in user. Protect the profile directory with operating-system permissions, backups and secrets-management rules appropriate to the account it contains.

Isolated sessions

Use isolated mode when every run should begin without existing cookies or local storage. This reduces accidental cross-session access, but workflows that require login must authenticate during the run or load an explicitly controlled storage state.

Explicit storage state

Loading storage state gives an operator a deliberate way to provide cookies and local storage. Treat the state file as a credential: do not commit it to source control, place it in a shared artifact store or expose it through logs.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Extension-attached sessions

Extension mode reuses the existing browser’s authenticated context. Make the attachment scope clear to users, and dedicate a browser profile when the MCP client should not see personal tabs or unrelated accounts.

Security boundaries you must design yourself

Playwright’s project documentation states: Playwright MCP is not a security boundary. MCP transport, a container, a tunnel or a persistent profile does not automatically solve every security problem.

  • Transport reachability: decide which hosts and networks can reach the MCP endpoint.
  • Authorization: require an access mechanism appropriate to your reverse proxy, identity system and client population.
  • Browser isolation: separate profiles, containers or processes when clients must not share cookies, tabs or credentials.
  • Network egress: restrict which sites and internal services the browser may access.
  • Secrets: keep profile data, storage state, CDP endpoints and proxy credentials out of logs and source control.

The MCP Python SDK deployment guidance describes localhost assumptions, host allowlisting and DNS-rebinding protection through host and origin checks. It also warns that a deployed hostname needs explicit transport-security configuration and that disabling protection without a controlled proxy can broaden accepted hosts and origins. Those details belong to the Python SDK’s deployment model; verify the equivalent controls for your MCP implementation.

For a remote service, document the hostname, TLS termination, authentication, allowed origins, browser isolation policy, outbound network policy and process supervisor. The available Playwright guidance does not prescribe one complete production architecture for every operator.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify a deployment before handing it to users

  1. Connect with a test MCP client and confirm that the Playwright tools appear.
  2. Navigate to a public, non-sensitive page and request an accessibility snapshot. Playwright MCP presents structured accessibility snapshots rather than requiring the model to infer the page from pixels.
  3. Check the selected browser, headless setting and viewport.
  4. Restart the server and verify the intended profile behavior: persistent state should remain; isolated state should not.
  5. From the intended client network, test the exact hostname and /mcp path.
  6. Review server, proxy and container logs for leaked cookies, authorization headers or storage paths.
  7. Stop the process and confirm that no unexpected browser or child processes remain.

Troubleshooting common failures

The client cannot start the server

Check Node.js with node --version; versions below 20 are unsupported. Confirm that the client configuration uses command and args for local mode, and restart the client after editing its configuration.

The first request appears stuck

The browser may be downloading on first use. Wait for that setup to finish, then inspect the client and process logs. In a restricted environment, ensure the process can reach the package and browser download locations.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Remote clients receive connection errors

Verify that the server is listening on the expected interface and port, that the client uses /mcp, and that firewalls, container port mappings and reverse-proxy routes allow the connection. Remember that localhost on the client is not the server’s host.

The browser is unavailable in a container

Use headless mode and the documented container assumptions. Docker support is headless Chromium only; do not expect headed mode or another browser engine from that image pattern.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sessions expire or disconnect

Inspect proxy idle timeouts and the HTTP heartbeat. If the intermediary does not answer pings, adjust PLAYWRIGHT_MCP_PING_TIMEOUT_MS or correct the intermediary behavior before disabling the heartbeat.

The wrong account is logged in

Determine whether the process is using a persistent profile, loaded storage state or an extension-attached profile. Remove or replace the state deliberately; do not “fix” the problem by sharing a personal browser directory with more clients.

Actions affect another user’s tabs

This is expected when multiple clients share an attached browser or persistent profile. Give each trust boundary its own browser process/profile, or use isolated sessions.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability and operating cost

No official performance, uptime or adoption figures establish a universal throughput target for Playwright MCP. Browser startup, page complexity, downloads, headless versus headed mode, network latency and the number of concurrent contexts all affect behavior. Measure your own navigation and session workloads before selecting a machine size or concurrency limit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
  • Keep a warm, separately managed process when startup latency matters, while limiting how many concurrent browser contexts it may create.
  • Use headless mode where a display is unnecessary.
  • Record the tested Node.js, Playwright MCP package and container image versions.
  • Use a process supervisor and health checks for long-lived deployments, with logs that exclude session secrets.
  • Plan browser and package updates as compatibility changes, not as invisible background upgrades.

Or skip the browser setup

If your goal is reliable website images rather than interactive browser control, ScreenshotNeo provides a website screenshot API and MCP server. A single request returns PNG, JPEG, WebP or PDF, while the service accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and each response identifies the page verdict and billing status in headers.

cURL:

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}`);

See the ScreenshotNeo documentation for the full option set, including full-page and element capture, device presets, custom CSS and JavaScript, waits, request blocking, cookies and headers, PDFs, caching, signed links, asynchronous jobs, webhooks, bulk capture and the MCP tools take_screenshot, get_page_info and capture_pdf. Its free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Create a free ScreenshotNeo account.

Frequently asked questions

Can I expose Playwright MCP directly to the public internet?

The documented material does not define a complete public-internet security design. Use a controlled network and reverse-proxy architecture with explicit authentication, host/origin checks, browser isolation and egress rules.

Does Playwright MCP work with every MCP client?

It requires a compatible MCP client. The project lists several clients, but each client has its own configuration path and support details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can Docker run Firefox or WebKit in this setup?

The documented Docker implementation supports headless Chromium only. Other browser engines require a different, separately designed deployment.

Should production use @latest?

Use it for the simplest setup; for production, record and test a specific package version so updates are deliberate and reproducible.

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.