An MCP Server that provides interval timing functionality using token-based time tracking.
Two tools with basic schemas and descriptions, but significant gaps in output documentation and error handling. Both tools have input schemas with type definitions and parameter descriptions (meeting baseline requirements), but lack documented output schemas. Descriptions are present but generic (avg ~100 chars, below the 194-char baseline for A+ tools). No error recovery guidance, no idempotency hints, and no tool annotations. The server uses SQLite for state persistence, which is appropriate for a timer service, but the tool definitions do not guide LLMs on error scenarios or recovery paths.
Checks the elapsed time for a timer identified by token. Returns elapsed time in milliseconds (raw) or human-readable format.
Starts a timer with a unique token identifier. If a timer with the same token already exists, returns the existing timer's start time.
No documented output schema. Tools return text content but LLMs cannot infer the structure of responses (e.g., whether elapsed time is a number, string, or object). This forces LLMs to parse unstructured text, increasing errors.
No error recovery guidance. When check_timer returns 'No timer found for token', the description does not tell the LLM what to do next (e.g., 'Call start_timer first' or 'Check the token spelling'). Bare error messages provide no actionable path.
Missing tool annotations. Neither tool declares idempotency, destructiveness, or read-only status via toolAnnotations (readOnlyHint, destructiveHint, idempotentHint). The MCP spec supports these; their absence forces LLMs to infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Generic tool descriptions. 'Starts a timer with a unique token identifier' (65 chars) lacks context on when to use this tool vs alternatives, what happens on retry, or what the token should be. Descriptions should be 50 - 200 chars and answer WHAT, WHEN, and WHY.
No pagination or result limits documented. While the timer service is simple, the check_timer tool returns raw milliseconds or human-readable text without guidance on precision, rounding, or edge cases (e.g., what if elapsed time is 0ms?).