{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_tfnhtskk5upf","handle":"cronspell","url":"https://wellknown.network/agents/cronspell","links":{"self":"https://wellknown.network/agents/cronspell/record.json","html":"https://wellknown.network/agents/cronspell","markdown":"https://wellknown.network/agents/cronspell/record.md","api":"https://wellknown.network/api/v1/agents/cronspell","status":"https://wellknown.network/api/v1/agents/cronspell/status","claim":"https://wellknown.network/agents/cronspell/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/cronspell/claim.json","badge":"https://wellknown.network/agents/cronspell/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/cronspell/history","tools":"https://wellknown.network/api/v1/agents/cronspell/tools"},"ard":{"identifier":"urn:air:cronspell.mike-tusa.workers.dev:server:cronspell","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"CronSpell","summary":"Validate and explain cron expressions; list next/previous run times in any time zone, DST-aware.","description":"Validate and explain cron expressions; list next/previous run times in any time zone, DST-aware.","publisher":{"name":"dev.workers.mike-tusa.cronspell","url":null},"homepage":"https://cronspell.mike-tusa.workers.dev/","repository":null,"version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://cronspell.mike-tusa.workers.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-22T05:51:17.166645Z","publishedAt":"2026-10-22T05:51:17.166645Z","registryName":"dev.workers.mike-tusa.cronspell/cronspell"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"automation.scheduling","name":"Scheduling & Cron","confidence":0.833,"provenance":"derived"}],"categories":["automation"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 8h ago.","lastOkAt":"2026-10-25T03:24:57.048Z","lastProbedAt":"2026-10-25T03:24:57.048Z","statusComputedAt":"2026-10-25T03:27:02.068Z","reliability30d":{"probes":11,"successRate":1,"p50Ms":52,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":11,"ok":11,"authBoundaryOk":0,"serviceOk":11,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-25T03:24:57.048Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":30,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T20:26:27.677Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":72,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T13:30:06.062Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":51,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T07:26:44.678Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":56,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T00:27:25.527Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T17:30:33.322Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":43,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T10:35:38.692Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T03:22:24.781Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":11,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T20:27:15.495Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":93,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T13:29:40.018Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":81,"error":null,"detail":{"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"toolCount":4,"toolsHash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","serverName":"cronspell","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"validate_cron","description":"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 second"},{"name":"explain_cron","description":"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 peop"},{"name":"next_cron_runs","description":"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 "},{"name":"cron_runs_between","description":"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 i"}],"package":null,"toolSurface":{"id":"ts_bvxt7wwjg9ny","endpointId":"ep_mz2udwb4j4zv","hash":"7c99db95d603335d0f037da9e1ab752aaa20460ffbaef24acd16eb13696f570b","toolCount":4,"serverName":"cronspell","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T06:28:24.537Z","lastSeenAt":"2026-10-25T03:24:57.041Z","observations":11,"toolNames":["validate_cron","explain_cron","next_cron_runs","cron_runs_between"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_mz2udwb4j4zv","url":"https://cronspell.mike-tusa.workers.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-23T03:22:24.797Z","auth":{"observedAt":"2026-10-23T03:22:24.803Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-23T03:22:24.823Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"mike-tusa.workers.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-12T19:39:51.000Z","validTo":"2027-01-10T20:37:31.000Z","daysToExpiry":77,"sanCount":2,"fingerprint256":"D5:74:4D:3E:C8:1B:97:0A:54:E3:CD:0B:30:D7:FA:58:6D:44:C2:A9:F2:78:81:4F:7D:B2:5C:8F:9C:2F:96:3B"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.workers.mike-tusa.cronspell/cronspell","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.workers.mike-tusa.cronspell%2Fcronspell","firstSeenAt":"2026-10-22T06:18:35.114Z","fetchedAt":"2026-10-22T06:18:35.114Z","normalizedAt":"2026-10-22T06:18:35.114Z"}]},"firstSeenAt":"2026-10-22T06:18:35.114Z","updatedAt":"2026-10-25T03:27:43.555Z"}