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.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Playwright MCP is a Model Context Protocol server that gives an MCP-capable AI client controlled access to Playwright browser automation. The client asks for navigation, inspection, clicks, form entry or other actions; the server runs those operations in a configured browser and returns structured state, usually an accessibility snapshot with element references. The agent then acts on those references and reads the updated page state.

That architecture is different from sending screenshots to a model for every step. It gives the agent semantic roles, names and text, while still offering screenshots and advanced Playwright capabilities when configuration and project version expose them. Microsoft’s official documentation is the authority for current flags and tool inventory: the Playwright MCP repository, getting-started guide, introduction and configuration reference.

What Playwright MCP includes

Playwright MCP has three required pieces and several optional capability groups. Your AI application is the MCP client, @playwright/mcp is the server package, and a browser context executes the work. Configuration determines which browser, profile, transport and tools are available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Component What it does Important choice
MCP client Stores the server definition and presents its tools to an AI model. Examples documented by Microsoft include VS Code, Cursor and Claude Code. Only connect clients you trust, especially if code execution is enabled.
Playwright MCP server Launches with npx @playwright/mcp@latest and translates MCP calls into Playwright operations. Node.js 20 or newer is required by the getting-started documentation.
Browser and context Runs Chromium-based Chrome, Firefox, WebKit or Microsoft Edge with cookies, local storage and other session data. Choose persistent, isolated or existing-tab/extension behavior.
Accessibility snapshot Returns semantic page structure and stable references the model can target. Snapshots are the normal interaction surface; screenshots are supplementary.
Configuration Controls headed/headless mode, device emulation, proxy, HTTP transport, session state and security settings. Use the documented precedence: configuration file, environment variables, then command-line options as specified in the current guide.

The project introduction describes “70+ tools,” but that is a version-sensitive characterization rather than a permanent count. Capabilities can be enabled or omitted as the project evolves.

How the snapshot-and-reference loop works

The central loop is deliberately stateful and semantic:

  1. Navigate. The client asks the server to open a URL.
  2. Inspect. The server returns an accessibility snapshot containing roles, accessible names, text and references for interactive elements.
  3. Choose a reference. The model identifies, for example, a button named “Add to cart” rather than guessing coordinates from pixels.
  4. Act. An MCP tool clicks, types, fills, presses a key or performs another browser operation against that reference.
  5. Read the new state. The updated snapshot lets the agent continue, verify a result or recover from a changed page.

Screenshots can verify visual layout, but the documented interaction pattern is snapshot → reference → action → updated state. This is why the server can operate effectively even when a model does not need an image at every turn.

Tool families and what each one contributes

Navigation and page interaction

Core browser tools cover URL navigation, back/forward movement, clicks, typing, form filling, keyboard input, mouse actions, tabs and JavaScript dialogs. The model can open a page, submit a form, switch tabs and handle confirmation or alert dialogs through structured calls.

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

Screenshots and visual verification

Screenshot tools capture the current page for visual checks or for tasks where appearance matters. They complement, rather than replace, accessibility snapshots. A configuration or release may expose different screenshot options, so check the repository documentation before depending on a particular tool name.

Network inspection and mocking

Documented capability groups can inspect requests and responses and route or mock network traffic. These are useful for diagnosing API failures, testing a page against deterministic data or preventing a third-party request from running. Treat route rules as test configuration: an overly broad mock can hide a real application defect.

Console messages

Console inspection lets an agent see browser errors, warnings and application logging while it works. Pair console output with the page snapshot when a click appears to do nothing; the UI state and JavaScript error often explain each other.

Cookies and storage state

Cookie and storage-state tools expose the session layer behind a page. They can preserve authentication, seed a known state or export state for a later run. Do not place sensitive state in a shared profile or commit it to source control.

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

Tracing, video and testing-related capabilities

The project overview also identifies tracing, video and testing-oriented tools. Availability depends on server configuration and version; do not assume every installation exposes every family.

Advanced Playwright code execution

An optional unsafe code path can execute arbitrary JavaScript in the Playwright server process. The official guide calls this “RCE-equivalent” and says it should be enabled only for trusted MCP clients. Use ordinary structured tools whenever they are sufficient, and isolate the server when code execution is unavoidable.

WebMCP page tools

Pages can register WebMCP tools for the current tab. The official warning is explicit: “Tool names, descriptions, schemas and results are provided by the page, so treat them as untrusted input.” A page-provided tool is data from the page, not an authority you should automatically trust.

Install and connect Playwright MCP

Prerequisites

  • Node.js 20 or newer.
  • An MCP-capable client such as VS Code, Cursor, Claude Code or another compatible application.
  • A browser the server can launch, or an existing-tab connection if you choose the extension mode.

Run the standard server command

The documented starter command uses npx, which fetches the current package version when launched:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npx @playwright/mcp@latest

In your client, add a server entry that invokes that command. Client configuration syntax differs, so use the client’s current MCP settings screen or file format. A representative JSON shape is:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

After saving, restart or reload the client, then ask it to navigate to a test page and add a few items. The getting-started example uses https://demo.playwright.dev/todomvc. Confirm that the client reports the server tools and that a browser opens before attempting a production site.

Browser, profile and transport choices

Headed versus headless

The getting-started documentation says the browser opens headed by default. Add the documented --headless option when you need invisible execution in CI or on a server. Headed mode is easier to debug because you can watch navigation, pop-ups and authentication; headless mode is usually more suitable for unattended jobs.

Browser engine and device emulation

Chrome, Firefox, WebKit and Microsoft Edge are documented choices. Device emulation can combine a device profile with a viewport and related browser characteristics. Select the engine that matches the behavior you need to validate; a page that works in Chromium is not automatically equivalent in WebKit.

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.

Persistent, isolated and existing-tab sessions

  • Persistent profile: preserves cookies and login state between sessions and is the default in the getting-started guide.
  • Isolated mode: starts clean and discards session state when closed unless you provide initial storage state. It is safer for independent test runs.
  • Extension connection: can connect to existing tabs, which is useful when a human has already logged in or opened a particular page.

Use a dedicated persistent profile for automation rather than your everyday browser profile. For parallel work, isolated contexts prevent one task’s cookies or local storage from leaking into another.

Proxy, HTTP transport and configuration precedence

The configuration reference documents proxy settings, HTTP transport, session state, browser selection, headed/headless operation and device options. It also documents the precedence order among configuration files, environment variables and command-line arguments. Keep one source of truth for a deployment and record the effective values so a CI failure can be reproduced locally.

Secrets redaction

The dotenv-based secrets convenience can redact matching text from tool responses and substitute placeholders while typing. Microsoft explicitly cautions that this is not a security boundary. Protect API keys and passwords at the client, operating-system and network layers as well.

A practical first workflow

  1. Start with a disposable isolated session or a dedicated persistent profile.
  2. Ask the client to navigate to a harmless test page.
  3. Read the returned snapshot and identify an element by role and accessible name.
  4. Click or fill using the element reference rather than coordinates.
  5. Read the updated snapshot and verify the expected text or state.
  6. Use a screenshot only when visual appearance, spacing or rendering is part of the acceptance check.
  7. Inspect console or network output if the state does not change.
  8. Close the session and remove temporary storage when the task handles private data.

Security boundaries you should design deliberately

Client trust

An MCP server can drive a real browser with your cookies and network access. Connect only clients and extensions you trust, and avoid giving a broad persistent profile to an experimental agent.

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

Unsafe JavaScript

browser_run_code_unsafe (when exposed) can run arbitrary JavaScript in the server process. Treat it like granting code execution on the automation host: restrict access, isolate credentials and enable it only for a trusted client.

Page-originated tools

WebMCP definitions and results originate from the current page. Validate tool names, schemas and returned values as untrusted input, just as you would validate data from an external API.

Authentication and personal data

Prefer isolated contexts and short-lived storage state for sensitive workflows. Never paste production secrets into prompts or leave exported state files in a repository. If a task requires a login, make the account and scope explicit before the agent starts.

Playwright MCP versus Playwright CLI

Microsoft’s introduction frames the distinction as a workflow choice, not an independent performance benchmark:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Axis Playwright MCP Playwright CLI
Interaction MCP tool calls and structured snapshots supplied to an agent. Shell commands used by a coding agent or developer.
Best fit Exploratory, interactive or specialized browser-agent loops. Coding agents working in larger codebases and command-driven workflows.
Context cost Tool schemas and snapshots consume model context; Microsoft notes this trade-off. Uses the CLI command surface rather than MCP tool schemas.
Default mode Headed according to the MCP getting-started documentation. Use the CLI’s own documented execution behavior.
Setup Register an MCP server in a compatible client. Install and invoke the command-line interface directly.

Choose MCP when the agent needs iterative semantic interaction with a live browser. Choose CLI commands when your automation is already organized as scripts, shell jobs or code-generation workflows.

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

Or skip the browser setup

If your goal is a clean image or PDF of a URL rather than an agent navigating the page, ScreenshotNeo provides a single website-screenshot API and MCP server. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server exposes take_screenshot, get_page_info and capture_pdf for Claude, Cursor and other MCP clients.

See the complete parameter list and setup at ScreenshotNeo’s documentation. The same endpoint works from cURL, Python or Node.js:

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

ScreenshotNeo also supports full-page and element captures, dark mode, device presets, retina scale, PDF paper and page options, custom CSS and JavaScript, clicks, waits, blocking rules, headers, cookies, authorization, timezone, geolocation, transparent backgrounds, resizing, TTL caching, signed links, asynchronous webhooks, bulk capture and a usage API. Every feature is on every plan: 1,000 shots per month are free with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account to try it.

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

Troubleshooting Playwright MCP

The client shows no Playwright tools

Check that Node.js is version 20 or newer, the command is exactly npx @playwright/mcp@latest, and the client was reloaded after saving its MCP configuration. Run the command in a terminal to expose package or network errors.

The browser does not appear

Headed mode is the documented default. If you added --headless, remove it for debugging. Also check that the selected browser engine is installed and that your host permits a graphical session.

The agent cannot find an element

Request a fresh snapshot after navigation, dialogs or dynamic updates. The old reference may no longer be valid, or the element may lack an accessible name. Inspect the page’s roles and labels rather than switching immediately to coordinate clicks.

Login state disappeared

You may be using isolated mode or a new profile. Use the intended persistent profile or provide initial storage state, and verify that the profile directory is writable and not being deleted by CI cleanup.

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

A page action hangs

Inspect console and network information, check proxy and certificate settings, and add an explicit wait for a selector or known state. Avoid arbitrary long delays when a deterministic condition is available.

Unsafe-code or WebMCP concerns

Disable the unsafe code capability unless a trusted client requires it. Treat page-provided WebMCP schemas and results as untrusted and do not allow them to authorize unrelated operations.

FAQ

Does Playwright MCP use screenshots as its main input?

No. Its documented core loop uses accessibility snapshots and element references. Screenshots are an available capability for visual verification.

Can it reuse an existing browser tab?

Yes. The project documents an extension option for connecting to existing tabs, alongside persistent and isolated profiles.

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

Is the “70+ tools” figure guaranteed?

No. It is the introduction’s current characterization, while the exposed inventory depends on release and configuration.

What is the safest default profile?

Use an isolated context for independent or sensitive runs, or a dedicated persistent profile that contains no unrelated personal sessions.

Can I run Playwright MCP headlessly in CI?

Yes. The documented --headless option enables headless operation; verify the current configuration reference for release-specific flags.

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.

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