@hooksense/mcpThe webhook & callback layer,
as an MCP server.
Your agent kicks off an async job, hands it a HookSense callback URL, and calls wait_for_callback — blocking until the webhook lands, signature-verified and decrypted. No polling loops, no burned context, no missed events.
Install
Add it to your MCP client config, drop in a token, and restart. That's it.
{
"mcpServers": {
"hooksense": {
"command": "npx",
"args": ["-y", "@hooksense/mcp"],
"env": { "HOOKSENSE_TOKEN": "hsk_..." }
}
}
}claude mcp add hooksense -e HOOKSENSE_TOKEN=hsk_... -- npx -y @hooksense/mcp
Create your HOOKSENSE_TOKEN in Account → API tokens (free, no card). Works with Claude Desktop, Claude Code, Cursor, Continue, LangGraph, CrewAI, any MCP SDK.
Try it in 60 seconds
Installed? Run the whole loop right now — your agent creates the URL, you play the async job.
1Paste this prompt into your agent:
promptCreate a callback endpoint, tell me its URL, then wait for the next callback (60 second timeout — call wait_for_callback again if it comes back pending) and show me what arrives.
2The agent replies with its URL and blocks on
wait_for_callback. Fire the “job result” yourself, swapping in the agent's slug:terminalcurl -X POST https://hooksense.com/w/YOUR-SLUG \ -H "Content-Type: application/json" \ -d '{"event":"job.finished","status":"ok"}'3The agent wakes instantly with the payload — verified, decrypted, no polling. That's the loop your production jobs will use.
Await the result — never poll for it.
The whole point. One call blocks until the callback arrives, then resumes with the payload.
Six tools
The full surface your agent gets over MCP.
create_callback_endpointOpen a callback URL for the agent to hand to a job.
wait_for_callbackBlock until the result lands — verified, decrypted, no polling.
get_callback_payloadRead the decrypted body + headers of any callback.
verify_signatureTiming-safe HMAC check before the agent acts on a payload.
list_callbacksBrowse what's arrived at an endpoint, newest first.
replay_callbackRe-drive a stored payload to any URL.
Questions
How does an AI agent receive an async webhook callback?
The agent creates a HookSense endpoint over MCP, hands that URL to the long-running job as its callback, then calls wait_for_callback. HookSense blocks until the webhook arrives, verifies its signature, decrypts the body, and returns it to the agent — so the agent gets the result the moment it lands instead of polling or holding context open.
What is wait_for_callback?
An MCP tool that blocks until the next webhook hits your endpoint, then returns the request (signature-verified and decrypted). Pass a timeout to control how long to wait, and an `after` cursor so a callback that arrived between calls is returned immediately rather than missed. It's the core of HookSense's agent-native model: await results, don't poll for them.
How is this different from polling for a result?
Polling burns the agent's context window and budget on repeated checks and still adds latency. With wait_for_callback the agent makes one call and is woken the instant the webhook arrives — typically sub-50ms after it lands — with the payload already verified and decrypted.
Which agents and MCP clients does it work with?
Any MCP-compatible client — Claude Desktop, Claude Code, Cursor, Continue, and custom agents built on LangGraph, CrewAI, or the MCP SDK. Add the HookSense MCP server (npx @hooksense/mcp) to your config with a token and the create_callback_endpoint and wait_for_callback tools are available to the agent.
Are the callbacks signature-verified?
Yes. Drop in the provider's signing secret and HookSense verifies the HMAC with a timing-safe comparison — Stripe, GitHub, Shopify, and custom schemes — so your agent only acts on authentic, untampered callbacks. Bodies are also encrypted at rest (AES-256-GCM).
Is the MCP server free to use?
Yes — install it and create a free API token, no card required. The free Catch plan covers real agent callback flows end to end; paid plans raise the limits and add reliability features (monitoring, auto-retry, longer retention).
More in the MCP docs, or see the provider guides.
Wire it into your agent
Grab a free token, paste the config, and your agent can await callbacks in one call.