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

Apache-2.0 — see LICENSE.

Open source for individuals and open-source projects. For commercial use in closed-source products, a commercial license is available — contact contact@mcpaisuite.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.1.0.tar.gz (36.0 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.1.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcpaisuite_schedulermcp-1.1.0.tar.gz
  • Upload date:
  • Size: 36.0 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.1.0.tar.gz
Algorithm Hash digest
SHA256 f2c153d3fb65a1f7812cda94d72ab334afd54e0ddb28e83a0e8b771a149d75e9
MD5 6f595535088ac5f040da92fdc980ad0b
BLAKE2b-256 9fc8ef62fa74016f131d2b799b058c22ffe22d02f498ca3ecc32038d3ff1050b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpaisuite_schedulermcp-1.1.0.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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcpaisuite_schedulermcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ecc5e2a571e8ac9197e8cce781b44eef24ad1ab2cde228fc03ca88ccb50258d3
MD5 81837987373ec90188bcae4c2efee34f
BLAKE2b-256 b046151656af2a6e9937c736a3981b458843247fbb31d136a5b05aae71dc4386

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcpaisuite_schedulermcp-1.1.0-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