Skip to main content
ClaudeWave

Capture, inspect, replay and deliver webhooks. Open source, with a free permanent signed URL, signature verification, and one-command replay to localhost.

MCP ServersRegistry oficial0 estrellas0 forksTypeScriptApache-2.0Actualizado today
Install in Claude Code / Claude Desktop
Method: NPX · @webhook-co/cli
Claude Code CLI
claude mcp add webhook -- npx -y @webhook-co/cli
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "webhook": {
      "command": "npx",
      "args": ["-y", "@webhook-co/cli"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Casos de uso

Resumen de MCP Servers

<p align="center">
  <a href="https://www.webhook.co"><img src="https://www.webhook.co/logo.png" alt="webhook.co" width="120" height="120" /></a>
</p>

<h1 align="center">webhook.co</h1>

<p align="center">
  <strong>A free, permanent, signed webhook URL you can inspect and replay to localhost — from the CLI, API, dashboard, or MCP.</strong>
</p>

<p align="center">
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue.svg" alt="License: Apache-2.0" /></a>
  <a href="https://www.npmjs.com/package/@webhook-co/cli"><img src="https://img.shields.io/npm/v/%40webhook-co%2Fcli?label=cli&logo=npm" alt="CLI on npm" /></a>
  <a href="https://github.com/webhook-co/webhook/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/webhook-co/webhook/ci.yml?branch=main&label=ci" alt="CI" /></a>
  <a href="https://docs.webhook.co"><img src="https://img.shields.io/badge/docs-docs.webhook.co-informational" alt="Docs" /></a>
</p>

`webhook.co` captures the webhooks other services send you, so you can see exactly what arrived,
check the signature, and replay it to your local dev server without redeploying. The same operations
run from the CLI, the REST API, the web dashboard, and an MCP server.

- **Receive** — a stable, signed URL on a dedicated apex (`https://wbhk.my/<token>`). No expiring
  tunnels.
- **Inspect** — every request, headers and body, with a clear signature result.
- **Replay to localhost** — forward any captured event to `http://localhost:3000` with one command.
- **Deliver** — send events on to your own destinations, in order, with retries.

**Want to see it work first?** Open **[webhook.co/play](https://webhook.co/play)** — send a webhook,
watch it land. No signup, nothing to install.

Open source · Apache-2.0 · private by default.

## Try it in 60 seconds

Sign in, create an endpoint, forward its webhooks to your machine, and send it a test request. No
install needed — this uses `npx` (Node 22+):

```sh
# 1. sign in — opens your browser (GitHub or Google) and creates your free account
npx @webhook-co/cli login

# 2. create an endpoint — it prints an id and your permanent, signed ingest URL:
npx @webhook-co/cli endpoints create orders
#    id          d7e4f8a1-3b60-4c2e-9f15-0a8c6b2e1d94
#    ingest url  https://wbhk.my/whep_8QmZ4tN1p…

# 3. forward that endpoint's events to your local server (leave this running)
npx @webhook-co/cli listen d7e4f8a1-3b60-4c2e-9f15-0a8c6b2e1d94 --forward http://localhost:3000

# 4. in another terminal, send it a test request — or point Stripe, GitHub, Shopify, … at the URL
curl -X POST https://wbhk.my/whep_8QmZ4tN1p… -d '{"hello":"webhook.co"}'
```

With `--forward`, each captured event prints one line as it lands on your local server — the event
id, the target, the status it returned, and how long it took:

```text
caught up — now tailing live events
forwarded 019f8b88-55f0-7534-9ae9-f9fcfd07758c → http://localhost:3000 · 200 · 8ms
forwarded 019f8b88-6121-72e7-b640-56ecb2b2ffb2 → http://localhost:3000 · 200 · 3ms
forwarded 019f8b88-6c40-7bdf-a81f-7290b2752992 → http://localhost:3000 · 200 · 2ms
```

Drop `--forward` and `wbhk listen` opens a live view of what's arriving instead — one row per event,
with the provider it came from and whether its signature checked out:

<p align="center">
  <img src=".github/assets/listen-demo.gif" alt="wbhk listen streaming captured webhooks, each row showing the provider and whether its signature verified" width="820" />
</p>

`--forward` targets must be a full loopback URL (`http://localhost:3000`,
`http://127.0.0.1:8080/webhooks`). Replay a past event with
`wbhk replay <event-id> --forward http://localhost:3000`.

Prefer a permanent install? Pick one:

```sh
brew install webhook-co/tap/wbhk           # Homebrew (macOS / Linux)
npm install -g @webhook-co/cli             # npm — installs the wbhk command
curl -fsSL https://get.webhook.co | sh     # standalone binary, no Node required
```

Full walkthrough: **[docs.webhook.co/quickstart](https://docs.webhook.co/quickstart)**.

## What you get

**A permanent, signed URL that captures first.** Every request is written to durable storage the
instant it lands — before verification or dedup run — so a bad signature, an unknown provider, or a
downstream outage only changes what happens *next*, never whether you have the event. The ingest URL
is a sealed credential you can re-read on demand and rotate in place, not a secret shown once.

**Verification for 141 providers, built in.** One open registry
([`packages/webhooks-spec`](packages/webhooks-spec)) covers Stripe, GitHub, Shopify, Slack, Twilio,
Square, PayPal, Discord, Clerk, Supabase, and [many more](https://docs.webhook.co/providers/directory).
Every event is sorted into one of four states — **verified** (a cryptographic signature checked),
**authenticated** (source proven by a shared secret, no payload signature), **failed** (a signature
was checked and rejected), or **unattempted** — and a failure names the likely cause instead of
stopping at "no signatures found." Signing and verification follow the
[Standard Webhooks](https://www.standardwebhooks.com/) spec, for both receive and send.

**Reliable outbound delivery.** Forward captured events to your own destinations with strict FIFO
ordering (one Durable Object per destination), at-least-once delivery, retries on exponential backoff,
and dead-lettering once a destination exhausts its retries. Deliveries carry a fresh signature only
for events `webhook.co` verified or authenticated; anything it couldn't vouch for is relayed unsigned.
Optional per-endpoint deduplication collapses repeats by Standard-Webhooks id, provider event id, a
content hash, or JSON fields you choose.

**Replay on demand.** Re-send any captured event still within your retention window — to localhost or
to a registered destination — to fix a handler or recover from an outage, without asking the provider
to send it again.

**Private by default, with the controls built in.** Nothing is public unless you make it so. Tenant
isolation is enforced by Postgres row-level security; secrets are envelope-encrypted under a KMS;
traffic is encrypted in transit and at rest; and privileged actions land in an append-only,
hash-chained audit log with a verifier (`wbhk audit verify`) that proves the chain hasn't been
altered.

**One capability contract, four surfaces.** Every capability is defined once and bound identically to
the CLI, the REST API, the web dashboard, and the MCP server. A parity gate fails the build if a
surface forgets one — so the surfaces don't drift.

## Built for agents

An inbound webhook can wake an agent that's waiting on it. The
[MCP server](https://docs.webhook.co/mcp/overview) at `mcp.webhook.co` is a first-class surface
(remote HTTP on Cloudflare Workers, OAuth-authorized), and `triggers.wait` is the primitive: an agent
registers a trigger on an endpoint and drains new events since its last cursor — at-least-once, in
capture order per endpoint, held durably while the agent is offline, with the verified payload inline
(up to 64 KiB). MCP itself has no native inbound trigger yet.

Egress-configuring capabilities (registering replay destinations and subscriptions) are deliberately
kept off MCP, and localhost replay stays CLI-only — a confused-deputy and SSRF precaution, not a
missing feature.

## SDKs and CLI

Three official client SDKs, generated from the same OpenAPI contract as the API, plus the `wbhk` CLI.
Each SDK ships bearer auth, bounded retries with jitter, cursor pagination, idempotency, and secret
redaction.

| Language | Install | Import |
| --- | --- | --- |
| **TypeScript** | `npm install @webhook-co/sdk` | `import { WebhookClient } from "@webhook-co/sdk"` |
| **Python** | `pip install webhook-co` | `from webhook_co import WebhookClient` |
| **Go** | `go get github.com/webhook-co/webhook-go` | `import webhook "github.com/webhook-co/webhook-go"` |
| **CLI** | `brew install webhook-co/tap/wbhk` | the `wbhk` command |

The TypeScript SDK runs anywhere `fetch` does (Node 18+, browsers, Deno, Bun, Workers). The Python
SDK needs Python 3.10+. The Go SDK needs Go 1.22+ and has zero third-party dependencies — standard
library only — and lives in its own repository,
[`webhook-co/webhook-go`](https://github.com/webhook-co/webhook-go).

The REST API lives at `https://api.webhook.co/v1`, authenticated with a `whk_` bearer key, and is
described by a machine-readable OpenAPI 3.1 document at
[`api.webhook.co/openapi.json`](https://api.webhook.co/openapi.json) — the one source that also
generates the SDKs and the docs.

Distribution is independently verifiable: npm packages are published with provenance
(`npm audit signatures`), and the standalone CLI binaries carry sigstore-signed SLSA build provenance
(`gh attestation verify wbhk-<os>-<arch> --repo webhook-co/webhook`).

## Pricing

`webhook.co` is free to start: a permanent signed URL, inspect, and replay, with **5,000 events to
spend once** — a real trial allowance that never resets. Paid plans (Pro, Scale, Enterprise) price on
a **single dimension — events** — with a soft cap that **pauses capture rather than surprising you
with a bill**. The whole receive → verify → deliver → replay pipeline, outbound delivery included, is
on every plan; plans differ by event volume and retention window. Full numbers:
**[webhook.co/pricing](https://webhook.co/pricing)**.

## How it's built

`webhook.co` is a Turborepo + pnpm-workspaces monorepo. The core engine is TypeScript on Cloudflare
Workers; ordering and isolation come from one Durable Object per destination, with Durable Object
Alarms driving retry scheduling; metadata and dedup live in Neon Postgres via Hyperdrive; and payloads
are stored content-addressed in R2. Ingestion runs on a **separate registrable apex, `wbhk.my`** —
cookieless, no CORS, path-token routed, with a `404` for unknown tokens — deliberately isolated from
the primary application domain.

clicloudflare-workersdeveloper-toolsmcpmcp-serversignature-verificationwebhookwebhook-cowebhook-debuggingwebhook-receiverwebhook-serverwebhook-testingwebhooks

Lo que la gente pregunta sobre webhook

¿Qué es webhook-co/webhook?

+

webhook-co/webhook es mcp servers para el ecosistema de Claude AI. Capture, inspect, replay and deliver webhooks. Open source, with a free permanent signed URL, signature verification, and one-command replay to localhost. Tiene 0 estrellas en GitHub y se actualizó por última vez today.

¿Cómo se instala webhook?

+

Puedes instalar webhook clonando el repositorio (https://github.com/webhook-co/webhook) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar webhook-co/webhook?

+

webhook-co/webhook aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.

¿Quién mantiene webhook-co/webhook?

+

webhook-co/webhook es mantenido por webhook-co. La última actividad registrada en GitHub es de today, con 0 issues abiertos.

¿Hay alternativas a webhook?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega webhook en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: webhook-co/webhook
[![Featured on ClaudeWave](https://claudewave.com/api/badge/webhook-co-webhook)](https://claudewave.com/repo/webhook-co-webhook)
<a href="https://claudewave.com/repo/webhook-co-webhook"><img src="https://claudewave.com/api/badge/webhook-co-webhook" alt="Featured on ClaudeWave: webhook-co/webhook" width="320" height="64" /></a>

Más MCP Servers

Alternativas a webhook