Synology NAS management tools. Provides system info, storage health, disk SMART status, and installed packages.
All 5 tools lack input parameter schemas entirely, critical blocker. Descriptions are present but generic (50-90 chars), missing WHEN/WHY guidance. No output schemas documented. Tools return JSON strings rather than structured objects. No error recovery guidance. No parameter descriptions. Naming is acceptable (verb_noun pattern) but insufficient to overcome schema absence.
Get disk information: model, serial, temperature, health status, SMART status, size for each drive
Get Synology NAS system information: model, serial, DSM version, uptime, hostname, temperature, RAM
Get real-time CPU usage, memory usage, and network throughput of the Synology NAS
Get storage volume information: total/used/free space, status, filesystem type for each volume
List all installed DSM packages with name, version, and running status
All tools have empty input schemas ({}). LLMs cannot validate parameters or understand constraints.
No output schemas documented. Tools return JSON strings via serde_json::to_string_pretty(), but LLMs have no schema to parse response structure. Violates pattern:tool requirement.
Descriptions are 50-90 characters, below baseline (194 chars avg). Missing WHEN to call, prerequisites, and return structure. E.g., 'Get Synology NAS system information' lacks context for LLM selection.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Error handling returns generic McpError::internal_error(e.to_string(), None). No recovery guidance, no error classification (retryable vs fatal). LLM cannot determine next action.
No pagination support. Tools return all results as JSON strings. Large result sets (e.g., many packages or volumes) will blow context window without limit/offset parameters.