Skip to main content

Task scheduling for AI agents — cron, intervals, delays via MCP

Project description

schedulermcp

Task scheduling for AI agents -- cron, intervals, delays via MCP

Part of the MCP AI Suite.

Features

  • Cron scheduling -- 5-field cron expressions (*, */N, N-M, N,M; weekday 0 = Monday) for recurring jobs
  • Interval and one-shot jobs -- fixed-interval repeats or single delayed execution
  • Watch jobs -- event-driven triggers that monitor shell commands and fire on condition changes
  • Condition evaluation -- rich condition syntax with numeric comparisons, contains, and variable interpolation
  • Pluggable executors -- log, webhook, or kernel (routes job goals through kernelmcp)
  • Pluggable stores -- in-memory or SQLite for job persistence across restarts
  • Exponential backoff retry with configurable max failures
  • Job lifecycle -- create, pause, resume, cancel, delete with full history tracking

Installation

pip install mcpaisuite-schedulermcp
# Optional extras:
pip install mcpaisuite-schedulermcp[dev]       # Development tools
pip install mcpaisuite-schedulermcp[all]       # All integrations
pip install mcpaisuite-schedulermcp[kernel]    # KernelMCP executor integration
pip install mcpaisuite-schedulermcp[webhook]   # Webhook executor

Quick Start

from schedulermcp import SchedulerFactory

scheduler = SchedulerFactory.create(store="sqlite", sqlite_path="scheduler.db")
job = await scheduler.schedule(
    goal="Generate daily status report",
    job_type="cron",
    cron="0 9 * * *",
)
scheduler.start()  # Start background tick loop

MCP Server

schedulermcp serve

Configuration

Variable Default Description
SCHEDULERMCP_STORE memory Job store: memory or sqlite
SCHEDULERMCP_EXECUTOR log Executor: log, webhook, or kernel
SCHEDULERMCP_SQLITE_PATH scheduler.db SQLite database path
SCHEDULERMCP_TICK_INTERVAL 15 Seconds between scheduler ticks

API Reference

SchedulerPipeline

Manages scheduled jobs -- create, execute, track, persist.

await scheduler.schedule(goal, job_type="once", cron="", interval_seconds=0,
                         delay_seconds=0, namespace="default") -> Job
await scheduler.cancel(job_id) -> bool
await scheduler.pause(job_id) -> bool
await scheduler.resume(job_id) -> bool
await scheduler.list_jobs(namespace="", status="") -> list[Job]
await scheduler.get_history(job_id) -> list[JobResult]
await scheduler.stats(namespace="") -> SchedulerStats
scheduler.start()   # Start background loop
scheduler.stop()    # Stop background loop

SchedulerFactory

SchedulerFactory.default()               # SQLite store, log executor
SchedulerFactory.from_env()              # Build from environment variables
SchedulerFactory.create(store="sqlite", executor="kernel", kernel_pipeline=kernel, ...)

Architecture

SchedulerPipeline runs a background tick loop that checks for due jobs on each tick. Time-based jobs (cron, interval, once) are evaluated against their next_run timestamp. Watch jobs execute a shell command and evaluate a condition expression against the output. The pluggable executor system allows routing job execution through a simple logger (dev), a webhook endpoint, or the full kernelmcp pipeline for autonomous agent-driven execution.

Testing

pip install -e ".[dev]"
pytest tests/ -v

License

AGPL-3.0 — see LICENSE.

Open source for individuals and open-source projects. For commercial use in closed-source products, a commercial license is available — contact gaeldev@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcpaisuite_schedulermcp-1.0.3.tar.gz (43.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcpaisuite_schedulermcp-1.0.3-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file mcpaisuite_schedulermcp-1.0.3.tar.gz.

File metadata

  • Download URL: mcpaisuite_schedulermcp-1.0.3.tar.gz
  • Upload date:
  • Size: 43.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mcpaisuite_schedulermcp-1.0.3.tar.gz
Algorithm Hash digest
SHA256 440e4cfa85e0d7f02681d5efb575380c3283b73f0c7935aa42f58359be38f646
MD5 139415448c3f213b211e17797a9aadac
BLAKE2b-256 8028b9760b3a3eeb5d19804a613be06bb06e5421d880d807f2b313c46c8ce1c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpaisuite_schedulermcp-1.0.3.tar.gz:

Publisher: release.yml on gashel01/schedulermcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcpaisuite_schedulermcp-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for mcpaisuite_schedulermcp-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f2920302e600edec28262c29b001d3a982a8e58c3e11c321c8fa3e6d814f48dc
MD5 986756e7982df5dfba8da8196c62ed84
BLAKE2b-256 b9e1ddeec19b471a35b27330a998cc64903de9500948c4bb99160c5bdeb55b55

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpaisuite_schedulermcp-1.0.3-py3-none-any.whl:

Publisher: release.yml on gashel01/schedulermcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page