About AnyHook (moved)
AnyHook is an MCP server for developers and agents that need to inspect and operate webhook integrations. It provides event lookup and replay, signed-payload mocking, signature verification, and app management, with local and hosted modes.
Key features
- 01List and inspect webhook events
- 02Replay individual or failed deliveries
- 03Mock signed provider payloads
- 04Verify incoming webhook signatures
- 05Create and manage webhook apps
Use cases
- 01Investigate undelivered production events
- 02Retry failed webhook deliveries
- 03Test a local handler with a signed payload
- 04Check why a provider signature was rejected
MCP support
The server exposes webhook app, event, replay, mock, and verification tools to MCP clients. It can run locally or connect to the hosted endpoint at https://anyhook.net/mcp.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y anyhook-mcpANYHOOK_API_KEYSecretPersonal API key from anyhook.net/dashboard/settings/api-keys. Starts with ahk_live_. Optional: without it, the anyhook_quickstart tool can self-provision an account, or tools run against an in-memory store for local dev.ANYHOOK_API_BASEOverride the API base URL. Defaults to https://anyhook.net. Used by self-hosted AnyHook installations.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
12Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| data | object | No | Optional fields to deep-merge into the fixture. |
| event | string | Yes | Event name (e.g. 'payment_intent.succeeded' for Stripe). |
| secret | string | No | Signing secret. Falls back to a deterministic default per provider. |
| provider | enum | Yes | Webhook provider to simulate.stripe | github | slack |
| targetUrl | string | No | If set, POST the generated request to this URL and return the response. |
Details
From the project READMEanyhook-mcp
An MCP server that gives AI agents eyes on webhooks, inspect events, replay deliveries, mock signed payloads, create apps. Designed for the 45-second AI handler workflow.
Apache 2.0 · npm i -g anyhook-mcp
Already have an AnyHook account?
Connect the hosted endpoint instead of running anything: add https://anyhook.net/mcp
to Claude Code, claude.ai, Codex or VS Code and sign in through the browser, no key
to copy. Steps for each app: https://anyhook.net/mcp.
No account yet (local mode)
No API key needed to start:
claude mcp add anyhook -- npx -y anyhook-mcp
Then ask your agent to run anyhook_quickstart, it creates a free relay
endpoint + API key instantly (no signup), and this MCP session auto-connects.
All account tools (events, replay, apps) work immediately. The response includes
a claim_url to keep the endpoint permanently; unclaimed, it expires in 7 days.
It is a new endpoint, not an account you already have.
What it does
Drop this MCP server into Claude Desktop / Cursor / Claude Code and your agent can:
anyhook_apps_list, see every app in your AnyHook account with its inbound URLanyhook_apps_create, spin up a new app from a promptanyhook_connect, give a Stripe key or GitHub token: the webhook is registered at the provider and signature-checked from the first event (the key is not stored)anyhook_events, list recent events, filter by app / statusanyhook_inspect, pull a single event's headers, body, signature statusanyhook_replay, re-send a stored event to its destinations (outside the monthly quota, within a daily replay limit; an event held for quota counts as new)anyhook_undelivered, list events that never reached a destinationanyhook_replay_failed, bulk-replay every failed event for an appanyhook_mock, generate a signed Stripe / GitHub / Slack payload for local handler testinganyhook_verify, verify any incoming signature against your secretanyhook_providers, list every webhook provider AnyHook supports
The inbound URL an app gives you accepts webhook POSTs and also answers provider
setup handshakes automatically: Meta's GET carrying hub.mode=subscribe gets its
hub.challenge echoed back, even before the app is configured, so the URL can be
registered in the Meta App Dashboard first and wired up after.
Two modes:
| Mode | When | What works |
|---|---|---|
| remote | ANYHOOK_API_KEY is set | All tools above, live against your AnyHook account |
| local | No API key | Provider toolkit (mock / verify / providers) + an in-memory store you can simulate events into. Useful for trying it out before signing up. |
Quick start
npm install -g anyhook-mcp
# or run without installing
npx -y anyhook-mcp
Get an API key from https://anyhook.net/dashboard/settings. Keys start with ahk_live_.
Install in Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"],
"env": {
"ANYHOOK_API_KEY": "ahk_live_xxxxxxxx"
}
}
}
}
Restart Claude Desktop. The tools appear under the hammer icon.
Install in Cursor
Open Settings → MCP → Add new MCP server. Or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"],
"env": {
"ANYHOOK_API_KEY": "ahk_live_xxxxxxxx"
}
}
}
}
Install in Claude Code
claude mcp add anyhook -e ANYHOOK_API_KEY=ahk_live_xxxxxxxx -- npx -y anyhook-mcp
Or add the same mcpServers entry to your project's .mcp.json.
Remote endpoint (no local process)
The same server is hosted at https://anyhook.net/mcp (streamable HTTP,
stateless). Claude Code, claude.ai, Codex and VS Code sign in through the
browser (OAuth), no key to copy: https://anyhook.net/mcp has the steps for
each. Any other client sends Authorization: Bearer ahk_live_... with a key
from the dashboard:
{ "mcpServers": { "anyhook": { "url": "https://anyhook.net/mcp", "headers": { "Authorization": "Bearer ahk_live_..." } } } }
The endpoint has no anyhook_quickstart: that tool exists only in local mode.
Local-only mode (no account needed)
Skip the env var:
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"]
}
}
}
The agent gets anyhook_mock, anyhook_verify, anyhook_providers, anyhook_simulate, anyhook_events (against memory store), and anyhook_inspect (against memory store). Useful for "generate me a signed Stripe payment_intent.succeeded and POST it to localhost:3000" flows during local dev.
Example conversations
Triage a failing endpoint:
"Show me undelivered events for the
stripe-prodapp from the last hour, then replay them."
The agent calls anyhook_undelivered then anyhook_replay for each, surfacing the responses inline.
Create an app for a new integration:
"Make a new AnyHook app called
replicate-video-jobs, sourcegeneric, point it athttps://my-app.vercel.app/api/replicate-callback."
Calls anyhook_apps_create, returns the inbound URL you paste into Replicate.
Sanity-check a signature failure:
"Here's an inbound payload from Stripe that AnyHook is rejecting. Verify the signature manually with secret
whsec_xxx."
Calls anyhook_verify with the supplied headers + body + secret, returns valid: false plus the failure reason.
Mock a webhook for local testing:
"Generate a Stripe
payment_intent.succeededevent and POST it to http://localhost:3000/api/webhooks/stripe."
Calls anyhook_mock with targetUrl set; returns the request that was sent + your handler's response.
Environment variables
| Var | Required | Default | Purpose |
|---|---|---|---|
ANYHOOK_API_KEY | for remote mode | - | ahk_live_* from https://anyhook.net/dashboard/settings |
ANYHOOK_API_BASE | no | https://anyhook.net | Override for self-hosted AnyHook deployments |
Why this is interesting
AI agents have been blind to their own webhook infrastructure. They can write the integration code, but once an event misbehaves in production they can't see it, you tell them what happened. With this MCP server, Claude / Cursor can read the actual event log, replay deliveries, debug signature failures, and even spin up new apps. It closes the loop between writing webhook code and operating it.
License
Apache-2.0 © AnyHook
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.