Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Let AI agents record the Windows screen, watch it as frames, and edit it with ffmpeg
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
SCREENCAST_HOME, SCREENCAST_ALLOWED_DIRS, FFMPEG_PATH, FFPROBE_PATH, SCREENCAST_WHISPER_MODEL, SCREENCAST_MAX_RECORDING_SEC, SCREENCAST_JOB_TIMEOUT_MS, SCREENCAST_RETENTION_DAYS, SCREENCAST_PS_TIMEOUT_MS, SCREENCAST_CONFIRM_CAPTURE, SCREENCAST_TOOLSETS你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"screencast": {
"command": "npx",
"args": [
"-y",
"@tmhs/screencast-mcp"
],
"env": {
"SCREENCAST_HOME": "your-value",
"SCREENCAST_ALLOWED_DIRS": "your-value",
"FFMPEG_PATH": "your-value",
"FFPROBE_PATH": "your-value",
"SCREENCAST_WHISPER_MODEL": "your-value",
"SCREENCAST_MAX_RECORDING_SEC": "your-value",
"SCREENCAST_JOB_TIMEOUT_MS": "your-value",
"SCREENCAST_RETENTION_DAYS": "your-value",
"SCREENCAST_PS_TIMEOUT_MS": "your-value",
"SCREENCAST_CONFIRM_CAPTURE": "your-value",
"SCREENCAST_TOOLSETS": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add screencast --env SCREENCAST_HOME=your-value --env SCREENCAST_ALLOWED_DIRS=your-value --env FFMPEG_PATH=your-value --env FFPROBE_PATH=your-value --env SCREENCAST_WHISPER_MODEL=your-value --env SCREENCAST_MAX_RECORDING_SEC=your-value --env SCREENCAST_JOB_TIMEOUT_MS=your-value --env SCREENCAST_RETENTION_DAYS=your-value --env SCREENCAST_PS_TIMEOUT_MS=your-value --env SCREENCAST_CONFIRM_CAPTURE=your-value --env SCREENCAST_TOOLSETS=your-value -- npx -y @tmhs/screencast-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"screencast": {
"command": "npx",
"args": [
"-y",
"@tmhs/screencast-mcp"
],
"env": {
"SCREENCAST_HOME": "your-value",
"SCREENCAST_ALLOWED_DIRS": "your-value",
"FFMPEG_PATH": "your-value",
"FFPROBE_PATH": "your-value",
"SCREENCAST_WHISPER_MODEL": "your-value",
"SCREENCAST_MAX_RECORDING_SEC": "your-value",
"SCREENCAST_JOB_TIMEOUT_MS": "your-value",
"SCREENCAST_RETENTION_DAYS": "your-value",
"SCREENCAST_PS_TIMEOUT_MS": "your-value",
"SCREENCAST_CONFIRM_CAPTURE": "your-value",
"SCREENCAST_TOOLSETS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"screencast": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@tmhs/screencast-mcp"
],
"env": {
"SCREENCAST_HOME": "your-value",
"SCREENCAST_ALLOWED_DIRS": "your-value",
"FFMPEG_PATH": "your-value",
"FFPROBE_PATH": "your-value",
"SCREENCAST_WHISPER_MODEL": "your-value",
"SCREENCAST_MAX_RECORDING_SEC": "your-value",
"SCREENCAST_JOB_TIMEOUT_MS": "your-value",
"SCREENCAST_RETENTION_DAYS": "your-value",
"SCREENCAST_PS_TIMEOUT_MS": "your-value",
"SCREENCAST_CONFIRM_CAPTURE": "your-value",
"SCREENCAST_TOOLSETS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
SCREENCAST_HOME envSCREENCAST_ALLOWED_DIRS envFFMPEG_PATH envFFPROBE_PATH envSCREENCAST_WHISPER_MODEL envSCREENCAST_MAX_RECORDING_SEC envSCREENCAST_JOB_TIMEOUT_MS envSCREENCAST_RETENTION_DAYS envSCREENCAST_PS_TIMEOUT_MS envSCREENCAST_CONFIRM_CAPTURE envSCREENCAST_TOOLSETS env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 TMHSDigital 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.48.0)于6天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Claude Checkpoint MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
MCP server that checkpoints Claude Code session context to survive crashes and token limits
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
An MCP server that lets an agent record the screen, _watch_ the footage, and make minimal ffmpeg edits — over stdio, on Windows.
Capture the desktop, a monitor, a window, or a region; sample a recording into frames the agent can actually look at; trim, crop, redact, annotate, zoom toward clicks, and export for GitHub or social. No cloud service, no telemetry: ffmpeg and ffprobe behind 58 typed tools.
For developers who want their coding agent to see and prove UI changes on Windows: bug repros, UI verification, and demo clips the agent records, checks, and edits itself. Capture is Windows-only; the watch and edit tools work on any OS with ffmpeg. Free for non-commercial use (CC BY-NC-ND 4.0); why not OBS, Playwright, or a screenshot MCP?
Made with the tool: start_recording with events: true , one click, then zoom { highlightClicks: true } and export_gif . How it was made · more workflows
Quick start · Tools · Configuration · More docs · Privacy
The fastest path: npx -y @tmhs/screencast-mcp setup checks FFmpeg 8, OCR, and speech, offers winget install Gyan.FFmpeg when FFmpeg is missing, and adds the server to Claude Desktop, Claude Code, Cursor, and VS Code (backing up each config). --dry-run shows the changes first; --test records a 3-second GIF to prove it works. Or set it up by hand:
You need Windows 10 or 11, Node.js 22+, and FFmpeg 8 or newer on PATH (winget install Gyan.FFmpeg, the full build). Older builds run most tools, but transcribe (the whisper filter) and backend: "wgc" (gfxcapture) need FFmpeg 8, and essentials or distro builds can lack them (Ubuntu LTS apt install ffmpeg gives 6.x). Capture is Windows-only; the watch, edit, and produce tools work anywhere ffmpeg runs. After connecting, ask the agent to run doctor: it reports the ffmpeg version, the filters and devices it has, OCR, and anything missing.
Add it to your client:
| Client | How |
|---|---|
| Claude Code | claude mcp add screencast -- cmd /c npx -y @tmhs/screencast-mcp, or the plugin (the server plus bug-repro, README-demo, and UI-verify skills): /plugin install screencast --marketplace TMHSDigital/screencast-mcp (older Claude Code: /plugin marketplace add TMHSDigital/screencast-mcp, then /plugin install screencast@screencast-mcp) |
| Claude Desktop | Download screencast-mcp.mcpb from the latest release and open it (one click) |
| Cursor, VS Code, others | The JSON config below, or step-by-step on Connect your client |
{ "mcpServers": { "screencast": { "command": "npx", "args": ["-y", "@tmhs/screencast-mcp"] } } }
Then ask your agent:
Record my VS Code window for five seconds while I reproduce the bug, then show me the frames where something changed.
More in the workflows: a bug-repro GIF for a PR, a README demo, a UI verification loop, a social clip, a cheap review of a long recording, zoom toward clicks, and the whole edit in one call.
The core is the watch loop: the agent records, samples the footage into frames it can see, and checks what actually happened on screen. Capture only ever happens on an explicit tool call, and output lands under SCREENCAST_HOME, never in your checkout.
| Instead of | The difference |
|---|---|
| OBS, ShareX, Game Bar | Built for a person at the controls. Here the agent starts and stops the recording, looks at the frames, and makes the edits through typed tools, with no GUI step. |
| Playwright or Puppeteer video | Browser pages only, and the video is a file the model never sees. Here: any window or monitor, frames returned to the model, plus wait_for_change, find_text, and screen_diff for checking what happened. |
| A screenshot-only MCP server | Single stills. Here: video over time, an input event log, scene-change sampling, redaction, and export, so the agent can show a sequence, not one moment. |
58 tools in 6 toolsets, generated from the server's own schemas by npm run docs (do not edit between the markers). Each name links to its reference page with every parameter, an example call, and what it returns; mcp-tools.json is the same list as JSON, and llms-full.txt all of it in one file.
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. Call on first use or when a tool reports a missing feature. |
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. Returns a session id; finalize it with stop_recording. Never auto-starts. |
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. Kept in the session and a sidecar; chapters and pipeline turn markers into chapters. |
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). Each entry has a target string to pass as-is to capture tools; use it instead of guessing a title. |
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. Used by the inline player; agents should use sample_frames or contact_sheet instead. *(app-only: called by the review player, not the agent)* |
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. Returns the elapsed time, changed regions (screenshot pixels; add origin for desktop), and the final state. |
| [find_text](https://tmhsdigital.github.io/screencast-mc
只显示了开头部分;其余内容请在仓库中阅读