关于 AnyHook
AnyHook 是面向需要管理 Webhook 集成的 Agent 和开发者的 MCP 服务,提供事件检查与重放,以及签名载荷测试和应用管理。
主要功能
- 01列出应用并创建 Webhook 端点
- 02检查并筛选传入事件
- 03重放单个或失败的投递
- 04生成签名测试载荷
- 05验证 Webhook 签名
- 06列出支持的提供方
适用场景
- 01排查生产环境中未送达的事件
- 02重试失败的 Webhook 投递
- 03用签名载荷测试本地处理程序
- 04检查签名被拒的原因
MCP 相关
它将 AnyHook 应用、事件、重放、模拟、验证和提供方操作作为 MCP 工具提供。可在本地运行,也可连接托管端点 https://anyhook.net/mcp。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://anyhook.net/mcpclaude mcp add --transport http net-anyhook-anyhook https://anyhook.net/mcp{"mcpServers":{"net-anyhook-anyhook":{"type":"http","url":"https://anyhook.net/mcp"}}}在 Cursor 中打开{"servers":{"net-anyhook-anyhook":{"type":"http","url":"https://anyhook.net/mcp"}}}在 VS Code 中打开{"mcpServers":{"net-anyhook-anyhook":{"type":"http","url":"https://anyhook.net/mcp"}}}{"mcpServers":{"net-anyhook-anyhook":{"serverUrl":"https://anyhook.net/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
12| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| data | object | 否 | 要深度合并到 fixture 中的可选字段。 |
| event | string | 是 | 事件名称(例如 Stripe 的 'payment_intent.succeeded')。 |
| secret | string | 否 | 签名密钥。若未设置,则使用各 provider 对应的确定性默认值。 |
| provider | enum | 是 | 要模拟的 webhook provider。stripe | github | slack |
| targetUrl | string | 否 | 如果设置了此项,则将生成的请求 POST 到此 URL 并返回响应。 |
详细介绍
anyhook-mcp
一个 MCP 服务,让 AI Agent 能查看 Webhook、检查事件、重放投递、模拟带签名的负载以及创建应用。专为 45-second AI handler 工作流设计。
Apache 2.0 · npm i -g anyhook-mcp
已有 AnyHook 账号?
连接托管端点,无需运行任何程序:将 https://anyhook.net/mcp
添加到 Claude Code、claude.ai、Codex 或 VS Code,然后通过浏览器登录,无需复制密钥。
各应用的操作步骤见:https://anyhook.net/mcp。
尚无账号(本地模式)
启动时无需 API 密钥:
claude mcp add anyhook -- npx -y anyhook-mcp
然后让你的 Agent 运行 anyhook_quickstart,它会立即创建一个免费的中继端点和 API 密钥(无需注册),并自动连接到此 MCP 会话。
所有账号工具(事件、重放、应用)都可立即使用。响应中包含一个 claim_url,用于永久保留端点;如果不认领,端点将在 7 天后过期。
这是一个新端点,并非你已有的账号。
功能
将此 MCP 服务添加到 Claude Desktop / Cursor / Claude Code 后,你的 Agent 可以:
anyhook_apps_list,查看 AnyHook 账号中的所有应用及其入站 URLanyhook_apps_create,根据提示词创建新应用anyhook_connect,提供 Stripe 密钥或 GitHub 令牌:Webhook 会在服务提供方注册,并从第一个事件起验证签名(不会存储密钥)anyhook_events,列出近期事件,并按应用 / 状态筛选anyhook_inspect,获取单个事件的请求头、正文和签名状态anyhook_replay,将已存储事件重新发送到其目标地址(不计入月度配额,但受每日重放次数限制;因配额而暂存的事件会被视为新事件)anyhook_undelivered,列出未能送达任何目标地址的事件anyhook_replay_failed,批量重放某个应用的所有失败事件anyhook_mock,生成带签名的 Stripe / GitHub / Slack 负载,用于本地处理程序测试anyhook_verify,使用你的密钥验证任何传入签名anyhook_providers,列出 AnyHook 支持的所有 Webhook 服务提供方
应用提供的入站 URL 可接收 Webhook POST 请求,也会自动响应服务提供方的设置握手:即使应用尚未配置,Meta 的 GET 请求只要携带 hub.mode=subscribe,该 URL 就会回传其 hub.challenge,因此可先在 Meta App Dashboard 中注册该 URL,之后再完成连接。
两种模式:
| 模式 | 适用情况 | 可用功能 |
|---|---|---|
| remote | 已设置 ANYHOOK_API_KEY | 上述所有工具均可使用,并直接连接你的 AnyHook 账号 |
| local | 未设置 API 密钥 | 服务提供方工具包(mock / verify / providers)以及可模拟事件的内存存储。适合在注册前试用。 |
快速开始
npm install -g anyhook-mcp
# or run without installing
npx -y anyhook-mcp
从 https://anyhook.net/dashboard/settings 获取 API 密钥。密钥以 ahk_live_ 开头。
在 Claude Desktop 中安装
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"],
"env": {
"ANYHOOK_API_KEY": "ahk_live_xxxxxxxx"
}
}
}
}
重启 Claude Desktop。工具会显示在锤子图标下。
在 Cursor 中安装
打开 Settings → MCP → Add new MCP server。或者编辑 ~/.cursor/mcp.json:
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"],
"env": {
"ANYHOOK_API_KEY": "ahk_live_xxxxxxxx"
}
}
}
}
在 Claude Code 中安装
claude mcp add anyhook -e ANYHOOK_API_KEY=ahk_live_xxxxxxxx -- npx -y anyhook-mcp
或者将相同的 mcpServers 条目添加到项目的 .mcp.json 中。
远程端点(无需本地进程)
同一服务托管在 https://anyhook.net/mcp(可流式传输的 HTTP,
无状态)。Claude Code、claude.ai、Codex 和 VS Code 可通过浏览器(OAuth)登录,无需复制密钥:https://anyhook.net/mcp 提供了
各应用的操作步骤。其他客户端需使用控制面板中的密钥,并发送 Authorization: Bearer ahk_live_...:
{ "mcpServers": { "anyhook": { "url": "https://anyhook.net/mcp", "headers": { "Authorization": "Bearer ahk_live_..." } } } }
该端点不提供 anyhook_quickstart:此工具仅在本地模式下可用。
仅本地模式(无需账号)
跳过环境变量:
{
"mcpServers": {
"anyhook": {
"command": "npx",
"args": ["-y", "anyhook-mcp"]
}
}
}
Agent 可使用 anyhook_mock、anyhook_verify、anyhook_providers、anyhook_simulate、anyhook_events(针对内存存储)和 anyhook_inspect(针对内存存储)。适用于本地开发期间的流程,例如“为我生成一个已签名的 Stripe payment_intent.succeeded 事件,并将其 POST 到 localhost:3000”。
对话示例
排查故障端点:
“显示过去一小时内
stripe-prod应用的未送达事件,然后重新发送。”
Agent 调用 anyhook_undelivered,然后对每个事件调用 anyhook_replay,并直接展示响应。
为新的集成创建应用:
“创建一个名为
replicate-video-jobs的新 AnyHook 应用,来源为generic,将其指向https://my-app.vercel.app/api/replicate-callback。”
调用 anyhook_apps_create,并返回你可以粘贴到 Replicate 的入站 URL。
检查签名验证失败:
“这是 AnyHook 拒绝的 Stripe 入站负载。请使用密钥
whsec_xxx手动验证签名。”
调用 anyhook_verify,并传入提供的标头、请求体和密钥,返回 valid: false 以及失败原因。
为本地测试模拟 Webhook:
“生成一个 Stripe
payment_intent.succeeded事件,并将其 POST 到 http://localhost:3000/api/webhooks/stripe。”
调用 anyhook_mock 并设置 targetUrl;返回已发送的请求以及你的处理程序的响应。
环境变量
| 变量 | 必需 | 默认值 | 用途 |
|---|---|---|---|
ANYHOOK_API_KEY | 远程模式必需 | - | 来自 https://anyhook.net/dashboard/settings 的 ahk_live_* |
ANYHOOK_API_BASE | 否 | https://anyhook.net | 覆盖可自托管 AnyHook 部署的地址 |
为什么这很有意思
AI Agent 一直无法了解自身的 Webhook 基础设施。它们可以编写集成代码,但一旦生产环境中的事件出现异常,它们就无法查看,只能由你告诉它们发生了什么。借助这个 MCP 服务,Claude / Cursor 可以读取实际事件日志、重新发送投递、调试签名验证失败,甚至创建新应用。它打通了编写 Webhook 代码与实际运维之间的闭环。
许可证
Apache-2.0 © AnyHook
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。