Skip to main content
Glama
u2n4

video-url-analyzer-mcp

by u2n4

Features

v1.5.4 exposes 18 MCP tools:

Tool

What it does

analyze_video

Full audio + visual analysis with custom prompts. Uses Gemini multimodal understanding.

get_transcript

Extract timestamped transcript with speaker identification. Supports 100+ languages via auto-detection.

ask_about_video

Ask any question about the video content.

prepare_slideshow_assets

Return ordered slideshow images as MCP image blocks so Claude/the client AI can inspect them directly.

find_video_moments

Find matching moments with compact/standard/full structured output.

analyze_video_segment

Analyze only a selected time range.

prepare_video_context

Analyze once and save a reusable local context for follow-up questions and evidence lookup.

ask_video_context

Answer from saved context by default; Gemini reanalysis is explicit opt-in.

list_video_contexts

List saved local contexts.

delete_video_context

Delete one saved context.

get_video_frame

Extract a local still frame, using the YouTube fast path when possible.

get_video_clip

Extract a short local clip, with a 30s cap and YouTube fast path when possible.

get_video_evidence_asset

Select saved evidence and return a frame or clip reference.

list_video_sources

Inspect local source/context/asset cache metadata.

cleanup_video_cache

Dry-run or clean managed cache files; dry-run is the default.

watch_and_analyze

Extract tutorial steps, shell commands, code snippets, and file paths from technical videos.

execute_tutorial_steps

Validate and review extracted steps safely; executes only with confirmation.

check_analysis_job

Poll background job status for TikTok/Instagram async downloads.

Supported Platforms

Platform

Method

Speed

YouTube

Direct Gemini analysis — no download needed for analysis. Frame/clip extraction uses yt-dlp -g stream URLs + ffmpeg when available, with a small section-download fallback.

Instant / fast local extraction

TikTok

tikwm.com API (fast) → yt-dlp fallback with a safe MP4 H.264/H.265 selector that avoids unsupported ByteDance bvc2/bytevc2 streams when possible

~8s

Instagram

Page scrape via curl_cffi (fast) → yt-dlp fallback

~10s

Photo / Slideshow Posts

Platform

Post type

Handling

TikTok

Photo Mode slideshow

Downloads all images, extracts the music/audio track when available, and sends one multimodal Gemini request.

Instagram

Carousel / single-photo posts

Downloads image slides in order and analyzes them as one post; mixed video slides are skipped with metadata.

YouTube

Community /post/ image attachments

Scrapes ytInitialData, downloads image attachments, and analyzes them through Gemini Files API.

YouTube videos are analyzed directly through Gemini's native video understanding — zero download, zero upload, maximum speed. For YouTube evidence assets, source.mp4 is not always required: saved contexts keep the original URL, so frame/clip tools can use the local stream fast path later.


Related MCP server: Link Scan MCP Server

Architecture

Component

Role

Gemini 3.5 Flash

Latest Gemini Flash model — full audio + visual understanding in a single pass

FastMCP 3.x

MCP protocol framework over stdio transport

yt-dlp + curl_cffi

Video download with Chrome browser impersonation to bypass anti-bot. TikTok downloads prefer locally decodable MP4 H.264/H.265 formats and reject ByteDance bvc2/bytevc2 streams.

tikwm.com API

TikTok fast-path fallback when yt-dlp is WAF-blocked

ffmpeg

Local frame/clip extraction, including YouTube stream URL extraction without full-video downloads

Background Jobs

Async threading for TikTok/Instagram to prevent Claude Desktop timeouts. Failed inner results are reported as failed jobs, not completed jobs.

Operating Modes

These are behavior modes, not tool names:

Mode

Behavior

auto

Default adaptive behavior: YouTube direct analysis; TikTok/Instagram fast API/scrape then yt-dlp fallback; saved contexts reused when available.

api

Gemini-backed analysis or reanalysis. This is used by analysis tools and explicit Gemini opt-ins.

client

MCP client workflow mode: long TikTok/Instagram analysis returns a background job_id for polling.

local

Saved-context, cache, frame, and clip operations that avoid Gemini unless explicitly requested.


Quick Start

The packaged runtime lives at src/video_url_analyzer_mcp/server.py; the console entry point is video_url_analyzer_mcp:main. Pick whichever install path matches your workflow.

irm https://raw.githubusercontent.com/u2n4/video-url-analyzer-mcp/main/install.ps1 | iex

The installer follows the current MCP client pattern: it installs/runs from PyPI with uvx, uses an existing GEMINI_API_KEY environment variable when one is already set, otherwise asks for the key only through a hidden prompt, and lets the user choose where to register the server:

  • Claude Code

  • Claude Desktop

  • Codex CLI

  • Cursor

  • Windsurf

  • VS Code / GitHub Copilot

  • Google Antigravity

  • Cline

Do not append your API key to the PowerShell command. If you skip the key, the installer still registers the server and you can set GEMINI_API_KEY later. If GEMINI_API_KEY is already set in your User environment, the installer will use it directly and print only a masked form like AIza...abcd.

Option B — uvx (no install)

uvx video-url-analyzer-mcp

Works on Windows / macOS / Linux as long as uv is on PATH.

Option C — Windows wizard from a checkout

git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
powershell -ExecutionPolicy Bypass -File scripts\install_windows.ps1

The wizard:

  • Verifies Python 3.10+ and (optionally) uv.

  • Installs the package as an editable checkout or via uv tool install.

  • Lets you save GEMINI_API_KEY to a User environment variable or to a gitignored .env.keys.local. Keys are masked in logs (AIza...abcd), never printed in full.

  • Lets you pick a default model via VIDEO_ANALYZER_MODEL.

  • Runs an offline import smoke test.

  • Hands off to scripts/configure_mcp_clients.ps1 for client setup.

Option D — Manual install (any OS)

git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
pip install -e .
python -m video_url_analyzer_mcp

Get a free key at Google AI Studio, then set it once in your shell environment (setx GEMINI_API_KEY ... on Windows, or your ~/.zshrc / ~/.bashrc on macOS/Linux). For local dev only, you can also drop it in a gitignored .env.keys.local next to the repo.

Windows launcher

start.bat loads .env.keys.local (if present), sets safe defaults (VIDEO_ANALYZER_MODE=auto), and runs python -m video_url_analyzer_mcp. Use it as a command value in any MCP client that prefers a single executable.


Integration

Run scripts/configure_mcp_clients.ps1 for an interactive menu, or copy the snippets below from docs/mcp-config-examples.md. The wizard backs up existing client config, validates JSON/TOML, and never overwrites unrelated MCP servers.

Client configs use video-analyzer as the local MCP server entry name. The published package remains video-url-analyzer-mcp, and the registry name remains io.github.u2n4/video-url-analyzer-mcp.

Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json)

{
  "mcpServers": {
    "video-analyzer": {
      "command": "uvx",
      "args": ["video-url-analyzer-mcp"]
    }
  }
}

The wizard prefers leaving the API key in your OS environment. If you must embed it, add "env": { "GEMINI_API_KEY": "YOUR_KEY_HERE" }.

Claude Code (CLI)

claude mcp add video-analyzer --transport stdio -- uvx video-url-analyzer-mcp

Or, after pip install -e . in the repo:

claude mcp add video-analyzer --transport stdio -- python -m video_url_analyzer_mcp

Codex CLI (~/.codex/config.toml)

[mcp_servers.video-analyzer]
command = "uvx"
args = ["video-url-analyzer-mcp"]

VS Code / GitHub Copilot MCP

Workspace registration writes .vscode/mcp.json:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "video-url-analyzer-gemini-api-key",
      "description": "Gemini API key for video-url-analyzer-mcp",
      "password": true
    }
  ],
  "servers": {
    "video-analyzer": {
      "type": "stdio",
      "command": "uvx",
      "args": ["video-url-analyzer-mcp"],
      "env": {
        "GEMINI_API_KEY": "${input:video-url-analyzer-gemini-api-key}"
      }
    }
  }
}

For all clients, restart the application after editing config so the new MCP server is picked up. Full snippets — including Cursor, Windsurf, Antigravity (%USERPROFILE%\.gemini\antigravity\mcp_config.json), and Cline — live in docs/mcp-config-examples.md.


Usage Examples

# Full video analysis with Gemini 3.5 Flash
analyze_video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")

# Custom analysis prompt
analyze_video("https://www.tiktok.com/@user/video/123",
              prompt="List every product shown and estimate prices")

# Multilingual transcript extraction
get_transcript("https://www.instagram.com/reel/ABC123/", lang="ar")

# Ask specific questions about video content
ask_about_video("https://youtu.be/abc",
                question="What programming language is used in the tutorial?")

# Analyze once, then ask locally from the saved context
prepare_video_context("https://youtu.be/abc", detail="standard")
ask_video_context("https://youtu.be/abc",
                  question="What happens near the end?")

# Extract visual evidence without embedding binary data in the tool output
get_video_frame("https://youtu.be/abc", timestamp="00:30")
get_video_clip("https://youtu.be/abc", start="00:20", end="00:28")

# Watch & build — extract tutorial steps
watch_and_analyze("https://www.youtube.com/watch?v=tutorial123")

Security

This server has been hardened against a comprehensive threat model audit:

Layer

Protection

SSRF

URL allowlist — only YouTube, TikTok, Instagram domains accepted. Private IPs, localhost, file:// blocked.

Command Injection

shell=False + shlex.split(). Dangerous command blocklist (rm -rf, reverse shells, eval, pipe-to-shell).

Path Traversal

25+ sensitive path patterns blocked (.ssh, .aws, .env, system dirs, AppData).

TLS

Full certificate validation on all downloads.

Browser Cookies

Opt-in only via VIDEO_ANALYZER_COOKIES=true. Disabled by default.

Download Size

Hard limit of 100 MB per video.

DoS Protection

Max 10 concurrent background jobs. Auto-expiry after 1 hour. Storage cap of 200 analyses.

Schema Validation

Gemini JSON responses validated before execution. Response size capped at 500K chars.

Dependencies

Runtime dependency bounds are maintained in pyproject.toml.


Environment Variables

Variable

Description

Default

GEMINI_API_KEY

Google Gemini API key

Required

ANALYSES_DIR

Directory for saved analyses

./analyses

VIDEO_CONTEXT_DIR

Directory for saved reusable video contexts

video_contexts

VIDEO_SOURCE_DIR

Directory for cached downloaded source media

video_sources

VIDEO_ASSET_DIR

Directory for extracted frames/clips

video_assets

VIDEO_ANALYZER_COOKIES

Enable browser cookie access (true/false)

false

VIDEO_DOWNLOAD_TIMEOUT

Override download and yt-dlp timeout values, in seconds

Existing per-operation defaults

VIDEO_FFMPEG_TIMEOUT

Override ffmpeg extraction timeout values, in seconds

Existing per-operation defaults

VIDEO_GEMINI_TIMEOUT

Optional Gemini HTTP timeout, in seconds

SDK default

VIDEO_IMAGE_DOWNLOAD_CONCURRENCY

Parallel image downloads for TikTok/Instagram/YouTube photo posts

6

VIDEO_GEMINI_UPLOAD_CONCURRENCY

Parallel Gemini Files uploads for downloaded media and slideshow images

4

VIDEO_ANALYZER_MODEL

Single-knob default model id used for both fast and deep model resolution. Per-call model= and GEMINI_FAST_MODEL / GEMINI_DEEP_MODEL still take precedence.

unset

GEMINI_FAST_MODEL

Override for compact/standard detail mode

gemini-3.5-flash

GEMINI_DEEP_MODEL

Override for full detail mode

gemini-3.1-pro-preview

Default fast model: gemini-3.5-flash. Default deep model (used when detail="full"): gemini-3.1-pro-preview. Set VIDEO_ANALYZER_MODEL to override both at once. Model availability can vary by Google account, region, and API tier — fall back to gemini-flash-latest if the latest ids are not yet enabled for your key. | VIDEO_ANALYZER_MODE | Behavior preset (auto / api / client / local); read by start.bat | auto |


Troubleshooting

Issue

Solution

GEMINI_API_KEY not set

Create .env file or pass via environment variable

TikTok download fails

tikwm.com fallback activates automatically. Ensure curl_cffi is installed.

TikTok bvc2 / bytevc2 codec

v1.4 avoids these unsupported ByteDance streams when a compatible MP4 H.264/H.265 format exists. If no compatible stream is available, tools return a structured unsupported_codec or no_compatible_format error instead of uploading or pretending success.

Instagram download fails

pip install curl_cffi for browser impersonation support

ENOENT on Windows

Use start.bat as command in Claude Desktop config

Impersonate target not available

Reinstall: pip install "yt-dlp[curl-cffi]"

Claude Desktop timeout

TikTok/Instagram run in background — use check_analysis_job(job_id) to poll

Background job says failed

Expected when the worker result is an error, Gemini file processing fails, or media validation rejects the source. check_analysis_job no longer reports these inner failures as completed.

prepare_video_context repeats work

It reuses cached contexts unless force_refresh=true

YouTube source.mp4 missing

Expected in some cases. Frame/clip tools can recover from the saved URL and use yt-dlp -g + ffmpeg fast extraction.

Transient Gemini 503/5xx

Gemini generate_content calls retry up to 3 times with exponential backoff. 4xx auth/schema/user errors are not retried.


Tech Stack

Technology

Version

Purpose

Google Gemini 3.5 Flash

Latest

Multimodal video analysis engine

FastMCP

3.3.1+

MCP protocol framework

yt-dlp

2026.3.17+

Video downloader

curl_cffi

>=0.7.4,<0.15.0

Browser impersonation (TLS fingerprint), pinned for yt-dlp 2026.03.17 compatibility

google-genai

2.5.0+

Official Google GenAI SDK


License

MIT


العربية

خادم تحليل الفيديو بالذكاء الاصطناعي

خادم MCP لتحليل الفيديو باستخدام Google Gemini 3.5 Flash — احدث نموذج Gemini Flash متعدد الوسائط من جوجل.

المميزات

الاداة

الوصف

analyze_video

تحليل شامل للصوت والصورة مع دعم الاوامر المخصصة

get_transcript

استخراج النص المنطوق مع الطوابع الزمنية — يدعم +100 لغة

ask_about_video

اسال اي سؤال عن محتوى الفيديو

prepare_video_context

تحليل الفيديو مرة واحدة وحفظ سياق محلي قابل لاعادة الاستخدام

ask_video_context

الاجابة من السياق المحفوظ بدون Gemini افتراضيا

get_video_frame / get_video_clip

استخراج صورة او مقطع كدليل محلي، مع مسار سريع ليوتيوب عبر yt-dlp + ffmpeg

watch_and_analyze

استخراج خطوات الشروحات التقنية والاوامر والاكواد

execute_tutorial_steps

مراجعة وتنفيذ الخطوات المستخرجة بامان

المنصات المدعومة

المنصة

السرعة

يوتيوب

فوري — تحليل مباشر بدون تحميل

تيك توك

~8 ثواني — واجهة tikwm.com السريعة

انستقرام

~10 ثواني — استخراج مباشر من الصفحة

التثبيت السريع (ويندوز)

استنسخ الريبو ثم شغل المعالج التفاعلي:

git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
powershell -ExecutionPolicy Bypass -File scripts\install_windows.ps1

البديل بدون تثبيت: uvx video-url-analyzer-mcp.

الامان

الخادم محمي ضد:

  • SSRF — قائمة بيضاء للنطاقات المسموحة فقط

  • حقن الاوامر — حظر الاوامر الخطيرة + تنفيذ بدون shell

  • اختراق المسارات — حظر 25+ مسار حساس

  • حماية من الحمل الزائد — حد اقصى 10 مهام متزامنة

الحصول على مفتاح API

  1. اذهب الى Google AI Studio

  2. انشئ مفتاح API مجاني

  3. ضعه في ملف .env:

GEMINI_API_KEY=مفتاحك_هنا

Available Tools

18 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe video URL (YouTube, TikTok, Instagram, or other).
modelNoGemini model to use. Defaults to gemini-3.5-flash.gemini-3.5-flash
promptNoCustom analysis prompt. Defaults to comprehensive analysis.Analyze this video comprehensively. Include: 1. **Overview**: What is the video about? Main topic and purpose. 2. **Visual Content**: Describe what is shown visually — scenes, people, text on screen, graphics, transitions. 3. **Audio Content**: What is said (speech), background music, sound effects. 4. **Key Points**: Main messages, arguments, or information conveyed. 5. **Transcript Summary**: Summarize the spoken content with approximate timestamps. 6. **Mood & Tone**: Overall mood, style, and tone of the video. 7. **Technical Quality**: Video quality, editing, production value. 8. **Target Audience**: Who is this video aimed at? Provide a thorough, detailed analysis.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses synchronous vs. async behavior per platform, the use of Gemini AI, and that a job_id is returned for async cases. It does not cover rate limits or auth, but for a non-destructive tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and well-structured, with clear separation of platform behavior. Every sentence adds value, and the async polling note is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and the presence of an output schema, the description covers purpose, usage, and async behavior. It misses potential rate limits or authentication constraints, but provides enough context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds value beyond the schema. It provides the full default prompt which gives agents a clear understanding of analysis depth, and explains the model parameter default. This adds meaningful context beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes videos and photo/slideshow posts from YouTube, TikTok, and Instagram. It distinguishes itself from sibling tools like analyze_video_segment and ask_about_video by focusing on comprehensive audio+visual analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use this tool (for full analysis) and when to use alternatives (e.g., check_analysis_job for polling async results). It also notes platform-specific behavior (YouTube synchronous, TikTok/Instagram async).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
urlYes
modelNo
startYes
detailNocompact
promptNoAnalyze this segment in detail.
return_full_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It reveals it uses Gemini clipping and reasoning, but omits critical traits like read-only status, rate limits, or side effects. This is insufficient for a complex analysis tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences, beginning with a clear purpose statement. However, it includes some redundancy (e.g., 'Gemini performs video/audio/visual reasoning' is implied by 'analyze'), slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, required start/end/url, output schema exists), the description is far too minimal. It lacks details on parameter formats, output behavior, and prerequisites, leaving significant gaps for effective agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate. It only explains the 'detail' parameter's role in controlling model and tokens, leaving six parameters (url, start, end, model, prompt, return_full_text) without any semantic addition. This poorly supports an agent's understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes a selected video segment, using a specific verb and resource. It distinguishes itself from siblings like 'analyze_video' by focusing on segments, providing specific purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for video segments rather than full videos, offering clear context. However, it does not explicitly state when not to use it or list alternative tools, missing some guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe video URL (YouTube, TikTok, Instagram, or other).
modelNoGemini model to use. Defaults to gemini-3.5-flash.gemini-3.5-flash
questionYesYour question about the video.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description only partially covers behavior: it mentions async polling for TikTok/Instagram but does not disclose error handling, rate limits, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, no fluff, and the core action is stated first. Every sentence provides useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main workflow and platform differences. An output schema exists, so return values don't need elaboration. Missing authentication hints but adequate for a focused tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so the baseline is 3. The description adds context for the 'url' parameter (platform restrictions) but adds no value for 'model' or 'question' beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool asks questions about videos/photo posts and lists specific platforms, differentiating it from siblings like 'analyze_video' or 'get_transcript'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies which platforms are supported and gives platform-specific behavior (immediate vs. job-based results), referencing 'check_analysis_job'. It lacks explicit when-not-to-use guidance but is clear enough for common scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ask_video_contextC

Answer a question from saved video context without Gemini by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNocompact
questionYes
use_geminiNo
video_id_or_urlYes
reanalyze_if_neededNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It mentions 'without Gemini by default' but does not explain the behavioral implications of parameters like use_gemini, reanalyze_if_needed, or what 'saved video context' means. No disclosure of prerequisites or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just one sentence, which is too brief to be useful. While concise, it sacrifices clarity and fails to front-load enough information for effective tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description is incomplete for a tool with 5 parameters. It does not cover parameter semantics, usage context, or behavioral traits, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions 'video context' and 'without Gemini', but provides no explanation for parameters: detail, reanalyze_if_needed, video_id_or_url format, or the question parameter. The enum values for detail are not described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it answers a question from saved video context. However, it does not differentiate from sibling tools like ask_about_video, which may have a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as ask_about_video or others. The description implies usage for saved video context without Gemini, but lacks explicit when-to-use or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job ID returned by the analysis tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses polling behavior and expected status values, which is critical for correct invocation. No annotations exist, so description carries full burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action, no fluff. Every sentence is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple polling tool with output schema present, description explains statuses and polling, making it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for job_id. Description adds context by stating it comes from specific tools, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks the status of a background video analysis job, and explicitly lists sibling tools that return job_ids, making the resource and action unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (when those tools return a job_id) and how to poll until completed or failed. No alternatives mentioned, but context suffices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cleanup_video_cacheC

Inspect or clean managed video cache files. Safe dry-run by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNosources
dry_runNo
video_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only mentions the default dry-run behavior, but lacks disclosure of destruction effects, permission requirements, or reversibility when dry_run is false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence), which is efficient but sacrifices necessary detail. It is not tautological, but could be better structured to include parameter and behavioral info.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, 0% schema description coverage, and an output schema, the description is severely incomplete. It omits return values, parameter roles, and the tool's overall effect, leaving critical gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description adds no parameter explanations. Terms like 'scope' and 'video_id' remain undefined, leaving the agent without guidance beyond the schema's basic types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects or cleans managed video cache files, with a note about safe dry-run. The verb-resource pair is explicit, though it doesn't elaborate on what 'managed video cache files' are.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use inspect vs. clean, or how this tool relates to siblings like delete_video_context. There are no explicit when-to-use or alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_video_contextC

Delete one saved local video context file.

ParametersJSON Schema
NameRequiredDescriptionDefault
video_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only says 'delete' with no disclosure of consequences, permissions, or side effects. For a destructive operation, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks structure to convey additional context. Every word is necessary, but more information would improve usability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and sibling tools, the description does not explain what a video context file is or how deletion behaves. The output schema exists but the description remains minimal for the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not explain the parameter 'video_id_or_url' at all. It adds no meaning beyond the schema field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and resource (saved local video context file). It distinguishes from sibling tools like list_video_contexts or prepare_video_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as whether to delete context after analysis or to free up storage. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoIf false (default), shows a review summary. If true, executes the steps.
steps_jsonYesThe JSON output from watch_and_analyze (copy the full analysis field).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the default non-destructive behavior (review only) and the need for explicit confirmation to execute. Given no annotations, this provides good safety context, though it doesn't detail permissions or rollback.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with a safety note. Front-loaded purpose, then behavior. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, parameters, and safety. Output schema likely explains return, so not needed. However, lacks details on the execution outcome or integration steps with watch_and_analyze.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by explaining steps_json as the full analysis field from watch_and_analyze and confirming the safety role of confirm. Exceeds baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool reviews or executes tutorial steps from watch_and_analyze. Distinguishes from siblings by referencing its prerequisite tool and describing its dual mode (review/execute).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use confirm=false (review) vs confirm=true (execute after review). Provides a clear safety guideline, making it easy for the agent to decide usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
modelNo
queryYes
detailNocompact
max_resultsNo
context_secondsNo
return_full_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that Gemini performs video/audio/visual reasoning and that 'detail' configures the model. However, it doesn't mention rate limits, required permissions, or potential side effects like caching. The statement about returning 'concise structured JSON' adds some transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief (3 short lines) and front-loaded with the core purpose. However, the third line about 'compact' feels tacked on. It is efficient but could be better integrated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (not shown), the description only vaguely mentions returning 'structured JSON'. For a tool with 7 parameters and 17 siblings, more contextual clues about input constraints or output structure would improve completeness. The mention of Gemini's role is helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. It partially explains 'detail' (controls model + tokens + config) and mentions 'compact' default, but ignores parameters like 'url', 'query', 'max_results', 'context_seconds', and 'return_full_text'. Only 1 out of 7 parameters gets meaningful semantic addition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds moments in a video matching a semantic query, using a specific verb-resource pair. This distinguishes it from video analysis or context tools like 'analyze_video' or 'ask_about_video'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that Gemini does the reasoning and that 'detail' controls model configuration, but it provides no explicit guidance on when to use this tool versus its many siblings (e.g., 'analyze_video', 'ask_about_video'). No alternatives or when-not-to-use advice is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe video URL (YouTube, TikTok, Instagram, or other).
langNoLanguage hint (e.g., 'en', 'ar', 'auto'). Defaults to auto-detect.auto
modelNoGemini model to use. Defaults to gemini-3.5-flash.gemini-3.5-flash

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It does so by explaining the synchronous vs. asynchronous behavior, the need to poll for certain platforms, and a special response case for slideshows without audio. This is good transparency, though could mention error scenarios or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three sentences, each adding distinct value: main purpose, platform-specific behaviors, and special case. It is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, output schema present, sibling tools), the description covers key contextual aspects: async handling, special response types, and platform differences. It is complete enough for correct invocation, though could include note about authentication or rate limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal parameter meaning beyond the schema: it doesn't elaborate on url format, language hint specifics, or model selection. The param info is already sufficient from schema, but description doesn't enhance it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: extracting speech transcript from video/audio. It specifies the verb 'Extract' and resource 'speech transcript', and distinguishes from sibling tools by detailing platform-specific behaviors (YouTube immediate, TikTok/Instagram async, slideshows special response).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage guidance by explaining the immediate vs. polling pattern based on platform, and references check_analysis_job for async results. It lacks explicit 'when not to use' or full alternative tools, but the context is clear enough for proper selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_video_clipC

Extract a local video clip under 30 seconds and return metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes
reasonNo
force_refreshNo
output_formatNomp4
video_id_or_urlYes
max_duration_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states extraction and metadata return, omitting side effects, authorization needs, error conditions, or whether the operation is read-only. Minimal transparency beyond basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise. However, it sacrifices essential detail for brevity. It is not optimally front-loaded with critical information like parameter format or usage constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters (3 required) and no schema descriptions, the description is incomplete. It does not describe the output metadata, the required input formats, or how the tool differs from many sibling tools. The output schema exists but the description adds no contextual detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description fails to explain key parameters like start, end, output_format, or force_refresh. Only implicit reference to 'under 30 seconds' hints at max_duration_seconds. No parameter meaning is clarified for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Extract' and identifies the resource 'local video clip', distinguishing it from sibling tools like get_video_frame or analyze_video. However, the term 'local' may be misleading as the input parameter accepts URLs, causing slight ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives such as get_video_frame or analyze_video. It lacks explicit when/when-not context or differentiation from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_video_evidence_assetC

Find saved visual evidence and return a local frame/clip reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestYes
asset_typeNoframe
preferred_endNo
preferred_startNo
video_id_or_urlYes
preferred_timestampNo
max_duration_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden. It only states the tool 'finds saved visual evidence and returns a local frame/clip reference', but does not disclose behaviors like what happens if no evidence is found, whether it modifies state, or if it requires prior saving. The return type is vague ('local reference'). This under-disclosure is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the tool's purpose. It contains no extraneous information and is efficiently front-loaded. Every word contributes to understanding the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, 2 required, no schema descriptions or annotations, and an output schema not referenced), the description is incomplete. It does not explain the 'request' parameter, the difference between frame and clip asset types, or the meaning of preferred timestamps. The output is only briefly mentioned as a 'local frame/clip reference'. The description fails to adequately prepare the agent for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 7 parameters with 0% description coverage, so the description must add meaning. The description does not explain any parameter's purpose or format. While parameter names (e.g., video_id_or_url, request) are somewhat intuitive, the description fails to clarify how they relate to the tool's action or what values are expected. This leaves the agent guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it finds saved visual evidence and returns a local frame/clip reference. The verb 'find' and resource 'saved visual evidence' make the purpose specific. However, it does not explicitly differentiate from sibling tools like get_video_clip or get_video_frame, which might also retrieve media assets, but the 'evidence' qualifier provides some distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_video_clip, get_video_frame, or find_video_moments. It does not mention prerequisites, conditions, or exclusions, leaving the agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_video_frameC

Extract a local still frame and return compact asset metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
timestampYes
force_refreshNo
output_formatNojpg
video_id_or_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies a non-destructive read operation, but with no annotations, it carries the full burden. It doesn't mention side effects, permissions, or what 'compact asset metadata' includes. Minimal transparency, but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, but it is under-specified. It fails to provide necessary details about parameters or usage, making it adequate but not excellent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (not shown), the description lacks parameter explanations, behavioral context, and output semantics. For a tool with 5 parameters and no schema coverage, this is severely incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no details about any parameters. The agent must guess the meaning of video_id_or_url, timestamp, reason, force_refresh, and output_format from their names and types alone, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Extract a local still frame and return compact asset metadata' clearly states the action (extract a still frame) and the output (metadata). It distinguishes from siblings like get_video_clip (extracts a clip, not a frame) and get_video_evidence_asset (likely returns evidence assets).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No prerequisites or context for the required parameters (video_id_or_url, timestamp) are given, leaving the agent to infer usage from the name and parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_video_contextsC

List saved local video context files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filter_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey behavioral traits. It only states that the tool lists files, omitting details like read-only nature, authentication requirements, or whether it returns all contexts or paginated results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded and contains no extraneous information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the presence of an output schema, the description is too minimal. It fails to mention that results can be filtered or paginated, leaving the agent without key operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the tool description does not explain the parameters (limit, filter_text). This offers no added meaning beyond the schema structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (saved local video context files), making it easy to distinguish from sibling tools like delete_video_context or prepare_video_context. However, it does not mention the optional filtering and pagination capabilities hinted at by the input schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as ask_video_context or check_analysis_job. The description lacks any context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_video_sourcesC

List cached video sources, contexts, and assets. Never calls Gemini.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
filter_textNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits. It only states 'Never calls Gemini', which is useful but insufficient. No mention of read-only nature, caching behavior, or performance implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two short sentences with no fluff. It front-loads the purpose and a key behavioral note. However, it sacrifices valuable detail that could be added without significant bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters, an output schema, and many siblings, the description is incomplete. It does not explain what constitutes a 'cached video source', how the filter works, or how the output relates to sibling tools like 'analyze_video' or 'get_video_frame'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no details about the two parameters ('limit', 'filter_text'). Their names and defaults are self-explanatory, but the agent lacks format, meaning, or usage hints beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists 'cached video sources, contexts, and assets', specifying the verb 'list' and resource type. It distinguishes from siblings like 'list_video_contexts' by mentioning cache and contexts/assets, but overlap remains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives such as 'list_video_contexts' or 'get_video_evidence_asset'. The description does not indicate how it complements or differs from other list operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesTikTok Photo Mode, Instagram photo/carousel, or YouTube community URL.
include_audioNoIf true and a slideshow audio track exists, include it as an MCP audio block. Defaults to false to keep responses lighter.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses key behaviors: no Gemini call, downloads images, returns ordered MCP image blocks with image_index labels, and optionally returns audio. It omits error handling or URL validation details, but adequately describes core behavior for a fetch-and-return tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs with no wasted sentences. The first sentence front-loads the primary purpose. Every sentence adds value: sourcing, behavior, usage guidance, and optional audio mention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return format beyond 'ordered MCP image blocks with image_index label.' It covers all critical aspects: purpose, sources, client-side usage, and audio option. Minor gaps like size limits or error behavior do not significantly impair completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have 100% schema description coverage. The tool description repeats the source types from the schema for 'url' and adds context about returning ordered images, but adds minimal new meaning beyond the schema. The audio parameter's behavior is already well-described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns slideshow images as ordered MCP image blocks, specifying exact sources (TikTok Photo Mode, Instagram photo/carousel, YouTube community post). It distinguishes itself from sibling video analysis tools by focusing on client-side image inspection and explicitly noting it does not call Gemini.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Use it when you want Claude/the client AI to inspect the images itself instead of receiving a Gemini-generated analysis.' It does not list when not to use or mention alternatives, but the guidance is clear and actionable given the sibling tools are video-focused.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

prepare_video_contextC

Analyze a whole video once and save a local structured context.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
modelNo
detailNostandard
chunk_secondsNo
force_refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states it analyzes and saves, but does not mention side effects (e.g., cache creation, disk usage), required permissions, or whether it is a read-only or destructive operation. This is insufficient for an agent to anticipate consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks structure. It does not front-load critical information or use scannable elements. While not verbose, it omits details that could be organized into a clear, brief format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, no annotations, and many siblings, a one-sentence description is severely incomplete. It does not explain input parameter roles, output structure (despite output schema existing), or operational constraints. The agent cannot reliably select or invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description provides no explanations for any of the five parameters (url, model, detail, chunk_seconds, force_refresh). The agent must guess their semantics from names alone. This fails to add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: analyzing an entire video and saving a structured context. It differentiates from siblings like analyze_video_segment (segment-level) and watch_and_analyze (real-time) by specifying 'whole video once' and 'save'. This aligns with the verb+resource expectation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for one-time full analysis before querying contexts (e.g., ask_video_context), but it does not explicitly state when to use it over alternatives like analyze_video or when not to use it. The context is clear but lacks explicit exclusions or alternative names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesVideo URL (YouTube, TikTok, Instagram).
langNoLanguage hint (e.g., 'en', 'ar', 'auto'). Defaults to auto-detect.auto
modelNoGemini model to use. Defaults to gemini-3.5-flash.gemini-3.5-flash

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description explains download, AI analysis, JSON return, async behavior for TikTok/Instagram, and clarifies non-execution. Could elaborate on data retention or rate limits, but covers essential behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet comprehensive: first sentence states purpose, second paragraph explains behavior with platform differences, third clarifies non-execution. No redundant information, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers tool complexity: async polling, platform-specific behavior, reference to sibling tool for execution, and non-execution guarantee. Output schema exists to detail return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameters with descriptions. Description does not add meaningful extra information beyond what schema provides (language hint defaults, model selection). Baseline score retained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes specific verb 'Watch' and 'extract' with resource 'video tutorial' and what is extracted (commands, code, steps). Distinguishes from siblings like 'analyze_video' by focusing on tutorial steps extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (for analysis only) and when not (use execute_tutorial_steps for execution). Also differentiates behavior across platforms (YouTube vs TikTok/Instagram) and directs to check_analysis_job for polling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updatesv1.2.0
    • Changedanalyze_video2 fields changed
      • changedInput schema / properties / model / default
        Previous value: -"gemini-flash-latest"New value: +"gemini-3.5-flash"
      • changedInput schema / properties / model / description
        Previous value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
    • Addedanalyze_video_segment
    • Changedask_about_video2 fields changed
      • changedInput schema / properties / model / default
        Previous value: -"gemini-flash-latest"New value: +"gemini-3.5-flash"
      • changedInput schema / properties / model / description
        Previous value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
    • Addedask_video_context
    • Addedcleanup_video_cache
    • Addeddelete_video_context
    • Addedfind_video_moments
    • Changedget_transcript2 fields changed
      • changedInput schema / properties / model / default
        Previous value: -"gemini-flash-latest"New value: +"gemini-3.5-flash"
      • changedInput schema / properties / model / description
        Previous value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
    • Addedget_video_clip
    • Addedget_video_evidence_asset
    • Addedget_video_frame
    • Addedlist_video_contexts
    • Addedlist_video_sources
    • Addedprepare_slideshow_assets
    • Addedprepare_video_context
    • Changedwatch_and_analyze2 fields changed
      • changedInput schema / properties / model / default
        Previous value: -"gemini-flash-latest"New value: +"gemini-3.5-flash"
      • changedInput schema / properties / model / description
        Previous value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
  2. 6 tool updatesv1.1.0
    • First observedanalyze_video
    • First observedask_about_video
    • First observedcheck_analysis_job
    • First observedexecute_tutorial_steps
    • First observedget_transcript
    • First observedwatch_and_analyze

TDQS

B3.1/5.0

Scored across 18 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count3/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers