← 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
Category
Other #64 of 230
Stars
★ 2.2k Very popular
Transport
stdio (local process)
Runtime
Python 3.10+ · Prebuilt binary
Credentials
No credential needed
License
MIT
Last commit
Tools
5
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.

Strongest · Documentation 14/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
12/20
Maintenance
13/20
Documentation
14/20
Setup experience
13/20
Why each score
Reliability 9/20
Evidence: server.json declares a stdio PyPI package claude-real-video 0.10.3; the README documents five MCP tools (watch_video, get_frames, search_memory, list_watched, get_transcript) and claims end-to-end verification on Claude Code. Failure paths are described (missing ffmpeg, faster-whisper fallback to the whisper CLI, clean skip when there is no audio). Deductions: the source snapshot contains only server.json and the README — no CI workflows, no committed tests, no lockfile, and no captured MCP init/tool-list handshake; the 'verified' claim is self-reported and not reviewable. Under the static calibration, reliability is capped at 12 without verifiable execution evidence, so 9.
Security and permissions 12/20
Evidence: the README states processing is local, memory lives in a user-only SQLite file (~/.crv/memory.db, overridable via CRV_MEMORY_DB, disable with CRV_NO_MEMORY=1), a non-empty output directory is refused unless --overwrite is passed, and cookies for login-gated sources are user-supplied. Deductions: --cookies-from-browser reads the user's real browser login cookies with no documented confirmation step or scope limit; yt-dlp/ffmpeg fetch arbitrary URLs with no disclosed domain allowlist; install paths from a third-party registry (npx skills add) and a plugin marketplace pull unaudited code; the README leans on paid external links (Capafy, Lemon Squeezy). No malware, covert exfiltration, destructive defaults, or fabricated identity was found, so no red line applies, but permission scoping and confirmation are incomplete: 12.
Maintenance 13/20
Evidence: version 0.10.3 shows ongoing iteration; the README records specific fixes (v0.7.4 settled-local channel, v0.7.16 small-subject action channel) and 0.10.x windowing features; MIT license, public repo, and a checkable maintainer identity (Leo Huang / @LeoAidoAI); open issues reported as 0. Deductions: no CHANGELOG, dependency-update policy, SECURITY.md, or security-response channel is present; release cadence and issue response can only be inferred from a version string and README prose since no commit history is included; the boundary between the free tool and the commercial crv Pro is not documented in the files. Active but with governance gaps: 13.
Documentation 14/20
Evidence: layered and concrete docs — install extras ([whisper]/[fast]/[speakers]/[mcp]), a three-platform ffmpeg table, a full flag table with defaults and meanings, --from/--to window semantics, the three-channel dedup explanation, a measured performance table (frames/time/estimated tokens), MCP config examples for Claude Code and Claude Desktop, a Python API example, an FAQ, and stated limits (no subtitle burning, self-authorized cookies only, one output folder per video). Deductions: MCP tool parameters and return shapes are only briefly described with no error payloads, pagination edges, or concurrency behavior; the 'verified' claim carries no test evidence; heavy marketing and Pro upsell links reduce signal; tool schemas are not cross-checked against server.json. 14.
Setup experience 13/20
Evidence: a short, clear path — pip install 'claude-real-video[mcp]' then claude mcp add crv -- crv-mcp, or a claude_desktop_config.json mcpServers snippet; the non-pip ffmpeg dependency has per-OS commands and a verification step; macOS/Windows/Linux and Python 3.10+ are claimed. Deductions: ffmpeg is not pip-installable and Windows requires manual PATH editing; --speakers needs a 45MB model download and --whisper-model turbo needs a 1.6GB download plus ~6GB memory, and first-run costs are not consolidated in the install section; no containerized or pinned-version path; under the static calibration setup is capped at 15 without CI/tests, so 13.

Static review · not runListed 2026-09-10

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesRuns commands or codeUses the network

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

Setup

Before you start

Runtime:Python 3.10+ · Prebuilt binary

Other optional settings (2)
CRV_MEMORY_DB optional Path to the local memory index SQLite file, defaults to ~/.crv/memory.db; override to relocate it.
CRV_NO_MEMORY optional Set to 1 to disable the local memory index entirely.
  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"
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "crv": {
      "command": "crv-mcp"
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add crv -- crv-mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After installing, run claude mcp add crv -- crv-mcp; the client's tool list should show watch_video, get_frames, search_memory, list_watched and get_transcript. Ask the model to watch a test video and describe its frames to confirm the connection works.

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

Things to try

Once connected, you can ask your AI assistant things like:

  • Watch this YouTube video and tell me what it's about: https://www.youtube.com/watch?v=...
  • Analyze the local file /path/to/lecture.mp4 and give me a timestamped transcript
  • Search everything I've watched for mentions of pricing strategy
  • Don't re-analyze — first list the videos you've already watched

Tools 5

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

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 Desktop
Claude Code
CursorPartial support

Listed from the project's documentation, not tested by this site.

Overview

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.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 659 · Tools 11 Compare with this →

Source revision ab4b9b2b2379 Data synced 2026-10-19 Read the FMRS scoring method