Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}
logging
{}
completions
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
analyze_videoA

Analyze a video URL to extract transcript, key frames, metadata, comments, OCR text, and annotated timeline.

Returns structured data about the video content:

  • Transcript with timestamps and speakers

  • Key frames extracted via scene-change detection (deduplicated, as images). For static clips with no scene cuts (e.g. talking-head Reels/Stories where only on-screen text changes) it automatically falls back to uniform temporal sampling.

  • OCR text extracted from frames (code, error messages, UI text, prices/dates/CTAs visible on screen)

  • Annotated timeline merging transcript + frames + OCR into a unified chronological view

  • Metadata (title, duration, platform)

  • Comments from viewers (if available)

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

Detail levels:

  • "brief": metadata + truncated transcript only (fast, no video download)

  • "standard": full analysis with scene-change frames (default)

  • "detailed": dense sampling (1 frame/sec), more frames, full OCR

Use options.fields to request only specific data (e.g., ["metadata", "transcript"]). Use options.forceRefresh to bypass the cache. Use options.model / options.language / options.initialPrompt to override Whisper transcription per call (e.g. a heavier model + a domain glossary for hard audio) without restarting the server.

analyze_videosA

Batch-analyze many videos in one call, with a concurrency limit and per-item results.

For each source it runs the same pipeline as analyze_video (frames + OCR + transcript + timeline), reusing the shared cache and on-disk sidecars. Designed for processing a corpus of local files: pair it with MCP_WRITE_SIDECARS=1 so results persist next to each video and a re-run resumes instead of recomputing.

Returns a JSON summary plus one structured entry per source:

  • ok=true → title, duration, frameCount, ocrCount, transcriptEntries, warnings

  • ok=false → the error message for that specific video (other videos still complete)

To keep the response bounded, frame images are NOT inlined and full transcript/OCR/timeline arrays are returned only when options.fields is set; otherwise you get counts. Use analyze_video on an individual source when you need the images or full data inline.

get_frame_atA

Extract a single video frame at a specific timestamp.

Useful for inspecting what's on screen at a particular moment. The AI reads the transcript, identifies a critical moment, and requests the exact frame at that timestamp.

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

Args:

  • url: Video source (URL or local path)

  • timestamp: Time position (e.g., "1:23", "0:05", "01:23:45")

Returns: A single image of the video frame at the specified timestamp.

get_frame_burstA

Extract multiple frames evenly distributed across a time range.

Designed for motion and vibration analysis where scene-change detection fails because the "scene" doesn't change — only the position/state of objects does.

Example: get_frame_burst(url, "0:15", "0:17", 10) → 10 frames in 2 seconds

  • AI sees the object in different positions across frames → understands the vibration

  • Works for: shaking, flickering, animations, fast scrolling, loading spinners

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

Args:

  • url: Video source (URL or local path)

  • from: Start timestamp (e.g., "0:15")

  • to: End timestamp (e.g., "0:17")

  • count: Number of frames (default: 5, max: 30)

Returns: N images evenly distributed between the from and to timestamps.

get_transcriptA

Extract only the transcript from a video URL.

Returns timestamped transcript entries with speaker identification (when available). Faster than analyze_video when you only need the transcript.

If the platform has no native transcript, attempts Whisper fallback transcription (requires @huggingface/transformers, whisper CLI, or OPENAI_API_KEY).

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp; native captions preferred), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI). For local files a sidecar .vtt/.srt next to the file is used first, then an embedded subtitle track, and only then the Whisper fallback if neither exists.

get_metadataA

Get video metadata, comments, chapters, and AI summary from a video URL.

Returns structured metadata without downloading the video or extracting frames. Faster than analyze_video when you only need metadata.

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

get_framesA

Extract key frames from a video URL without transcript or metadata.

Two extraction modes:

  • Scene-change detection (default): captures visual transitions

  • Dense sampling (dense=true): captures 1 frame/sec for full video coverage

Returns optimized, deduplicated JPEG frames.

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

analyze_momentA

Deep-dive analysis of a specific time range in a video.

Combines burst frame extraction + transcript filtering + OCR + annotated timeline for a focused segment of the video.

Use this when you need to understand exactly what happens between two timestamps:

  • What's on screen (frames + OCR text extraction)

  • What's being said (transcript filtered to the range)

  • Unified timeline merging visual and audio content

Example: analyze_moment(url, "1:30", "2:00", 10) → 10 frames + transcript + OCR for that 30s window

Supports: Loom (loom.com/share/...), YouTube/Vimeo/TikTok/Instagram/X/Twitch/Dailymotion/Facebook (requires yt-dlp), direct video URLs (.mp4, .webm, .mov), and local video files (absolute path or file:// URI).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guimatheus92/mcp-video-analyzer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server