About Cron Tools
Cron Tools is a stdio-only MCP server for parsing, explaining, validating, and scheduling Vixie-style five-field cron expressions. It supports time-zone-aware run calculations, including daylight-saving transitions, without opening a network port.
Key features
- 01Parse cron fields and macros
- 02Explain expressions in plain English
- 03Validate syntax and flag edge cases
- 04List upcoming and previous runs
- 05Calculate runs across time zones
Use cases
- 01Check a cron expression before deployment
- 02Understand a schedule's meaning
- 03Review upcoming runs in a chosen time zone
- 04Inspect prior runs around daylight-saving changes
MCP support
The server exposes cron parsing, explanation, validation, and run-time calculation tools to MCP clients over stdio. It does not open a network port.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm ghcr.io/basitalisandhu/mcp-cron-tools:0.3.0Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/basitalisandhu/mcp-cron-tools:0.3.0stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEcron-tools MCP server
Parses, explains, validates and schedules 5-field cron expressions in the Vixie cron dialect (Linux crontab, GitHub Actions, most schedulers), including lists, ranges, steps, month and weekday names, 0 or 7 for Sunday and the @hourly to @yearly macros. Time zone arithmetic uses Intl only; there are no dependencies beyond the MCP SDK and zod.
Part of dev-mcp-servers. Stdio transport only; the server never opens a port.
Tools
| Tool | Input | What it returns |
|---|---|---|
parse_cron | expression | Per field: raw text, wildcard flag and every accepted value; plus the normalised expression and macro expansion. |
explain_cron | expression | One English sentence, for example */15 9-17 * * 1-5 is "At every 15th minute past every hour from 9 through 17 on Monday through Friday." |
validate_cron | expression | valid, errors, and warnings: both day fields restricted (OR semantics), days that never occur in the chosen months, 7 for Sunday, ? spelling, macro expansion. |
next_runs | expression, count? (1 to 100), timezone? (IANA), from? (ISO 8601) | Upcoming run times in local time with offset and in UTC. Wall-clock times skipped by a forward DST transition are not run that day; a repeated hour runs twice. Stops after ten years. |
previous_runs | Same inputs as next_runs | Run times strictly before from, newest first, in local time with offset and in UTC. Uses the same DST semantics and ten-year horizon. |
Install
Claude Code:
claude mcp add cron-tools -- docker run --rm -i ghcr.io/basitalisandhu/mcp-cron-tools:0.2.2
Add -s user to make it available in every project. Any client that reads .mcp.json (Claude Code, Claude Desktop, Cursor):
{
"mcpServers": {
"cron-tools": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/basitalisandhu/mcp-cron-tools:0.2.2"]
}
}
}
Pin the version as shown so that an update cannot change what runs in your editor without you noticing. The package is not on npmjs.com yet, so npx does not work; see the repository README for GitHub Packages npm. From a checkout, use "command": "node", "args": ["<path>/packages/cron-tools/dist/index.js"] after npm install && npm run build at the repository root.
What it touches
- Network: None.
- Local files: None.
- Telemetry: none.
Notes
- Seconds fields (6-field Quartz) and
L,W,#are rejected with an explanation. - When both day-of-month and day-of-week are restricted, a day matches if either does, as in Vixie cron.
Build and test
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-cron-tools
npm test -w @basitalisandhu/mcp-cron-tools
Tests use node:test and the SDK's in-memory transport; they do not reach the network.
Licence
MIT. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.