MCP servernet.hookpulse/hookpulse
Dead-man switch for cron and webhooks: ingest URL, miss detection, alerts and a status feed.
Overview
Score?
UNRATED 0.628
of what a free look can see, on 26 looks
Looks
32
last 1 hr ago
Tools
41
changed 9 days ago
More info
URL
hookpulse.net/mcp
streamable-http
Says it is
HookPulse c064adbf
protocol 2025-06-18
In the record since
29 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.628 · highest on record 0.8561
Toolsfrom sha256:b061097aa1…868474 · +19 −0 9 days ago
| Tool | Schema |
|---|---|
| api_index Full index of the HookPulse API. |
input · no output |
| billing Free plan, x402 prices and the trial offer: an account = 90 days without the usage paywall, counted from its first use here (`trial` field; with a session it shows the state). Chec |
input · no output |
| contact Write to the people behind the product: a question, or a sponsorship/partnership/advertising proposal. Free, no captcha and no payment; one message every 10 s per network (one that |
input · no output |
| create_collection added Adds compatible measurements to a previously detected device. First create /api/ambientes and submit its environment report. Reference that ambiente_id here; its saved name and gro |
input · no output |
| create_device_input added Create or rotate an authenticated collector channel for this device. Ownership is checked before the app asks the input central. The server chooses the channel id and authenticates |
input · no output |
| create_endpoint Creates a dead-man endpoint. Use cron+tz+grace_sec for a real schedule (mutually exclusive with interval_sec) or interval_sec for plain silence detection. max_duration_sec alerts w |
input · no output |
| create_environment added Register a device UUID before discovery and collector selection. Registers one device (maximum 25 per owner), creating a guest if needed. The UUID is the one-hour discovery capabil |
input · no output |
| 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. |
input · no output |
| delete_collection added Removes one measurement and frees that slot on the device. What disappears is the OWNERSHIP: your list, the authority to read that series, and the unique slot that measurement hold |
input · no output |
| delete_device_input added Revokes and removes one collector channel from a device. The input central removes only a channel of the same owner. This stops new authenticated input and removes the channel from |
input · no output |
| delete_endpoint Removes the owner's endpoint. |
input · no output |
| delete_environment added Removes a device and every measurement on it, in one call. One call, not one per measurement — the same reason `GET /api/coletas/serie` exists. What goes away is the ownership: you |
input · no output |
| get_collection_series added The latest readings of one device, for the screen that draws it. Authorised by YOUR session, never by the symbol in the crontab. A device that is not yours answers 404 exactly like |
input · no output |
| get_device_input_batch added One received batch, decoded: its series with labels and values, or its NCPA checks. Remote Write (1.0 and 2.0), OTLP (protobuf or JSON) and NRDP become the same shape: `series` (`n |
input · no output |
| get_device_input_setup added The saved setup of one collector channel: the configuration in use, its files and steps. Returns the setup generated last for this channel — the one whose credential is accepted no |
input · no output |
| 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 |
input · no output |
| get_environment added Read the detected environment and compatible measurements. |
input · no output |
| health Liveness. |
input · no output |
| 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. |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| list_collections added Lists your measurements with commands adapted to each saved device environment. Two views of the same thing: `coletas` is one entry per measurement, `equipamentos` is one per machi |
input · no output |
| list_device_input_history added The batches this collector sent, newest first — filtered and paginated on the server. Every batch the input central received for this channel, as it arrived: when, the protocol, th |
input · no output |
| list_device_inputs added List this device's collector channels, their state and their live numbers. |
input · no output |
| list_endpoints Lists the guest's/session's endpoints. |
input · no output |
| list_environments added Saved environments owned by the current account or guest; empty without a session. |
input · no output |
| list_events Latest ingest pings. |
input · no output |
| list_input_fleet added Every collector channel of the caller, with state and live numbers, in one response. One call for the whole fleet — one query to the time-series store for all channels, never one p |
input · no output |
| 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 ` |
input · no output |
| 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. It costs nothing and there is no quota per ping. |
input · no output |
| ping_slug Ping that creates its own monitor on the first hit. Same slug = same monitor; 402 when the free tier is full, and then nothing is written. The slug becomes the monitor name and its |
input · no output |
| pricing Current public prices and free allowances; no charge. |
input · no output |
| report_environment added Preview or save the allowlisted discovery report for one device. Send terminal and saidas (step id to pasted output), initially with conferir:true. Preview returns normalized dados |
input · no output |
| set_device_input_active added Pauses or resumes one collector channel. Pausing keeps the channel, its credential and its configuration: batches the collector sends while paused are accepted and discarded, so no |
input · no output |
| 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 |
input · no output |
| signal_fail Says the run FAILED. The ingest never sends e-mail: the 5-minute cron turns it into an alert with reason `fail`, under the same one-per-24h cap. Failing is not proof of life either |
input · no output |
| 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: |
input · no output |
| status_feed_rotate Rotates the status feed token; the previous URL stops working. |
input · no output |
| 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 dashbo |
input · no output |
| update_collection added Renames one measurement, or stops and resumes reading it. The id never changes: it is the write symbol already sitting in a crontab, and renaming on a screen must not send anyone b |
input · no output |
| update_environment added Renames a device, and its measurements along with it. One machine has one name. The measurements carry a copy of it, so renaming here renames them too — leaving the old name on the |
input · no output |
Verify it yourself
npx teppi-check https://hookpulse.net/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1RE57EYF4ZQC9WD3A6VKDBS