Skip to main content
Glama
tylerscomic-lab

cron-schedule-audit-mcp

README.md
# cron-schedule-audit-mcp

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Live on MCPize](https://img.shields.io/badge/Live%20on-MCPize-6d28d9)](https://mcpize.com/mcp/cron-schedule-audit-mcp)

An MCP server that validates cron expressions and computes **DST-correct** next-fire times using the real IANA
timezone database — no `moment-timezone` or `luxon` dependency, just a hand-rolled fake-UTC-offset technique
against the platform's own tz data.

## The bug this catches

A cron job scheduled at `30 2 * * *` (2:30am daily) in `America/New_York` **silently never fires** on the
spring-forward date, because 2:00-2:59am doesn't exist that day. A job at `30 1 * * *` (1:30am) fires **twice** on
the fall-back date, because that hour is repeated. Neither failure throws an error or shows up in logs — it just
looks like a flaky cron that "sometimes doesn't run." Verified against real 2026/2027 transition dates during
testing (spring-forward 2027-03-14, fall-back 2026-11-01).

Also flags the day-of-month/day-of-week footgun almost everyone hits once: POSIX cron treats both fields as **OR**,
not AND, when both are restricted.

## Tools

### `validate_cron_expression`
Syntax + semantic validation: OR-not-AND warning, every-minute footgun, day-of-month values some months don't
have (31, 30, 29), a nudge to check DST risk for anything in the 1-3am window. Returns a plain-English explanation
of what the expression means.

### `get_next_fire_times`
Next N fire times, DST-aware. If a scheduled local time falls in a spring-forward gap it's flagged as skipped; if
it falls in a fall-back overlap, both real firings are returned as ambiguous.

### `detect_dst_risk`
Scans a full year ahead and reports every date where the schedule collides with a DST transition — run this once
on any job scheduled in the 1-4am local window before you ship it.

## Use it

**Hosted (recommended):** [MCPize](https://mcpize.com/mcp/cron-schedule-audit-mcp) — free tier, $7/mo Pro.

**Self-host:**
```bash
npm install
node server.js
```

## Part of a small suite

[mcp-schema-audit-mcp](https://github.com/tylerscomic-lab/mcp-schema-audit-mcp),
[regex-safety-audit-mcp](https://github.com/tylerscomic-lab/regex-safety-audit-mcp),
[claude-cost-audit-mcp](https://github.com/tylerscomic-lab/claude-cost-audit-mcp).

## License

MIT