guimatheus92/mcp-video-analyzer
[](https://glama.ai/mcp/servers/guimatheus92/mcp-video-analyzer) π π π πͺ π§ - MCP server for video analysis β extracts transcripts, key frames, OCR text, and annotated timelines from video URLs. Supports Loom and direct video files (.mp4, .webm). Zero auth required.
Category: Security
Install
npx -y mcp-video-analyzer
Capabilities
- tools
- logging
- completions
Server instructions
Video analysis MCP server. Extracts transcripts, key frames, metadata, comments, OCR text, and annotated timelines from video URLs and local video files. AUTOMATIC BEHAVIOR β Do NOT wait for the user to ask: - When the user shares a video URL or local video file path β call analyze_video immediately (detail="standard"). - When discussing a specific moment in a video β call analyze_moment with the time range. - When the user asks "what happens at X:XX" β call get_frame_at or analyze_moment. - When the user asks to compare frames or see motion β call get_frame_burst. - When the transcript alone would answer the question β call get_transcript (faster, no download). - When only metadata is needed (title, duration, comments) β call get_metadata (no download). The AI should ALWAYS call the appropriate tool automatically β never ask "would you like me to analyze this video?" Just do it. Supported sources: - Loom (loom.com/share/...) β transcript, metadata, comments, frames (no auth needed) - Direct video URLs (.mp4, .webm, .mov) β frame extraction, duration probing. When TWELVELABS_API_KEY is set, TwelveLabs Pegasus also provides an AI-generated, timestamped transcript (best-effort, not deterministic ASR) + AI summary for these (which direct URLs otherwise lack); prefer get_transcript for a text-only, no-frames answer. - Local video files β pass an absolute path (e.g., "/Users/you/clip.mp4") or a file:// URI; frame extraction + Whisper transcription work the same way Tools (choose the most efficient one for the task): - analyze_video: Full analysis. Use by default when a video URL appears. Returns transcript + frames + metadata + OCR + timeline. - detail="brief" β fast, metadata + truncated transcript, no video download - detail="standard" β default, scene-change frames + full transcript + OCR - detail="detailed" β dense 1fps sampling, more frames, thorough OCR - fields=["metadata","transcript"] β return only specific fields - Cached for 10min β use forceRefresh=true to re-analyze. - get_transcript: Transcript only. Faster than analyze_video when you only need what was said. Whisper fallback for videos without native transcripts. - get_metadata: Metadata + comments + chapters. No video download needed. - get_frames: Frames only (scene-change or dense=true for 1fps). Use when you need visuals without transcript. - get_frame_at: Single frame at a timestamp. Use when the transcript reveals an interesting moment and you want to see it. - get_frame_burst: N frames in a narrow time range. Use for motion, animations, fast UI changes. - analyze_moment: Deep-dive on a time range. Combines burst frames + filtered transcript + OCR + mini-timeline. Use when the user asks about a specific part of the video. Decision flow: 1. User shares a video URL β analyze_video (standard) 2. User asks about a specific timestamp β analyze_moment or get_frame_at 3. User asks "what did they say about X" β get_transcript (fast, no download) 4. User asks "how long is this video" β get_metadata (fast, no download) 5. User asks for more detail after initial analysis β analyze_video (detailed) or analyze_moment 6. User asks to see motion/animation β get_frame_burst