A Model Context Protocol (MCP) server that lets LLMs perform browser automation via Playwright’s accessibility tree, avoiding screenshots or vision models.
`browser_run_code` renamed to `browser_run_code_unsafe`
Notable features
`browser_network_requests` now returns a numbered list of requests
Both `browser_network_requests` and `browser_network_request` accept a `filename` option to write output to a file
Full changelog
What's New
Tool Improvements
browser_network_requests — Now returns a numbered list of requests; use the new browser_network_request tool with the index to fetch full details (headers/body) or a single part. Both tools accept a filename option to write the output to a file (#40447, #40454)
browser_run_code → browser_run_code_unsafe — Renamed to make the sandbox-escape implication explicit (#40496)
Bug Fixes
Surface unhandled rejections in browser_run_code_unsafe instead of crashing the server (#40452)
Detect the installed extension in non-default Chrome profiles (#40471)
Ignore browser config (channel, headless, viewport, etc.) when attaching to the extension (#40475)
browser_drop — Expose Locator.drop as an MCP tool for completing drag-and-drop operations onto a target (#40367)
Tool Improvements
browser_network_requests — Added responseBody and responseHeaders options; binary bodies are rendered as a placeholder using mime-type detection (microsoft/playwright@f0be0b17)
browser_evaluate — Accept plain expressions in addition to function bodies (#39979)
Browser Extension
Tab group syncing — Connected tabs are grouped into a green "Playwright" tab group (#1514, #1551)
Bug Fixes
Disable CDP timeout for extension connection so long handshakes don't fail (#40265)
Ensure --proxy-server overrides the proxy set in the config file (#40212)
Merge user-supplied ignoreDefaultArgs with persistent mode defaults instead of replacing them (#40026)