ChromeDevTools / ChromeDevTools/chrome-devtools-mcp

Expose first-frame timestamp from screencast_start

Open
#2,216 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

collecting-feedback feature
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.