io.github.Shreyas-Profile/cron-mcp

Official registry AI and agents

Cron-as-a-service MCP. Schedule prompts; when the cron fires we POST to your callback URL.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

Remote (streamable-http)
Claude Code
claude mcp add --transport http cron-mcp 'https://cron.regiq.in/api/mcp' --header 'Authorization: <Bearer <apiKey> — get yours at https://cron.regiq.in after Google sign-in.>'
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "cron-mcp": {
            "type": "http",
            "url": "https://cron.regiq.in/api/mcp",
            "headers": {
                "Authorization": "<Bearer <apiKey> — get yours at https://cron.regiq.in after Google sign-in.>"
            }
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. cron-mcp
  2. Use it (hosted)
  3. Tools
  4. Webhook payload
  5. Self-host
  6. Architecture
  7. License

cron-mcp

Built by **Shreyas** · Shipped by **Globalion**

Cron-as-a-service MCP. Schedule any prompt on any cron expression; when it fires we POST the job to your callback URL. No LLM in our stack.

Your agent (Claude Desktop, Cursor, a custom script) does the thinking. We just:

  • store the schedule + prompt + your callback URL
  • match minutes against the cron expression
  • POST the job body to your callback, signed with X-Cron-Signature

That's it. Perfect for daily briefings, hourly polls, weekly digests, or anything else that repeats on a fixed schedule and needs to run through an LLM.

Hosted at cron.regiq.in or self-host with the Docker Compose below.

Use it (hosted)

  1. Visit https://cron.regiq.in, sign in with Google or GitHub.
  2. Generate an MCP API key on the dashboard, copy it.
  3. Add to Claude Desktop's claude_desktop_config.json (or Cursor / any MCP client):
      {
        "mcpServers": {
          "cron": {
            "url": "https://cron.regiq.in/api/mcp",
            "headers": {
              "Authorization": "Bearer YOUR_KEY_HERE"
            }
          }
        }
      }
  4. Have your agent call schedule_job with a cron expression, a prompt, and the URL you want us to POST to when it fires.

Tools

ToolPurpose
schedule_job(name, cron, prompt, callbackUrl, ...)Create a scheduled prompt.
list_jobs()Return every job owned by the calling key.
get_job(id)One job + the last 20 fire attempts.
update_job(id, ...)Partial update. Set isActive: false to pause.
delete_job(id)Permanent delete.

Webhook payload

When a job fires, we POST:

POST <your callbackUrl>
Content-Type: application/json
X-Cron-Signature: <hex-hmac-sha256-of-body>

{
  "jobId":    "clx...",
  "name":     "daily AI news briefing",
  "prompt":   "summarise the top 5 AI news items from the last 24h",
  "metadata": { ... },
  "firedAt":  "2026-07-16T08:00:00.412Z"
}

Verify the signature by re-hashing the raw body with your shared signing secret (env CRON_WEBHOOK_SIGNING_SECRET) and comparing to the X-Cron-Signature header. Return any 2xx to mark the fire as ok — anything else is logged as a failure and the schedule still advances (so a failing callback won't stop future runs).

Self-host

You'll need:

  • Docker + Compose
  • A Google OAuth client — Cloud Console. Scopes: openid, email, profile. Redirect: <PUBLIC_BASE_URL>/api/auth/callback/google
  • A public HTTPS domain (Cloudflare Tunnel or ngrok http 3015 locally)

No LLM key required. Your callback is where inference happens.

git clone https://github.com/globalion/cron-mcp
cd cron-mcp
cp .env.example .env
# fill NEXTAUTH_SECRET, GOOGLE_*, PUBLIC_BASE_URL, CRON_WEBHOOK_SIGNING_SECRET
docker compose up -d
# open http://localhost:3015

Architecture

  Your agent                                Your callback
     │                                            ▲
     │ schedule_job(cron, prompt,                 │
     │              callback_url)                 │
     ▼                                            │
   ┌──────────────────────────────────────────────────┐
   │  cron-mcp (Hetzner)                              │
   │  - /api/mcp     Bearer-auth JSON-RPC             │
   │    · schedule_job, list, get, update, delete     │
   │  - Postgres: User, ApiKey, Job, JobRun           │
   │  - Scheduler loop (60s tick) — matches cron,     │
   │    POSTs signed webhook to callback_url,         │
   │    logs a JobRun row per fire.                   │
   └──────────────────────────────────────────────────┘
                             │
                             │  POST (signed)
                             ▼
                    Your callback runs the
                    prompt through the LLM +
                    tools and delivers the result.

License

MIT. See LICENSE.

Frequently asked questions

What is io.github.Shreyas-Profile/cron-mcp?

Cron-as-a-service MCP. Schedule prompts; when the cron fires we POST to your callback URL.

How do I install io.github.Shreyas-Profile/cron-mcp?

It runs as a remote server. In Claude Code: claude mcp add --transport http cron-mcp 'https://cron.regiq.in/api/mcp' --header 'Authorization: <Bearer <apiKey> — get yours at https://cron.regiq.in after Google sign-in.>'. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.Shreyas-Profile/cron-mcp need an API key?

Yes. It expects Authorization, which you set in its configuration.

Is io.github.Shreyas-Profile/cron-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.Shreyas-Profile/cron-mcp?

It is published by globalion. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.