cron-mcp

cron-mcp

Schedule any prompt on any cron expression; when it fires, we POST the job to your callback URL. No LLM in the stack.

Category
Visit Server

README

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

Tool Purpose
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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured