ChromeDevTools / ChromeDevTools/chrome-devtools-mcp
Expose first-frame timestamp from screencast_start
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 52.3k
- Forks
- 4.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 83
Description
Is your feature request related to a problem? Please describe.
I am trying to annoate the video with specific timestamps that are accurate.
Describe the solution you'd like
I'm building an annotation layer on top of screencast. Overlaying timed markers (pass/fail, click highlights) on the recorded video. The challenge is syncing annotation timestamps to video time.
screencast_start is async. By the time the MCP response comes back, the video has already been recording for 1-5s. So I can't reliably compute "second 0" of the video from the caller's side. Setting t0 before the call is too early, after the response is too late.
Looking at the source, Puppeteer's ScreenRecorder subscribes to Page.screencastFrame events which include metadata.timestamp. It uses these internally for frame duplication but never exposes them.
Ask: Could screencast_start's response include the wall-clock time (or CDP timestamp) of the first frame? Something like:
{
"content": [{ "text": "Recording started...", "firstFrameTimestamp": 1718488800.123 }]
}
This would let callers precisely correlate external events to video time without needing a direct CDP connection.
Describe alternatives you've considered
I built my own recorder that gets added to the toolset. Currently instead of using screencast_start and screencast_stop, I have a proxy mcp that my agent calls which then wraps the chrome devtools mcp. this proxy mcp opens a child process which is the real chrome devtools mcp. tools that are standard to the mcp are forwarded and tools that are related to recording is handled by this proxy server instead. from my own screen recorder i pass back the first frame timestamp which allows me to accurately set this beginning timestamp.
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the screencast_start implementation and trace how Puppeteer's ScreenRecorder subscribes to Page.screencastFrame events and receives metadata.timestamp. Follow the response path to determine how the first-frame timestamp can be returned, then verify that callers receive it when recording begins.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100