MCP server: convert times between IANA timezones, list zones, get current offset.
Three well-defined read-only tools with clear names and complete input schemas. All tools have descriptions (10 - 100 chars) and typed parameters. However, descriptions are minimal (10 - 50 chars vs. baseline 194 chars), parameter descriptions are sparse or missing (e.g., 'zone' in offset lacks description), and output schemas are not formally documented. Error handling is present but generic. No tool annotations (readOnlyHint, idempotentHint). Composition is sound, each tool does one thing, but descriptions lack the depth LLMs need for confident selection.
Convert an ISO 8601 UTC instant to wall-clock time in the given IANA timezone.
List every IANA timezone the runtime knows about.
Return the UTC offset (in minutes and as ±HH:MM) for an instant in the given zone.
Parameter descriptions incomplete. 'zone' parameter in offset and list tools lacks description; 'iso' in offset lacks description. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are minimal (10 - 50 chars vs. baseline 194 chars). 'Convert an ISO 8601 UTC instant...' lacks context on when to use this vs. offset, what format the output takes, or whether it handles DST transitions.
Output schemas not formally documented. Tools return JSON objects (wallclock, offset_minutes, zones array) but LLMs must infer structure from code. No schema declaration in tool definitions.
No tool annotations. All three tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. Agents cannot distinguish safe tools from destructive ones without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Error messages are generic ('unknown timezone: X', 'invalid ISO instant: X'). No recovery guidance. E.g., when zone is invalid, should suggest calling list() to discover valid zones.