About runvouch
runvouch monitors unattended AI agents to check whether tasks were actually completed and alert on missed, failed, looping, or over-budget runs. Each run receives a verifiable, tamper-evident proof, for scheduled tasks and background agents.
Key features
- 01Detect missed, failed, and stalled runs
- 02Check evidence and flag unproven success
- 03Detect retry loops and budget overruns
- 04Track duration and output drift
- 05Create run records with Merkle proofs
Use cases
- 01Monitor an agent that generates scheduled reports
- 02Require file or URL evidence for successful runs
- 03Alert when an agent exceeds cost or token limits
- 04Verify public proofs for completed runs
MCP support
runvouch includes a stdio MCP server exposing tools for status, alerts, acknowledgments, run history, and starting or ending runs.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.runvouch.com/mcpclaude mcp add --transport http com-runvouch-runvouch https://api.runvouch.com/mcp{"mcpServers":{"com-runvouch-runvouch":{"type":"http","url":"https://api.runvouch.com/mcp"}}}Open in Cursor{"servers":{"com-runvouch-runvouch":{"type":"http","url":"https://api.runvouch.com/mcp"}}}Open in VS Code{"mcpServers":{"com-runvouch-runvouch":{"type":"http","url":"https://api.runvouch.com/mcp"}}}{"mcpServers":{"com-runvouch-runvouch":{"serverUrl":"https://api.runvouch.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://api.runvouch.com/mcpAuth requiredTools
7This tool takes no parameters.
Details
From the project README
RunVouch
The watchdog for unattended AI agents: proof they did the job, and an alert the moment they don't (or start spending), with a tamper-evident proof per run.
Claude Code Routines · headless claude -p · OpenClaw · n8n · cron
Website · Docs · Verify a run · Field notes · MCP Registry · Product Hunt
A green run means the scheduler worked, not that the task got done. RunVouch alerts within minutes when a scheduled agent is missing, failed, looping, over budget, drifting, or reported success without evidence.
pip install runvouch # or: npm install -g runvouch (zero-dependency client + rv CLI)
rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidence
rv run nightly-report --evidence-file out/report.html -- claude -p "build tonight's report"
No client, no header: every agent also has a ping URL, so anything that can call a URL can report.
0 3 * * * /usr/local/bin/nightly.sh; curl -fsS -m 10 https://api.runvouch.com/ping/<token>/$?
Nothing for success, /start to open a run, /fail, or the exit code. rv agent NAME prints the URL.
Verifiable runs
Every finished run gets a sha256 record, every UTC day a Merkle root chained to the previous day and stamped in Bitcoin with OpenTimestamps. The day files are public at https://api.runvouch.com/proof/ and templates/verify_proof.py (stdlib only) checks a proof without our code. On every plan, Free included.
rv proof RUN_ID --verify # recomputes leaf + Merkle path against the public day file, exit 0 or 1
Check it yourself, no account: https://runvouch.com/verify hands you one real sealed run from our own fleet, recomputes every hash in your browser, and has a button that edits a field so you can watch it break.
Mechanism and limits: https://runvouch.com/docs/proof · who needs it: https://runvouch.com/verifiable-agent-runs
Detectors
| Alert | Meaning |
|---|---|
MISSED | expected run never started (dead scheduler, expired auth, crash before first line) |
FAILED | run ended non-zero / status=fail |
NO_EVIDENCE | run said ok but required proof (file written, URL 200, assertion) is missing, green ≠ done |
RETRY_STORM | same tool + identical input ≥ N times in one run (the invisible loop that costs $437) |
BUDGET_RUN / BUDGET_DAY | cost or tokens over the cap you set. On Solo and Team the agent is paused and its next run is refused until rv agent NAME --resume |
DRIFT | duration / output size off its 7-run baseline (robust MAD), silently doing something else |
STALLED | started, no end and no heartbeat past max runtime |
Alerts go to e-mail, Telegram, Slack, any JSON webhook, PagerDuty (Team) and the dashboard.
Layout
runvouch/server.py FastAPI + SQLite, all detectors, dashboard at /
runvouch/cli.py `rv`, stdlib-only client: rv agent / rv run -- CMD / rv status / rv alerts / rv proof
integrations/claude-code-plugin Claude Code plugin: SessionStart/PostToolUse/Stop hooks → RunVouch
integrations/mcp MCP server (stdio): runvouch_status/alerts/ack/runs/run_start/run_end
site/build.py generates the site into site/public/ (served by the same server)
tests/ 123 tests (pytest, no network)
docs/SELF_HOSTING.md run it yourself: Docker or venv, what differs from hosted
Self-hosting
One process, one SQLite file, Docker or a venv. Full guide in docs/SELF_HOSTING.md (ten minutes, what differs from the hosted service, how to move later).
cp .env.example .env && docker compose up -d # or: pip install -r requirements.txt && ./run.sh
curl -X POST "localhost:8787/admin/accounts?name=me&plan=team" -H "X-Admin-Token: $RUNVOUCH_ADMIN_TOKEN" # -> api_key
Use
export RUNVOUCH_KEY=rv_... RUNVOUCH_URL=http://localhost:8787
rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidence
rv run nightly-report --evidence-file out/report.html -- claude -p "build tonight's report"
rv status ; rv alerts
Claude Code plugin: see integrations/claude-code-plugin/README.md.
MCP: claude mcp add runvouch -e RUNVOUCH_KEY=... -- python3 integrations/mcp/runvouch_mcp.py
Test and contribute
.venv/bin/pip install -r requirements-dev.txt && .venv/bin/python -m pytest -q tests
See CONTRIBUTING.md.
Hosted vs self-host
Hosted at runvouch.com: free for 3 agents, $19 Solo, $99 Team, alerts, dashboard, a nightly database backup on the server, EU hosting. Self-host: this repo, MIT. Same code.
Compare
vs Healthchecks.io · vs Cronitor · vs Langfuse
License
MIT.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.