Task scheduling engine for autonomous agents — cron, interval triggers, business-day calendars, maintenance mode, priority queues, retry logic, webhooks, templates, job groups, API key auth, SQLite backend, REST API, MCP server, concurrency control & resource locks
16 tools with explicit schemas and descriptions. Naming is consistent (scheduler_* prefix) and action-oriented. Descriptions are present but often generic (avg ~80 chars, below 194-char baseline). Schemas are well-structured with types and enums, but output schemas are undocumented. Parameters lack descriptions in several tools (e.g., scheduler_list_jobs 'status' enum has no description text). Error handling and recovery guidance are absent. No tool annotations (readOnlyHint, destructiveHint). Composition is sound, tools are single-responsibility and chainable.
Create a job dependency — the dependent job runs after the dependency job completes with the specified status.
Create a new scheduled job. Supports cron (recurring), delay (one-time after N seconds), run_at (specific time), or immediate execution.
Create a webhook subscription to receive HTTP callbacks on job events (completion, failure, retry, etc.).
Delete a scheduled job and its execution history.
Get all dependencies for a job.
Get execution history for a specific job or all jobs.
Output schemas undocumented. No tool returns a documented response structure. LLMs cannot plan downstream calls or extract required fields (e.g., job_id from create_job response).
No tool annotations. Tools lack readOnlyHint (list_*, get_*), destructiveHint (delete_job), or idempotentHint. Agents cannot distinguish safe reads from destructive writes without reading descriptions.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or next steps. E.g., 'Job not found' should suggest search_jobs() or list_jobs().
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get detailed information about a specific job by ID or name.
Get all jobs with a specific tag.
Get the next scheduled run time for a job.
Get scheduler statistics (job counts, execution counts, tags).
List all scheduled jobs with optional filtering by tag or status.
List all tags across all jobs.
Pause a job (stops scheduling but preserves configuration).
Resume a paused job.
Manually trigger a job execution immediately.
Update a job's configuration (cron, priority, tags, payload, etc.).
Parameter descriptions missing or generic. scheduler_list_jobs 'status' enum lacks description. scheduler_get_stats and scheduler_list_tags have empty inputSchema properties with no guidance.
No pagination guidance. scheduler_get_history accepts 'limit' but no offset/cursor or total_count in response. Large result sets risk context window exhaustion.