HookPulse
HookPulse watches routines that should run on a schedule. The routine sends a check-in to its link when it runs. If the check-in is late, or the routine reports a failure, HookPulse sends an alert. The next good check-in sends a recovery message.
Connect
- MCP server (preferred):
https://hookpulse.net/mcp?checkout=site. Transport: Streamable HTTP. Every MCP tool is free, within its free limits: no payment. - HTTP API: base URL
https://hookpulse.net. Each MCP tool calls one route of this API. - Identity:
create_guestreturns a guest tokenhp_…. Send it asX-Guest-Tokenon later calls. Keep it: the monitors belong to it until the person signs in on the site. - Discovery:
GET https://hookpulse.net/api/lists the routes, prices and limits.https://hookpulse.net/llms-full.txthas the full reference.
MCP tools
| Tool | HTTP | Use it to |
|---|---|---|
create_guest |
POST /api/guest |
Get the guest token that owns the monitors. |
create_endpoint |
POST /api/endpoints |
Create a monitor: interval_sec, or cron + tz + grace_sec, and the alert destinations. |
import_crontab |
POST /api/import/crontab |
Read a crontab and propose one monitor per line. Nothing is written without apply=1. |
list_endpoints |
GET /api/endpoints |
List the monitors and their state. |
get_endpoint |
GET /api/endpoints/{id} |
Read one monitor: state, next expected time, last check-in. |
list_events |
GET /api/endpoints/{id}/events |
Read the latest check-ins of a monitor. |
delete_endpoint |
DELETE /api/endpoints/{id} |
Remove a monitor. |
ping_ingest |
GET /in/{id} |
Send a success check-in, as the routine does. |
signal_start |
GET /in/{id}/start |
Record that a run started, to measure its duration. |
signal_fail |
GET /in/{id}/fail |
Record a failed run; the alert leaves on the next five-minute check. |
signal_exit_code |
GET /in/{id}/{exit_code} |
Record the shell exit code: 0 is success, 1 to 255 a failure. |
ingest_key |
GET /api/ingest-key |
Get the setup key for /in/{key}/{slug}: the first check-in of a name creates its monitor. |
ping_slug |
GET /in/{key}/{slug} |
Check in by name with the setup key, creating the monitor the first time. |
status_feed_url |
GET /api/status-feed |
Get the public status page and feed of all monitors of the owner. |
list_templates |
GET /api/templates |
Get ready snippets: curl, crontab line, n8n, GitHub Actions and the alert JSON. |
Rules
- If an MCP tool answers
free_limit, tell the user that the free limit for that action is used up. Before you create more than ten monitors, read the free allowances atGET /api/billingon the HTTP API. Do not use an allowance from memory. - Never pay by yourself. On the HTTP API, a paid route returns HTTP 402: show the price and https://hookpulse.net/pricing to the user. The person buys on the site.
- The monitor ID is a credential: whoever has it can send check-ins and silence the alarm. Do not print it in public logs or issues. The status page link is the one to share.
- A start or failure signal is not proof of life. Only a success check-in resets the expected time.
- For a schedule, prefer
cronwithtzand agrace_secthat covers the usual delay and run time. - If you get HTTP 429 or 503, wait for the time in
Retry-Afterand try once more.
Examples
# Guest token, then a monitor for a backup at 03:00 São Paulo time with 15 minutes of allowed delay
HP=$(curl -s -XPOST https://hookpulse.net/api/guest | jq -r .token)
curl -s -XPOST https://hookpulse.net/api/endpoints -H "X-Guest-Token: $HP" -H 'content-type: application/json' \
-d '{"name":"nightly-backup","cron":"0 3 * * *","tz":"America/Sao_Paulo","grace_sec":900}'
# At the end of the routine: the exit code of the last command
curl -fsS "https://hookpulse.net/in/$ID/$?"
Limits
- The service checks monitors every five minutes, so an alert can arrive up to five minutes after the allowed delay.
- Terms: https://hookpulse.net/terms. Privacy: https://hookpulse.net/privacy. Contact: contato@hookpulse.net.
