Cron expression parser API — explain, validate, generate, and compute next run times for cron expressions.
This server provides 5 read-only cron tools with basic descriptions and schemas. Tool names are action-oriented (explain, validate, nextRuns, generate, getCommonExpressions), which is good. However, parameter descriptions are minimal or missing context about constraints and formats. The 'generate' tool has complex nested object parameters ('at', 'on') with no type definitions visible in the schema. Output schemas are not documented, callers must infer structure from code. Error handling is present but generic (400 status with e.message). No tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only. Parameter descriptions lack detail on valid ranges, formats, and dependencies (e.g., 'every' parameter accepts only 5 values but this is not enumerated).
Explain a cron expression in human-readable format
Generate a cron expression from human-friendly options
Retrieve a list of common cron expressions with descriptions
Compute the next scheduled run times for a cron expression
Validate a cron expression for correctness
Parameter 'every' in generate tool accepts only 5 values (minute, hour, day, week, month) but is not declared as an enum. LLMs will hallucinate invalid values.
Nested object parameters 'at' and 'on' in generate tool lack type definitions and property schemas. Schema shows only description strings, no nested property types.
Output schemas are not documented. Callers must reverse-engineer response structure from code. nextRuns returns array of {iso, unix, human} but this is not declared in tool definition.
Parameter descriptions lack constraint details. 'count' parameter in nextRuns says 'default 5, max 20' in description but no minValue/maxValue in schema. 'from' parameter accepts ISO 8601 but format is not declared.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No tool annotations present. All 5 tools are read-only and idempotent, but readOnlyHint and idempotentHint are not set. This prevents clients from optimizing caching and retry logic.