HookWatch MCP server
The Model Context Protocol lets an AI assistant read and act on your webhooks. HookWatch exposes its workspace API as ~48 MCP tools — over a local stdio server or a remote HTTP endpoint, authenticated by a workspace API key.
The Model Context Protocol (MCP) is an open standard for connecting AI assistants to tools and data. HookWatch ships an MCP server that exposes its workspace API as roughly 48 tools, so an assistant like Claude or Cursor can list failed deliveries, inspect one, and replay it — using the same permissions as a workspace API key. Each tool is a thin wrapper over one HTTP API route.
Two ways to connect
Both are authenticated by a workspace API key (hwk_…); pick whichever your client
supports.
| Transport | How | When |
|---|---|---|
| Local (stdio) | hookwatch mcp — the CLI speaks the protocol over stdio and calls the API over
HTTP. | You have the CLI installed and want it running on your machine. |
| Remote (HTTP) | Point the client at https://mcp.hookwatch.dev with your key in the Authorization header. | No local binary — the client connects directly. |
Configure your client
Mint a workspace key first (dashboard → Settings → Tokens), then wire it in.
Claude Code
claude mcp add hookwatch \
--env HOOKWATCH_API_KEY=hwk_… \
-- hookwatch mcp Claude Desktop
Add to claude_desktop_config.json (set HOOKWATCH_SERVER too if you
self-host; it defaults to https://api.hookwatch.dev):
{
"mcpServers": {
"hookwatch": {
"command": "hookwatch",
"args": ["mcp"],
"env": { "HOOKWATCH_API_KEY": "hwk_…" }
}
}
} Cursor
.cursor/mcp.json in the project (or ~/.cursor/mcp.json globally):
{
"mcpServers": {
"hookwatch": {
"command": "hookwatch",
"args": ["mcp"],
"env": { "HOOKWATCH_API_KEY": "hwk_…" }
}
}
} OpenAI Codex CLI
~/.codex/config.toml:
[mcp_servers.hookwatch]
command = "hookwatch"
args = ["mcp"]
env = { "HOOKWATCH_API_KEY" = "hwk_…" } VS Code (Copilot agent mode)
.vscode/mcp.json:
{
"servers": {
"hookwatch": {
"type": "stdio",
"command": "hookwatch",
"args": ["mcp"],
"env": { "HOOKWATCH_API_KEY": "hwk_…" }
}
}
} Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"hookwatch": {
"command": "hookwatch",
"args": ["mcp"],
"env": { "HOOKWATCH_API_KEY": "hwk_…" }
}
}
} Remote HTTP (no local binary)
claude mcp add --transport http hookwatch \
https://mcp.hookwatch.dev \
--header "Authorization: Bearer hwk_…" Any other MCP client works the same way: run hookwatch mcp for local stdio, or
point the client at https://mcp.hookwatch.dev with your key in the Authorization header.
What the tools cover
Every tool returns the underlying route's JSON verbatim. Tools inherit the key's access — reads and non-role-gated actions work; owner/admin-only and admin-panel routes stay refused.
| Group | Tools |
|---|---|
| Reads List and inspect deliveries, endpoints, incidents, tunnels, rules, and members. | list_deliveries, get_delivery, list_attempts, get_endpoint, list_incidents, get_incident, list_tunnels, list_alert_rules, list_notification_channels, list_members … |
| Recovery Replay, retry, analyze, and clear the auto-retry queue. | replay_delivery, replay_batch, retry_delivery, analyze_delivery, reset_retry_queue |
| Endpoints Create and manage endpoints and their signing secrets. | create_endpoint, patch_endpoint, pause_endpoint, resume_endpoint, archive_endpoint, duplicate_endpoint, rotate_endpoint_secret, test_event, delete_endpoint |
| Incidents & alerts Triage incidents and manage alert rules and notification channels. | acknowledge_incident, resolve_incident, reopen_incident, create_alert_rule, patch_alert_rule, create_notification_channel, retry_notification_firing |
The protocol underneath
If you use a client that speaks raw JSON-RPC, a tool call looks like this — the API's data is handed back as text content:
→ request
{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_delivery","arguments":{"id":"evt_…"}}}
← response (the API's delivery JSON, passed through verbatim)
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text",
"text":"{\"id\":\"evt_…\",\"status\":\"delivered\"}"}]}} Keep reading
Start debugging your webhooks.
Point one endpoint at HookWatch, capture a failure, and replay it once it’s fixed. Free during beta.