{"name":"com.crontoenglish/cron-translator","slug":"crontoenglish-cron-translator","title":"Cron Translator","description":"Explain cron expressions in English, list next run times, and catch scheduling gotchas.","url":"https://mcp.market/server/crontoenglish-cron-translator","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T01:55:53.407Z","last_ok_at":"2026-09-21T01:55:53.407Z","latency_ms":747},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bwalvoord/gumball","website":"https://crontoenglish.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://crontoenglish.com/api/mcp"}],"packages":[],"tools":[{"name":"build_cron","description":"Convert an English schedule description into a standard five-field cron expression, then explain and validate the result.\n\nUse this when a user describes a schedule in words and needs the expression. This is a RULE-BASED converter, not a language model: it handles a fixed grammar and returns an error listing the supported phrasings when a phrase falls outside it. That refusal is deliberate — a plausible-looking wrong schedule is worse than no answer. If a phrase is rejected, rephrase it into one of the supported shapes and call again.\n\nReturns the expression, which rule matched, any words the rules did not use (check these — leftover words may mean the phrase was misread), the English description of the result, warnings, and the next run times.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"phrase":{"type":"string","description":"An English schedule description, for example \"every weekday at 9am\" or \"on the 1st of every month at midnight\". Times accept 24-hour (\"14:30\"), 12-hour (\"2:30pm\"), \"midnight\", and \"noon\"."},"timezone":{"default":"UTC","description":"IANA timezone name, for example \"UTC\", \"America/New_York\", or \"Europe/Berlin\". Cron expressions carry no timezone of their own, so this decides when the schedule actually fires. Defaults to UTC.","type":"string"}},"required":["phrase"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"explain_cron","description":"Translate a cron expression into plain English, list its upcoming run times in a specific timezone, and report the gotchas that make schedules misfire.\n\nUse this whenever a cron expression needs to be read, verified, or explained — and prefer it over reasoning about the expression directly. Cron has several counter-intuitive rules that are easy to get wrong: day-of-month and day-of-week are combined with OR (not AND) when both are set, steps like */7 do not divide their field evenly, dates like February 30 never fire at all, and daylight-saving transitions skip or repeat runs. This tool checks all of them.\n\nReturns the normalised expression, a one-sentence description, a per-field breakdown, a list of warnings with severity and a fix for each, the next run times as both UTC ISO 8601 instants and local wall-clock strings, and an approximate runs-per-day figure.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"expression":{"type":"string","description":"A standard five-field cron expression: \"minute hour day-of-month month day-of-week\", for example \"0 9 * * 1-5\". Accepts *, numbers, ranges (9-17), lists (1,15), steps (*/5), three-letter month and day names (JAN, MON), and the @daily, @hourly, @weekly, @monthly, @yearly macros. A six-field expression is accepted and its leading seconds field is reported as non-standard."},"timezone":{"default":"UTC","description":"IANA timezone name, for example \"UTC\", \"America/New_York\", or \"Europe/Berlin\". Cron expressions carry no timezone of their own, so this decides when the schedule actually fires. Defaults to UTC.","type":"string"},"count":{"default":5,"description":"How many upcoming run times to return. 1-25, default 5.","type":"integer","minimum":1,"maximum":25}},"required":["expression"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"next_cron_runs","description":"List the next run times for a cron expression in a specific timezone, with no prose.\n\nUse this when the only question is \"when does this next fire\" — for example to check whether a job will run before a deadline, or to show a user their upcoming schedule. Do not compute these dates yourself: weekday arithmetic, month lengths, and daylight-saving shifts make manual calculation unreliable.\n\nReturns each run as a UTC ISO 8601 instant plus a local wall-clock rendering in the requested timezone. Refuses Quartz-only syntax (L, W, #, ?) rather than guessing.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"expression":{"type":"string","description":"A standard five-field cron expression: \"minute hour day-of-month month day-of-week\", for example \"0 9 * * 1-5\". Accepts *, numbers, ranges (9-17), lists (1,15), steps (*/5), three-letter month and day names (JAN, MON), and the @daily, @hourly, @weekly, @monthly, @yearly macros. A six-field expression is accepted and its leading seconds field is reported as non-standard."},"timezone":{"default":"UTC","description":"IANA timezone name, for example \"UTC\", \"America/New_York\", or \"Europe/Berlin\". Cron expressions carry no timezone of their own, so this decides when the schedule actually fires. Defaults to UTC.","type":"string"},"count":{"default":5,"description":"How many upcoming run times to return. 1-25, default 5.","type":"integer","minimum":1,"maximum":25}},"required":["expression"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-20T16:20:28.471Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:20:28.444Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1523ms"]},"poisoning":{"score":15,"max":15,"notes":["3 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"probes":[{"url":"https://crontoenglish.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":1523,"serverInfo":{"name":"cron-translator","version":"0.1.0"}}],"packages":[],"repo":{"found":false,"owner":"bwalvoord","repo":"gumball","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}