Webhook Studio
/Connect

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/mcp
Keyless works. Grab a scoped read + replay token with no signup (below), or paste a full-access API key from your account to also create endpoints and configure verification. Transport is Streamable HTTP; auth is a bearer token.

Claude 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?

TokenWhere fromCan do
ws_anon_…POST /api/start — no accountRead + 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_bucketProvision an endpoint (keyless or keyed).
list_buckets / get_bucket / delete_bucketManage endpoints; re-anchor after context loss.
latest_eventThe last event, one call — filter by provider or type.
list_events / get_eventTime / type / provider addressable, with deliveries.
wait_for_eventBlock until a matching event arrives — turn "go click Send test webhook" into a function call.
replay_eventByte-faithful replay to localhost; re-sign with your own secret.
forward_bucketStand up a forward to your app in one call.
list_deliveriesDid my forward succeed? Read the delivery results.
configure_verificationTurn on HMAC with the provider’s real signing secret.
list_schemas / get_schemaWhat this account’s traffic actually looks like.
diff_schemaWhat changed between versions, and which changes break a consumer.
generate_typesTypeScript / JSON Schema / Zod — or a full Next/Express handler — from your real payloads.
find_correlation_keysThe 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.