MCP Server for transcribing videos via video links and summarizing video content
Single tool with minimal schema documentation and generic descriptions. The tool 'get_video_content' has a basic one-parameter schema but lacks critical details about output format, error conditions, and parameter constraints. Description is under 100 characters and provides no context about prerequisites, failure modes, or return structure. No input validation guidance, no error recovery hints, and no documentation of what the tool actually returns. Parameter description is missing entirely, 'url' has a type but no guidance on valid formats, supported video platforms, or constraints. This server falls well below production quality baselines.
Process video content and generate text record
Tool description is vague and under-informative. 'Process video content and generate text record' provides no context about what 'process' means, which video platforms are supported, what the output contains, or when to use this tool vs alternatives.
Parameter 'url' lacks description. The LLM cannot infer valid formats (YouTube URL format?), supported platforms (YouTube only? TikTok? Generic HTTPS?), or expected content (video-only or audio links too?). Parameter description is required for every input parameter.
Output schema is not documented. The tool returns a string response (from code: 'return f"Transcription content: {result}"'), but the LLM has no knowledge of this format. What does the string contain? Is it raw transcription? A summary? Structured JSON? This forces the LLM to guess and parse unstructured text.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
No error handling guidance. The tool can fail in many ways (invalid URL, unsupported platform, all transcription services down, download timeout). The code raises ValueError exceptions, but there is no documented recovery strategy or error classification. An LLM encountering a failure has no guidance on whether to retry, ask the user for a different URL, or abandon the request.
No input constraints documented. The 'url' parameter has no stated format, length limits, or validation rules. Code internally handles YouTube URLs (via yt_dlp), but the tool description does not specify this. An LLM might pass an arbitrary string, invalid URL format, or non-video link, causing silent failures.
No dependency or prerequisite documentation. The tool requires API keys for at least one transcription service (Speechmatics, Gladia, AssemblyAI, or Deepgram). The description does not mention this, so an LLM calling the tool has no warning that it might fail due to missing credentials. The error message from the code ('All API keys are empty, please provide at least one valid key!') is helpful but should be front-loaded in the description.
Tool name does not clearly convey intent. 'get_video_content' could mean fetch the video file, retrieve metadata, generate a transcript, or something else. 'transcribe_video' or 'get_video_transcript' would be clearer. The current name leaves ambiguity about what 'content' means.