video-url-analyzer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANALYSES_DIR | No | Directory to store analysis results | ./analyses |
| GEMINI_API_KEY | Yes | Google Gemini API key (required) | |
| VIDEO_ANALYZER_COOKIES | No | Enable browser cookies for yt-dlp | false |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| analyze_videoA | Analyze a video or photo/slideshow post from YouTube, TikTok, or Instagram. Provides comprehensive audio + visual analysis using Gemini AI. Works with videos AND photo/slideshow posts on TikTok, Instagram, and YouTube community posts. YouTube videos are analyzed directly and return the result immediately. TikTok and Instagram videos are processed in the background — the tool returns a job_id. Use check_analysis_job(job_id) to poll for the result. |
| get_transcriptA | Extract speech transcript from a video or slideshow audio track. YouTube returns the result immediately. TikTok/Instagram return a job_id — use check_analysis_job(job_id) to poll for the result. Slideshows without audio return a structured slideshow_no_audio response. |
| ask_about_videoA | Ask a specific question about a video or photo/slideshow post. Works with videos AND photo/slideshow posts on TikTok, Instagram, and YouTube community posts. YouTube returns the answer immediately. TikTok/Instagram return a job_id — use check_analysis_job(job_id) to poll for the result. |
| prepare_slideshow_assetsA | Return slideshow images as ordered MCP image blocks for client-side vision. This tool does not call Gemini. It downloads TikTok Photo Mode, Instagram photo/carousel posts, or YouTube community post images, then returns each image directly to the MCP client with an explicit image_index label. Use it when you want Claude/the client AI to inspect the images itself instead of receiving a Gemini-generated analysis. |
| find_video_momentsB | Find moments in a video matching a semantic query. Gemini performs the video/audio/visual reasoning. detail controls model + max_output_tokens + thinking/media config. compact is default and returns concise structured JSON. |
| analyze_video_segmentB | Analyze only a selected video segment. Uses Gemini video_metadata clipping when available. Gemini performs video/audio/visual reasoning. detail controls model + max_output_tokens + thinking/media config. |
| prepare_video_contextC | Analyze a whole video once and save a local structured context. |
| ask_video_contextC | Answer a question from saved video context without Gemini by default. |
| list_video_contextsC | List saved local video context files. |
| delete_video_contextC | Delete one saved local video context file. |
| get_video_frameC | Extract a local still frame and return compact asset metadata. |
| get_video_clipC | Extract a local video clip under 30 seconds and return metadata. |
| get_video_evidence_assetC | Find saved visual evidence and return a local frame/clip reference. |
| list_video_sourcesC | List cached video sources, contexts, and assets. Never calls Gemini. |
| cleanup_video_cacheC | Inspect or clean managed video cache files. Safe dry-run by default. |
| watch_and_analyzeA | Watch a video tutorial and extract all technical steps, commands, and code. Downloads the video, analyzes it with Gemini AI, and returns structured JSON with every command, code snippet, file path, and tool mentioned. YouTube returns the result immediately. TikTok/Instagram return a job_id — use check_analysis_job(job_id) to poll for the result. This tool ONLY analyzes — it does NOT execute anything. Use execute_tutorial_steps to run the extracted steps after review. |
| check_analysis_jobA | Check the status of a background video analysis job. When analyze_video, get_transcript, ask_about_video, or watch_and_analyze returns a job_id (for TikTok/Instagram videos), use this tool to poll for the result. Keep calling until status is "completed" or "failed". |
| execute_tutorial_stepsA | Review or execute tutorial steps extracted by watch_and_analyze. SAFETY: By default (confirm=false), this only shows a summary of what WOULD be executed. Set confirm=true ONLY after reviewing the steps. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Several tools have overlapping purposes, such as analyze_video, watch_and_analyze, and prepare_video_context all performing analysis, and multiple get_* tools for extracting clips/frames. While descriptions provide some differentiation, an agent could easily confuse them.
Tool names consistently use verb_noun snake_case (e.g., analyze_video, get_transcript). Minor deviations include ask_video_context (missing preposition) and watch_and_analyze (compound verb), but overall pattern is predictable.
18 tools is somewhat high for a video analyzer, covering analysis, Q&A, extraction, and management. The count is at the upper bound of reasonable, but many tools are specialized and the scope justifies most.
The tool surface covers analysis, Q&A, transcript, moments, clips, context management, and tutorial extraction. Missing operations like updating sources or more advanced editing, but core workflows are well-supported.