Let AI agents record the Windows screen, watch it as frames, and edit it with ffmpeg
Connect Runs on your machine
claude mcp add screencast-mcp -e SCREENCAST_HOME=<SCREENCAST_HOME> -e SCREENCAST_ALLOWED_DIRS=<SCREENCAST_ALLOWED_DIRS> -e FFMPEG_PATH=<FFMPEG_PATH> -e FFPROBE_PATH=<FFPROBE_PATH> -e SCREENCAST_WHISPER_MODEL=<SCREENCAST_WHISPER_MODEL> -e SCREENCAST_MAX_RECORDING_SEC=<SCREENCAST_MAX_RECORDING_SEC> -e SCREENCAST_JOB_TIMEOUT_MS=<SCREENCAST_JOB_TIMEOUT_MS> -e SCREENCAST_RETENTION_DAYS=<SCREENCAST_RETENTION_DAYS> -e SCREENCAST_PS_TIMEOUT_MS=<SCREENCAST_PS_TIMEOUT_MS> -e SCREENCAST_CONFIRM_CAPTURE=<SCREENCAST_CONFIRM_CAPTURE> -e SCREENCAST_TOOLSETS=<SCREENCAST_TOOLSETS> -- npx -y @tmhs/[email protected]
{
"mcpServers": {
"screencast-mcp": {
"command": "npx",
"args": [
"-y",
"@tmhs/[email protected]"
],
"env": {
"SCREENCAST_HOME": "<SCREENCAST_HOME>",
"SCREENCAST_ALLOWED_DIRS": "<SCREENCAST_ALLOWED_DIRS>",
"FFMPEG_PATH": "<FFMPEG_PATH>",
"FFPROBE_PATH": "<FFPROBE_PATH>",
"SCREENCAST_WHISPER_MODEL": "<SCREENCAST_WHISPER_MODEL>",
"SCREENCAST_MAX_RECORDING_SEC": "<SCREENCAST_MAX_RECORDING_SEC>",
"SCREENCAST_JOB_TIMEOUT_MS": "<SCREENCAST_JOB_TIMEOUT_MS>",
"SCREENCAST_RETENTION_DAYS": "<SCREENCAST_RETENTION_DAYS>",
"SCREENCAST_PS_TIMEOUT_MS": "<SCREENCAST_PS_TIMEOUT_MS>",
"SCREENCAST_CONFIRM_CAPTURE": "<SCREENCAST_CONFIRM_CAPTURE>",
"SCREENCAST_TOOLSETS": "<SCREENCAST_TOOLSETS>"
}
}
}
}
{
"mcpServers": {
"screencast-mcp": {
"command": "npx",
"args": [
"-y",
"@tmhs/[email protected]"
],
"env": {
"SCREENCAST_HOME": "<SCREENCAST_HOME>",
"SCREENCAST_ALLOWED_DIRS": "<SCREENCAST_ALLOWED_DIRS>",
"FFMPEG_PATH": "<FFMPEG_PATH>",
"FFPROBE_PATH": "<FFPROBE_PATH>",
"SCREENCAST_WHISPER_MODEL": "<SCREENCAST_WHISPER_MODEL>",
"SCREENCAST_MAX_RECORDING_SEC": "<SCREENCAST_MAX_RECORDING_SEC>",
"SCREENCAST_JOB_TIMEOUT_MS": "<SCREENCAST_JOB_TIMEOUT_MS>",
"SCREENCAST_RETENTION_DAYS": "<SCREENCAST_RETENTION_DAYS>",
"SCREENCAST_PS_TIMEOUT_MS": "<SCREENCAST_PS_TIMEOUT_MS>",
"SCREENCAST_CONFIRM_CAPTURE": "<SCREENCAST_CONFIRM_CAPTURE>",
"SCREENCAST_TOOLSETS": "<SCREENCAST_TOOLSETS>"
}
}
}
}
{
"servers": {
"screencast-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tmhs/[email protected]"
],
"env": {
"SCREENCAST_HOME": "<SCREENCAST_HOME>",
"SCREENCAST_ALLOWED_DIRS": "<SCREENCAST_ALLOWED_DIRS>",
"FFMPEG_PATH": "<FFMPEG_PATH>",
"FFPROBE_PATH": "<FFPROBE_PATH>",
"SCREENCAST_WHISPER_MODEL": "<SCREENCAST_WHISPER_MODEL>",
"SCREENCAST_MAX_RECORDING_SEC": "<SCREENCAST_MAX_RECORDING_SEC>",
"SCREENCAST_JOB_TIMEOUT_MS": "<SCREENCAST_JOB_TIMEOUT_MS>",
"SCREENCAST_RETENTION_DAYS": "<SCREENCAST_RETENTION_DAYS>",
"SCREENCAST_PS_TIMEOUT_MS": "<SCREENCAST_PS_TIMEOUT_MS>",
"SCREENCAST_CONFIRM_CAPTURE": "<SCREENCAST_CONFIRM_CAPTURE>",
"SCREENCAST_TOOLSETS": "<SCREENCAST_TOOLSETS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
SCREENCAST_HOMEOptional | Where recordings, frames, screenshots, and edits are written (default <homedir>/.screencast-mcp) |
SCREENCAST_ALLOWED_DIRSOptional | Semicolon-separated folders tools may read from and write to besides SCREENCAST_HOME; when set (or when the client sends roots), files elsewhere are refused. Also allows overwriting files in these folders |
FFMPEG_PATHOptional | Path to ffmpeg if it is not on PATH (ffmpeg and ffprobe are required) |
FFPROBE_PATHOptional | Path to ffprobe if it is not on PATH |
SCREENCAST_WHISPER_MODELOptional | whisper.cpp model file (ggml-*.bin) used by transcribe when a call passes no model |
SCREENCAST_MAX_RECORDING_SECOptional | Default recording cap in seconds when a call sets no maxDurationSec (default 3600; 0 disables it) |
SCREENCAST_JOB_TIMEOUT_MSOptional | Override the edit job timeout in milliseconds (default scales with the media length) |
SCREENCAST_RETENTION_DAYSOptional | At startup, delete screenshots, frames, leftover raw event logs, and index_recording indexes older than this many days (never recordings or edits; off by default) |
SCREENCAST_PS_TIMEOUT_MSOptional | Limit in milliseconds for the PowerShell helpers that list monitors and windows and run OCR (default 20000; OCR 60000) |
SCREENCAST_CONFIRM_CAPTUREOptional | Set to 1 to ask the user to confirm every live capture through MCP elicitation; clients without elicitation are refused (off by default) |
SCREENCAST_TOOLSETSOptional | Comma-separated toolsets to load: capture, watch, edit, produce, audio (doctor and get_media_info are always on; default all) |
Details
| Package | @tmhs/[email protected] (NPM, stdio) |
| First published | 10 Nov 2026 |
| Last updated | 10 Nov 2026 |
| Registry name | io.github.TMHSDigital/screencast-mcp |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
