accueil / serveurs / Communication / net.hookpulse/hookpulse
net.hookpulse/hookpulse
serveur MCP (Model Context Protocol) · HookPulse 633d1cea
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que net.hookpulse/hookpulse est sûr ?
Au dernier audit MCP Hub, le serveur MCP « net.hookpulse/hookpulse » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 24 outils
- api_index≈ 70 tokens
Full index of the HookPulse API.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "api_index", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - check_site≈ 187 tokens
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 and the alerts come from the check that runs every minute.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
ID of the site monitor, from `Monitor.id`.guest_token· string · requis
Exemple d'appel{"name": "check_site", "arguments": {"id": "texte", "guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - contact≈ 839 tokens
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 that arrives sooner waits its turn and then goes out — no error. The message reaches the team by e-mail, with `email` as the reply address. For voice, send multipart/form-data: `dados` is this JSON (up to 32 KiB), and `audio` is one WebM, Ogg or M4A audio file (up to 2 MB). Audio can replace message. The browser records up to two minutes. Audio is attached to the owner's e-mail.
Paramètres, retour & exemple (18)
Paramètresfuso· string · optionnel
Consulting: the IANA time zone, such as `America/New_York`.name· string · requis
What to call the person writing.pais· string · optionnel
Consulting: the country of the person asking.site· string · optionnel
Website of who is proposing.tipo· string · optionnel · patrocinio | parceria | anuncio | consultoria
Proposal: `patrocinio`, `parceria`, `anuncio` or `consultoria`. Turns on the fields below.email· string · requis
Where to reply.prazo· string · optionnel · agora | 1_mes | 1_3_meses | explorando
Consulting: when to start (`agora`, `1_mes`, `1_3_meses` or `explorando`).espaco· array · optionnel
Placement ids from `GET /api/partners`, up to 6.duracao· string · optionnel · 30 | 90 | 365
Exposure in days: `30`, `90` or `365`.empresa· string · optionnel
Who is proposing, when it is a company.formato· string · optionnel · projeto | mensal | assessoria
Consulting: `projeto` (per scope), `mensal` (monthly) or `assessoria` (advisory).message· string · requis
What you want to say.projeto· string · optionnel · llm_privado | voz | dados_sensiveis | gpu | integracao | outro
Consulting: the kind of project (`llm_privado`, `voz`, `dados_sensiveis`, `gpu`, `integracao` or `outro`).horarios· array · optionnel
Consulting: up to 3 times for the call, `YYYY-MM-DDTHH:MM` in that time zone.whatsapp· string · optionnel
Optional reply number with country code, such as +5561999999999.orcamento· string · optionnel · ate_100 | 100_500 | 500_2000 | 2000_mais | a_combinar | ate_2000 | 2000_5000 | 5000_10000
Advertising: `ate_100`, `100_500`, `500_2000`, `2000_mais` or `a_combinar`. Consulting, in US dollars: `ate_2000`, `2000_5000`, `5000_10000`, `10000_mais` or `nao_sei`.pagamento· string · optionnel · usdc | deposito | a_combinarprefer_whatsapp· boolean · optionnel
Request a WhatsApp reply. Requires whatsapp.
Exemple d'appel{"name": "contact", "arguments": {"name": "texte", "email": "texte", "message": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_endpoint≈ 674 tokens
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` (default 300) and alerts when it goes down — two failed checks in a row, one minute apart, from a server whose own connection is proven — and when it answers again. `{"check":{"url":"https://example.com/"}}` is enough; the name defaults to the host. A site has no `cron`, no `max_duration_sec` and no ingest URL. This response is the only one that shows the monitor's `token` and the `templates` — keep them. A miss alerts at most once per 24h — or per `alert_repeat_sec`, or per interval, whichever is longer. Send `cron`+`tz`+`grace_sec` instead of `interval_sec` for a real schedule: a 03:00 backup is late at 03:01:30, not 24 hours later. `max_duration_sec` catches the other failure: a run that starts and hangs, which plain silence detection only notices at the next scheduled time.
Paramètres, retour & exemple (12)
Paramètrestz· string · optionnel
IANA time zone for cron, default UTCcron· string · optionnel
five-field cron, e.g. 0 3 * * *name· string · requis
how you will recognise the routine in an alert; required, trimmed, max 80 chars, punctuation alone is rejectedtags· array · optionnel
up to 8 tags to group the monitor; lower-cased, [a-z0-9._-], max 32 chars eachalert_to· string · optionnel
E-mail to alert on a miss; without it, the account is alerted.alert_url· string · optionnel
Public HTTPS URL that receives a POST on a miss (Slack Incoming, Discord, n8n).grace_sec· number · optionnel
tolerance after the scheduled time, default 90, min 30guest_token· string · requisinterval_sec· number · optionnel
Tolerated silence, in seconds.paused_until· string · optionnel
maintenance window end (UTC ISO), max 30 days aheadalert_repeat_sec· number · optionnel
gap before the same incident alerts again, 3600..2592000; null keeps the 86400 defaultmax_duration_sec· number · optionnel
ceiling for an open run in seconds, 60..86400; null or 0 turns it off
Exemple d'appel{"name": "create_endpoint", "arguments": {"name": "texte", "guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_guest≈ 100 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "create_guest", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_site≈ 651 tokens
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 a row, one minute apart, from a server whose own connection is proven — and when it answers again. `{"check":{"url":"https://example.com/"}}` is enough; the name defaults to the host. A site has no `cron`, no `max_duration_sec` and no ingest URL. This response is the only one that shows the monitor's `token` and the `templates` — keep them. A miss alerts at most once per 24h — or per `alert_repeat_sec`, or per interval, whichever is longer. Send `cron`+`tz`+`grace_sec` instead of `interval_sec` for a real schedule: a 03:00 backup is late at 03:01:30, not 24 hours later. `max_duration_sec` catches the other failure: a run that starts and hangs, which plain silence detection only notices at the next scheduled time.
Paramètres, retour & exemple (8)
Paramètresname· string · optionnel
how you will recognise the site in an alert; default: its hosttags· array · optionnel
Up to 8 tags to group this monitor: lower-case letters, digits, `.`, `_` and `-`, at most 32 characters each. A comma-separated string works too. We lower-case and de-duplicate, so `Prod` and `prod` are the same tag.check· object · requis
url (http/https, public; required), method (GET or HEAD), expect_status (200-399 by default, a range a-b or one code), keyword (text that must be on the page), timeout_ms (1000..30000)alert_to· string · optionnel
E-mail to alert on a miss; without it, the account is alerted.alert_url· string · optionnel
Public HTTPS URL that receives a POST on a miss (Slack Incoming, Discord, n8n).guest_token· string · requisinterval_sec· number · optionnel
seconds between checks, default 300paused_until· string · optionnel
maintenance window end (UTC ISO), max 30 days ahead
Exemple d'appel{"name": "create_site", "arguments": {"check": {}, "guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_endpoint≈ 110 tokens
Removes the owner's endpoint.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
ID of the monitor to deactivate.guest_token· string · requis
Exemple d'appel{"name": "delete_endpoint", "arguments": {"id": "texte", "guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_endpoint≈ 182 tokens
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.
Paramètres, retour & exemple (3)
Paramètresid· string · requis
Monitor ID, from `Monitor.id`.token· string · optionnel
endpoint token (query)guest_token· string · optionnel
Exemple d'appel{"name": "get_endpoint", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - health≈ 62 tokens
Liveness.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "health", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - import_crontab≈ 316 tokens
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 the proposal — what would become a monitor, what was ignored and why, and what still fits in the free tier. With `apply=1` it is all or nothing, under the same rules as `POST /api/endpoints`. Comments, variables and `@reboot` are ignored (there is no way to know when to expect a reboot); `@daily` and friends become the equivalent expression. The command becomes the monitor name, with passwords and tokens redacted first — the name travels in the alert e-mail, in the public dashboard and in the badge.
Paramètres, retour & exemple (3)
Paramètresapply· string · optionnel
"1" to create the monitorscrontab· string · requis
the crontab textguest_token· string · requis
Exemple d'appel{"name": "import_crontab", "arguments": {"crontab": "texte", "guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ingest_key≈ 137 tokens
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.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · optionnel
Exemple d'appel{"name": "ingest_key", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ingest_key_rotate≈ 123 tokens
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.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · optionnel
Exemple d'appel{"name": "ingest_key_rotate", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_endpoints≈ 91 tokens
Lists the guest's/session's endpoints.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · requis
Exemple d'appel{"name": "list_endpoints", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_events≈ 124 tokens
Latest ingest pings.
Paramètres, retour & exemple (3)
Paramètresid· string · requis
ID of the monitor.token· string · optionnel
Monitor token, alternative to the `X-Hook-Token` header.guest_token· string · optionnel
Exemple d'appel{"name": "list_events", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_sites≈ 100 tokens
The state of every site you monitor (up, down, waiting, paused), with the last check.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · requis
Exemple d'appel{"name": "list_sites", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_templates≈ 127 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_templates", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ping_ingest≈ 119 tokens
Simulates the cron: GET on /in/:id. No credential on purpose — the caller is a cron, and the ID is already the secret.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Monitor ID, from `Monitor.ingest_url`.
Exemple d'appel{"name": "ping_ingest", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - ping_slug≈ 205 tokens
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 lowercase, `[a-z0-9-]`, 40 chars. Works by GET or POST.
Paramètres, retour & exemple (2)
Paramètresslug· string · requis
Name of the job; it becomes the monitor name.ingestKey· string · requis · hpk_exemplo
Ingest key, from `GET /api/ingest-key`.
Exemple d'appel{"name": "ping_slug", "arguments": {"slug": "texte", "ingestKey": "hpk_exemplo"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - signal_exit_code≈ 188 tokens
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.
Paramètres, retour & exemple (2)
Paramètresid· string · requis
Monitor ID, from `Monitor.ingest_url`.exit_code· number · requis
Exit status, 0 to 255. Outside that range it is a 400.
Exemple d'appel{"name": "signal_exit_code", "arguments": {"id": "texte", "exit_code": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - signal_fail≈ 198 tokens
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 — it records `alert_pending` and the cron turns it into an alert with `reason: "fail"` within 5 minutes, under the same one-per-24h cap. Works by GET or POST.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Monitor ID, from `Monitor.ingest_url`.
Exemple d'appel{"name": "signal_fail", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - signal_slug≈ 258 tokens
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 id. The first signal of a new name creates the monitor, with the same rules and the same `cron`, `tz` and `grace_sec` as the plain ping by name.
Paramètres, retour & exemple (3)
Paramètresslug· string · requis
Name of the job; it becomes the monitor name.signal· string · requis · fail
start, fail, or the exit code 0 to 255ingestKey· string · requis · hpk_exemplo
Ingest key, from `GET /api/ingest-key`.
Exemple d'appel{"name": "signal_slug", "arguments": {"slug": "texte", "signal": "fail", "ingestKey": "hpk_exemplo"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - signal_start≈ 254 tokens
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 hangs still becomes a miss at the right time. The next success closes the run and records `last_duration_ms` — pass `?rid=` on both ends when runs can overlap, or the duration is measured against the wrong start. With `max_duration_sec` set on the monitor, a run left open past that ceiling alerts with `reason: "too_long"` on the next 5-minute check. Works by GET or POST.
Paramètres, retour & exemple (1)
Paramètresid· string · requis
Monitor ID, from `Monitor.ingest_url`.
Exemple d'appel{"name": "signal_start", "arguments": {"id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - status_feed_rotate≈ 93 tokens
Rotates the status feed token; the previous URL stops working.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · optionnel
Exemple d'appel{"name": "status_feed_rotate", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - status_feed_url≈ 127 tokens
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.
Paramètres, retour & exemple (1)
Paramètresguest_token· string · optionnel
Exemple d'appel{"name": "status_feed_url", "arguments": {"guest_token": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».