Add Webhook Studio to your AI tools
One URL turns the whole product into agent tools — provision an endpoint, wait for the event, replay it into localhost, forward it, and generate types from your real traffic — without leaving Claude, Cursor, or VS Code.
https://webhook-studio.com/mcpClaude Code
# Keyless: mint a scoped read+replay token (no signup), then add the server
TOKEN=$(curl -s -X POST https://webhook-studio.com/api/start | jq -r .api_token)
claude mcp add --transport http webhook-studio https://webhook-studio.com/mcp \
--header "Authorization: Bearer $TOKEN"
# Full access: use an API key from your dashboard's API page instead
claude mcp add --transport http webhook-studio https://webhook-studio.com/mcp \
--header "Authorization: Bearer ws_live_your_key_here"
# --scope user makes it available in every project; --scope project writes
# .mcp.json to share it with your team. Then run /mcp to verify it connected.Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project:
{
"mcpServers": {
"webhook-studio": {
"url": "https://webhook-studio.com/mcp",
"headers": { "Authorization": "Bearer ws_live_your_key_here" }
}
}
}VS Code
Add to .vscode/mcp.json in your workspace (Copilot agent mode):
{
"servers": {
"webhook-studio": {
"type": "http",
"url": "https://webhook-studio.com/mcp",
"headers": { "Authorization": "Bearer ws_live_your_key_here" }
}
}
}Any MCP client
Most clients (Windsurf, Codex CLI, Zed, and others) take the same remote-server block — point them at the URL and pass the bearer token. Windsurf uses serverUrl in place of url; check your client’s MCP docs for the exact key.
{
"mcpServers": {
"webhook-studio": {
"url": "https://webhook-studio.com/mcp",
"headers": { "Authorization": "Bearer ws_live_your_key_here" }
}
}
}Which token do I use?
| Token | Where from | Can do |
|---|---|---|
ws_anon_… | POST /api/start — no account | Read + replay, bound to one endpoint. Expires with it (3 days). |
ws_live_… | Dashboard → API page (free account) | Everything: create endpoints, configure verification, standing forwards, schemas. |
An anon token calling a tool outside its scope (e.g. create_bucket) simply gets a 401 — the scoping is enforced server-side, so it is safe to hand an agent a keyless token.
The tools
Task-shaped, not resource-shaped — reach for them by intent:
create_bucket | Provision an endpoint (keyless or keyed). |
list_buckets / get_bucket / delete_bucket | Manage endpoints; re-anchor after context loss. |
latest_event | The last event, one call — filter by provider or type. |
list_events / get_event | Time / type / provider addressable, with deliveries. |
wait_for_event | Block until a matching event arrives — turn "go click Send test webhook" into a function call. |
replay_event | Byte-faithful replay to localhost; re-sign with your own secret. |
forward_bucket | Stand up a forward to your app in one call. |
list_deliveries | Did my forward succeed? Read the delivery results. |
configure_verification | Turn on HMAC with the provider’s real signing secret. |
list_schemas / get_schema | What this account’s traffic actually looks like. |
diff_schema | What changed between versions, and which changes break a consumer. |
generate_types | TypeScript / JSON Schema / Zod — or a full Next/Express handler — from your real payloads. |
find_correlation_keys | The id-like fields to group events by when reconstructing a lifecycle. |
Each tool maps 1:1 onto a /v1 route, so the REST reference is also the tool reference. The full machine spec lives at /llms.txt and /v1/openapi.json.