Skip to content

feat(mcp): add start/stop recording commands - #42359

Merged
Yury Semikhatsky (yury-s) merged 3 commits into
microsoft:mainfrom
yury-s:fix-42338
Aug 24, 2026
Merged

Yury Semikhatsky (yury-s) merged 3 commits into
microsoft:mainfrom
yury-s:fix-42338

Conversation

@yury-s

Copy link
Copy Markdown
Member

Summary

  • New browser_start_recording / browser_stop_recording MCP tools and recording-start / recording-stop CLI commands that record user actions in the browser and return them as Playwright code.
  • Works with launched browsers in headed mode, not only ones attached via the extension.

Fixes #42338

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Comment thread packages/playwright-core/src/server/recorder/recorderApp.ts
Comment thread packages/playwright-core/src/server/recorder/recorderApp.ts
Comment thread packages/playwright-core/src/server/recorder/recorderApp.ts Outdated
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Comment thread packages/playwright-core/src/tools/backend/context.ts Outdated
Comment thread packages/playwright-core/src/tools/backend/context.ts Outdated
Comment thread packages/playwright-core/src/tools/backend/recorder.ts Outdated
Comment thread packages/playwright-core/src/tools/cli-daemon/commands.ts Outdated
Comment thread packages/playwright-core/src/tools/cli-daemon/commands.ts Outdated
- move recording tool and cli commands to the devtools capability
- declare the internal BrowserContext api in tools instead of casting to any
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

Copy link
Copy Markdown
Contributor

Test results for "tests 1"

6 flaky ⚠️ [chromium-library] › library/popup.spec.ts:260 › should not throw when click closes popup `@chromium-ubuntu-22.04-arm-node20`
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:361 › reuse launch › should work with routeWebSocket `@realtime-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:664 › screencast › should capture full viewport `@realtime-time-library-chromium-linux`
⚠️ [chromium-library] › library/video.spec.ts:699 › screencast › should capture full viewport on hidpi `@chromium-ubuntu-22.04-node24`
⚠️ [firefox-library] › library/trace-viewer.spec.ts:1782 › should open snapshot in new browser context `@firefox-ubuntu-22.04-node20`
⚠️ [firefox-page] › page/page-event-request.spec.ts:181 › should return response body when Cross-Origin-Opener-Policy is set `@firefox-ubuntu-22.04-node20`

51400 passed, 1238 skipped


Merge workflow run.

@yury-s
Yury Semikhatsky (yury-s) merged commit f46278a into microsoft:main Aug 24, 2026
45 checks passed
@yury-s
Yury Semikhatsky (yury-s) deleted the fix-42338 branch August 24, 2026 23:35
@github-actions

Copy link
Copy Markdown
Contributor

Test results for "MCP"

8259 passed, 1361 skipped


Merge workflow run.

Yury Semikhatsky (yury-s) added a commit to microsoft/playwright-mcp that referenced this pull request Sep 1, 2026
## What's New

### New Tools

- **`browser_start_recording` / `browser_stop_recording`** (opt-in via
`--caps=devtools`) — Record actions that the user performs manually in
the browser and return them as Playwright code. Useful when the user
wants to demonstrate a flow instead of describing it
([#42359](microsoft/playwright#42359))

## Bug Fixes

- The default `--codegen` language is inferred from the environment
([#42150](microsoft/playwright#42150))
- Honor `--user-data-dir` in extension mode
([#42190](microsoft/playwright#42190))
- Do not treat orphaned browser preferences entries as an installed
extension ([#42224](microsoft/playwright#42224))
- `browser_take_screenshot` returns the original screenshot bytes
instead of silently downscaling them to model-specific limits
([#42406](microsoft/playwright#42406))
- Drop the cached browser backend after `browser_close` with a shared
browser context, so subsequent tool calls from the same client no longer
fail ([#42365](microsoft/playwright#42365))
- When connected to a remote endpoint, `browserInfo` reports the browser
actually running remotely instead of the configured one
([#42228](microsoft/playwright#42228))
- Do not clobber the `chromiumSandbox` setting from the config file
([#42288](microsoft/playwright#42288))
- Do not run the heartbeat for HTTP clients that have not opened an
event stream
([#42189](microsoft/playwright#42189))
- The internal `/killkillkill` endpoint is no longer registered outside
of tests ([#42133](microsoft/playwright#42133))
Pathfinder Team (PM-Labs) pushed a commit to pmlabs-org/mcp-playwright that referenced this pull request Sep 15, 2026
## What's New

### New Tools

- **`browser_start_recording` / `browser_stop_recording`** (opt-in via
`--caps=devtools`) — Record actions that the user performs manually in
the browser and return them as Playwright code. Useful when the user
wants to demonstrate a flow instead of describing it
([#42359](microsoft/playwright#42359))

## Bug Fixes

- The default `--codegen` language is inferred from the environment
([#42150](microsoft/playwright#42150))
- Honor `--user-data-dir` in extension mode
([#42190](microsoft/playwright#42190))
- Do not treat orphaned browser preferences entries as an installed
extension ([#42224](microsoft/playwright#42224))
- `browser_take_screenshot` returns the original screenshot bytes
instead of silently downscaling them to model-specific limits
([#42406](microsoft/playwright#42406))
- Drop the cached browser backend after `browser_close` with a shared
browser context, so subsequent tool calls from the same client no longer
fail ([#42365](microsoft/playwright#42365))
- When connected to a remote endpoint, `browserInfo` reports the browser
actually running remotely instead of the configured one
([#42228](microsoft/playwright#42228))
- Do not clobber the `chromiumSandbox` setting from the config file
([#42288](microsoft/playwright#42288))
- Do not run the heartbeat for HTTP clients that have not opened an
event stream
([#42189](microsoft/playwright#42189))
- The internal `/killkillkill` endpoint is no longer registered outside
of tests ([#42133](microsoft/playwright#42133))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQUEST] codegen for MCP?

2 participants