← Back to directory
C

Claude Real Video MCP Server

Community
Let any LLM actually watch a video locally — and search everything it has ever watched
GitHub source repository ↗
★ 2.1k Stars Category · Other Very popular
61FMRS · C

This MCP server turns "let an LLM watch a video" into a reproducible local pipeline: scene-aware keyframe extraction with sliding-window dedup, local Whisper transcription, and a local cross-video memory index. MIT-licensed, not official, maintained by an independent developer. It suits users willing to install ffmpeg and who value local processing and citable evidence; it is a poor fit for those expecting a hosted service or official support.

Reliability
9/20
Security and permissions
12/20
Maintenance
13/20
Documentation
14/20
Setup experience
13/20
Read the FMRS scoring method →

claude-real-video (crv) is an MIT-licensed Python tool that turns a video into material an LLM can actually read: scene-change keyframe extraction with sliding-window deduplication, local Whisper transcription with timestamps, and outputs such as frames.json, transcript.json and MANIFEST.txt. It also ships an MCP server (crv-mcp) so MCP clients like Claude Desktop, Claude Code and Cursor can ask for a video to be watched directly. Fetching (yt-dlp), frame extraction (ffmpeg) and transcription all run on your own machine; only the frames or text you choose to paste into a cloud LLM leave it. It is built by an independent developer, Leo Huang, and is not an official Anthropic project.

Tools

watch_video
Watch a video from a URL or local file; returns the timestamped transcript plus the first batch of keyframes as images.
get_frames
Page through the remaining keyframes by start index and count.
search_memory
Search across every video watched so far in the local index, returning the video, the second, and the exact line.
list_watched
List everything already watched, so you can check before re-watching.
get_transcript
Return words only, with no frames, so a long talk does not cost image tokens.

Setup

  1. Install ffmpeg and ffprobe (macOS: brew install ffmpeg; Linux: sudo apt install ffmpeg; Windows: winget install Gyan.FFmpeg) and verify with ffmpeg -version.
  2. Install the package with MCP support: pip install 'claude-real-video[mcp]'.
  3. Claude Code: run claude mcp add crv -- crv-mcp.
  4. Claude Desktop: add {"mcpServers": {"crv": {"command": "crv-mcp"}}} to claude_desktop_config.json.
  5. Optional: install the [whisper] or [fast] extra for speech-to-text, and [speakers] for speaker labels.
claude_desktop_config.json
{
  "mcpServers": {
    "crv": {
      "command": "crv-mcp"
    }
  }
}

Fit and risk

Best for

  • Users who want video preprocessing to stay local and only the chosen material to reach a cloud LLM
  • Developers using MCP-capable coding agents such as Claude Code or Cursor who need video evidence
  • Video analysis where scene-aware extraction beats fixed-interval sampling

Not for

  • Users expecting a hosted server with no local ffmpeg install
  • Enterprise procurement needing official Anthropic support or an SLA
  • Users who just want a one-off answer about one clip and do not care about local processing or reproducibility

Required permissions

  • Read video and subtitle files at any path you point it at on the local machine
  • Network access via yt-dlp to fetch video URLs
  • Write to the output directory (default crv-out) and the MCP analysis cache at ~/.cache/crv-mcp
  • Maintain a local SQLite memory index at ~/.crv/memory.db (overridable with CRV_MEMORY_DB, disable with CRV_NO_MEMORY=1)
  • Optional: read browser cookies to reach login-gated content in your own account

Risks and side effects

  • Processing copyrighted or unauthorized content may violate the source site's terms; --cookies is meant for your own authorized access only
  • Transcripts and the memory index persist speech and on-screen text on local disk, which matters on shared machines
  • Whisper can invent captions on music-only or silent audio (installing the [fast] extra adds faster-whisper with Silero VAD to avoid this)
  • Once you paste extracted frames or the transcript into a cloud LLM, that data is handled by that provider
  • crv Pro is a paid add-on; the free edition lacks Pro features such as camera motion and voice emotion

Troubleshooting

  1. Nothing happens or extraction fails: run ffmpeg -version first to confirm ffmpeg/ffprobe are installed and on PATH
  2. No transcript produced: make sure the install included the [whisper] or [fast] extra, since pip extras never install themselves
  3. Output directory refused: crv will not mix two analyses in one folder; use a new directory or pass --overwrite
  4. URL download fails: check yt-dlp availability and whether the link needs a login (--cookies or --cookies-from-browser)
  5. Too many frames burning tokens: lower --max-frames, raise --dedup-threshold, or use get_transcript for words only
  6. Speakers not distinguished: install the [speakers] extra and use --speakers
  7. Re-watching the same video wastes time: crv reports 'already watched' and reuses ~/.cache/crv-mcp; call list_watched to check first

Use cases

Have Claude or any LLM analyze a YouTube, Reels or TikTok link, or a local video file
Turn long meetings, lectures and screen recordings into timestamped keyframes and a transcript the model can cite as frame_012 @ 00:03:41
Use search_memory to query across every watched video by keyword, including CJK text

Supported clients

Claude DesktopFull support
Claude CodeFull support
CursorPartial support