An MCP stdio server that publishes videos/Shorts to a fixed set of pre-configured YouTube channels via the YouTube Data API v3.
Four tools with strong naming (verb_noun pattern), comprehensive descriptions (194 - 500+ chars), and detailed input schemas. upload_video and edit_video_metadata have excellent parameter documentation with constraints, enums, and dependency hints. list_channels and verify_channels are simpler but well-described. Output schemas are documented (UploadOutput struct visible). However, output schema documentation is embedded in Go structs rather than exposed in JSON Schema; parameter descriptions rely on jsonschema tags rather than formal JSON Schema enum/pattern constraints; error handling guidance is present but not formalized in tool definitions.
Correct the snippet metadata of an EXISTING video (title/description/tags/category/default language) via a read-modify-write operation.
Lets the calling application discover the statically configured channel aliases and their defaults.
Publish a video or Short to one of the pre-configured YouTube channels via the YouTube Data API v3. The caller decides the channel and all metadata; this tool only executes. Idempotent: pass the same idempotency_key on retries and an already-successful upload returns the existing result instead of re-publishing. privacy_status defaults to unlisted — never silently public. On failure returns a structured error with the exact stage, category, and rollback state.
Cheap token health check (1 quota unit/channel); useful while Testing-mode refresh tokens expire every 7 days.
Output schemas not exposed as JSON Schema in tool definitions. UploadOutput struct is visible in code but tool registration likely does not include formal output schema documentation for LLM consumption.
Parameter constraints (enums, patterns, min/max) are documented in descriptions but not formalized in JSON Schema. E.g., privacy_status should declare enum: [public, unlisted, private]; category_id should validate numeric format.
Error handling is described in tool descriptions but not formalized as structured error responses. UploadOutput includes stage/category/error fields, but tool definition does not declare error schema or recovery guidance as part of the MCP tool contract.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are not visible in tool definitions. upload_video is destructive and idempotent; list_channels and verify_channels are read-only. These should be declared in MCP tool metadata.
Parameter descriptions include example values (e.g., 'e.g. 28 = Science & Technology') which LLMs may reuse literally. Replace with formal enum or reference to external taxonomy.