silentwatch-mcp

silentwatch-mcp

An MCP server that surfaces scheduled-job state and detects silent failures (exit 0 but no useful output) for cron, systemd timers, and OpenClaw schedulers, enabling AI agents to query job health and overdue status directly.

Category
访问服务器

README

silentwatch-mcp

<!-- mcp-name: io.github.temurkhan13/silentwatch-mcp -->

Catch the cron failures your monitoring is silent about. An MCP server that surfaces scheduled-job state — runs, overdue jobs, and silent failures that exit 0 but produced nothing useful — to any Claude or MCP-aware agent. Works with OpenClaw schedulers, system cron, and systemd timers out of the box.

Status: v1.0.1 Tests: 74 passing License: MIT MCP PyPI


What it does

Every team running scheduled jobs has hit at least one of these:

  • Silent failure — the job ran, returned exit code 0, but produced no useful output (a web-search cron returning empty, a backup that wrote a 0-byte file, a digest email that sent with <no rows> in the body). Traditional monitoring sees a green checkmark; the data is broken anyway.
  • Overdue without alert — a job stopped running for 3 days; nobody noticed because nobody was watching
  • Last-success drift — the job runs every hour but only succeeded once in the last 12 attempts; everyone assumes it's healthy because the most recent run was green
  • Audit-trail gap — you need to know when a specific job last completed for a compliance check, and the only "log" is journalctl output that rotated last week

silentwatch-mcp exposes that visibility as MCP tools your AI agent can query directly. No metrics pipeline, no separate dashboard, no SaaS subscription.

> claude: which of my cron jobs have silent failures in the last 24 hours?
[MCP tool: find_silent_failures]
3 jobs flagged:
  • web-search-refresh — ran 12× successfully but output empty in 8 (66% silent fail rate)
  • daily-summary — ran 1× successfully (24× expected); output normal
  • audit-snapshot — last success 5 days ago, all subsequent runs returned exit 0 with empty body

Why silentwatch-mcp

Three things existing tools (Cronitor, Healthchecks.io, Datadog, Prometheus) don't do:

  1. Detect silent failures, not just exit codes. Traditional cron monitoring assumes exit 0 = success. We check the output against configurable rules: empty output, length anomaly vs historical median, error keywords in stdout despite exit 0, duration anomaly. The job that "ran successfully" but returned nothing useful — that's the failure mode that hides for weeks. We catch it.
  2. MCP-native, no integration layer. Claude Desktop, Cline, Continue, OpenClaw agents — any MCP-aware client queries directly. No Grafana plugin, no API wrapper, no JSON to parse manually.
  3. Multi-source out of the box. OpenClaw native JSONL logs, system crontab (/etc/crontab + /etc/cron.d/* + per-user crontab -l), and systemd timers (systemctl list-timers + journalctl) — all four backends ship in v0.3, so you can run silentwatch-mcp against whatever scheduler you have. No vendor lock-in.

Built for the SMB self-hoster running a $40 VPS where Datadog is overkill and a "$0/mo open-source MCP" is the right price point — but the silent-failure detection is just as valuable on enterprise infra.


Tool surface

The server registers these MCP tools (full spec in SPEC.md):

Tool What it does
list_jobs Enumerate all known cron jobs with last-run summary
get_job_status(job_id) Detailed status for one job: last run, last success, success rate over window
get_job_runs(job_id, limit) Recent run history with timing + status + output snippet
find_overdue_jobs Jobs whose schedule says they should have run but haven't
find_silent_failures(window_hours) Jobs that ran "successfully" but output looks suspicious
tail_job_logs(job_id, lines) Recent log output for one job

Resources:

  • cron://jobs — list of all jobs (manifest)
  • cron://job/{id} — individual job manifest + recent runs
  • cron://run/{id} — individual run instance with full output

Prompts:

  • diagnose-overdue — diagnostic prompt template for an overdue job
  • summarize-cron-health — daily digest of cron activity + anomalies

Quickstart

v0.3 beta — all 4 backends shipped + real overdue detection via cron-schedule parsing (croniter). Mock, OpenClaw JSONL, crontab, and systemd backends are all production-ready. 74 tests passing. v1.0 is now polish: PyPI release + GitHub Actions CI + MCP registry submissions.

Install

pip install silentwatch-mcp  # not yet on PyPI; install from source for now:
pip install -e .

Configure for Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "silentwatch": {
      "command": "python",
      "args": ["-m", "silentwatch_mcp"],
      "env": {
        "SILENTWATCH_BACKEND": "mock"
      }
    }
  }
}

Backends (all four shipped as of v0.3):

  • SILENTWATCH_BACKEND=mock — returns sample data (default for development)
  • SILENTWATCH_BACKEND=openclaw-jsonl — parses OpenClaw's native cron run JSONL files (set SILENTWATCH_OPENCLAW_LOGS to the directory, default ~/.openclaw/cron-runs/); richest data — full run history + silent-fail detection
  • SILENTWATCH_BACKEND=crontab — parses /etc/crontab + /etc/cron.d/* + user crontabs (crontab -l); last-run inferred from /var/log/syslog or /var/log/cron (set SILENTWATCH_SYSLOG to override)
  • SILENTWATCH_BACKEND=systemd — parses systemctl list-timers --all --output=json + journalctl -u <unit> for run history; lifts OnCalendar= into the schedule field

All non-mock backends gracefully return empty results on platforms / hosts where the underlying tooling isn't present, so configuration is safe to leave in place across environments.

Restart Claude Desktop

The server registers as silentwatch. Test:

Show me all my cron jobs and their last-run status.


Roadmap

Version Scope Status
v0.1 Protocol wiring, mock backend, all 6 tools registered with stub data, tests pass ✅ Complete
v0.2 OpenClaw JSONL backend implemented (real cron run parsing, malformed-line handling, silent-fail enrichment) ✅ Complete (2026-05-02)
v0.3 Crontab + systemd backends; cron-schedule parsing for real overdue detection (croniter); 35 new tests ✅ Complete (2026-05-02)
v1.0 Polish: PyPI release, GitHub Actions CI, MCP registry submissions (Glama + PulseMCP), refined silent-fail rule configuration ⏳ Phase 1 ship target (W3, May 18)
v1.x Additional backends (Cowork scheduler, Claude Code background tasks, generic JSON config), webhook emitter for alerts ⏳ Phase 2+

Need this adapted to your stack?

silentwatch-mcp ships with 4 backends (mock, OpenClaw JSONL, crontab, systemd). If your scheduler is something else — AWS EventBridge, GCP Cloud Scheduler, Hangfire, Sidekiq, Temporal, Apache Airflow, Prefect, Dagster, or a custom job runner — and you want the same silent-failure-detection MCP visibility surface for it, that's a Custom MCP Build engagement.

Tier Scope Investment Timeline
Simple Single backend adapter for an existing scheduler with documented API (e.g., GCP Cloud Scheduler) $8,000–$10,000 1–2 weeks
Standard Custom backend + custom silent-fail rules + integration with your existing alerting (PagerDuty, Slack, etc.) $15,000–$20,000 2–4 weeks
Complex Multi-backend (federated cron across regions / clusters / tenants) + RBAC + audit-log integration + on-call workflow $25,000–$35,000 4–8 weeks

To engage:

  1. Email admin@pixelette.tech with subject Custom MCP Build inquiry
  2. Include: a 1-paragraph description of your scheduler stack + which tier you're considering
  3. Reply within 2 business days with a 30-min discovery call slot

This server is also part of the AI Production Discipline Framework — the methodology underlying production AI audits I run.


Production AI audits

If you're running production AI and want an outside practitioner to score readiness, find the failure patterns that are already present, and write the corrective-action plan — that's what this MCP is built into supporting. The standalone audit service:

Tier Scope Investment Timeline
Audit Lite One system, top-5 findings, written report $1,500 1 week
Audit Standard Full audit, all 14 patterns, 5 Cs findings, 90-day follow-up $3,000 2–3 weeks
Audit + Workshop Standard audit + 2-day team workshop + first monthly audit included $7,500 3–4 weeks

Same email channel: admin@pixelette.tech with subject AI audit inquiry.


Contributing

PRs welcome. The structure is intentionally flat to make custom backends easy to add — see src/silentwatch_mcp/backends/ for existing examples.

To add a new backend:

  1. Subclass CronBackend in backends/<your_backend>.py
  2. Implement list_jobs, get_job_runs, tail_logs
  3. Register in backends/__init__.py
  4. Add tests in tests/test_backend_<your_backend>.py

Bug reports + feature requests: open a GitHub issue.


License

MIT — see LICENSE.


Related


Built by Temur Khan — independent practitioner on production AI systems. Contact: admin@pixelette.tech

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选