Connect AnyHook to your AI agent
Add one URL and sign in. Your agent can then set up webhook endpoints, find failed deliveries and replay them, and you approve what it may change.
https://anyhook.net/mcp
Add it to your app
Claude Code, claude.ai, Codex and VS Code open an AnyHook page in your browser: sign in and approve. Other apps use a key.
Claude Code
claude mcp add --scope user --transport http anyhook https://anyhook.net/mcp
Then type /mcp in Claude Code, pick anyhook and choose Authenticate.
claude.ai
Customize → Connectors → Add → Add custom connector. Paste the URL, then press Connect.
Codex
codex mcp add anyhook --url https://anyhook.net/mcp codex mcp login anyhook
The second line opens the sign-in. Added it in the ChatGPT app's settings instead? Run only the second line. Codex asks for read and write in one approval.
VS Code
Command Palette → MCP: Add Server → HTTP. Paste the URL and approve the sign-in VS Code opens.
Cursor, Windsurf and other apps
These connect with an API key. Create one under Dashboard → Settings → API Keys, which shows this with your key already in it:
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": [
"-y",
"anyhook-mcp"
],
"env": {
"ANYHOOK_API_KEY": "ahk_live_xxxxxxxxxxxxxxxx"
}
}
}
}Cursor: Settings → MCP → Add new MCP server, or ~/.cursor/mcp.json. Windsurf: ~/.codeium/windsurf/mcp_config.json. Claude Desktop: Settings → Developer → Edit Config.
What it can do
Ask in plain words, for example:
- “Create an AnyHook app for my Stripe webhooks and give me its URL.”
- “Did any webhooks fail since yesterday? Replay them.”
- “Why did the last Shopify webhook fail?”
| Set up | |
|---|---|
| anyhook_apps_create | Create an app: the URL to give your provider, and where to forward · needs write access |
| anyhook_connect | Register the webhook at Stripe or GitHub from one key · needs write access |
| anyhook_apps_list | List your apps and their inbound URLs |
| anyhook_inbox | An app's email address, so mail arrives as events |
| Watch | |
| anyhook_events | Recent events, by app or status |
| anyhook_inspect | One event: headers, body and every delivery attempt |
| anyhook_undelivered | What failed or is being held, for one app |
| anyhook_usage | The plan's limits and what you have used of each, with when they reset |
| Recover | |
| anyhook_replay | Send one stored event again · needs write access |
| anyhook_replay_failed | Send every failed event for an app again, oldest first · needs write access |
| Run code | |
| anyhook_code_deploy | Code that runs on every event an app receives, in a sandbox, no server needed · needs write access |
| anyhook_code_test | Run that code now on a stored event and read its logs · needs write access |
| anyhook_code_get | An app's code, its secret names and runs used this month |
| Test | |
| anyhook_mock | A signed Stripe, GitHub or Slack request, sent to a URL you name if you want · needs write access |
| anyhook_verify | Check a webhook signature |
| anyhook_providers | Supported providers and their event types |
What it may change
- An app that signed in starts read-only. The first time it tries to change something, such as creating an app or replaying an event, it asks you to approve that too. Codex asks for both in its first approval.
- AnyHook emails you when an app signs in and when one is given write access.
- A key does what its scope allows: full access or read-only, chosen when you create it.
- Settings → Connected apps lists every app you approved. Disconnect one and it is cut off at its next request.
No account yet?
claude mcp add anyhook -- npx -y anyhook-mcp
With no key, the npm package runs in local mode: its anyhook_quickstart tool makes a free endpoint without an account, which expires in 7 days unless you claim it. It is not your existing account.
REST API with the same account: docs·For agents: llms.txt·Source on GitHub