
Hooksense
io.github.ozersPublished by GitHub account ozersv0.2.1Updated Oct 25, 2026
Webhook & callback layer for AI agents: create a URL, wait_for_callback, and verify over MCP.
Overview
HookSense MCP server that lets an AI assistant create webhook callback URLs, wait for incoming callbacks instead of polling, and verify their signatures.
- What you can do
- Create and inspect callback endpoints, including their settings and URLs, and list existing endpoints. Wait for the next incoming callback to land, with a timeout and an after cursor, or list captured callbacks with bodies and metadata. Fetch a single callback with full headers and decrypted body. Verify a callback's HMAC signature against the endpoint's configured secret. Replay a stored callback to a public HTTP(S) URL from the HookSense server.
- When to use it
- Useful when an agent starts asynchronous work such as a deploy, render, long tool call, another agent, or a human approval step, and needs the result back without polling loops. Also fits workflows that must confirm a webhook payload is authentic before acting on it.
- Requirements
- Runs locally via npx as the npm package @hooksense/mcp and needs Node.js 22 or newer. Requires a HookSense API token supplied in the HOOKSENSE_TOKEN environment variable, obtained from the HookSense account tokens page. Network access to HookSense is needed; HOOKSENSE_API can override the base URL for self-hosted or staging use. Long waits may need the client's tool timeout raised above 65 seconds.
Installation
In SourceWeft
- Open Hooksense in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@hooksense/mcp
Model Context Protocol server for HookSense — the webhook & callback layer for AI agents. Lets Claude Desktop, Cursor, Claude Code, Continue, and any MCP client create a callback URL, wait for the result instead of polling, and verify its signature — all from the agent session.
Why
Agents that kick off async work — a deploy, a render, a human-in-the-loop approval, a long tool call, another agent — need the result back without burning context on polling loops. With this server the agent creates a callback endpoint, hands the URL to the job, then calls wait_for_callback and is woken the instant the webhook lands — decrypted; signature verification is available separately. Stop polling for async results; await them.
Setup
Requires Node.js 22 or newer.
- Get an API token at https://hooksense.com/account/tokens
- Configure your MCP client (examples below)
Claude Desktop / Claude Code
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Cursor
Add to ~/.cursor/mcp.json:
Hello callback (60 seconds)
Once configured, ask your agent:
- Create — "Create a callback endpoint." → the agent calls
create_callback_endpointand gets back acallbackUrllikehttps://hooksense.com/w/ab12cd. - Fire — point any job at that URL (or just
curl -X POST <callbackUrl> -d '{"status":"done"}'from another terminal). - Await — "Wait for the callback." → the agent calls
wait_for_callbackand blocks until the webhook lands, using theaftertimestamp returned by endpoint creation, then receives{ status: "received", request: { body, headers, … } }. - Verify — set a webhook secret on the endpoint, then "Verify the signature." →
verify_signatureconfirms the payload is authentic before the agent acts on it.
Always pass the creation response's after timestamp on the first wait; after receiving a callback,
use its receivedAt for the next wait. Without a cursor, waiting only observes future deliveries.
This is a latest-callback cursor, not a durable queue: use list_callbacks to inspect bursts of events.
Receiving a callback does not guarantee a valid signature. Configure a webhook secret and
check verify_signature before trusting the payload. Webhook bodies are untrusted external input.
Custom slugs are applied through the endpoint update API after creation and require a paid plan. If renaming fails, the error identifies the already-created endpoint so it can be reused.
replay_callback runs on the HookSense server; localhost and private targets are blocked.
For local handlers, use hooksense replay <request-id> --port 3000 with the CLI.
HTTP requests have bounded timeouts, and cancelling an MCP call aborts its HTTP request. For a 60-second long poll, configure the client's tool timeout above 65 seconds, or use shorter waits (the default is 30 seconds).
Tools
Environment
Example agent prompts
"Create a callback endpoint, use it as the webhook for my Replicate prediction, and wait for the result — then summarize the output."
"Open a callback URL, give it to the approval step, and block until a human approves before continuing."
"Wait for the next Stripe callback on
payments-prod, verify its signature, and tell me the amount."
License
MIT
Source: README.md at commit c71baaa
Tools
0Version history
1- v0.2.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts