MCP server for analyzing, curating, and reframing YouTube videos into adaptive 9:16 short-form clips with scene detection, spatial composition analysis, and dynamic caption rendering
Server has 12 tools with schemas and descriptions, but quality is inconsistent. Descriptions are present but often generic or overly technical (Indonesian language, domain jargon). Parameter descriptions lack actionable constraints (ranges, formats, enums). No error handling guidance visible. Output schemas are not documented. Tools combine multiple concerns (e.g., curate_youtube_clips does analysis + segmentation + layout recommendation). No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions. Naming is generally acceptable but some tools are compound (e.g., 'fetch_and_trim_clip' combines download + extraction).
Menganalisis komposisi spasial dan visual hooks dalam cover image untuk menentukan efektivitas thumbnail.
Mendeteksi pergantian scene shot fisik (PySceneDetect ContentDetector) dan komposisi spasial wajah (MediaPipe) untuk menentukan rekomendasi layout 9:16 per sub-scene.
Menambahkan cover image sebagai poster/thumbnail ke dalam file video MP4.
Membakar subtitle/caption ke dalam video dengan styling dan positioning yang dapat dikustomisasi.
Menganalisis video YouTube publik langsung dari URL menggunakan Gemini Agentic Video Understanding untuk menemukan 3 hingga 5 kandidat segmen terbaik beserta pembagian sub-scene dan usulan layout 9:16.
Mengevaluasi ekspresi wajah dalam keyframe menggunakan MediaPipe untuk menentukan kualitas cover image.
Compound tool names violate single-responsibility principle. 'fetch_and_trim_clip' combines download + extraction; 'analyze_cover_spatial_and_hooks' combines spatial analysis + visual hook detection. Split into separate tools so agents can compose them independently.
Descriptions lack actionable constraints. Parameters like 'scene_threshold' (27 default), 'font_size' (24 default), 'split_screen_border_px' (4 default) have no documented ranges, units, or valid bounds. LLMs cannot infer whether 100 or 1000 is valid.
No output schemas documented. Tools return complex structures (scene_manifest, keyframe_paths, preset lists) but LLMs have no visibility into return field names, types, or structure. Downstream tool chaining is error-prone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Mengekstrak keyframe representatif dari setiap scene untuk digunakan dalam cover generation dan analisis visual.
Mengunduh segmen klip spesifik secara presisi via yt-dlp dan mengekstrak audio terpisah.
Menghasilkan cover image 9:16 dengan styling template (Hormozi Pop, MrBeast Impact, Cyberpunk Neon, Minimalist Pill) berdasarkan keyframe dan analisis visual.
Mendapatkan daftar preset styling caption yang tersedia.
Merender setiap sub-scene dengan filter layout FFmpeg yang sesuai, menyambungkannya dengan Concat Demuxer, dan me-mux audio asli.
Merender caption dinamis dengan animasi, styling, dan positioning yang dapat dikustomisasi berdasarkan preset.
No error handling guidance. Tools that call external APIs (Gemini, yt-dlp, FFmpeg) can fail, but no recovery hints provided. LLMs have no guidance on retryability, user-fixable errors, or fallback strategies.
No tool annotations despite clear read/write semantics. Tools marked as WRITE (fetch_and_trim_clip, render_adaptive_video, burn_captions_to_video, etc.) should declare destructiveHint=true. READ_ONLY tools should declare readOnlyHint=true. Agents need this metadata to plan safely.