Tick
Server Details
Next cron run times in any IANA timezone, with DST gap and fold warnings.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
One tool answers a point-in-time boolean question ('does this cron fire at instant T in zone Z'), the other enumerates forward fire times. The descriptions explicitly frame the query shape and inputs differently (single `at` instant vs `count` of upcoming runs), so there is no realistic way to misselect.
Both tools share a `tick_` namespace prefix followed by a clear snake_case noun phrase describing the operation's output (matches vs next_runs). No style mixing, no vague verbs, and the prefix gives a coherent family identity.
Two tools is on the thin side for a server, landing in the borderline band. The surface is tight and every tool earns its place, but a small set means the server's usefulness rests entirely on two capabilities.
The core cron-validation workflow is covered end to end: verify a single expected fire and preview upcoming fires with DST gap/fold warnings in both local and UTC time, plus a plain-English field breakdown. Minor gaps remain (no previous-run walk backwards, no standalone 'does this expression parse/is it valid' error-surfacing call, no bulk assertion over a date range), but agents can work around these by reusing next_runs.
Available Tools
2 toolstick_matchesWould this cron fire at a datetime?ARead-onlyIdempotentInspect
Use when you need a yes/no on whether a cron expression would fire at a specific instant in a timezone — for example before shipping a schedule that crosses a DST transition, or to verify a single expected fire. Example: {"expression":"0 9 * * 1-5","timezone":"America/New_York","at":"2026-11-06T14:00:00Z"}. Returns fires true/false, the local wall time of that instant, and DST notes if the local time is in a gap or fold.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | ISO datetime to test, e.g. 2026-11-06T14:00:00Z. | |
| timezone | No | IANA timezone. Default UTC. | |
| expression | Yes | Cron expression (5 or 6 fields, or a nickname like @hourly). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description goes beyond that by disclosing the return payload — boolean fires, the local wall time, and DST gap/fold notes — which is meaningful since no output schema exists. It says nothing about invalid-expression error behavior, so it stops short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with 'Use when...', then a concrete example, then the return shape — a tight three-move structure with no filler. The example datetime repeats the schema's own example string, a minor redundancy, but the full call with all three parameters still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter, read-only predicate tool with no output schema, the description covers purpose, triggering scenarios, a full example call, and the return values including DST edge-case output. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents expression, at, and timezone including formats and defaults. The worked example adds a composite call pattern but no syntax or constraint detail beyond what the schema already states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: a yes/no check of whether a cron expression fires at a specific instant in a timezone. It is clearly distinguishable in intent from a next-runs lister, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use scenarios: validating a schedule that crosses a DST transition before shipping it, or confirming a single expected fire. It implies the single-instant use case vs listing upcoming runs, but does not state an explicit exclusion or name the sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tick_next_runsNext cron run times in a timezoneARead-onlyIdempotentInspect
Use when you or the user just wrote a cron expression (GitHub Actions, Vercel cron, Cloudflare Cron Triggers, systemd, an agent schedule) and need the next fire times before claiming it is correct. Pass the expression and an IANA timezone (default UTC). Returns the next N runs as local wall times and UTC ISO, a plain-English field breakdown, and DST gap/fold warnings (spring-forward skips, fall-back double fires). Example: {"expression":"0 9 * * 1-5","timezone":"America/New_York","count":5}. Do not guess next runs yourself — DST rules differ by region and year. Not for converting a meeting time across cities (use Meridian) or for email DNS (use Stamp).
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Optional ISO datetime to start from (default now), e.g. 2026-03-07T12:00:00Z. | |
| count | No | How many next runs to return (1–20). Default 5. | |
| timezone | No | IANA timezone for local wall times, e.g. America/New_York. Default UTC. | |
| expression | Yes | Cron expression: 5 fields (minute hour day-of-month month day-of-week) or 6 with seconds first. Also accepts @hourly, @daily, @weekly, @monthly, @yearly. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description still adds substantive behavior: what is returned (local wall times plus UTC ISO, plain-English field breakdown, DST gap/fold warnings), the UTC default, and why the computation is non-trivial. That is real context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger condition, then parameters, then return shape, then exclusions — a sensible order with no filler sentences. The platform enumeration (GitHub Actions, Vercel cron, Cloudflare Cron Triggers, systemd, agent schedule) is slightly verbose but aids retrieval matching.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter read-only utility with no output schema, the description covers when to call it, defaults, and the full return payload including DST edge-case warnings. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the worked example ({"expression":"0 9 * * 1-5","timezone":"America/New_York","count":5}) usefully shows how the parameters combine in practice. It does not mention the optional 'from' parameter, which would have made the parameter story complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: computing the next fire times of a cron expression, in a given IANA timezone. It explicitly separates itself from meridian_convert_time and stamp_check_dns_record, so an agent can pick it out of a 30-tool sibling list without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger ('when you or the user just wrote a cron expression ... before claiming it is correct'), an explicit anti-pattern ('Do not guess next runs yourself — DST rules differ by region and year'), and two named exclusions routing to Meridian and Stamp. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
tick_matches - First observed
tick_next_runs
Related MCP Connectors
Cron expression parser: explains any cron + returns next N fire times. Timezone-aware.
Validate and explain cron expressions; list next/previous run times in any time zone, DST-aware.
Validates cron expressions and finds DST bugs that make jobs silently skip or double-fire.
Convert times between IANA zones and detect skipped or ambiguous DST local times.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceValidates cron expressions and computes DST-correct next-fire times against real IANA timezone data, flagging schedules that silently skip a spring-forward run or double-fire on fall-back. Also surfaces the POSIX day-of-month/day-of-week OR semantics and other semantic footguns before a job ships.MIT
- AlicenseNot gradedqualityDmaintenanceParses cron expressions, returns next fire times, and provides an English description.MIT
- AlicenseAqualityCmaintenanceExplains cron expressions in plain English, checks them for errors and gotchas, lists next run times in any time zone, and converts between Unix cron, GitHub Actions, Kubernetes, AWS EventBridge, Quartz and Spring dialects.31MIT
- AlicenseNot gradedqualityDmaintenanceParse, validate, and explain cron expressions with pay-per-call via x402 (USDC on Base L2), returning next run times in any timezone.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.