MCP server that analyzes YouTube videos using Gemini API and converts them to Markdown format
Single tool with complete JSON Schema and basic descriptions. Tool name 'video_to_markdown' is verb-noun and clear. Input schema properly typed with enum constraint on 'lang' parameter. However, descriptions are minimal (tool: 28 chars, params: 15-40 chars), falling below the 50-200 char LLM-optimized baseline. No output schema documented. Error handling returns user-facing messages but lacks recovery guidance. Parameter descriptions lack format/constraint details (e.g., URL validation rules, digest behavior specifics). No tool annotations (destructiveHint, idempotentHint). Validation logic exists in code but not exposed in schema.
YouTube動画の音声と映像を解析し、Markdownとして保存します。
Tool and parameter descriptions are too brief (28 chars for tool, 15-40 for params). LLM-optimized descriptions should be 50-200 chars, explaining WHAT, WHEN, and any prerequisites.
No output schema documented. LLMs cannot plan downstream operations or extract fields without knowing the response structure (markdown content, file_path, warnings array).
Parameter 'url' lacks format/validation guidance. Description should specify 'YouTube video URL (https://youtube.com/watch?v=...)' and note that invalid URLs return exit code 2.
Parameter 'digest' behavior is vague. Description says 'タイムスタンプ付きの要点' but does not explain what 'digest mode' produces vs. full transcription, or when to use it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error messages are user-facing but lack recovery guidance. E.g., 'GEMINI_API_KEYが設定されていない' tells the LLM the key is missing but not how to proceed or whether to ask the user.