SCREENCAST-MCP / TOOLS
Tools
58 tools in 6 toolsets, each with its parameters, a minimal call, and what it returns. Generated from the server's own schemas, so this reference cannot drift from the code. Agents can read all of it in one file: llms-full.txt.
Always loaded, whatever SCREENCAST_TOOLSETS selects.
| Tool | What it does |
|---|---|
get_media_info | Probe a media file with ffprobe and return duration, resolution, frame rate, codecs, container format, and size. |
doctor | Check the setup: ffmpeg/ffprobe (FFmpeg 8+?), optional filters, capture devices, Windows OCR, settings, and enabled toolsets; problems says what is missing and how to fix it. |
Record or screenshot the desktop, a monitor, a window, or a region. Every capture is an explicit tool call: nothing records on its own.
| Tool | What it does |
|---|---|
start_recording | Start a background screen recording. |
stop_recording | Stop a recording gracefully so the file is finalized; returns the path and duration. |
pause_recording | Pause a recording; until resume_recording nothing is captured, and the gap is left out of the file, events, and markers. |
resume_recording | Resume a paused recording (same target and settings). |
save_replay | Save the last N seconds of a replay buffer (start_recording replayBufferSec) to an mp4; the buffer keeps running. |
list_sessions | List all recording sessions (active and finished) with their status, target, output path, and whether the process is still alive. |
get_session | Inspect a single recording session by id, including live status and whether its output file exists on disk. |
read_events | Read the input events (clicks, scroll, cursor, shortcuts, typing bursts) of a recording made with events: true, in video seconds and pixels; e.g. types: ['down'], then sample_frames there. |
add_marker | Mark a labelled moment on a recording, live or at a second. |
screenshot | Capture one PNG of the screen, a monitor, a window, or a region, returned inline and by path. |
list_audio_devices | List DirectShow audio devices and flag a likely loopback (Stereo Mix or a virtual-audio driver), for start_recording's audio.device. |
list_video_devices | List DirectShow cameras for start_recording's webcam.device. |
list_targets | List the desktop, monitors, and visible windows (topmost first, with capturability per backend). |
Turn footage into something a model can read: frames, contact sheets, diffs, OCR, and a searchable text timeline.
| Tool | What it does |
|---|---|
review_recording | Open a recording for a person to review: in MCP Apps clients an inline player to scrub, trim, and redact, then export; elsewhere just the video's details. |
player_frames | Preview frames for the review player: JPEGs on an even grid over the video plus frames at scene changes, with their real times. |
sample_frames | Sample PNG frames from a video (by fps, timestamps, or scene changes) and return the first few inline so the model can see what happened. |
contact_sheet | Tile timestamped frames of a video into one image to see a whole recording at a glance (the cheapest first look). |
screen_diff | Compare two screenshots or frames: SSIM score, changed share, and changed boxes in b's pixels, to check a UI change happened only where expected. |
wait_for_change | Wait until part of the screen changes or settles, instead of guessing a sleep. |
find_text | OCR (built into Windows) on the screen, an image, or video frames, with line and match boxes in image pixels (add origin for desktop coordinates). |
index_recording | Build a recording's text timeline (<video>.index.json: OCR per scene, events, markers, transcript) for search_recording. |
search_recording | Search an index_recording timeline (screen text, events, markers, transcript): timecoded hits, best first, secrets masked. |
Cut, convert, compress, and redact. A tool that writes a file refuses to replace an existing output unless overwrite: true; default output paths are always unique.
| Tool | What it does |
|---|---|
trim | Cut a video down to one sub-clip by start + (end or duration). |
concat | Join videos end to end with hard cuts: stream copy when they match, else a re-encode (mode says which). |
convert | Convert media to mp4, webm, or gif. |
export_gif | Export an animated GIF or WebP that fits a size budget (for PRs, issues, READMEs), stepping fps, width, and quality down until it fits. |
crop | Crop a video to a pixel rectangle; one running off the frame is rejected. |
scale | Resize a video to a target width and/or height and re-encode. |
speed | Change playback speed by a factor (>1 faster, <1 slower) and re-encode. |
compress | Re-encode a video smaller (H.264 CRF ladder, optional width cap). |
clip | Extract several frame-exact segments, each to its own file. |
cut_idle | Remove dead air: cut stretches where the screen is frozen (and silent), keeping a short pad. |
cut_by_transcript | Edit a video by its transcript: cut quoted text, cue numbers, or fillers. |
redact_region | Cover given rectangles in a video (e.g. secrets on screen). |
pipeline | Run several edits (trim, crop, scale, speed, cut_idle, redact, callout, keystroke_overlay, cursor, reframe, zoom, backdrop, audio, burn_subtitles, then optionally export_preset or export_gif) in one ffmpeg pass: one re-encode, no intermediate files. |
Annotate, frame, and assemble a finished piece. Tools that combine clips normalize each input to a common resolution, fps, and audio rate first.
| Tool | What it does |
|---|---|
overlay | Composite an image or video (logo, watermark, picture-in-picture) onto a video at a pixel position, optionally scaled and time-limited; keeps the base's audio and length. |
callout | Annotate a video with timed boxes, text labels, and arrows. |
keystroke_overlay | Burn keycast-style badges for shortcuts, clicks, and typing from the recording's input event log (start_recording events: true). |
cursor | Draw a smoothed, scaled cursor that hides when idle from the event log of a start_recording cursor: "events" recording (no OS cursor in the video), with click ripples and an optional spotlight. |
backdrop | Frame a video or screenshot on a gradient, color, or wallpaper with padding, rounded corners, and a drop shadow, optionally on a 16:9/1:1/9:16/4:5 canvas. |
burn_subtitles | Burn SRT/ASS subtitles (e.g. from transcribe) into a video in the bundled font. |
chapters | Write chapters (markers, scene changes, transcript, or a list) into an mp4/mkv/mov copy without re-encoding; returns YouTube chapter text. |
xfade_transition | Join two videos with an xfade transition (audio crossfaded); they need not match in size, fps, or audio. |
assemble_highlights | Stitch clips (including title cards) into one video with cuts or xfade transitions; they need not match in size, fps, or audio. |
title_card | Generate a title card clip (centered text on a solid background, silent audio track) to stitch in with assemble_highlights. |
reframe | Re-aspect a video to 16:9, 9:16, 1:1, or 4:5 by padding or cropping. |
zoom | Smooth animated zoom-and-pan into the action and back out, from keyframes or planned from logged clicks or screen changes. |
export_preset | Encode a platform-ready H.264 file (aspect, fps, bitrate, faststart) for a named platform. |
bug_report | Package a recording as a paste-ready repro folder: secret-scanned, redacted clip and GIF, contact sheet, steps from the event log, OCR'd errors, environment, report.md for gh issue create --body-file. |
step_guide | Turn a recording's event log into a numbered how-to: a ringed screenshot and caption per step, marker headings; Markdown and/or one HTML file. |
Extract, clean up, level, transcribe, and score the soundtrack.
| Tool | What it does |
|---|---|
extract_audio | Extract the audio track of a media file to its own file (mp3, aac, wav, or copy). |
normalize_audio | Normalize loudness to a delivery target (two-pass EBU R128 loudnorm); video is copied. |
denoise | Reduce steady background noise (fan, hum, hiss) in a recording's audio with an adaptive FFT denoiser. |
transcribe | Transcribe a recording's speech to an SRT subtitle file, locally, with FFmpeg 8's whisper filter (needs a whisper.cpp model file). |
music_bed | Lay music under a video: looped or trimmed to length, faded, leveled, and mixed with any existing audio. |
narrate | Offline voiceover with the built-in Windows voices: speaks each line at its time or marker over the audio, plus an SRT. |