MCP server that turns any public MEGA (mega.nz) folder or file link into a knowledge source for Claude and other LLMs — browse, search, read files & PDFs, get video metadata, and optionally transcribe audio/video.
mega-mcp has well-structured tool definitions with clear naming (verb_noun pattern: mega_browse, mega_search, mega_read_file, mega_video_info, mega_transcribe). All 5 tools have descriptions (avg ~150 chars, within 10-1024 baseline). Input schemas use Zod with type definitions and parameter descriptions. However, output schemas are not documented, responses are inferred from code but not formally declared in tool definitions. Error handling is present but lacks recovery guidance (e.g., 'Path not found' doesn't suggest alternatives). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter descriptions are adequate but could be more prescriptive about constraints (e.g., maxBytes range, language code format).
List files and folders in a public MEGA folder link. Use `recursive` to walk the entire tree, or `path` to scope into a subfolder. Returns name, path, type, and size for each entry.
Download and return the text contents of a file. PDFs are extracted to text automatically. Provide either a `path` within a folder link, or a direct file `link`. Other binary files are rejected. Text reads are capped at MEGA_MAX_READ_BYTES; PDFs at MEGA_MAX_PDF_BYTES.
Search a public MEGA link's entire tree for files/folders whose name matches a query (case-insensitive substring, or regex with `regex`).
Transcribe audio or video to text. Requires transcription to be enabled via MEGA_TRANSCRIBE env (openai or command backend). Provide either a `path` within a folder link, or a direct file `link`. Returns the full transcript plus metadata.
Get metadata about a video or audio file: codec, resolution, duration, bitrate, etc. Streams only the header from MEGA (efficient). Provide either a `path` within a folder link, or a direct file `link`.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns name, path, type, and size') but formal response schemas are absent from tool definitions. LLMs cannot plan downstream operations without knowing exact field names and types.
No tool annotations despite all tools being read-only. Missing readOnlyHint annotation on all 5 tools. This prevents clients from optimizing caching, retry logic, and safety checks for idempotent operations.
Error messages lack recovery guidance. 'Path not found: {path}' and 'No MEGA link provided' do not suggest next steps (e.g., 'Try mega_browse() to list available paths' or 'Set MEGA_LINK env or pass link parameter'). Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameter constraints not fully specified. maxBytes (mega_read_file) and maxSeconds (mega_transcribe) lack min/max bounds in descriptions. Language code format (ISO 639-1) is mentioned but not enforced via enum or pattern. LLMs may pass invalid values.
Conditional parameter dependencies undocumented. mega_read_file and mega_video_info accept either 'path' (with implicit folder link) or 'link' (direct file link), but the mutual exclusivity and interaction are not stated in parameter descriptions.