video-url-analyzer-mcp
これは何ですか?
Video URL Analyzer MCPは、Claude(またはMCP互換のAI)がYouTube、TikTok、Instagramの動画をURLを貼り付けるだけで分析できるようにするModel Context Protocol (MCP) サーバーです。GoogleのGemini APIを活用し、音声と映像の両方を分析することで、文字起こしの抽出、AIによるインサイトの提供、さらには実行可能なチュートリアル手順の抽出まで行います。
Related MCP server: YouTube Video Summarizer MCP Server
機能
YouTube分析 — Gemini APIによる直接分析(ダウンロード不要)
TikTok & Instagram —
yt-dlpによるダウンロードとGemini Files APIを使用した非同期ジョブパターン音声・映像のフル分析 — 動画フレームと音声・発話の両方を分析
6つのツール — 分析、文字起こし、Q&A、視聴・分析、チュートリアル実行、ジョブ確認
バイリンガル — アラビア語と英語のプロンプトおよび応答をサポート
非同期ジョブ — バックグラウンド処理によりClaude Desktopのタイムアウトによるクラッシュを防止
セキュリティ強化 — URL許可リスト、SSRF保護、コマンドインジェクション防止、パストラバーサルブロック
ゼロコンフィグインストール —
uvx video-url-analyzer-mcpを実行するだけですぐに使用可能
対応プラットフォーム
プラットフォーム | 手法 | 速度 |
YouTube | Geminiによる直接分析 — ダウンロード不要 | 即時 |
TikTok | tikwm.com API (高速) → yt-dlp フォールバック | ~8秒 |
curl_cffiによるページスクレイピング (高速) → yt-dlp フォールバック | ~10秒 |
YouTube動画はGeminiのネイティブな動画理解機能を通じて直接分析されるため、ダウンロードやアップロードがゼロで、最高速度で処理されます。
クイックスタート
オプション1: uvx (推奨)
uvが必要です。
Claude Desktop -- claude_desktop_config.jsonに追加:
{
"mcpServers": {
"video-analyzer": {
"command": "uvx",
"args": ["video-url-analyzer-mcp"],
"env": {
"GEMINI_API_KEY": "your_key"
}
}
}
}Claude Code:
claude mcp add video-analyzer -s user -e GEMINI_API_KEY=your_key -- uvx video-url-analyzer-mcpCursor / VS Code -- .cursor/mcp.json または .vscode/mcp.jsonに追加:
{
"servers": {
"video-analyzer": {
"command": "uvx",
"args": ["video-url-analyzer-mcp"],
"env": { "GEMINI_API_KEY": "your_key" }
}
}
}Windsurf -- ~/.codeium/windsurf/mcp_config.jsonに追加:
{
"mcpServers": {
"video-analyzer": {
"command": "uvx",
"args": ["video-url-analyzer-mcp"],
"env": { "GEMINI_API_KEY": "your_key" }
}
}
}オプション2: pip install
pip install video-url-analyzer-mcpオプション3: ソースからインストール
git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
pip install -e .ツール
ツール | 説明 |
| カスタムプロンプトを使用した音声・映像のフル分析。最先端のマルチモーダル理解のためにGeminiを使用します。 |
| 話者識別付きのタイムスタンプ付き文字起こしを抽出。自動検出により100以上の言語をサポート。 |
| 「何人登場していますか?」「0:45に表示されているブランドは何ですか?」「主な主張を要約して」など、動画に関するあらゆる質問に対応。 |
| 技術系動画からチュートリアル手順、シェルコマンド、コードスニペット、ファイルパスを抽出。 |
| 抽出された手順を安全に確認し、承認を得て実行。コマンドとパスの検証によるサンドボックス環境。 |
| TikTok/Instagramの非同期ダウンロードのバックグラウンドジョブステータスをポーリング。 |
仕組み
YouTube — 同期処理: URLがGemini APIに直接送信され、即座に分析されます(ダウンロードなし)。
TikTok & Instagram — 非同期処理: 動画がyt-dlp経由でダウンロードされ、Gemini Files APIにアップロードされて分析された後、クリーンアップされます。job_idが即座に返されるため、check_analysis_jobでポーリングします。
使用例
# Full video analysis
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?")
# Watch & build — extract tutorial steps
watch_and_analyze("https://www.youtube.com/watch?v=tutorial123")アーキテクチャ
コンポーネント | 役割 |
Gemini API | マルチモーダルモデル — 音声と映像を一度に理解 |
FastMCP 3.x | stdioトランスポート上のMCPプロトコルフレームワーク |
yt-dlp + curl_cffi | アンチボットを回避するためのブラウザなりすまし機能付き動画ダウンローダー |
tikwm.com API | yt-dlpがWAFでブロックされた際のTikTok用高速パスフォールバック |
バックグラウンドジョブ | Claude Desktopのタイムアウトを防ぐためのTikTok/Instagram用非同期スレッド |
video-url-analyzer-mcp/
├── pyproject.toml # Package metadata & dependencies
├── src/
│ └── video_url_analyzer_mcp/
│ ├── __init__.py # Package init + version
│ ├── __main__.py # python -m support
│ └── server.py # Main MCP server (all 6 tools)
├── .env.example # Environment variable template
├── llms.txt # AI-readable project summary
├── llms-install.md # AI-readable install guide
├── CONTRIBUTING.md
├── CHANGELOG.md
└── LICENSEプラットフォーム検出
URLは自動的に適切なパイプラインにルーティングされます:
YouTube:
youtube.com,youtu.be,youtube.com/shorts/TikTok:
tiktok.com,vm.tiktok.com,vt.tiktok.comInstagram:
instagram.com/reels/,instagram.com/reel/,instagram.com/p/
セキュリティ
このサーバーは包括的な脅威モデルに対して強化されています:
レイヤー | 保護内容 |
SSRF | URL許可リスト — YouTube、TikTok、Instagramドメインのみ許可。プライベートIP、localhost、 |
コマンドインジェクション |
|
パストラバーサル | 25以上の機密パスパターンをブロック( |
TLS | すべてのダウンロードで完全な証明書検証を実施。 |
ブラウザCookie |
|
ダウンロードサイズ | 動画あたり100MBのハード制限。 |
DoS保護 | 最大10個の同時バックグラウンドジョブ。1時間後に自動期限切れ。200分析のストレージ上限。 |
スキーマ検証 | GeminiのJSON応答を実行前に検証。応答サイズは500K文字に制限。 |
依存関係 | すべてのバージョンを |
設定
変数 | 説明 | デフォルト |
| Google Gemini APIキー (必須) | — |
| 分析結果を保存するディレクトリ |
|
| yt-dlpのブラウザCookieを有効化 |
|
技術スタック
技術 | 用途 |
Google Gemini API SDK | |
MCPプロトコルフレームワーク | |
動画ダウンローダー | |
ブラウザなりすまし (TLSフィンガープリント) | |
環境変数読み込み |
トラブルシューティング
問題 | 解決策 |
|
|
TikTokのダウンロード失敗 | tikwm.comフォールバックが自動的に有効になります。 |
Instagramのダウンロード失敗 | ブラウザなりすましサポートのため |
Windowsで | コマンドとして |
Claude Desktopのタイムアウト | TikTok/Instagramはバックグラウンドで実行されます — |
Pythonが見つからない | python.org からPython 3.10+をインストールしてください |
貢献
ガイドラインについては CONTRIBUTING.md を参照してください。
ライセンス
MIT — LICENSE を参照してください。
サポート
もしこれが役に立ったなら、ぜひこのリポジトリにスターを付けてください!
サウジアラビア東部州にて ❤️ を込めて作成。
العربية
خادم تحليل الفيديو بالذكاء الاصطناعي
خادم MCP لتحليل الفيديو باستخدام Google Gemini — احدث واقوى نموذج ذكاء اصطناعي متعدد الوسائط من جوجل.
المميزات
الاداة | الوصف |
| تحليل شامل للصوت والصورة مع دعم الاوامر المخصصة |
| استخراج النص المنطوق مع الطوابع الزمنية — يدعم +100 لغة |
| اسال اي سؤال عن محتوى الفيديو |
| استخراج خطوات الشروحات التقنية والاوامر والاكواد |
| مراجعة وتنفيذ الخطوات المستخرجة بامان |
المنصات المدعومة
المنصة | السرعة |
يوتيوب | فوري — تحليل مباشر بدون تحميل |
تيك توك | ~8 ثواني — واجهة tikwm.com السريعة |
انستاجرام | ~10 ثواني — استخراج مباشر من الصفحة |
التثبيت السريع
git clone https://github.com/u2n4/video-url-analyzer-mcp.git
cd video-url-analyzer-mcp
pip install -e .الامان
الخادم محمي ضد:
SSRF — قائمة بيضاء للنطاقات المسموحة فقط
حقن الاوامر — حظر الاوامر الخطيرة + تنفيذ بدون shell
اختراق المسارات — حظر 25+ مسار حساس
حماية من الحمل الزائد — حد اقصى 10 مهام متزامنة
الحصول على مفتاح API
اذهب الى Google AI Studio
انشئ مفتاح API مجاني
ضعه في ملف
.env
Available Tools
18 toolsanalyze_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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The video URL (YouTube, TikTok, Instagram, or other). | |
| model | No | Gemini model to use. Defaults to gemini-3.5-flash. | gemini-3.5-flash |
| prompt | No | Custom 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
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| url | Yes | ||
| model | No | ||
| start | Yes | ||
| detail | No | compact | |
| prompt | No | Analyze this segment in detail. | |
| return_full_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The video URL (YouTube, TikTok, Instagram, or other). | |
| model | No | Gemini model to use. Defaults to gemini-3.5-flash. | gemini-3.5-flash |
| question | Yes | Your question about the video. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | compact | |
| question | Yes | ||
| use_gemini | No | ||
| video_id_or_url | Yes | ||
| reanalyze_if_needed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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".
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job ID returned by the analysis tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | sources | |
| dry_run | No | ||
| video_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| video_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | If false (default), shows a review summary. If true, executes the steps. | |
| steps_json | Yes | The JSON output from watch_and_analyze (copy the full analysis field). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| model | No | ||
| query | Yes | ||
| detail | No | compact | |
| max_results | No | ||
| context_seconds | No | ||
| return_full_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The video URL (YouTube, TikTok, Instagram, or other). | |
| lang | No | Language hint (e.g., 'en', 'ar', 'auto'). Defaults to auto-detect. | auto |
| model | No | Gemini model to use. Defaults to gemini-3.5-flash. | gemini-3.5-flash |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| start | Yes | ||
| reason | No | ||
| force_refresh | No | ||
| output_format | No | mp4 | |
| video_id_or_url | Yes | ||
| max_duration_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | ||
| asset_type | No | frame | |
| preferred_end | No | ||
| preferred_start | No | ||
| video_id_or_url | Yes | ||
| preferred_timestamp | No | ||
| max_duration_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| timestamp | Yes | ||
| force_refresh | No | ||
| output_format | No | jpg | |
| video_id_or_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filter_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filter_text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | TikTok Photo Mode, Instagram photo/carousel, or YouTube community URL. | |
| include_audio | No | If true and a slideshow audio track exists, include it as an MCP audio block. Defaults to false to keep responses lighter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| model | No | ||
| detail | No | standard | |
| chunk_seconds | No | ||
| force_refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Video URL (YouTube, TikTok, Instagram). | |
| lang | No | Language hint (e.g., 'en', 'ar', 'auto'). Defaults to auto-detect. | auto |
| model | No | Gemini model to use. Defaults to gemini-3.5-flash. | gemini-3.5-flash |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
16 tool updates
v1.2.0- Changed
analyze_video2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"gemini-flash-latest"New value: +"gemini-3.5-flash" - changed
Input schema / properties / model / descriptionPrevious value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
- Added
analyze_video_segment - Changed
ask_about_video2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"gemini-flash-latest"New value: +"gemini-3.5-flash" - changed
Input schema / properties / model / descriptionPrevious value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
- Added
ask_video_context - Added
cleanup_video_cache - Added
delete_video_context - Added
find_video_moments - Changed
get_transcript2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"gemini-flash-latest"New value: +"gemini-3.5-flash" - changed
Input schema / properties / model / descriptionPrevious value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
- Added
get_video_clip - Added
get_video_evidence_asset - Added
get_video_frame - Added
list_video_contexts - Added
list_video_sources - Added
prepare_slideshow_assets - Added
prepare_video_context - Changed
watch_and_analyze2 fields changed- changed
Input schema / properties / model / defaultPrevious value: -"gemini-flash-latest"New value: +"gemini-3.5-flash" - changed
Input schema / properties / model / descriptionPrevious value: -"Gemini model to use. Defaults to gemini-2.5-flash."New value: +"Gemini model to use. Defaults to gemini-3.5-flash."
6 tool updates
v1.1.0- First observed
analyze_video - First observed
ask_about_video - First observed
check_analysis_job - First observed
execute_tutorial_steps - First observed
get_transcript - First observed
watch_and_analyze
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.
Maintenance
Related MCP Connectors
Any video URL to LLM-ready transcript. ASR built in, no captions needed. TikTok, X, TED and more.
Turn a TikTok/Instagram/YouTube link into text for your AI: metadata, transcript and image OCR.
Extract structured insights from videos, podcasts, articles, and PDFs with multi-model AI
Get transcripts from YouTube, TikTok, X, Instagram and more - even when captions are off.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAutomatically scans and summarizes video links (YouTube, Instagram Reels) and text links (blogs, articles) using AI-powered transcription and summarization. Provides concise 3-sentence summaries without requiring API keys.-
- AlicenseNot gradedqualityDmaintenanceExtracts captions, metadata, and descriptions from YouTube videos to enable AI assistants to summarize their content.8 npmMIT
- AlicenseNot gradedqualityDmaintenanceTransforms social media links (TikTok, Instagram, YouTube) and videos into text context with transcription, OCR, and metadata for AI agents like Claude and Cursor.MIT
- AlicenseNot gradedqualityDmaintenanceAnalyzes public YouTube videos with Google Gemini, enabling summarization, timestamped insights, metadata extraction, audio analysis, and long-video sessions with follow-up questions.28 npm5MIT