Watch Skill MCP server
io.github.oxbshw/watch-skill·v1.4.3·487 starsWatch video and live sessions, keep timestamped evidence, and verify an agent's own work.
487 stars530 downloads/wk
Reviews
Write oneNobody has reviewed Watch Skill yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Watch Skill tools (39, 2 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
aligned_evidenceWhat EVERY stream observed around one moment of a live session.
analyze_hookCreator mode: score the first N seconds of a watched video as a hook — attention trigger in the opening line, speech pacing, visual change rate, on-screen text — each with an actionable critique plus a combined 0-100 score and verdict (strong/promising/weak).
ask_liveAsk what is happening right now, or what happened earlier in a live session. Answers come with the media timestamps they came from.
ask_videoANY follow-up question about a video you (or anyone) already watched — ALWAYS prefer this over re-running watch_video: the self-healing answer engine retrieves from the persistent index, scores its own confidence, escalates (dense re-sampling, zoom-crop re-OCR, stronger model) when unsure, and states plainly when the video does not clearly show the answer — it never guesses. Responses are TEXT-FIR
cancel_jobwrite actionStop a durable background job.
captureRecord NEW footage when none exists yet — a live web page (headless browser session with optional goto/click/fill/scroll/wait script), `screen:` (full desktop), `window:<exact title>`, or adopt an existing video file. The recording is analyzed and indexed; returns video_id for ask_video. To record AND judge against pass criteria, use loop_start instead — capture alone never critiques.
capture_capabilitiesWhat this machine can actually record, and how each answer was established. Check before attempting screen/window/camera capture — nothing here is reported available on the strength of a code path existing.
check_sourceWhether an indexed video still matches what its source holds NOW, plus every revision recorded for it.
doctorwrite actionRun this when ANY other tool fails with a dependency/download error, or on first use. Checks AND self-heals: installs missing ffmpeg/yt-dlp, updates a stale yt-dlp, verifies disk space, GPU, and API keys. Each failing check includes a `fix` you can act on.
execution_planWhat a run would send and what it could cost, BEFORE it sends anything.
extract_bug_reportQA mode: pinpoint WHERE an error appears in a watched screen recording — the timestamp, the frame, the exact on-screen error text (OCR), and the steps/narration that led up to it. Returns found=false when no error signal exists rather than guessing.
extract_chaptersSegment an already-watched video into titled chapters with start/end timestamps (from scene changes + transcript topic shifts). Use for navigation, summaries per section, or building a table of contents. Deterministic — no extra model calls, answers straight from the index.
fused_timelineA correlated account of a live session: what was seen, read and heard, joined into single happenings rather than three parallel logs.
generate_viewerRender a SHAREABLE, self-contained HTML page for an analyzed video: timeline + key frames (inlined — works offline, zero external requests), the transcript, on-screen text, and every cached answer with the exact evidence the engine cited. Give the user the returned path; the file can be opened directly in any browser or sent to anyone as-is.
get_evidenceRead back a verification run's evidence bundle and attestation.
get_live_statusHow a live session is doing: state, frames captured vs analyzed, dropped frames, queue depths, buffer size. Omit session_id to list every live session on this machine.
get_momentZoom into ONE SPECIFIC MOMENT of an indexed video — use when the user names a timestamp ("what happens at 2:30?") or when an ask_video hit needs more surrounding detail. Returns dense frames + transcript + OCR within `window` seconds around `timestamp` (SS, MM:SS, or HH:MM:SS). For a broad question about the whole video, use ask_video instead.
get_statusCheck a background job started with watch_video(background=true). Returns state/stage/progress; when it succeeds it includes the video_id to use with ask_video. Poll every few seconds, not in a tight loop.
library_overviewWhat the video library knows: how many videos and hours are indexed, the note counts (entities/claims/chapters), the entities that recur across multiple videos, and the most recent additions. Use it to orient before library_synthesize, or when the user asks what has been watched.
library_synthesizeAnswer a question from the WHOLE video library at once — use when no single video answers it ("what did the meetings decide about X?", "which tutorials cover Y and do they agree?"). Retrieves distilled notes across every indexed video, drills into real indexed evidence, and returns a synthesis where every finding carries a per-video timestamp citation. Says plainly when the library does not clearl
list_videosSee what is already in the index (id, title, duration, source) — check here BEFORE watch_video when the video might have been analyzed in an earlier session; if it's listed, go straight to ask_video.
loop_gameSTART A GAME/SIMULATION LOOP to catch visual glitches or state failures in a running game or sim: optionally launches run_cmd, records gameplay from `target` (a canvas game URL, window:<title>, or screen:), and critiques the recording against your criteria (e.g. 'the score counter must never show negative numbers, no black flicker frames'). Fix the game code between iterations, then loop_iterate.
loop_iterateCONTINUE THE LOOP — call this ONLY after you actually changed the code/ UI in response to loop_start's issues. Re-captures the same target with the same script, re-critiques, and diffs against the previous iteration (fixed / unchanged / new issues). Stops on pass, max_iterations, or no-progress; on pass it renders the before/after MP4+GIF proof.
loop_monitorWATCH a folder of videos or a live target until a described condition appears (e.g. 'a demo error screen shows'), then return a structured event. Bounded by max_checks — it always terminates. Folder sources consume each video once; live targets (URL / screen: / window:) sample `sample_seconds` every `interval`. Events also land in events.jsonl under the monitor's loop dir so other tools can react.
loop_startSTART THE LOOP when you built/changed something visual and need to VERIFY it actually looks right: records the target (URL / screen: / window:<title> / video file), watches the recording, and critiques it against your natural-language pass criteria with the strong vision model. Returns loop_id + structured issues with timestamps and suggested fixes. YOU apply the fixes in code, then call loop_iter
loop_statusInspect a loop's persisted state (status, scores per iteration, artifacts).
loop_video_genSTART A VIDEO-GENERATION LOOP when you are generating a video (Manim, Remotion, ffmpeg, any command) and need to verify the render matches the spec: runs generator_cmd, watches the video it writes at `output`, and critiques it against the spec/pass_criteria. YOU edit the generator (scene code, prompt, args) between iterations, then call loop_iterate — the same iterate/diff/artifact machinery as th
observe_liveRead what has happened in a live session since your last cursor.
report_mistakeThe answer to a video question turned out WRONG? Report it here with the correction — Watch Skill learns from it locally (nothing uploaded): the mistake is classified, stored as a lesson, injected into future similar questions, and where possible the original question is re-asked immediately to confirm the lesson works. Do this whenever the user corrects a video answer; it makes every later answer
search_videosFind something across EVERY video ever watched, when you don't know which video contains it ("which video mentioned X?"). Hybrid keyword + semantic search; Arabic and other scripts are matched with proper normalization. Returns videos with timestamped evidence — follow up with ask_video or get_moment on a hit. For a question about one known video, use ask_video directly.
start_live_watchStart WATCHING SOMETHING AS IT HAPPENS — a web page, a stream, or a local file replayed at real time. Events (scene changes, on-screen text changes, browser errors) are produced while the source is still playing, not after it ends.
statsLifetime token-savings meter: how many tokens Watch Skill's text-first answers + semantic cache have saved vs naive raw-frame injection.
stop_live_watchStop a live session. With finalize=true the pinned evidence becomes an ordinary indexed video — ask_video and search_videos work on it afterwards, with no reprocessing of the media.
verify_contractDecide whether an agent run actually succeeded, using deterministic checks rather than an opinion about a screenshot.
watch_batchWatch + index a WHOLE SET of videos in one call: a playlist/channel URL (auto-expanded), a folder of video files, or an explicit list of URLs/paths. Every video lands in the same persistent index, so one search_videos/ask_video afterwards spans the entire batch — cross-video questions become possible. One failing video never stops the rest.
watch_videoFIRST LOOK at any video — use when given a video you have NOT analyzed yet. Accepts any URL yt-dlp supports (1800+ sites), direct media URLs, HLS/DASH manifests, and local file paths. Downloads, extracts scene-aware deduplicated frames, OCRs them, transcribes (captions first, then local whisper), and INDEXES everything. Returns a report + key frames as images. For follow-ups about the same video c
watch_workspaceOpen the Watch Skill live workspace — the visual view of a session.
workspace_deltaEvents after a cursor, as JSON. The app's polling call.
workspace_snapshotCanonical workspace state as JSON. Used by the app and by tests.
Public scan report
scanner v0.1.10 · 2026-10-15 · same rubric, same numbers if you re-run it
- Code scan205 source files scanned15/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (2)
- mediumsubprocess with shell=True
exec.shell-truewatch_skill-1.4.3/src/watch_skill/loop/framework.py: …sult = subprocess.run( cmd, shell=True, capture_output=True, text=True, …
- mediumeval / new Function used
exec.evalwatch_skill-1.4.3/src/watch_skill/vision/worker_main.py: …_mem_usage=True, local_files_only=True).eval() STATE.model, STATE.processor = mo…
How Watch Skill compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 77/100
- higher than 50% of 4,460 AI and agents servers
- Tools
- 39
- the typical AI and agents server has 6
- Tools that change things
- 5%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 487
- more than 95% of 2,711 AI and agents servers
- Downloads a week
- 530
- more than 87% of 1,538 AI and agents servers with a package
What its tools let an agent do: 33 read · 1 create · 1 change · 1 delete · 3 run or deploy
Install Watch Skill in Claude Code, Cursor or VS Code
claude mcp add watch-skill -- uvx watch-skill
What the publisher says
From the Watch Skill repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.oxbshw/watch-skill -->
Watch Skill · DeepWatch
Give AI agents eyes, ears, and verifiable results.
Watch Skill turns video, audio and screen activity into searchable, timestamped evidence, and answers did that actually work? with a deterministic contract rather than a model's opinion. Add it to the agent you already use over MCP.
DeepWatch is a ready-made agent workspace, built on the official DeepSeek Harness with Watch Skill already composed in, where a tool call leaves a receipt you can open and a result can be checked by something other than the agent that produced it.
Python · PyPI
Node · npm
Gates and directories
Install · Use it · THE LOOP · Packages · Architecture · Docs · Community
Two capabilities, and they work apart
Perception. Video, audio and screen activity become frames, transcripts and OCR text, each carrying an absolute timestamp. Index a source once and query it for as long as you keep it; every answer cites a moment you can open.
Verification. A frozen contract — file digests, JSON values, SQL results, HTTP responses, DOM state — is evaluated by a separate process. The verdict is VERIFIED, FAILED, UNVERIFIED or INCONCLUSIVE, and it does not come from a language model.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Watch Skill: common questions
- Is Watch Skill MCP server safe?
- Mostly: it is graded B (77/100). Read the Watch Skill safety report
- How do I install Watch Skill?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Watch Skill need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Watch Skill maintained?
- The last commit was 21 days ago (2026-10-14). The latest release is v1.4.3.
- What can I use instead of Watch Skill?
- Servers from other publishers that do the same job: Claude Real Video MCP server, WaveSpeed MCP server and Watch CLI MCP server. Compare all Watch Skill alternatives.
- How does Watch Skill compare with other AI and agents MCP servers?
- safety score 77/100 (higher than 50% of 4,460 AI and agents servers); tools 39 (the typical AI and agents server has 6); tools that change things 5% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Watch Skill
Same job from other publishers: the closest match first, then the best rated.
- Claude Real VideoLet any LLM watch a video locally — and search everything it has ever watched.not reviewedEstablishedA
- WaveSpeedRun any model on the live WaveSpeed catalog: image, video, audio, 3D.not reviewedEstablishedA
- Watch CLIHand any social video to your AI agent — frames + transcript bundled. MCP server for watch-cli.not reviewedEstablishedB
- HOL GuardLocal-first AI agent security evidence and approval workflows through HOL Guard's stdio MCP server.not reviewedEstablishedA
- Pm Claude Skills1310 professional Agent Skills + workflow recipes — searchable & fetchable over MCP.not reviewedEstablishedA