analyze_videoLABSCO SUMMARY
The analysis is stored, and the model reads only what it asks for.
The design decision that makes this practical is that analyze_video returns an identifier rather than the content: a long video registers cheaply and the agent then pulls the summary, one phase, or the steps that match a search. Locking provider and model to environment variables is the other good call — an agent cannot quietly switch to an expensive cloud model mid-session.
What it is
A video-understanding server that runs on local models by default. It extracts frames with ffmpeg, sends them to a vision model, and returns a flow array with one entry per scene carrying the visible scene, the subjects, the action, on-screen text, persistent context and observations. When the video has audio it transcribes with Apple MLX Whisper and merges the speech into each step. Inputs can be a local file, an image, a PDF, or a URL from YouTube, Loom, Vimeo or Twitter.
What you get
analyze_video— run the analysis and get back ananalysis_idplus metadata, with the full result stored on disk rather than dumped into the conversation- Pull only the part you need:
get_summaryat brief, medium or full depth,get_stepfor one step,get_stepsfor a range,get_phasefor every step in a named phase, andget_full_analysiswhen you do want everything search_analysis— return only the steps matching a query, so a long video costs you the hits rather than the whole transcriptget_transcript— a slice of the speech transcript between two timestamps- Housekeeping:
list_analyses,delete_analysis,get_usage_statsfor a per-model token and cost breakdown, andclear_usage_stats - Analyses also readable as resources at
vidlizer://analyses,vidlizer://analyses/{id}andvidlizer://analyses/{id}/summary
Requirements
Nothing when running locally against Ollama — no API key and no data leaving the machine. macOS with Python 3.10 or higher; the package is vidlizer (version 0.2.19) and the MCP entry point is vidlizer-mcp, run with uvx "vidlizer[mcp]" vidlizer-mcp or installed through pipx with the [mcp] extra — a plain pipx install creates the entry point without the mcp package, and needs pipx inject vidlizer mcp. Provider is chosen with PROVIDER: Ollama with a vision model pulled, any OpenAI-compatible server through OPENAI_BASE_URL and OPENAI_MODEL, or OpenRouter with OPENROUTER_API_KEY. ffmpeg is installed via Homebrew on first run if missing. The model and provider are fixed by environment variables and cannot be changed by the calling agent.
Setup effort
One command plus a key — uvx "vidlizer[mcp]" vidlizer-mcp, then supply credentials
USE CASES
Finding the moment something broke in a screen recording
Analyse the recording, then search the steps for the error rather than reading the whole account.
Getting the gist of a long video quickly
Register the video, then read a brief summary and open only the phase that matters.
Working with what was said as well as shown
Pull a transcript slice for a time range and read it alongside the visual steps for the same moment.
Keeping video analysis on your own machine
Run against a local Ollama or LM Studio model so frames and audio never leave the laptop.
12 tools
Listed in project docs. Your client may show a different list.
list_analysesget_summaryget_stepget_stepsget_phasesearch_analysisget_transcriptget_full_analysisdelete_analysisget_usage_statsclear_usage_statsBEFORE YOU INSTALL
What to know first
Tools you get
12 tools named in the project's documentation.
Requires
- uvx on PATH
- Python 3.10+
- OPENROUTER_API_KEY in your environment
INSTALLATION
Connect your client
Server setup
uvx "vidlizer[mcp]" vidlizer-mcpMCP Clients
Claude Code
claude mcp add-json vidlizer '{"type":"stdio","command":"<YOUR_PATH_TO_VIDLIZER_MCP>","env":{"PROVIDER":"openrouter","OPENROUTER_API_KEY":"<YOUR_OPENROUTER_API_KEY>","OPENROUTER_MODEL":"google/gemini-2.5-flash"}}'Windsurf
vidlizer mcp-setup