An MCP (Model Context Protocol) server that integrates with xdcc.js to enable AI agents to download files from IRC via XDCC. Features include connection pooling, download status tracking, file deduplication, and dynamic resource exposure for downloaded files.
Server has 3 tools with mixed quality. echo_message is well-defined with complete Zod schema, clear descriptions, and proper parameter constraints (1-1000 chars, enums, min/max). However, get_download_status and initiate_download lack visible input schemas in the provided source code, only file paths are shown, not actual schema definitions. This forces inference and caps those tools at 50. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Descriptions are adequate but generic. No output schema documentation visible. Error handling approach unclear from source.
A simple echo tool that formats and repeats a message based on the provided parameters.
Retrieves the current status of XDCC file downloads.
Initiates a file download from IRC via XDCC protocol.
get_download_status and initiate_download lack visible input schemas. Only file paths shown; no Zod schema, parameter types, or constraints documented in source.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels: get_download_status is READ_ONLY, initiate_download is WRITE. Agents cannot infer safety properties.
Output schemas not documented. echo_message returns EchoToolResponse interface, but get_download_status and initiate_download return types are unknown. LLMs cannot plan downstream calls without knowing response structure.
Descriptions for get_download_status and initiate_download are generic ('Retrieves...', 'Initiates...') and lack context on when to use them, what they return, or prerequisites. Below 50-char baseline for clarity.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
No error handling guidance visible. No recovery hints (e.g., 'If download fails, call get_download_status to check status'). Agents cannot self-correct on failures.