Repository navigation
chore: mark v0.0.84 - #1814
Merged
Merged
chore: mark v0.0.84#1814
Conversation
Pavel Feldman (pavelfeldman)
approved these changes
Oct 31, 2026
Pathfinder Team (PM-Labs)
pushed a commit
to pmlabs-org/mcp-playwright
that referenced
this pull request
Nov 1, 2026
## ✨ Highlights - **👥 Separate sessions in one browser** — work with multiple accounts without sharing their cookies or storage. `browser_tabs` with `action: "new"` now accepts `isolatedContext: "<name>"`: tabs with the same name share a context, while different names stay isolated. Omit it or use `"default"` for the default context. Cookie and storage tools operate on the current tab's context. ([microsoft/playwright#43087](microsoft/playwright#43087)) - **🙈 Redact runtime values in URLs** ([microsoft#1791](microsoft#1791)) — session and grant values minted at runtime cannot be listed in a secrets file ahead of time. `--redact-url-params=access_token,code` (config `redactUrlParams`, env `PLAYWRIGHT_MCP_REDACT_URL_PARAMS`) replaces the named query and fragment parameter values with `<redacted>` in tool responses. Like `secrets`, this is a convenience, not a security feature. The extension also removes its connection token from the connect page URL after reading it. ([microsoft/playwright#43258](microsoft/playwright#43258)) - **🔎 Bound find results** ([microsoft/playwright#42077](microsoft/playwright#42077)) — common search terms no longer have to fill the response with every match. `browser_find` accepts a positive integer `maxResults`, returns the first matching items with their context, and reports the total match count. Omit it to keep returning all matches; ancestor paths are unchanged. ([microsoft/playwright#42947](microsoft/playwright#42947)) - **🌐 Inspect requests across navigations** ([microsoft/playwright-cli#479](microsoft/playwright-cli#479)) — requests from the previous page are no longer lost as soon as a flow navigates. `browser_network_requests` accepts `all: true` to include retained history, keeping up to 200 requests from earlier navigations. Request indexes stay stable across navigations for `browser_network_request`. `browser_console_messages` also reports counts consistent with its existing `all` option. ([microsoft/playwright#43526](microsoft/playwright#43526)) - **🎯 Use locators in your language** ([microsoft#1797](microsoft#1797)) — element tools such as `browser_click` now accept JavaScript, Python, Java and C# locators in `target`, alongside snapshot refs and CSS selectors. Invalid targets get an actionable error, including a reminder to pass the bare ref rather than `button [ref=e5]`. ([microsoft/playwright#43539](microsoft/playwright#43539)) - **📂 Skip unsupported workspace-root requests** ([microsoft#1798](microsoft#1798)) — clients that advertise roots but cannot answer `roots/list` can stall the first tool call. Pass `--ignore-roots` (config `ignoreRoots: true`, env `PLAYWRIGHT_MCP_IGNORE_ROOTS=true`) to skip that request and use the server's current working directory as the workspace root. ([microsoft/playwright#43532](microsoft/playwright#43532)) - **🍪 Delete cookies by domain and path** — deleting a cookie by name no longer has to remove every cookie with that name. `browser_cookie_delete` (opt-in via `--caps=storage`) accepts optional `domain` and `path` filters to leave other domains and paths untouched. ([microsoft/playwright#43319](microsoft/playwright#43319)) ## 🐛 Fixes - `fix(mcp): allow combining time, text and textGone in browser_wait_for` — when combined with a text condition, `time` is its timeout (capped at 30 seconds), not a delay before checking it. Supplying both `text` and `textGone` now waits for the first condition to happen, rather than both in sequence. ([microsoft/playwright#43011](microsoft/playwright#43011)) - `fix(mcp): allow loopback hosts by default for all bind addresses` — HTTP clients can connect through `localhost`, `127.0.0.1` or `[::1]` regardless of the bind address. Other hosts still require `--allowed-hosts`; binding to `0.0.0.0` prints a usable localhost URL. ([microsoft/playwright#42993](microsoft/playwright#42993)) - `fix(mcp): pass credentials from --proxy-server as proxy username/password` — credentials embedded in the proxy URL are now passed to the browser as proxy authentication settings. ([microsoft/playwright#43071](microsoft/playwright#43071)) - `fix(mcp): race browser_navigate_back against modal states` — `browser_navigate_back` reports a dialog opened during history navigation instead of timing out. ([microsoft/playwright#43252](microsoft/playwright#43252)) - `fix(mcp): normalize bare host URLs and loopback IP addresses` — `browser_navigate` handles scheme-less hosts with ports and uses HTTP for loopback addresses such as `127.0.0.1:3000` and `[::1]:3000`. ([microsoft/playwright#43264](microsoft/playwright#43264)) - `fix(mcp): do not close the browser twice when the client disconnects` — stdio disconnects let the browser close gracefully instead of force-killing it through a second close request. Dashboard annotation processes also exit when their parent goes away. ([microsoft/playwright#43174](microsoft/playwright#43174)) - `fix(mcp): give each isolated client its own idle timer` — with HTTP transport and `--isolated`, an idle client's context now expires even while another client keeps the shared browser busy. ([microsoft/playwright#43527](microsoft/playwright#43527)) - `fix(mcp): apply route headers without bypassing origin filters` — `browser_route` (opt-in via `--caps=network`) matches added request header names case-insensitively, includes custom headers in mocked responses, and preserves origin filters and other routes when modifying request headers. ([microsoft/playwright#43227](microsoft/playwright#43227), [microsoft/playwright#43244](microsoft/playwright#43244), [microsoft/playwright#43637](microsoft/playwright#43637)) - `fix(mcp): correct cookie filtering and missing-domain errors` — `browser_cookie_list` (opt-in via `--caps=storage`) matches domain and path boundaries instead of unrelated names such as `notexample.com` or `/apiary`. `browser_cookie_set` asks for an explicit `domain` when the current page has no hostname, such as `about:blank`. ([microsoft/playwright#43316](microsoft/playwright#43316), [microsoft/playwright#43368](microsoft/playwright#43368), [microsoft/playwright#43318](microsoft/playwright#43318)) - `fix(mcp): accept Windows paths in browser_resume location` — `browser_resume` (opt-in via `--caps=devtools`) no longer mistakes a Windows drive-letter colon for the line-number separator. ([microsoft/playwright#43349](microsoft/playwright#43349)) - `fix(mcp): report run-code route handler exceptions once and verbatim` — `browser_run_code_unsafe` reports a route handler's thrown value without duplicating it or wrapping non-Error values in another error. ([microsoft/playwright#43203](microsoft/playwright#43203)) - `fix(extension): release debugger when attach completes after connection close` — disconnecting while `browser_tabs` attaches to a new tab no longer leaves that tab attached to the extension's debugger. ([microsoft/playwright#43025](microsoft/playwright#43025)) - `fix(chromium): close pages that crashed before connecting over CDP` — connecting through `--cdp-endpoint` no longer stalls on an already crashed or discarded page; those pages are omitted from the tab list. ([microsoft/playwright#43075](microsoft/playwright#43075)) - `fix(aria): skip text nodes that are not rendered` — `browser_snapshot` and accessible names omit unrendered text, including unslotted shadow-host text and text directly inside closed `<details>`. ([microsoft/playwright#43150](microsoft/playwright#43150)) - `fix(a11y): treat inert elements and content outside of modal dialogs as hidden` — snapshots exclude inert content and content outside the topmost modal `<dialog>`. Click and fill actions wait for targets to stop being inert instead of silently misfiring. ([microsoft/playwright#43211](microsoft/playwright#43211)) - `fix(aria): do not count whitespace-only contributors as name sources` — snapshots retain button names when whitespace around a hidden icon previously caused the name to disappear. ([microsoft/playwright#43317](microsoft/playwright#43317)) - `fix(aria): resolve label references consistently` — snapshots and role locators recognize tab- or newline-separated label IDs and labels assigned through `ariaLabelledByElements`, while retaining attribute-based labels in older browsers. ([microsoft/playwright#43361](microsoft/playwright#43361), [microsoft/playwright#43577](microsoft/playwright#43577), [microsoft/playwright#43722](microsoft/playwright#43722)) - `fix(aria): quote ~, .inf and .nan in aria snapshots` — YAML-like names remain strings rather than being parsed as null or special floating-point values. ([microsoft/playwright#43469](microsoft/playwright#43469)) - `fix(aria): preserve iframe snapshots with fallback text` — snapshots retain an iframe's contents when the iframe element also contains fallback text. ([microsoft/playwright#43635](microsoft/playwright#43635)) - `fix(aria): match mixed-case roles and states` — snapshots and role locators recognize mixed-case `role` and ARIA state values, including checked, pressed and expanded states. ([microsoft/playwright#43727](microsoft/playwright#43727)) ## 📦 Upgrading Configs that use `@playwright/mcp@latest` pick this release up on the next client restart. To pin it: ```bash npx @playwright/mcp@0.0.84 ``` Co-authored-by: microsoft-playwright-automation[bot] <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✨ Highlights
browser_tabswithaction: "new"now acceptsisolatedContext: "<name>": tabs with the same name share a context, while different names stay isolated. Omit it or use"default"for the default context. Cookie and storage tools operate on the current tab's context. (microsoft/playwright#43087)--redact-url-params=access_token,code(configredactUrlParams, envPLAYWRIGHT_MCP_REDACT_URL_PARAMS) replaces the named query and fragment parameter values with<redacted>in tool responses. Likesecrets, this is a convenience, not a security feature. The extension also removes its connection token from the connect page URL after reading it. (microsoft/playwright#43258)browser_findaccepts a positive integermaxResults, returns the first matching items with their context, and reports the total match count. Omit it to keep returning all matches; ancestor paths are unchanged. (microsoft/playwright#42947)browser_network_requestsacceptsall: trueto include retained history, keeping up to 200 requests from earlier navigations. Request indexes stay stable across navigations forbrowser_network_request.browser_console_messagesalso reports counts consistent with its existingalloption. (microsoft/playwright#43526)browser_clicknow accept JavaScript, Python, Java and C# locators intarget, alongside snapshot refs and CSS selectors. Invalid targets get an actionable error, including a reminder to pass the bare ref rather thanbutton [ref=e5]. (microsoft/playwright#43539)roots/listcan stall the first tool call. Pass--ignore-roots(configignoreRoots: true, envPLAYWRIGHT_MCP_IGNORE_ROOTS=true) to skip that request and use the server's current working directory as the workspace root. (microsoft/playwright#43532)browser_cookie_delete(opt-in via--caps=storage) accepts optionaldomainandpathfilters to leave other domains and paths untouched. (microsoft/playwright#43319)🐛 Fixes
fix(mcp): allow combining time, text and textGone in browser_wait_for— when combined with a text condition,timeis its timeout (capped at 30 seconds), not a delay before checking it. Supplying bothtextandtextGonenow waits for the first condition to happen, rather than both in sequence. (microsoft/playwright#43011)fix(mcp): allow loopback hosts by default for all bind addresses— HTTP clients can connect throughlocalhost,127.0.0.1or[::1]regardless of the bind address. Other hosts still require--allowed-hosts; binding to0.0.0.0prints a usable localhost URL. (microsoft/playwright#42993)fix(mcp): pass credentials from --proxy-server as proxy username/password— credentials embedded in the proxy URL are now passed to the browser as proxy authentication settings. (microsoft/playwright#43071)fix(mcp): race browser_navigate_back against modal states—browser_navigate_backreports a dialog opened during history navigation instead of timing out. (microsoft/playwright#43252)fix(mcp): normalize bare host URLs and loopback IP addresses—browser_navigatehandles scheme-less hosts with ports and uses HTTP for loopback addresses such as127.0.0.1:3000and[::1]:3000. (microsoft/playwright#43264)fix(mcp): do not close the browser twice when the client disconnects— stdio disconnects let the browser close gracefully instead of force-killing it through a second close request. Dashboard annotation processes also exit when their parent goes away. (microsoft/playwright#43174)fix(mcp): give each isolated client its own idle timer— with HTTP transport and--isolated, an idle client's context now expires even while another client keeps the shared browser busy. (microsoft/playwright#43527)fix(mcp): apply route headers without bypassing origin filters—browser_route(opt-in via--caps=network) matches added request header names case-insensitively, includes custom headers in mocked responses, and preserves origin filters and other routes when modifying request headers. (microsoft/playwright#43227, microsoft/playwright#43244, microsoft/playwright#43637)fix(mcp): correct cookie filtering and missing-domain errors—browser_cookie_list(opt-in via--caps=storage) matches domain and path boundaries instead of unrelated names such asnotexample.comor/apiary.browser_cookie_setasks for an explicitdomainwhen the current page has no hostname, such asabout:blank. (microsoft/playwright#43316, microsoft/playwright#43368, microsoft/playwright#43318)fix(mcp): accept Windows paths in browser_resume location—browser_resume(opt-in via--caps=devtools) no longer mistakes a Windows drive-letter colon for the line-number separator. (microsoft/playwright#43349)fix(mcp): report run-code route handler exceptions once and verbatim—browser_run_code_unsafereports a route handler's thrown value without duplicating it or wrapping non-Error values in another error. (microsoft/playwright#43203)fix(extension): release debugger when attach completes after connection close— disconnecting whilebrowser_tabsattaches to a new tab no longer leaves that tab attached to the extension's debugger. (microsoft/playwright#43025)fix(chromium): close pages that crashed before connecting over CDP— connecting through--cdp-endpointno longer stalls on an already crashed or discarded page; those pages are omitted from the tab list. (microsoft/playwright#43075)fix(aria): skip text nodes that are not rendered—browser_snapshotand accessible names omit unrendered text, including unslotted shadow-host text and text directly inside closed<details>. (microsoft/playwright#43150)fix(a11y): treat inert elements and content outside of modal dialogs as hidden— snapshots exclude inert content and content outside the topmost modal<dialog>. Click and fill actions wait for targets to stop being inert instead of silently misfiring. (microsoft/playwright#43211)fix(aria): do not count whitespace-only contributors as name sources— snapshots retain button names when whitespace around a hidden icon previously caused the name to disappear. (microsoft/playwright#43317)fix(aria): resolve label references consistently— snapshots and role locators recognize tab- or newline-separated label IDs and labels assigned throughariaLabelledByElements, while retaining attribute-based labels in older browsers. (microsoft/playwright#43361, microsoft/playwright#43577, microsoft/playwright#43722)fix(aria): quote ~, .inf and .nan in aria snapshots— YAML-like names remain strings rather than being parsed as null or special floating-point values. (microsoft/playwright#43469)fix(aria): preserve iframe snapshots with fallback text— snapshots retain an iframe's contents when the iframe element also contains fallback text. (microsoft/playwright#43635)fix(aria): match mixed-case roles and states— snapshots and role locators recognize mixed-caseroleand ARIA state values, including checked, pressed and expanded states. (microsoft/playwright#43727)📦 Upgrading
Configs that use
@playwright/mcp@latestpick this release up on the next client restart. To pin it: