CronSpell

Validate and explain cron expressions; list next/previous run times in any time zone, DST-aware.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
100%
Calidad de los nombres
90%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,817Tokens (definiciones de herramientas)
~3.6 KBTamaño de respuesta típico
Impacto moderado en la atención (1.42% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "cronspell": {
      "url": "https://cronspell.mike-tusa.workers.dev/mcp"
    }
  }
}

Puntos de conexión remotos

https://cronspell.mike-tusa.workers.dev/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (4)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢validate_cron(expression)

Check whether a cron expression is valid. Returns valid true with the expanded values of every field (minute, hour, day of month, month, day of week, and seconds for 6-field expressions), or valid false with an error code, the field at fault and a message. Detects schedules that can never run (e.g. February 30). Read-only. Same engine as GET /api/validate.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Cron expression, e.g. \"0 9 * * 1-5\", \"*/15 * * * *\", \"0 30 8 * * *\" (6 fields = leading seconds) or \"@daily\"."
    }
  },
  "required": [
    "expression"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean"
    },
    "expression": {
      "type": "string"
    },
    "normalized": {
      "type": "string"
    },
    "format": {
      "type": "string",
      "enum": [
        "standard",
        "seconds",
        "shorthand"
      ]
    },
    "dayMatching": {
      "type": "string",
      "enum": [
        "or",
        "and"
      ]
    },
    "fields": {
      "type": "object"
    },
    "description": {
      "type": "string"
    },
    "error": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "valid",
    "expression",
    "version"
  ]
}
🟢explain_cron(expression)

Explain a cron expression in plain English, e.g. "0 9 * * 1-5" → "At 09:00, on Monday through Friday." Also returns notes on cron rules that often surprise people (day-of-month OR day-of-week, seconds field, shorthand expansion). Invalid expressions return isError with the reason. Read-only. Same engine as GET /api/explain.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Cron expression, e.g. \"0 9 * * 1-5\", \"*/15 * * * *\", \"0 30 8 * * *\" (6 fields = leading seconds) or \"@daily\"."
    }
  },
  "required": [
    "expression"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string"
    },
    "normalized": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "format": {
      "type": "string"
    },
    "dayMatching": {
      "type": "string"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "version": {
      "type": "string"
    }
  },
  "required": [
    "expression",
    "description",
    "version"
  ]
}
🟢next_cron_runs(expression, timezone, count, from, direction)

List the next (or, with direction "previous", the most recent past) run times of a cron expression in an IANA time zone, DST-aware. Each run has the local time with its UTC offset, the UTC time, unix seconds and weekday. Default 5 runs, max 20; searches up to 50 years. Read-only. Same engine as GET /api/next and GET /api/previous.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Cron expression, e.g. \"0 9 * * 1-5\", \"*/15 * * * *\", \"0 30 8 * * *\" (6 fields = leading seconds) or \"@daily\"."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9_+\\-/]+$",
      "default": "UTC",
      "description": "IANA time zone the schedule runs in, e.g. \"America/Denver\", \"Europe/London\". Default UTC."
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "default": 5,
      "description": "How many runs (1-20)."
    },
    "from": {
      "type": "string",
      "maxLength": 40,
      "description": "Start point (exclusive); default now. ISO 8601 with Z or an offset (2026-11-01T09:00:00Z), a local time read in the time zone (2026-11-01T09:00), or unix seconds."
    },
    "direction": {
      "type": "string",
      "enum": [
        "next",
        "previous"
      ],
      "default": "next",
      "description": "\"next\" (default) or \"previous\" (most recent first)."
    }
  },
  "required": [
    "expression"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string"
    },
    "normalized": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "description": "Local ISO 8601 time with UTC offset"
          },
          "utc": {
            "type": "string"
          },
          "unix": {
            "type": "number"
          },
          "weekday": {
            "type": "string"
          },
          "offset": {
            "type": "string"
          },
          "dst": {
            "type": "string",
            "enum": [
              "repeated"
            ]
          }
        },
        "required": [
          "time",
          "utc",
          "unix",
          "weekday",
          "offset"
        ]
      }
    },
    "complete": {
      "type": "boolean"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "version": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "direction": {
      "type": "string"
    }
  },
  "required": [
    "expression",
    "timezone",
    "runs",
    "complete",
    "notes",
    "version"
  ]
}
🟢cron_runs_between(expression, timezone, start, end, limit)

List every run of a cron expression between start and end (both inclusive) in an IANA time zone, DST-aware, oldest first. Default limit 20, max 100; truncated is true when there are more. Read-only. Same engine as GET /api/between.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Cron expression, e.g. \"0 9 * * 1-5\", \"*/15 * * * *\", \"0 30 8 * * *\" (6 fields = leading seconds) or \"@daily\"."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9_+\\-/]+$",
      "default": "UTC",
      "description": "IANA time zone the schedule runs in, e.g. \"America/Denver\", \"Europe/London\". Default UTC."
    },
    "start": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "description": "Window start (inclusive). ISO 8601 with Z or an offset (2026-11-01T09:00:00Z), a local time read in the time zone (2026-11-01T09:00), or unix seconds."
    },
    "end": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40,
      "description": "Window end (inclusive). ISO 8601 with Z or an offset (2026-11-01T09:00:00Z), a local time read in the time zone (2026-11-01T09:00), or unix seconds."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Max runs to return (1-100)."
    }
  },
  "required": [
    "expression",
    "start",
    "end"
  ],
  "additionalProperties": false
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string"
    },
    "normalized": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "description": "Local ISO 8601 time with UTC offset"
          },
          "utc": {
            "type": "string"
          },
          "unix": {
            "type": "number"
          },
          "weekday": {
            "type": "string"
          },
          "offset": {
            "type": "string"
          },
          "dst": {
            "type": "string",
            "enum": [
              "repeated"
            ]
          }
        },
        "required": [
          "time",
          "utc",
          "unix",
          "weekday",
          "offset"
        ]
      }
    },
    "complete": {
      "type": "boolean"
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "version": {
      "type": "string"
    },
    "start": {
      "type": "string"
    },
    "end": {
      "type": "string"
    },
    "truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "expression",
    "timezone",
    "runs",
    "truncated",
    "notes",
    "version"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada4 herramientas