---
next_cursor: eyJzY29yZSI6MCwic2VxIjo0NDIsInNpbmNlIjpudWxsLCJ0b29sIjoicGxheXdyaWdodC1tY3AiLCJ2IjoxfQ
has_more: true
next: https://sincecutoff.com/v1/changes.md?tool=playwright-mcp&score=0&cursor=eyJzY29yZSI6MCwic2VxIjo0NDIsInNpbmNlIjpudWxsLCJ0b29sIjoicGxheXdyaWdodC1tY3AiLCJ2IjoxfQ
items: 10
---
# sincecutoff.com changes: playwright-mcp

## playwright-mcp restricts browser URLs and file access by default (playwright-mcp, 2026-01-09)
Published 2026-10-13
- slug: playwright-mcp-restricts-browser-urls-and-file-access-by-default-42b3dbe4fd4c
- score: 0.92

How to use it:

When browsing or uploading with Playwright MCP v0.0.55, keep URLs to `http:`, `https:`, `about:`, or `data:` and upload from workspace roots (or `cwd` if none are configured). If the task requires `file://` or files outside those roots, enable `--allow-unrestricted-file-access` or set `allowUnrestrictedFileAccess: true`.

Examples:

```
npx @playwright/mcp@0.0.55 --allow-unrestricted-file-access
```

```
{"allowUnrestrictedFileAccess": true}
```

- why_it_matters: Browse pages and upload files while automating a repository with Playwright MCP.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.55>, <https://github.com/microsoft/playwright-mcp/blob/v0.0.55/README.md>
- gotchas: "Version: v0.0.55"; "--allow-unrestricted-file-access: Allows access to files outside workspace roots and unrestricted `file://` URLs; otherwise file access is restricted to roots (or `cwd` if none are configured), and `file://` navigation is blocked."; "allowUnrestrictedFileAccess: Boolean config key to opt out of file access restrictions when set to `true`."; "Prerequisite: Playwright MCP requires Node.js 18 or newer."; "File uploads through `setInputFiles`, file choosers, and MCP file tools are restricted to workspace root directories, or `cwd` if no roots are configured."; "Browser navigation and API requests are limited to `http:`, `https:`, `about:`, and `data:` URLs; `file://` is blocked unless unrestricted file access is enabled."

## Playwright CLI mode and command set (playwright-mcp, 2026-01-24)
Published 2026-10-13
- slug: playwright-cli-mode-and-command-set-2bb70cc96e7f
- score: 0.95

How to use it:

When implementing or debugging a repository feature, install the CLI and read its help. Open the target page, take a snapshot to get element refs, then use the documented commands to inspect or interact with it.

Examples:

```
npm install -g @playwright/mcp@latest
playwright-cli --help
playwright-cli open <url>
playwright-cli snapshot
playwright-cli click <ref>
```

```
playwright-cli open <url> --headed
```

```
playwright-cli --session=<name> open <url>
playwright-cli session-list
```

- why_it_matters: Use Playwright commands from a coding agent to inspect and interact with a web page while implementing or debugging a repository feature.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.58>
- gotchas: "Version: v0.0.58"; "Requires npm install -g @playwright/mcp@latest; install skill with `/plugin marketplace add microsoft/playwright-cli` and `/plugin install playwright-cli`, or manually download `SKILL.md` as shown in the spans"; "<url> (required): URL to open."; "--headed: Show the browser when opening a page; CLI is headless by default."; "<ref> (required): Element reference used by commands such as click; obtain refs from a snapshot."; "[button]: Mouse button for click or double-click."; "--session=<name>: Select a browser session/profile."; "PLAYWRIGHT_CLI_SESSION: Environment variable to select a session for the coding agent."; "<func> (required): JavaScript expression evaluated on the page or element."; "[min-level]: Minimum console message level to list."; "Prerequisite: Install with npm, then run `playwright-cli --help`."; "Prerequisite: The release note says coding-agent environments may install the skill through plugin commands or manually from the official repository."; "This is the first snapshot with the essential command set, which is expected to grow."; "Playwright CLI is headless by default; use `--headed` with `open` to see the browser."; "The dedicated persistent profile preserves cookies and other storage state between calls."; "Use `--session` to address a specific browser profile; separate sessions provide separate profiles."; "Docs conflict: Newer official CLI documentation uses package `@playwright/cli`, while the v0.0.58 release note specifies `@playwright/mcp`; use the release-note package for this card's version. https://github.com/microsoft/playwright-cli"; "Docs conflict: Newer official CLI documentation uses `-s=<name>` and `list` for sessions, while the v0.0.58 release note documents `--session=<name>` and `session-list`; use the release-note syntax for this card's version. https://github.com/microsoft/playwright-cli"

## Playwright CLI adds browser automation, sessions and configuration (playwright-mcp, 2026-01-25)
Published 2026-10-13
- slug: playwright-cli-adds-browser-automation-sessions-and-configuration-eff9ba31d714
- score: 0.98

How to use it:

When an agent needs to test a web workflow, install the CLI and use `open`, snapshots, and interaction commands; use a named session for project-specific browser state. The cited v0.0.59 release says the CLI is headless by default and `--headed` shows the browser.

Examples:

```
npm install -g @playwright/mcp@latest
playwright-cli --help
```

```
playwright-cli open <url>
playwright-cli snapshot
playwright-cli click <ref>
playwright-cli type "<text>"
playwright-cli press <key>
playwright-cli screenshot
```

```
playwright-cli --session=<name> open <url>
playwright-cli session-list
PLAYWRIGHT_CLI_SESSION=<name> <agent-command>
```

- why_it_matters: Run browser interactions to test a web workflow from a coding agent, using project-specific browser state when needed.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.59>
- gotchas: "Version: v0.0.59"; "Requires npm install -g @playwright/mcp@latest"; "open <url> (required): Open the URL in the browser."; "--headed: Show the browser when passed to `open`; CLI is headless by default."; "--session=<name>: Select a browser session/profile for the invocation."; "PLAYWRIGHT_CLI_SESSION: Select the session for the coding agent process."; "session-stop [name]: Stop the named session; name is optional in the documented syntax."; "session-stop-all: Stop all sessions."; "session-delete [name]: Delete session data and profiles; name is optional in the documented syntax."; "playwright-cli.json: Configuration file; the release states support but does not document its object keys or sub-keys."; "Prerequisite: Install globally with `npm install -g @playwright/mcp@latest`."; "Prerequisite: A coding agent may use the CLI directly by consulting `playwright-cli --help`; installing skills is optional in the release instructions."; "The CLI is headless by default."; "The release describes this as the first snapshot with the essential command set and says it is expected to grow."; "Docs conflict: Current Playwright CLI documentation describes the later `@playwright/cli` package and differs in commands and session behavior from the v0.0.59 release. Its newer details were excluded."; "Docs conflict: The v0.0.59 release specifies `@playwright/mcp@latest`; current CLI documentation specifies `@playwright/cli@latest`. The package instructions differ."

## Playwright CLI records browser sessions on demand (playwright-mcp, 2026-01-31)
Published 2026-10-13
- slug: playwright-cli-records-browser-sessions-on-demand-7a8aeb4db794
- score: 0.96

How to use it:

When debugging or reviewing a web application, start a video recording, perform the browser flow, then stop the recording to save the video. In Playwright MCP, enable the capability with `--caps=devtools` and use the video tools.

Examples:

```
playwright-cli open playwright.dev
playwright-cli video-start
# Perform the browser flow
playwright-cli video-stop
```

```
playwright-cli video-start <filename>.webm
# Perform the browser flow
playwright-cli video-stop
```

```
# Start the MCP server with the devtools capability enabled: --caps=devtools
browser_start_video {}
# Perform the browser flow
browser_stop_video {}
```

- why_it_matters: Record a browser flow while debugging or reviewing a web application.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.62>, <https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/video-recording.md>, <https://github.com/microsoft/playwright-mcp/blob/main/README.md>, <https://github.com/microsoft/playwright-cli>
- gotchas: "Version: v0.0.62"; "video-start [filename]: Optional output video filename."; "--caps=devtools: Enables the MCP developer tools, including session video recording."; "browser_start_video.filename: Video output filename; when omitted, saves as `video-{timestamp}.webm` in the output directory."; "browser_start_video.size: Video size object."; "Prerequisite: Playwright CLI requires Node.js 18 or newer; install with `npm install -g @playwright/cli@latest`."; "Prerequisite: For MCP video tools, start Playwright MCP with `--caps=devtools`."

## playwright-cli browser storage and authentication state controls (playwright-mcp, 2026-02-04)
Published 2026-10-13
- slug: playwright-cli-browser-storage-and-authentication-state-controls-4ee0ffcf0209
- score: 0.97

How to use it:

When persisting login state or debugging browser storage, use `playwright-cli state-save` and `state-load` for a state file, and the cookie, localStorage, or sessionStorage commands to inspect or change entries.

Examples:

```
playwright-cli state-save auth.json
playwright-cli state-load auth.json
```

```
playwright-cli cookie-list
playwright-cli cookie-get <name>
playwright-cli cookie-set <name> <value> --domain=<domain>
playwright-cli cookie-delete <name>
playwright-cli cookie-clear
```

```
playwright-cli localstorage-list
playwright-cli localstorage-get <key>
playwright-cli localstorage-set <key> <value>
playwright-cli localstorage-clear
playwright-cli sessionstorage-list
playwright-cli sessionstorage-set <key> <value>
playwright-cli sessionstorage-clear
```

- why_it_matters: Persist browser login state or inspect and change browser storage while debugging a web application.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.63>, <https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md>
- gotchas: "Version: v0.0.63"; "state-save [filename]: Saves browser state; filename is optional. Example: `auth.json`."; "state-load <filename> (required): Loads browser state from the named file."; "cookie-get <name>; cookie-delete <name> (required): Cookie name to retrieve or delete."; "cookie-set <name> <value> (required): Cookie name and value; `--domain=<domain>` selects its domain."; "localstorage-get <key>; localstorage-set <key> <value> (required): Storage key to retrieve, or key and value to set."; "sessionstorage-set <key> <value> (required): Storage key and value to set."; "Docs conflict: The current official CLI reference documents `localstorage-delete`, `sessionstorage-get`, and `sessionstorage-delete`, which the v0.0.63 release note does not list. It also documents session-storage get and delete examples absent from that release note; no claim about their availability in v0.0.63 is made. Source: https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/storage-state.md"

## playwright-cli route mocks support URL patterns and route management (playwright-mcp, 2026-02-04)
Published 2026-10-13
- slug: playwright-cli-route-mocks-support-url-patterns-and-route-management-aff8f81791e4
- score: 0.98

How to use it:

When you need frontend development or testing without a backend, use `playwright-cli route` to mock requests by URL pattern, then use `route-list` or `unroute` to manage routes.

Examples:

```
playwright-cli route "**/api/users" --body='[{"id":1,"name":"Alice"}]' --content-type=application/json
```

```
playwright-cli route "**/api/data" --body='{"ok":true}' --header="X-Custom: value"
```

```
playwright-cli route-list
playwright-cli unroute "<URL pattern>"
playwright-cli unroute
```

- why_it_matters: Mock backend responses while developing or testing a web application's frontend.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.63>
- gotchas: "Version: v0.0.63"; "<pattern> (required): URL pattern to match; examples include `**/api/users`, `**/api/*/details`, `**/*.{png,jpg,jpeg}`, and `**/search?q=*`."; "--status: HTTP status code for the mock response; release example uses `404`."; "--body: Response body, such as a JSON string."; "--content-type: Content type for the response, such as `application/json`."; "--header: Custom header in `Name: Value` format."; "--remove-header: Comma-separated request headers to strip, such as `cookie,authorization`."; "unroute <pattern>: Remove routes matching a URL pattern; omit the pattern to remove all routes."; "Routes target URL patterns; the spans describe glob-style pattern support."

## playwright-cli defaults to in-memory browser profiles (playwright-mcp, 2026-02-06)
Published 2026-10-13
- slug: playwright-cli-defaults-to-in-memory-browser-profiles-c3a93c0e1676
- score: 0.92

How to use it:

For repository browser work that should start with clean profile state, run `playwright-cli open <url>`; profiles are in-memory by default. Add `--persistent` to retain the profile on disk, or `--profile=<path>` to choose its directory.

Examples:

```
playwright-cli open <url>
```

```
playwright-cli open <url> --persistent
```

```
playwright-cli open <url> --profile=<path>
```

- why_it_matters: Run browser sessions for repository work that should start with clean profile state.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.64>, <https://github.com/microsoft/playwright-cli/blob/main/skills/playwright-cli/references/session-management.md?plain=1>
- gotchas: "Version: v0.0.64"; "<url> (required): URL to open."; "--persistent: Persist the browser profile to disk."; "--profile=<path>: Set a custom directory for the persistent browser profile."

## playwright-mcp adds browser_network_state_set for offline testing (playwright-mcp, 2026-03-30)
Published 2026-10-13
- slug: playwright-mcp-adds-browser-network-state-set-for-offline-testing-0e7f4bd02783
- score: 0.94

How to use it:

When testing a repository’s browser workflow without connectivity, call `browser_network_state_set` with `state: "offline"`; restore connectivity with `state: "online"`.

Examples:

```
{"tool":"browser_network_state_set","arguments":{"state":"offline"}}
```

```
{"tool":"browser_network_state_set","arguments":{"state":"online"}}
```

```
npx @playwright/mcp@0.0.69 --caps=network
```

- why_it_matters: Test how a repository’s browser workflow behaves when connectivity is unavailable.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.69>, <https://github.com/microsoft/playwright-mcp/blob/v0.0.69/README.md>
- gotchas: "Version: v0.0.69"; "state (required): Use `offline` to simulate offline mode or `online` to restore connectivity."; "Prerequisite: The network tools are documented as opt-in via `--caps=network`."; "Prerequisite: The README lists Node.js 18 or newer and an MCP client as requirements."; "Docs conflict: In the same README, the network tool section says to enable `--caps=network`, but the `--caps` option description lists only `vision`, `pdf`, and `devtools` as possible values."

## playwright-mcp browser_mouse_click_xy adds click options (playwright-mcp, 2026-03-30)
Published 2026-10-13
- slug: playwright-mcp-browser-mouse-click-xy-adds-click-options-30deb92ef1b7
- score: 0.94

How to use it:

When you need a coordinate-based browser click, call `browser_mouse_click_xy` with the target `x` and `y`; set `button`, `clickCount`, and `delay` to control the click. The tool is available with the `vision` capability enabled.

Examples:

```
browser_mouse_click_xy({"x": <x>, "y": <y>, "button": "right", "clickCount": 2, "delay": 100})
```

```
{"command":"npx","args":["@playwright/mcp@0.0.69","--caps=vision"]}
```

- why_it_matters: Control mouse clicks at specific coordinates while automating a browser workflow.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.69>, <https://github.com/microsoft/playwright-mcp/blob/main/README.md>, <https://github.com/microsoft/playwright.dev/blob/main/mcp/vision-mode.mdx>
- gotchas: "Version: v0.0.69"; "x (required): X coordinate."; "y (required): Y coordinate."; "button: Button to click; defaults to left."; "clickCount: Number of clicks; defaults to 1."; "delay: Milliseconds between mouse down and mouse up; defaults to 0."; "--caps=vision (required): Enables coordinate-based tools."; "Prerequisite: Playwright MCP requires Node.js 18 or newer and an MCP client."; "Prerequisite: Enable the `vision` capability to expose coordinate-based tools."

## playwright-mcp browser_drop exposes Locator.drop (playwright-mcp, 2026-04-27)
Published 2026-10-13
- slug: playwright-mcp-browser-drop-exposes-locator-drop-5ee8f737f8bf
- score: 0.96

How to use it:

When a browser task requires dropping files or MIME-typed data onto an element, call `browser_drop` with its target and at least one of `paths` or `data`. Use `browser_drag` for dragging between page elements.

Examples:

```
{"target":"<target-reference-or-unique-selector>","data":{"text/plain":"<text-to-drop>"}}
```

```
{"target":"<target-reference-or-unique-selector>","paths":["<absolute-file-path>"]}
```

- why_it_matters: Complete a drag-and-drop operation onto a target in a browser session.
- sources: <https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.71>, <https://github.com/microsoft/playwright-mcp/blob/v0.0.71/README.md>
- gotchas: "Version: v0.0.71"; "target (required): Exact target reference from the page snapshot or a unique element selector."; "paths (required): Optional array of absolute file paths; provide this or `data`."; "data (required): Optional MIME-type-to-string map; provide this or `paths`."; "element: Human-readable element description used to obtain permission to interact with the target."; "Prerequisite: Node.js 18 or newer and an MCP client; install and configure the Playwright MCP server."; "Docs conflict: `browser_drop` is documented for files or MIME-typed data dragged from outside the page. For a drag between two page elements, the v0.0.71 docs specify `browser_drag`. The card’s broader wording could imply either operation."

Next: https://sincecutoff.com/v1/changes.md?tool=playwright-mcp&score=0&cursor=eyJzY29yZSI6MCwic2VxIjo0NDIsInNpbmNlIjpudWxsLCJ0b29sIjoicGxheXdyaWdodC1tY3AiLCJ2IjoxfQ
Save `next_cursor`; next visit, pass it to get only what was published since.
<!-- end of page -->
