Standalone self-scheduling follow-up MCP server — no external dependencies. Schedules tasks that need to be checked later with check-based monitoring and multi-channel notifications.
Server has 9 tools with explicit schemas and descriptions. loop_schedule is comprehensive but parameter-heavy (38 params), risking LLM confusion. Most tools have clear names (verb_noun pattern) and documented inputs. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is absent; no recovery guidance. Parameter descriptions are present but generic (e.g., 'The loop ID to check' lacks format/constraints). No enums for constrained inputs (check_type, notify_method, status filters). Security concern: notification credentials (slack_webhook_url, telegram_bot_token, etc.) exposed as tool parameters instead of server-side injection.
Perform batch maintenance operations on loops.
Cancel an active loop.
Run a check immediately for a specific loop, bypassing the scheduler.
View a dashboard summary of all loops.
View loop history with optional filtering.
List all loops, optionally filtered by status.
Schedule a self-managed follow-up check. No external scheduler needed. The internal scheduler thread will fire the check automatically.
Credentials exposed as tool parameters: slack_webhook_url, telegram_bot_token, discord_webhook_url, teams_webhook_url, pushover_user_key, gotify_app_token, matrix_access_token, twilio_account_sid, twilio_auth_token, smtp_password. These will be logged in agent traces and prompt history. Move to server-side environment variable injection.
No output schemas documented. LLMs cannot predict response structure (e.g., does loop_list return {loops: [...]} or {items: [...], total: N}?). This forces agents to guess field names and risks extraction errors.
No error handling or recovery guidance. Tools return raw errors with no actionable next steps. E.g., 'loop not found' should suggest 'Call loop_list() to see available loops.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Schedule a follow-up using a pre-defined template.
Write loop result to a file.
Constrained inputs lack enums. check_type accepts 'shell, file_exists, http, or grep' as free-form string. notify_method accepts 'file, webhook, slack, ..., all' without enum constraint. LLMs will hallucinate invalid values.
loop_schedule has 38 parameters, exceeding baseline (avg 4, p90=8). Parameter overload increases cognitive load on LLMs and risks incorrect combinations. Consider splitting into loop_schedule (core) + loop_schedule_with_notifications (optional).