MCP server providing datetime awareness via tools and resources
Two tools with clear verb-noun naming (get_current_time, convert_time) and reasonable descriptions (avg 65 chars). Both have Zod schemas with type definitions and parameter descriptions. However, descriptions are below the 194-char baseline and lack context on WHEN to use each tool or what downstream operations they enable. Output schemas are not explicitly documented, helpers.ts defines TimeResult and ConversionResult interfaces, but these are not visible in the tool registration. Error handling returns plain text errors without recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite both being read-only operations.
Convert a time from one timezone to another.
Get the current date and time in a specific timezone. Defaults to America/New_York if no timezone is specified by the user.
Output schemas not documented in tool registration. TimeResult and ConversionResult interfaces exist in helpers.ts but are not exposed in the tool definitions. LLMs cannot predict response structure.
Error messages lack recovery guidance. Errors return plain text (e.g. 'Invalid time format. Expected HH:MM (24-hour).') but do not suggest next steps or alternative tools.
Tool descriptions lack context on WHEN to use each tool and what they return. 'Get the current date and time in a specific timezone' does not explain when to call this vs convert_time, or what fields the response contains.
No tool annotations despite both tools being read-only and idempotent. Missing readOnlyHint and idempotentHint annotations prevent clients from optimizing caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
convert_time description does not explain the time format requirement (HH:MM 24-hour) upfront. Users must infer from parameter description, increasing misuse likelihood.