MCP File Server that provides secure local file access and video subtitle generation using OpenAI Whisper API and FFmpeg
The server defines 11 tools with partial schemas and descriptions. Most tools have basic descriptions (50-150 chars), but parameter annotations are often minimal or absent. Input schemas are present but incomplete, many parameters lack formal type constraints (enums, patterns, ranges). Error handling is not visible in the provided code. The two core video tools (add_subtitles, extract_subtitles) lack specification of API key injection, timeout handling, and recovery guidance. File operation tools (read_file, write_file, list_directory, etc.) follow a basic pattern but lack depth in parameter validation and security documentation. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are visible. Output schemas are not documented. This is a below-average community server that would benefit from significantly more rigor in descriptions, parameter validation, and error messaging.
Add subtitles to a video using OpenAI Whisper API and FFmpeg
Embed existing subtitles into a video
Extract subtitles from a video without creating a new video file
Get information about a file or directory
Get information about the vid-subtitle library
List contents of a directory
Open a file or directory with the appropriate application (macOS: uses 'open' command for directories/videos, preferred text editors for .srt files)
OpenAI API key injection not documented; no pattern for secret injection visible. Tools add_subtitles, extract_subtitles, refine_subtitles require OPENAI_API_KEY but do not document how it is injected or whether it is ever exposed in parameters.
Output schemas not documented for any tool. LLMs do not know what fields to expect from tool responses, forcing them to guess or make assumptions about chaining with downstream tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible. Agents cannot determine which tools are safe to retry or which modify state without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 35 | - | v1 |
Read the contents of a file
Refine subtitles using OpenAI API based on instructions
Search for files by name or content
Write content to a file
Error handling not visible in provided code. No guidance on how tools report failures, whether errors are retryable, or what recovery steps the LLM should take.
Parameter constraints missing. 'language' parameters accept arbitrary strings with only 'en' as default, should be an enum of supported language codes. 'path' parameters lack validation against path traversal attacks.
No mention of timeout handling for video processing tools. add_subtitles, extract_subtitles, embed_subtitles could hang indefinitely if ffmpeg or Whisper API timeout, no explicit timeout configuration documented.
Irreversible operations (add_subtitles, extract_subtitles, embed_subtitles, write_file) lack confirmation or dry-run pattern. Agents should be able to preview before committing.
Parameter descriptions are minimal. 'language' says 'Language code for transcription (default: en)' but does not enumerate supported codes or format. 'instruction' in refine_subtitles is vague, does not specify what kinds of instructions are valid.
Composition concern: open_file on macOS spawns external processes (open command). No guidance on whether this is safe for agents or how to handle failures if the file cannot be opened.