Deterministic date, time-zone, and duration calculator: CLI and MCP server (standalone executable, no runtime required)
timecalc provides 11 well-named temporal calculation tools with consistent descriptions and basic parameter documentation. All tools follow verb_noun naming (add, subtract, compare, round, etc.) and descriptions are present (avg ~80 chars). However, parameter schemas lack formal type constraints (enums, ranges, patterns), output schemas are not documented, and error handling guidance is absent. No tool annotations (readOnlyHint, destructiveHint) despite all being read-only. Parameter descriptions are minimal (10-30 chars) and do not explain valid values, formats, or constraints. The server is functional but falls short of production-grade LLM-optimized tooling.
Add a duration to a date, instant, or zoned-date-time
Compare two temporal values of the same type
Get the day of week for a date
Get the default time zone from the evaluation context
Check if two temporal values are equal
Get the current instant from the evaluation context
Round an instant, zoned-date-time, or duration to a specified unit
Parameter schemas lack formal constraints. 'overflow', 'largest-unit', 'smallest-unit', 'rounding-mode', 'rounding-increment' are documented as strings/numbers with no enum, pattern, range, or valid-value list. LLMs cannot infer valid options and will hallucinate values.
Output schemas are not documented. Tools return temporal values but the response structure (fields, types, format) is not specified. LLMs cannot plan downstream calls or extract data reliably.
No tool annotations despite all tools being read-only. Missing readOnlyHint in tool definitions. This prevents agents from understanding which tools are safe to call without side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Subtract a duration from a date, instant, or zoned-date-time, or compute the difference between two temporal values
Convert a zoned-date-time to a date
Convert a zoned-date-time to an instant
Attach a time zone to a date or instant
Parameter descriptions are too brief (10-30 chars). 'The temporal value to add to', 'The duration to add' lack context on expected format (ISO 8601?), timezone handling, or what happens on invalid input. Descriptions should be 50-200 chars for LLM clarity.
No error handling guidance. Tools do not document what errors can occur (invalid date format, unsupported timezone, overflow), what they mean, or how to recover. Agents cannot self-correct on failure.