MCP server: parse and format byte sizes — 1024 ↔ '1 KB', '1.5 MB' ↔ 1572864.
Two simple, focused tools with clear names and basic schemas. Both tools have descriptions and input schemas with type definitions. However, parameter descriptions are minimal or missing (e.g., 'bytes' param in format tool lacks description; 'input' param in parse tool lacks description). Output schemas are not documented. Error handling is present but generic ('bytes failed: ...'). No tool annotations (readOnlyHint, etc.). Naming is verb-based and clear (format, parse), but descriptions could be more detailed about when to use each tool and what they return.
Format a byte count as a human-readable string. system: binary (KiB/MiB) or si (kB/MB).
Parse a size string (e.g. "1.5 MB", "512KiB") to a byte count. Unitless input is treated as bytes.
Parameter descriptions missing or incomplete. 'bytes' param in format tool has no description; 'input' param in parse tool has no description.
Output schema not documented. Tool descriptions do not specify what fields are returned or their types. LLMs cannot plan downstream calls without knowing the response structure.
Tool descriptions lack context on when to use each tool and what they return. 'Format a byte count as a human-readable string' is functional but does not explain the return format or when to prefer binary vs SI units.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools are read-only and idempotent, but this is not declared in the schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Error messages are generic and do not guide recovery. 'bytes failed: ...' does not tell the LLM what to do next or how to self-correct.