Skip to main content
Glama

cron-mcp

An MCP (Model Context Protocol) server that lets AI coding agents — Claude, Cursor, Copilot, Cline — parse, validate, explain, and preview cron expressions.

Built to catch silent cron bugs (impossible schedules, OR-semantics gotchas, midnight spikes) before a job is deployed — a class of mistake that's easy to make and hard to notice until a critical job silently fails to fire.

Why

Cron expressions are deceptively tricky. Common silent failures:

  • 0 0 30 2 *never runs (February has no 30th). Syntactically valid, semantically dead.

  • 0 0 1,15 * 1 → fires on the 1st OR 15th OR Monday, not "the 1st and 15th if Monday" (the classic dom+dow OR-semantics trap).

  • */7 * * * * → uneven step; intervals drift (:00, :07, :14, …, :56, :00 — not "every 7 minutes" cleanly).

  • 0 0 * * *midnight spike; every job in the system competes at 00:00.

cron-mcp surfaces these as warnings, observations, and suggestions that the AI agent can act on — before you ship the schedule.

Related MCP server: mcp-time-tools

Tools exposed

Tool

Description

parse_cron

Parse a cron expression → plain-English description of when it fires. Supports 5-field standard cron + L (last), W (nearest weekday), # (nth weekday), named months/days.

validate_cron

Deep validation: impossible schedules, OR-semantics, midnight spikes, uneven steps, leap-year edges, frequency estimate (~runs/year).

next_runs

Compute the next N fire times as ISO-8601 + relative offsets.

cron_presets

Library of common, proven schedules (every 5 min, hourly, weekdays 9am, monthly, quarterly, …).

Install

npm install -g cron-mcp-server

Configure

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS:

{
  "mcpServers": {
    "cron": {
      "command": "cron-mcp-server",
      "args": []
    }
  }
}

Cursor

Add to .cursor/mcp.json (or ~/.cursor/mcp.json for global):

{
  "mcpServers": {
    "cron": {
      "command": "cron-mcp-server"
    }
  }
}

VS Code (Copilot)

{
  "mcp.servers": {
    "cron": {
      "type": "stdio",
      "command": "cron-mcp-server"
    }
  }
}

Direct (no install)

npx cron-mcp-server

Example usage

Once connected, just ask the agent in natural language:

  • "Validate this cron: 0 0 30 2 *"

  • "When does */5 * * * * next fire?"

  • "Give me a cron for every weekday at 9am"

  • "Is there anything risky about 0 0 1,15 * 1?"

The agent calls the tools and returns structured, actionable results.

Engine

The cron engine is battle-tested: 638 lines, zero dependencies, originally extracted from a browser-based cron generator and hardened with 69 unit tests. This MCP server is a thin tool wrapper around it.

License

MIT © takeaseatventure

Available Tools

4 tools
cron_presetsA

Return a library of common cron expression presets (every 5 min, hourly, daily at midnight, weekdays 9am, monthly, quarterly, yearly, etc.) with their plain-English labels. Use this when a user asks for a "common" or "standard" schedule and you want to offer proven starting points.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It describes the operation as returning a library with labels, but does not disclose any potential side effects, limits, or detailed output format. Acceptable for a simple read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose with examples, second gives usage guidance. No unnecessary words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and sibling tools, the description adequately covers purpose and usage. It does not detail the exact output structure, but the mention of 'plain-English labels' implies a basic format, which is sufficient for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params, schema coverage 100%), so baseline is 4. The description adds meaning by specifying the content of the library (common presets with labels) beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a library of common cron expression presets with examples (every 5 min, hourly, etc.) and explicitly distinguishes it from siblings like parse_cron, validate_cron, and next_runs by focusing on presets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this when a user asks for a common or standard schedule'. Does not explicitly state when not to use, but context with sibling tools implies alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

next_runsA

Compute the next N scheduled run times for a cron expression. Returns ISO-8601 timestamps with relative offsets (+5m, +1h, +2d). Use this to preview when a job will actually fire before committing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoISO-8601 start time (defaults to now).
countNoHow many future runs to compute (default 5, max 50).
expressionYesThe cron expression.

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only mentions return format (ISO-8601 with offsets) but lacks disclosure on side effects, error conditions, timezone handling, or any constraints beyond count max. For a read-only preview tool, more transparency is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. First sentence defines action and output; second gives usage guidance. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 simple parameters and no output schema, the description adds enough context about output format and use case. Slight gap on timezone details, but overall complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters (100% coverage). Description adds value by specifying that output includes relative offsets, which supplements the parameter descriptions. Baseline 3 for high coverage, plus extra meaning justifies 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool computes next scheduled run times for a cron expression. Verb 'compute' and resource 'cron expression' are specific. Sibling tools (parse_cron, validate_cron, cron_presets) have distinct purposes, and the description implies differentiation without explicit mention.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this tool to preview when a job will fire before committing. Provides clear context, but no when-not-to-use guidance or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

parse_cronA

Parse a cron expression and return a human-readable description of when it fires. Supports 5-field standard cron (min hour dom month dow) plus extensions: L (last day/weekday), W (nearest weekday), # (nth weekday), and named months/days (JAN..DEC, SUN..SAT). Use this to explain any cron schedule in plain English.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesThe cron expression to parse, e.g. "*/5 * * * *" or "0 9 * * 1-5".

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description makes clear this is a parse-only operation that produces text. It does not mention side effects or destruction, and given the nature (parsing), that is sufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that efficiently convey purpose, supported features, and usage guidance. No redundant or vague wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no required output schema), the description fully covers what the agent needs to know: what it does, what it accepts, and when to use it. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter, but the schema's description is just an example. The tool's description adds valuable detail about supported extensions (L, W, #, named months/days), which helps the agent construct valid inputs beyond basic cron syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses a cron expression and returns a human-readable description. It specifies the supported formats (5-field standard plus extensions) and explicitly says 'Use this to explain any cron schedule,' making purpose and scope clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for explaining cron schedules in plain English, which distinguishes it from siblings like validate_cron (syntax check) and next_runs (future times). However, it does not explicitly state when not to use it or provide alternatives, so a slight deduction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_cronA

Deeply validate a cron expression for correctness and common mistakes. Catches: impossible schedules (e.g. day 31 in Feb), OR-semantics gotchas (dom AND dow both restricted = either matches, not both), midnight scheduling spikes, uneven step values (*/7), leap-year edge cases, weekday-only warnings, and more. Returns warnings, observations, optimization suggestions, and an estimated yearly run count. Use this BEFORE deploying a cron job to catch silent failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesThe cron expression to validate.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes specific catches (impossible schedules, OR-semantics, etc.) and output types (warnings, observations, optimization suggestions, yearly run count). No annotations provided, so description carries burden well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then lists caught issues, then output. Slightly verbose but each sentence adds value. Could be tighter, but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes various edge cases and output clearly. No output schema, but explanation of return types (warnings, observations, etc.) is sufficient for agent to understand tool behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'expression' with schema coverage 100%. Description adds no further detail beyond the schema description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'validate' and resource 'cron expression', lists specific checks (impossible schedules, OR-semantics, etc.), and distinguishes from siblings like parse_cron and next_runs which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends use 'BEFORE deploying a cron job to catch silent failures'. Context implies when not to use (when parsing or generating runs), but no explicit when-not or alternative tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool serves a distinct purpose: parse (human-readable description), validate (error detection), next_runs (future schedule preview), and cron_presets (common schedules). No overlaps.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: parse_cron, validate_cron, next_runs, cron_presets.

Tool Count5/5

With 4 tools, the server covers the essential operations for a cron utility: parsing, validation, preview, and preset library. Not too few or too many.

Completeness4/5

The tool set covers core cron tasks (parse, validate, preview, presets). Minor gaps include no tool to generate a cron expression from natural language or handle timezones explicitly, but these are not critical.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables exploration, explanation, and management of crontab entries, including translating cron expressions into plain English and calculating upcoming execution times.
    8
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides date, time, and timezone tools for AI agents via MCP, including timezone conversion, date calculation, cron parsing, timestamp conversion, and duration formatting.
    54
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Parse, validate, and explain cron expressions with pay-per-call via x402 (USDC on Base L2), returning next run times in any timezone.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Parses cron expressions, returns next fire times, and provides an English description.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/takeaseatventure/cron-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server