Hookpulse
by hookpulse.net in Developer tools
Dead-man switch for cron and webhooks: ingest URL, miss detection, alerts and a status feed.
https://hookpulse.net/mcp- Tools
- 24
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 712 ms
- 778 ms slowest 5%
- Last check
- Passed
- 4 h ago, next in 1 h
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"hookpulse": {
"type": "http",
"url": "https://hookpulse.net/mcp"
}
}
}24 tools
- api_index
Full index of the HookPulse API.
- health
Liveness.
- create_guest
Creates a guest token hp_… Keep the token: without it there is no way back to the monitors, unless you have already tied them to an e-mail.
- list_endpoints
Lists the guest's/session's endpoints.
- create_endpoint
Create a monitor for a routine. Use cron, tz and grace_sec for a schedule, or interval_sec for a fixed check-in interval. Set max_duration_sec to detect an open run that exceeds its time limit. With `check` the monitor is a site: HookPulse calls `check.url` every `interval_sec`…
- create_site
Monitor a website: HookPulse calls check.url every interval_sec (default 300) and alerts when it goes down and when it is back. With `check` the monitor is a site: HookPulse calls `check.url` every `interval_sec` (default 300) and alerts when it goes down — two failed checks in…
- check_site
Check a site monitor now. One call every 10 seconds per destination host. One call every 10 seconds per destination host, for everyone: the button cannot hammer a site. The first state of a new site comes from here, without an alert — you are looking at it. After that, the state…
- list_sites
The state of every site you monitor (up, down, waiting, paused), with the last check.
- import_crontab
Reads a crontab and proposes one monitor per scheduled line. Without apply=1 nothing is written; the proposal says what was ignored and why. Passwords in the command are redacted. The body is the crontab itself, as `text/plain`. Without `?apply=1` **nothing is written**: you get…
- get_endpoint
Status of one endpoint (use the endpoint token if you have it). The monitor token only reads: it lets you put the state on a third-party dashboard without handing over the owner's credential. With a schedule it is here that `next_expected_at` says when the next run is due.
- delete_endpoint
Removes the owner's endpoint.
- list_events
Latest ingest pings.
- ping_ingest
Simulates the cron: GET on /in/:id. No credential on purpose — the caller is a cron, and the ID is already the secret.
- signal_start
Says the run STARTED. Does not clear the dead-man clock: a routine that starts and hangs still becomes a miss. The next success records the duration. `start` is not proof of life: it does not move `last_event_at` and does not clear the miss counter, so a routine that starts and…
- signal_fail
Record a failed run. The next five-minute check sends the alert with reason fail. The monitor's alert_repeat_sec controls repeated alerts; the default is 24 hours. Failing is not proof of life either: the clock keeps running. The ingest never sends e-mail and never calls out…
- signal_exit_code
The shell exit status: 0 behaves like a ping, 1-255 record the code as a failure. `curl -fsS $ORIGIN/in/ID/$?` at the end of a script is the whole integration. `0` behaves exactly like a plain ping; 1 to 255 record the code and leave the failure for the cron.
- ingest_key
Returns (minting the first time) the key for /in/<key>/<slug>, where a ping creates its own monitor inside the free tier. Instruments a whole fleet with no setup call per job. One key per owner. The key survives signing in: the crontab you deployed keeps working.
- ingest_key_rotate
Rotates the ingest key; the previous one stops creating monitors. Existing ones keep working. Monitors already created keep working — rotating only revokes the power to create new ones.
- ping_slug
Create a monitor on its first check-in. The same slug uses the same monitor. A rejected creation writes no monitor or event. The slug becomes the monitor name and its identity: the same slug always means the same monitor, so a retry never creates a second one. Normalised to…
- signal_slug
Send start, fail or an exit code by name, with the ingest key; the first signal of a new name creates its monitor. The same signals as `/in/:id/start`, `/in/:id/fail` and `/in/:id/:exit_code`, for a fleet that only knows the ingest key: the job sends its name, not the monitor…
- status_feed_url
Public URL (JSON and RSS) with the status of all the owner's endpoints. The feed token only reads status: it does not create, change or delete. Whoever has the link sees the dashboard — treat it as a secret.
- status_feed_rotate
Rotates the status feed token; the previous URL stops working.
- list_templates
Ingest snippets and the JSON HookPulse POSTs on a miss. It exists so nobody guesses the alert format: `miss_json` and `recovery_json` here are the same bodies that arrive at your `alert_url`. Slack and Discord receive only the field they read.
- contact
Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. One route for a question and for a sponsorship, partnership or ad proposal (`tipo`, with the placements of `GET /api/partners`). One message every 10 seconds per network: one…
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 4 h ago | Passed | 200 | 717 ms |
| 14 h ago | Passed | 200 | 778 ms |
| 24 h ago | Passed | 200 | 721 ms |
| 33 h ago | Passed | 200 | 674 ms |
| 42 h ago | Passed | 200 | 748 ms |
Show 10 older checks
| 2 days ago | Passed | 200 | 669 ms |
| 3 days ago | Passed | 200 | 722 ms |
| 3 days ago | Passed | 200 | 733 ms |
| 3 days ago | Passed | 200 | 671 ms |
| 4 days ago | Passed | 200 | 712 ms |
| 4 days ago | Passed | 200 | 747 ms |
| 5 days ago | Passed | 200 | 695 ms |
| 5 days ago | Passed | 200 | 674 ms |
| 6 days ago | Passed | 200 | 714 ms |
| 6 days ago | Passed | 200 | 704 ms |