Webhook Studio MCP server
Which servers in the official MCP registry are Webhook Studio's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-25
- Registry namecom.webhook-studio/webhooksverified in the MCP registry
The registry name sits under webhook-studio.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-25
- Tools17
- Server calls itselfwebhook-studio
- Server version0.1.1
- Protocol version2025-06-18
On 2026-10-25 the server answered initialize and tools/list without a sign-in. First answer in 86 ms.
- Its tools do every use case we checked: capture and inspect incoming provider webhook requests; generate typescript types from real webhook payloads; replay captured events to localhost with original signatures.
- Checked on 1 of the 7 days it takes to judge reliability.
Once connected
- For "capture and inspect incoming provider webhook requests", the likely first call is create_bucket.
- For "generate typescript types from real webhook payloads", the likely first call is list_schemas.
- Keep approval on for delete_bucket: they delete, send or pay without saying so.
- create_bucket, delete_bucket change data without a sign-in: anyone with the address can call them.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 1 so far
- What an agent can do with it3 of 3 use cases
- Answeredmeasuring1 of the 7 daily checks it takes to print a share
- Median first answer232 ms
- Space in an agent's context≈ 3,161 tokensthe definitions of all its tools (17), which an agent carries on every turn
- Tool definitionsB · 83 of 100
- Typed results0 of 17 toolsdeclared outputSchema: results come typed, read once
- Not saying whether it only reads or can destroy: 17 of 17
What an agent can do with it
- can do · capture and inspect incoming provider webhook requests
- can do · generate typescript types from real webhook payloads
- can do · replay captured events to localhost with original signatures
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that delete, send or pay without telling the client so: delete_bucket
- Tools that change data, on a server that answers without a sign-in: create_bucket, delete_bucket
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
create_bucketProvision a new webhook endpoint (a "bucket") that captures incoming HTTP requests. Returns its id, public ingest url to point a provider at, inbox_url (the live human view to hand back), and signing secret. Pass external_ref — your own…
list_bucketsList your webhook endpoints. Pass external_ref to fetch the specific bucket you created earlier under that name — this is how you re-anchor after losing the conversation, since you never need to have stored the bucket id.
get_bucketFetch one webhook endpoint by id, including its url and inbox_url.
delete_bucketPermanently delete a webhook endpoint and its captured events.
latest_eventGet the single most recent event captured by a bucket, optionally filtered by provider and event type. Returns one event with its headers, body and delivery results — the one-shot answer to "what did Stripe last send me". 404 if nothing…
list_eventsList events captured by a bucket, newest first, with composable filters: since/until (ISO 8601 or YYYY-MM-DD), provider, type, method, signature_valid, and q (case-insensitive substring over body, content type, method, type and labels)…
get_eventFetch one captured event by id with its full headers, body, signature verification result (and failure reason), and every outbound delivery attempt. This is how you find out whether your forward actually reached its target and what came…
wait_for_eventBlock until the next matching event arrives on a bucket, or until the timeout. Use this to turn "go click Send test webhook in Stripe" into a synchronous step: call it, tell the human to trigger the event, and it returns as soon as one…
replay_eventRe-send a captured event to any URL — the test runner for a handler you just wrote. preserve_headers defaults to true so the original signature header (e.g. Stripe-Signature) arrives intact. If you changed the body or the receiver…
forward_bucketSet up standing forwarding from a bucket to a URL. Pass forward_all:true to forward every event, or condition_tree to forward only matching events (same AND/OR condition grammar the routing engine uses). Creates the destination and…
list_deliveriesList outbound delivery attempts for a bucket, newest first, with the full request and response of each. Pass success:false to see only failures — the direct answer to "which of my forwards are broken and why".
configure_verificationTurn on HMAC signature verification for a bucket using the provider's own signing secret (e.g. Stripe's whsec_). This is how you finish a "verified webhook" integration end to end. Set secret to the provider secret and hmac_enabled:true…
list_schemasList the payload schemas Webhook Studio has learned from this account's real traffic, optionally filtered by provider and event_type. These outlive the payloads they were learned from, so this answers "what shapes do I know about" even…
get_schemaFetch one learned schema with every field, its type, whether it is optional, and how often it actually appears — the real shape of the payload, derived from what this account received rather than guessed from training data.
diff_schemaCompare two versions of a learned schema and get exactly which fields were added, removed or changed type, each flagged as breaking or not. This is the "why did my handler start failing" answer, produced without reading a single payload…
generate_typesGenerate types, a runtime validator, or a full handler from a learned schema — the payoff of the knowledge layer. Everything is derived from the payloads this account ACTUALLY received, with genuinely-optional fields marked optional…
find_correlation_keysList the correlation-key candidates for a learned schema — the fields that look like identifiers (e.g. data.object.id), ranked by how consistently they appear. These are the fields to group events by when reconstructing a lifecycle (a…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"webhooks": {
"type": "http",
"url": "https://webhook-studio.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http webhook-studio https://webhook-studio.com/mcpclaude.ai, ChatGPT and other clients: add https://webhook-studio.com/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.