Skip to content
MCP

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.

TransportHowWhen
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.

GroupTools
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\"}"}]}}
Get started

Start debugging your webhooks.

Point one endpoint at HookWatch, capture a failure, and replay it once it’s fixed. Free during beta.