An MCP server that provides time and date calculation tools, including current datetime retrieval, duration calculations, leap year checking, day of week detection, and other temporal operations.
This server provides 13 time-manipulation tools with generally clear naming (all start with action verbs or descriptive nouns like 'currentDateTime', 'timeSince'). Tool descriptions are present and moderately detailed (averaging ~150-180 chars), explaining what each does and the expected input format. However, several critical gaps reduce the score: (1) No documented output schemas, tools return text or error strings but the response structure is never formally specified for downstream tool composition. (2) Missing enum constraints on timezone and dayOfWeek parameters, 'timeZone' accepts any string (defaults to UTC but no validation shown), and 'dayOfWeek' in nextOccurrence/previousOccurrence accepts free-form strings without restricting to valid day names. (3) Incomplete parameter descriptions, some parameters lack detail on exact format requirements (e.g., duration format '1h30m' is mentioned in description but not validated in code shown). (4) No error recovery guidance, many tools return plain error strings like 'The specified time is in the future' without suggesting what to do next. (5) Some tools inferred from descriptions in rubric rather than explicit registration visible in the provided code snippet (tools.go is truncated). Per-tool analysis shows consistent quality across all 13 tools but with the same systematic gaps across naming, descriptions, and schema clarity.
Add a duration to a given date and time. The date/time must be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. The duration must be in the format '1h30m' for 1 hour and 30 minutes.
Get the current date and time in a specified timezone.
Get the day of the week for a given date. The date must be in the format YYYY-MM-DD.
Calculate the number of days between two dates. The dates must be in the format YYYY-MM-DD.
Check if a given year is a leap year. The year must be provided as a number in the format YYYY.
Check if a given date is a weekday (Monday to Friday). The date must be in the format YYYY-MM-DD.
No documented output schemas. Tools return text or error strings but the structure (Content type, field names, expected formats) is never formally specified. This prevents downstream tool composition and forces LLMs to parse unstructured text responses.
Free-form timezone parameter accepts any string without enum constraint or validation. Code shows defaulting to 'UTC' but does not restrict to valid IANA timezone identifiers. LLMs may pass invalid timezones.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Check if a given date is a weekend (Saturday or Sunday). The date must be in the format YYYY-MM-DD.
Get the next occurrence of a specified day of the week after a given date. The date must be in the format YYYY-MM-DD. The day of the week must be provided as a string (e.g. 'Monday', 'Tuesday', etc.).
Get the previous occurrence of a specified day of the week before a given date. The date must be in the format YYYY-MM-DD. The day of the week must be provided as a string (e.g. 'Monday', 'Tuesday', etc.).
Subtract a duration from a given date and time. The date/time must be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. The duration must be in the format '1h30m' for 1 hour and 30 minutes.
Calculate the difference between two date and time values. The date/time must be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. An IANA formatted timezone can be specified (e.g. America/New_York), otherwise UTC is used.
Calculate the time since a given date and time. The date/time must be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. An IANA formatted timezone can be specified (e.g. America/New_York), otherwise UTC is used.
Calculate the time until a given date and time. The date/time must be in the format YYYY-MM-DD HH:MM:SS or YYYY-MM-DD. An IANA formatted timezone can be specified (e.g. America/New_York), otherwise UTC is used.
dayOfWeek parameter in nextOccurrence and previousOccurrence accepts free-form string (e.g. 'Monday', 'Tuesday', etc.) without enum constraint. No validation shown; LLMs may pass invalid day names.
Error messages lack recovery guidance. Tools return plain strings like 'The specified time is in the future' or 'Invalid year provided' without suggesting next steps or valid alternatives.
Parameter descriptions mention format examples (e.g., 'duration in format 1h30m') but no validation constraints or regex patterns are visible in the code snippet. Ambiguous format requirements may cause parsing errors.
Some tool registrations are inferred from the rubric and not explicitly visible in the provided code snippet (tools.go is truncated). Cannot verify full registration details, schema definitions, or implementation.