moreel
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Structured log verbosity. Default: info | info |
| REDIS_URL | No | Enables distributed rate limiting/dedup. No default. | |
| YTDLP_PATH | No | Path to yt-dlp executable. Default: whatever is on PATH. | |
| FFMPEG_PATH | No | Path to ffmpeg executable. Default: whatever is on PATH. | |
| DATABASE_URL | No | Enables durable, cross-replica video storage + accounts/API keys. No default. | |
| CACHE_ENABLED | No | Cache processed videos (in-memory, or Postgres/Redis if configured). Default: true | true |
| OPENAI_API_KEY | Yes | Required API key for transcription (and vision/Video Map/embeddings, if enabled). | |
| VISION_ENABLED | No | On-screen text/scene understanding alongside the transcript. Default: false | false |
| MAX_VIDEO_SIZE_MB | No | Reject media larger than this. Default: 100 | 100 |
| VIDEO_MAP_ENABLED | No | Resolve "this"/"that"/pointing references (requires VISION_ENABLED). Default: false | false |
| MAX_CONCURRENT_REQUESTS | No | Bounded concurrency; excess fails fast with RATE_LIMITED. Default: 4 | 4 |
| SEARCH_EMBEDDINGS_ENABLED | No | Semantic matching on top of lexical search. Default: false | false |
| MAX_VIDEO_DURATION_SECONDS | No | Reject media longer than this. Default: 600 | 600 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| transcribe_videoA | Retrieves a public Instagram Reel, TikTok video, or YouTube video/Short and returns an accurate, timestamped transcript of its spoken audio — and, when visual analysis is enabled, meaningful visual information the video shows. WHAT IT DOES
WHAT IT DOES NOT DO
SUPPORTED INPUT
LIMITATIONS
Use this tool when you need the words spoken in a public video from one of the supported platforms, and optionally what it visually showed. |
| understand_videoA | Watches a public video end to end and returns a full multimodal understanding of it: the spoken transcript AND the meaningful visual information it shows (on-screen text, charts, products, UI, scene context) — always with visual analysis requested, unlike transcribe_video where it's opt-in. Use this as the entry point for any question that isn't purely "what was said" — anything about what was shown, displayed, or visible. The returned "video_id" can then be passed to search_video (find every mention of a topic across both speech and on-screen content), find_moment (get the single best timestamped piece of evidence for a question), and get_video_timeline (the full chronological merge of both modalities) — without re-submitting the URL or re-processing the video. WHAT IT DOES NOT DO
|
| search_videoA | Searches across every information channel of a previously-understood video — spoken transcript, on-screen text, and visual context — for a word, phrase, name, or topic. Returns every match with its own timestamp and which modality it came from ("speech" vs. an on-screen/visual type), ranked by relevance. Requires a "video_id" from a prior understand_video or transcribe_video call. Use this instead of re-reading a whole transcript when you already know what you're looking for — e.g. "pricing", "$49", "the dashboard", "AI agents". |
| find_momentA | Returns the single best timestamped piece of evidence in a previously-understood video for a specific question — precise, verifiable, and anchored to one moment, unlike search_video which returns every match. Requires a "video_id" from a prior understand_video or transcribe_video call. Use this when you need one authoritative answer with proof (e.g. "does the creator show pricing anywhere?", "what is he pointing at when he says 'this one'?") rather than a list of every mention. When the best match resolves to a specific visual entity (a pointing gesture, a "this"/"that" reference), the "interaction" field gives the structured target — absent when evidence was too weak to confidently resolve one, never a fabricated guess. |
| get_video_timelineA | Returns the full chronological, merged timeline of a previously-understood video — every spoken segment interleaved with every visual observation, in time order. This is the underlying structure search_video and find_moment query; use it when you need the complete picture rather than a single answer (e.g. "walk through everything that happens in this video"). Requires a "video_id" from a prior understand_video or transcribe_video call. |
| get_video_mapA | Returns the Video Map: the semantic layer connecting what was SAID to what was VISIBLE and what the person DID — entities (people/products/objects that recur across the video), interactions (points_at, shows, holds, etc.), and references (what "this"/"that one" actually meant). This is what resolves "speech → reference → visual target" — a transcript alone cannot tell you what "this one" refers to; this can, when the visual evidence was strong enough. Every interaction/reference has an "evidence_level" (observed/inferred/uncertain) and a "confidence" — absent "target_entity_id" means the evidence was too weak to confidently resolve a target, which is the CORRECT and expected answer in that case, not a failure. Requires a "video_id" from a prior understand_video call with visual analysis enabled. Returns empty arrays (not an error) when the Video Map feature wasn't enabled or found nothing — use search_video/find_moment for the underlying speech/visual search either way. |
| get_video_entityA | Returns everything the Video Map knows about one specific entity (a person/product/object) from get_video_map — every interaction it was involved in and every linguistic reference resolved to it, in chronological order. Use this after get_video_map or search_video/find_moment surfaces an entity id, to see its full history across the video (e.g. "every time the product was pointed at or referred to") rather than one isolated moment. |
| get_video_evidenceA | Looks up the full evidence behind a single Video Map fact by id — never invents detail beyond what was actually recorded (see get_video_map, get_video_entity). Use this to double-check a specific claim before treating it as authoritative, e.g. confirming a reference's evidence_level before repeating its resolved target as fact. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |