Provide real-time date and time to AI assistants via Model Context Protocol
This server demonstrates strong definition quality with two well-designed tools. Both tools have comprehensive descriptions (175-300+ chars, well above the 10-1024 baseline), explicit input and output schemas defined via Zod, and clear parameter documentation. Tool names follow the verb-noun pattern (get_*, convert_*). Both tools are annotated with tool annotations (readOnlyHint, destructiveHint, idempotentHint). The primary gaps are: (1) output schema documentation could be slightly more explicit in tool registration (though it is defined in the code), and (2) error handling guidance in descriptions could be more actionable for LLM recovery.
Re-state a time in another timezone, DST-correct for the date in question. Use this instead of adding a remembered offset: offsets change with the calendar, and the hour either side of a changeover is where guesses go wrong. Give `time` with an offset for an exact instant, or without one plus `from` for a wall-clock reading in a named zone.
Get the current date and time. Call this before writing any date, timestamp, year, changelog entry, migration filename or copyright line -- your training data predates today. The text content is the requested `format` only; read `structuredContent` for the same instant stated as UTC (`iso`, `utc`), host-local with offset (`local`, `offset`, `timezone`) and epoch milliseconds, so there is never any doubt which clock a value came from.
Error handling descriptions lack actionable recovery guidance for LLMs. Both tools describe what they do but do not explain common failure modes or suggest next steps (e.g., 'remote provider failed, try local provider instead').
Output schema documentation in tool registration is minimal. While output schemas are defined in constants (getCurrentDateTimeOutput, convertTimezoneOutput), they are not referenced in the server.registerTool() calls visible in the snippet. This means outputSchema is likely missing from the actual tool registration, forcing LLMs to infer output structure.
get_current_datetime's 'format' parameter description is lengthy (300+ chars) and uses examples like 'YYYY-MM-DD' embedded in prose.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 47 | - | v1 |