Agent install
MCP server
stillrunning-mcp is a local MCP stdio server that gives Claude Code or Codex a guided flow for installing monitoring: plan, create, wire, and verify. It is the convenience layer over the API-only flow, the curl playbook works without it. Your agent still does the discovery with its own tools; the server never reads or edits your filesystem.
Setup
Create an installer key at stillrunning.ai/app/settings, then add the server to your agent. For Claude Code:
{
"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
list_monitors , list your monitors (never returns ping URLs). generate_install_plan , dry-run reconcile that previews what would be created/updated/unchanged/rejected/missing without writing. create_monitors_from_plan , apply the confirmed plan (re-send the same monitors; idempotent, never duplicates). get_wiring_snippet, the exact wiring per runtime with a fail-path that can't break your job. send_test_ping , connectivity-test a monitor by id (verifies the endpoint, never makes it healthy).
The flow
Your agent scans your jobs → generate_install_plan→ shows you the exact changes → you confirm → create_monitors_from_plan → get_wiring_snippet → send_test_ping→ report. Nothing in your crontab, launchd, systemd, CI, or scripts is edited before you say yes.
Trust contract
Ping URLs are secrets, returned only when a monitor is first created; an installer key can't reveal an existing monitor's URL, so get_wiring_snippet emits a placeholder for those rather than leaking it. A test ping verifies the endpoint but never makes a monitor healthy. Re-running reconciles instead of duplicating. send_test_ping takes a monitor id only, so the server can never be turned into a generic fetch tool.
No MCP? No problem.
The same flow works as a pure paste-prompt against the API. See the agent-install guide.