stillrunning-mcp
v0.3.0
Published
MCP stdio server for StillRunning. Safe primitives for an AI coding agent to plan, create, wire, and test job monitors , confirm-before-edit, never leaks ping URLs.
Maintainers
Readme
stillrunning-mcp
An MCP stdio server that lets your coding agent (Claude Code, Codex) install StillRunning monitoring for your cron jobs, scheduled tasks, and agent scripts , safely.
Your agent does the discovery with its own file and shell tools. This server gives it the safe primitives: an idempotent reconcile, per-runtime wiring snippets with fail-paths that never break your job, and a connectivity test that can never fake a healthy run. It never reads or edits your filesystem, and it never leaks ping URLs.
Setup
You need a StillRunning installer API key (create one at stillrunning.ai/app/settings).
Add the server to your agent. For Claude Code (.mcp.json or your MCP config):
{
"mcpServers": {
"stillrunning": {
"command": "npx",
"args": ["-y", "stillrunning-mcp"],
"env": { "STILLRUNNING_API_KEY": "sr_live_xxxxxxxxxxxxxxxxxxxxxxxx" }
}
}
}STILLRUNNING_API_URL is optional and defaults to https://stillrunning.ai.
Tools
| Tool | What it does |
|------|--------------|
| list_monitors | List your monitors (id, schedule, verification + health state). Never returns ping URLs. |
| generate_install_plan | Dry-run reconcile: preview what would be created/updated/unchanged/rejected/missing, writing nothing. |
| create_monitors_from_plan | Apply the confirmed plan (re-send the same monitors[]). Idempotent , re-running never duplicates. |
| get_wiring_snippet | Exact wiring per runtime (crontab, shell, claude-code-wrapper, GitHub Actions, launchd, systemd, node, python, n8n) with a safe fail-path. |
| send_test_ping | Connectivity-test a monitor by id. Verifies the endpoint; never makes it healthy. |
| get_alert_destinations | Show where alerts go (owner email + channels, URLs masked). Read-only. |
| add_alert_channel | Attach a Slack/Discord alert channel (needs a key with channels:write; generic webhooks via the dashboard). |
The flow
- Your agent inspects crontab / launchd / systemd / CI / scripts with its own tools.
generate_install_plan(dry run) , preview the diff.- Your agent shows you the exact files and commands it will change.
- You confirm. Nothing is edited before you say yes.
create_monitors_from_plan, apply; each new monitor returns a ping URL once.get_wiring_snippet, wire each job with a fail-path that can't break it.send_test_ping, verify the endpoint (it shows "waiting for first real run").- The monitor goes healthy on its first real run, and alerts if it ever stops.
Trust contract
- Ping URLs are secrets. Returned only when a monitor is first created; never listed in bulk. An installer key cannot reveal an existing monitor's URL.
- A test ping is not health. It proves the endpoint is reachable. Only a real production run makes a monitor healthy. Test pings are excluded from every health, cost, and anomaly calculation.
- Re-running reconciles, never duplicates, and never clobbers settings you customized.
- This server cannot become a generic fetch tool.
send_test_pingtakes a monitor id only.
Requirements
Node 18+.
License
MIT
