MCP server for managing torrent downloads via Flood integration
Three tools with basic descriptions but critical schema gaps. GetTorrents and StopTorrent have empty input schemas ({}), violating the requirement that every parameter needs a description and type. StartTorrent accepts 'torrentFile' as type 'object' without specifying the expected structure, LLMs cannot reason about object parameters without field-level documentation. Descriptions are present but minimal (10-50 chars), below the 50-200 char baseline for LLM-optimized tools. No output schemas documented. No error handling guidance. Tool names follow verb_noun convention (get, start, stop) but lack clarity on what 'Torrent' refers to in context.
Lists all currently downloading torrents.
Starts downloading a new torrent from a file into a directory.
Stops downloading a torrent specified with it's ID.
Empty input schemas for GetTorrents and StopTorrent. GetTorrents declares Input: {} but should document any filtering/pagination params. StopTorrent's 'id' parameter has no type or validation constraints in the schema.
StartTorrent accepts 'torrentFile' as type 'object' without documenting the expected structure. LLMs cannot reason about untyped objects. Should specify: is this a file upload, a URL, a base64 string, or a structured object with fields?
No output schemas documented for any tool. GetTorrents returns a list of TorrentItemDto but the schema is not visible in the tool definition. LLMs need to know the response structure to plan downstream calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 30 | <=2025-11-25 | v2 |
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). 'Lists all currently downloading torrents' lacks context on when to call this vs. other discovery tools, what fields are returned, and whether results are paginated.
No error handling guidance. If StartTorrent fails (invalid torrent file, directory not writable), the error response does not tell the LLM what to do next or how to self-correct.