Dependency-free MCP server for private YouTube metadata localization
Codex-YMT has 13 well-named tools with consistent verb_noun patterns (youtube_*). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas are present and typed for all tools. However, parameter descriptions are sparse or missing context; many lack guidance on valid ranges, formats, or dependencies. Output schemas are not documented. Error handling exists but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Complete the OAuth 2.0 authorization flow by exchanging authorization code for access token
Disconnect YouTube by revoking the OAuth token
Start the OAuth 2.0 authorization flow with PKCE
Check the current OAuth authentication status
Configure Google OAuth credentials from a Desktop app OAuth JSON file
Delete a saved draft of localized video metadata
Get the authenticated user's YouTube channel information
Output schemas not documented. LLMs cannot infer what fields are returned or plan downstream tool calls. E.g., youtube_get_channel, youtube_list_videos, youtube_get_video lack documented return structures.
Parameter descriptions lack format/range guidance. E.g., 'max_results' (1-50 constraint) and 'language' (language code format) lack explicit bounds or examples in descriptions. LLMs may pass invalid values.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk classifications in metadata. Tools marked WRITE or DESTRUCTIVE should carry annotations for agent safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2025-06-18+ | v2 |
Get detailed information about a specific YouTube video
List saved drafts of localized video metadata
List videos from the authenticated user's channel
Preview localized metadata for a YouTube video before publishing
Publish localized metadata for a YouTube video
Save a draft of localized video metadata locally
Error handling exists but lacks recovery guidance. GoogleApiFailure returns friendly messages but does not guide LLM on next steps (retry, lookup, ask user). E.g., 'videoNotFound' should suggest 'Call youtube_list_videos to find available videos.'
Pagination support incomplete. youtube_list_videos accepts page_token but does not document total count, has_more, or next_token in return. LLMs cannot determine if more results exist.