A YouTube integration package using Model Context Protocol (MCP)
Single tool 'load_video_transcript' has acceptable naming and basic schema structure, but descriptions lack LLM-optimization depth and parameters miss important constraint details. Tool name starts with verb (good), description is present but generic, and schema includes type definitions with defaults. However, parameter descriptions are minimal (e.g., 'Language code for transcript' lacks format guidance), output structure is not formally documented, and error handling is minimal. This is typical community-server territory.
Load transcript from YouTube URL. example: https://www.youtube.com/watch?v=VIDEO_ID
Parameter descriptions lack actionable constraints. 'Language code for transcript' does not specify valid formats (ISO 639-1 vs 639-3), examples (en, fr, de), or fallback behavior if unavailable. Rubric requires 'format, range, and allowed values directly in the parameter description'.
Output schema not formally documented. The tool returns a hardcoded text/HTML response structure (title + description + transcript), but this structure is not described in the tool definition or documentation. LLMs cannot plan downstream operations without knowing the output fields. Rubric requires 'Document the output schema. LLMs need to know what fields to expect.'
Tool description lacks critical context. Current: 'Load transcript from YouTube URL. example: https://www.youtube.com/watch?v=VIDEO_ID'. Does not state WHAT data is returned, WHEN to use this vs. other YouTube tools, or prerequisites (e.g., video must have captions). Rubric: descriptions should answer 'What does it do? When should the LLM call it? What does it return?'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Error handling provides no recovery guidance. Current error: 'Failed to load transcript: <message>'. Does not categorize error (retryable, user-fixable, fatal) or suggest next steps (e.g., 'Video does not have captions. Try a different video.'). Rubric: 'Error responses must tell the LLM what to do next.'
URL parameter accepts free-form string with no validation or format guidance. Tool description shows example as 'https://www.youtube.com/watch?v=VIDEO_ID', but does not state: which YouTube URL formats are accepted (youtu.be, youtube.com, etc.), whether shorts are supported, or what happens with invalid URLs. Rubric: 'Describe the expected format, range, and allowed values directly in the parameter description.'