@alaarab/video-recorder-mcp
v0.4.0
Published
MCP server for recording, analyzing, and editing demo videos
Downloads
612
Maintainers
Readme
Video Recorder MCP
Record product demos without rebuilding the same automation stack in every repo.
@alaarab/video-recorder-mcp is a Model Context Protocol server for two kinds of capture:
- browser demo recording with Playwright
- desktop screen capture on macOS with
ffmpeg - video analysis with
ffprobeand frame extraction - demo editing with trims, title cards, and transitions
It is designed for Codex-style workflows where an agent can drive a browser, interact with an app, and leave behind a real video artifact instead of a pile of screenshots.
Why This Exists
Most agent tooling is good at:
- browsing pages
- clicking buttons
- taking screenshots
- reading logs
Most agent tooling is bad at:
- producing a usable feature demo
- capturing a local desktop app
- leaving behind a normal video file that opens in QuickTime
- cutting the dead air out after the recording is done
This server closes that gap.
Good Fits
- record a browser login flow and save it as
.mp4 - capture a local feature walkthrough for QA or design review
- pair screen recording with Ableton automation through
LiveMCP - generate repeatable demo videos across multiple projects from one Codex install
- cut a long raw capture into a tighter highlight reel with chapter cards
Core Features
- starts Playwright browser sessions with recording enabled
- exposes browser actions with visible cursor treatment, slower pacing, and optional annotation overlays
- closes browser sessions and exports a final video
- transcodes browser recordings to
.mp4when the output path ends in.mp4 - starts and stops macOS screen recording through
ffmpeg - analyzes recorded videos into metadata, sampled frames, scene cuts, contact sheets, and audio waveforms
- composes polished demo videos from trimmed segments with intro cards, label cards, outros, and transitions
- deletes temporary edit assets by default while keeping the final render
- defaults output to
~/Movies/Codex Recordings
Requirements
- Node.js 20+
ffmpegonPATHfor MP4 export, analysis, and composition- macOS for screen recording
- Chromium installed for Playwright-based browser capture and title-card rendering
- OS-level screen recording permission if you want desktop capture
Browser demos work on any machine Playwright supports.
Desktop capture currently targets macOS through AVFoundation.
Playwright browser recording also needs browser binaries:
npx playwright install chromiumInstall
Install from npm:
npm install -g @alaarab/video-recorder-mcp
npx playwright install chromiumInstall directly from GitHub:
npm install -g github:alaarab/video-recorder-mcp
npx playwright install chromiumLocal development:
npm install
npx playwright install chromiumCodex Setup
Add this to ~/.codex/config.toml:
[mcp_servers.videoRecorder]
command = "node"
args = ["/absolute/path/to/video-recorder-mcp/src/index.mjs"]If you installed it globally through npm, point args to the installed entrypoint on your machine instead.
Tools
list_screen_capture_devicesstart_screen_recordingstop_screen_recordingstart_browser_sessionbrowser_navigatebrowser_clickbrowser_fillbrowser_pressbrowser_annotatebrowser_clear_annotationsbrowser_wait_forbrowser_screenshotclose_browser_sessionanalyze_videocompose_demo_video
Typical Workflows
Browser Demo
- Start a browser session with recording enabled.
- Navigate to your app.
- Fill login fields, click through the flow, create/update something.
- Use
browser_annotateonly when you need to focus the viewer on one thing. - Close the session with:
saveAs: "~/Movies/Codex Recordings/demo.mp4"If saveAs ends in .mp4, the server will transcode the Playwright WebM output to H.264 MP4 through ffmpeg.
Browser sessions default to demo-oriented behavior:
- visible synthetic cursor in the recorded page
- slower click and typing pacing
- short post-action settling time so pages can breathe
- annotation overlays for spotlight or outline moments
If you want a faster or more mechanical pass, set demoMode: false when starting the browser session.
Desktop App Demo
- Call
start_screen_recording - Drive the app with your existing tooling
- Call
stop_screen_recording
This is especially useful when paired with tools like LiveMCP for Ableton Live demos.
Video Analysis
- Point
analyze_videoat a local.mp4,.mov, or.webm - The tool writes an analysis bundle to disk
- Review:
analysis.jsonfor metadata and timestampsframes/for evenly sampled stillsscene-cuts/for scene-change framescontact-sheet.pngfor a quick visual overviewwaveform.pngwhen the file contains audio
Demo Editing
- Record a long browser or screen demo first
- Call
compose_demo_videowith the useful clip ranges - Add intro/outro cards or per-section labels
- Pick a transition style
- Keep the final
.mp4and let the server clean up the temporary segment renders
The composer is built for the practical cleanup pass after recording:
- trim by
startTimeandendTime - keep a little comprehension room with
preRollandpostRoll - zoom a clip toward the important area with
zoomScale,focusX, andfocusY - add
labelandsubtitlecards before important sections - add
introTitleandoutroTitle - use
cardStyle: "minimal"when you want calm black-and-white cards - choose transitions like
fade,slideleft,slideright,wipeleft, orcircleopen - keep temp assets only when
keepAssetsis explicitly set totrue
Original input recordings are never deleted by the server.
Quality Notes
- Leave viewers enough time to understand a page before jumping to the next action.
- Show the cursor when the recording needs to feel human and traceable.
- Use annotations sparingly. They work best for one point of emphasis, not for every click.
- Short overlays read better than dense commentary.
- The default
minimalcard style is intentionally plain because readable black-and-white cards often cut better into product footage than glossy presentation slides.
Example Use Cases
- “Open the staging site, log in, create a project, and save a 20-second demo MP4.”
- “Start screen capture, tweak the plugin in Ableton, and save the recording to Movies.”
- “Take a screenshot halfway through the flow, then continue and export the final browser video.”
- “Analyze a recorded demo and show me where dead time, scene changes, or sensitive screens appear.”
- “Cut this 2-minute raw walkthrough into a 20-second demo with title cards and keep only the best moments.”
Output
By default, recordings land in:
~/Movies/Codex RecordingsYou can override output paths per tool call.
Video analysis bundles land under:
~/Movies/Codex Recordings/video-analysisComposed demo videos default to:
~/Movies/Codex Recordings/demo-<timestamp>.mp4Current Limits
- macOS screen capture is full-display capture right now, not single-window crop
- browser automation is intentionally low-level and generic
- screen recording depends on
ffmpegand OS-level capture permissions - title cards are rendered through Playwright, so Chromium needs to be installed
- browser cursor and annotations are synthetic overlays inside the captured page, not the operating system cursor
Development Notes
The server is intentionally small:
- MCP transport:
@modelcontextprotocol/sdk - browser automation:
playwright - desktop capture:
ffmpeg
That keeps it easy to patch for project-specific workflows without dragging in a large framework.
License
MIT
