Mmcp.market

Watch Skill MCP server

by oxbshw·io.github.oxbshw/watch-skill·v1.4.3

Watch video and live sessions, keep timestamped evidence, and verify an agent's own work.

B77/100grade B
What users say
No reviews yet
Be the first
Safety scan
B77/100

full report

Adoption
Growing

379 stars

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • aligned_evidence

    What EVERY stream observed around one moment of a live session.

  • analyze_hook

    Creator 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_live

    Ask what is happening right now, or what happened earlier in a live session. Answers come with the media timestamps they came from.

  • ask_video

    ANY 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 action

    Stop a durable background job.

  • capture

    Record 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_capabilities

    What 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_source

    Whether an indexed video still matches what its source holds NOW, plus every revision recorded for it.

  • doctorwrite action

    Run 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_plan

    What a run would send and what it could cost, BEFORE it sends anything.

  • extract_bug_report

    QA 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_chapters

    Segment 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_timeline

    A correlated account of a live session: what was seen, read and heard, joined into single happenings rather than three parallel logs.

  • generate_viewer

    Render 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_evidence

    Read back a verification run's evidence bundle and attestation.

  • get_live_status

    How 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_moment

    Zoom 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_status

    Check 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_overview

    What 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_synthesize

    Answer 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_videos

    See 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_game

    START 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_iterate

    CONTINUE 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_monitor

    WATCH 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_start

    START 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_status

    Inspect a loop's persisted state (status, scores per iteration, artifacts).

  • loop_video_gen

    START 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_live

    Read what has happened in a live session since your last cursor.

  • report_mistake

    The 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_videos

    Find 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_watch

    Start 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.

  • stats

    Lifetime token-savings meter: how many tokens Watch Skill's text-first answers + semantic cache have saved vs naive raw-frame injection.

  • stop_live_watch

    Stop 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_contract

    Decide whether an agent run actually succeeded, using deterministic checks rather than an opinion about a screenshot.

  • watch_batch

    Watch + 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_video

    FIRST 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_workspace

    Open the Watch Skill live workspace — the visual view of a session.

  • workspace_delta

    Events after a cursor, as JSON. The app's polling call.

  • workspace_snapshot

    Canonical workspace state as JSON. Used by the app and by tests.

Public scan report

scanner v0.1.9 · 2026-09-19 · same rubric, same numbers if you re-run it

2 medium
  • 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 5 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (2)

  • mediumsubprocess with shell=Trueexec.shell-true
    watch_skill-1.4.3/src/watch_skill/loop/framework.py: …sult = subprocess.run( cmd, shell=True, capture_output=True, text=True, …
  • mediumeval / new Function usedexec.eval
    watch_skill-1.4.3/src/watch_skill/vision/worker_main.py: …_mem_usage=True, local_files_only=True).eval() STATE.model, STATE.processor = mo…
Overall 77/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

claude mcp add watch-skill -- uvx watch-skill
Add to Cursor

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, Claude Desktop or Cursor 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 5 days ago (2026-09-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, agent-device MCP server and Agent-Native Assets MCP server. Compare all Watch Skill alternatives.

Alternatives to Watch Skill

Same job from other publishers: the closest match first, then the best rated.

All Watch Skill alternatives →
  • Claude Real Video
    Let any LLM watch a video locally — and search everything it has ever watched.
    A
  • agent-device
    MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps
    A
  • Agent-Native Assets
    Digital asset manager - upload, organize, search, and generate on-brand images and videos
    A
  • Mockserver
    Mock, record/replay, verify and chaos-test any HTTP, REST, gRPC or LLM dependency over MCP.
    A
  • Runapi
    130+ AI models for image, video, music, and audio — 18 model families, one RunAPI account.
    A

More from oxbshw