YouTube research MCP server for AI-powered video analysis, metadata extraction, and rights-gated transcription.
TubeLens demonstrates solid tool design with clear verb-noun naming (youtube_*), comprehensive descriptions (avg 150-200 chars), and well-structured input schemas. All 10 tools have explicit descriptions and typed parameters with defaults. However, output schemas are not documented in the visible code, parameter descriptions lack constraint details (ranges, formats, enums), and error handling guidance is minimal. Tool composition is strong, each tool has a single responsibility and clear use cases documented in descriptions. No security issues detected (no secrets in params). Naming is consistent and action-oriented, though some tools (youtube_evaluate_fit, youtube_compare_videos) could benefit from clearer parameter constraints.
Analyzes a public YouTube video: generates an AI summary, key topics, notable quotes, and a topic index with timestamps. Fair use in-cloud ingestion.
Ephemeral deep video Q&A with timestamped citations. Ask questions about video content and receive answers with clickable timestamp links.
Cross-video consensus, disagreement matrix, and root cause analysis across 2-5 videos.
Personalized relevance scoring (0-100) and custom action items based on user profile and video content.
Extracts verifiable factual claims versus opinion from video content with verification guidance.
Extracts structured decisions, recommendations, tickers, tools, stance, conviction, risks, and alternatives from video content.
Output schemas not documented. Tools return structured data (ChannelResolutionResult, CatalogVideosPage, etc.) but LLMs cannot see the response field structure. This forces agents to guess what fields are available and risks incorrect downstream tool chaining.
Parameter constraints missing. Numeric parameters (page_size, max_candidates, max_duration_s) lack min/max bounds in descriptions. String parameters (sort, query) lack enum constraints or format specifications. LLMs may pass invalid values (e.g. page_size=10000, sort='random').
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Fetches batch detailed metadata for up to 50 YouTube video IDs in a single call. Use to retrieve view counts, durations, and descriptions for known video IDs.
Lists and filters videos from a creator's uploads catalog ('UU...'). Use to browse recent uploads, find Shorts (max_duration_s=180), or filter videos by topic. Requires a canonical channel ID ('UC...').
Enumerates video items directly from any public YouTube playlist ID ('PL...'). Use when the user provides a specific playlist ID or link. Do not use for channel uploads.
Resolves a YouTube handle, channel URL, channel ID ('UC...'), or creator name to a canonical YouTube channel. Use before listing a creator's videos when the channel ID is unknown. Do not use for searching individual videos by topic or keyword.
Error handling lacks recovery guidance. No visible error responses that tell LLMs what to do next (e.g., 'Channel not found. Try youtube_resolve_channel() with a creator name.'). Agents cannot self-correct on failures.
Tool annotations missing. No readOnlyHint, destructiveHint, or idempotentHint declarations visible. All tools are read-only (correct), but this should be explicitly declared via tool annotations for protocol compliance.
Parameter descriptions lack dependency hints. youtube_list_channel_videos requires a canonical channel_id (UC...), but the description does not guide users to call youtube_resolve_channel first if they only have a creator name. This forces agents to discover the dependency through trial and error.