Webhook MCP Server (@webhooks-cc/mcp)
Install @webhooks-cc/mcp to test webhooks and inbound email in Claude Code, Cursor, Codex, and Windsurf. 38 MCP tools, zero-key sandbox, and official registry.
Updated Oct 2026
Your API key
Paste your API key to fill it into every command below. It stays in your browser only — nothing is sent or stored.
Get your key from your API keys page.
One-click install
Paste your key above first — it gets baked into the install link.
VS Code prompts you for your key during install.
Claude Code
claude mcp add -s user webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
Cursor (CLI)
npx @webhooks-cc/mcp setup cursor --api-key whcc_...
VS Code (CLI)
npx @webhooks-cc/mcp setup vscode --api-key whcc_...
OpenAI Codex
codex mcp add webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
Windsurf
npx @webhooks-cc/mcp setup windsurf --api-key whcc_...
Claude Desktop
npx @webhooks-cc/mcp setup claude-desktop --api-key whcc_...
Manual config
For any tool that reads an MCP config JSON file:
{
"mcpServers": {
"webhooks-cc": {
"command": "npx",
"args": ["-y", "@webhooks-cc/mcp"],
"env": {
"WHK_API_KEY": "whcc_..."
}
}
}
}Registry and client support
@webhooks-cc/mcp is published on npm and indexed in the Model Context Protocol ecosystem so AI coding agents can discover and install it directly:
- npm package:
@webhooks-cc/mcp(npx -y @webhooks-cc/mcp) - Official MCP Registry:
io.github.webhooks-cc/mcp(server.jsonschema validated in CI) - Glama & Smithery: Ships with
glama.jsonmetadata and stdio transport support for zero-config inspection - Supported MCP clients: Claude Code (
claude mcp add webhooks -- npx -y @webhooks-cc/mcp), Cursor, VS Code (GitHub Copilot), OpenAI Codex, Windsurf, and Claude Desktop
Available tools
The MCP server exposes 38 tools your AI agent can call. Without an API key, 10 sandbox tools are available (see below).
Provider-aware testing
Agents can inspect provider metadata, send realistic templates, then read the captured request with the provider and event visible in the dashboard.
You: "List the Typeform webhook templates and send a form_response to my endpoint"
Agent: [calls list_provider_templates with provider: "typeform"]
Agent: [calls send_webhook with provider: "typeform", template: "form_response", secret: "..."]
Agent: Captured POST request detected as Typeform / form_responseThe same flow works for Stripe, GitHub, Shopify, Twilio, Slack, Paddle, Linear, SendGrid templates, Clerk, Discord templates, Vercel, GitLab, Typeform, Standard Webhooks, DocuSign, Adyen, PayPal templates, and Plaid templates.
For provider templates in send_webhook, secret is required for every signed provider (only sendgrid, discord, and plaid templates are unsigned and need no secret). The MCP server does not inject a default secret.
Endpoint management
| Tool | Description |
|---|---|
create_endpoint | Create a new webhook endpoint |
list_endpoints | List all your endpoints |
get_endpoint | Get details for an endpoint by slug |
update_endpoint | Update an endpoint name or mock response |
delete_endpoint | Delete an endpoint and its requests |
create_endpoints | Create multiple endpoints in one call (1-20) |
delete_endpoints | Delete multiple endpoints in one call (1-100) |
Sending and testing
| Tool | Description |
|---|---|
send_webhook | Send a test webhook (manual or provider template) to an endpoint |
send_to | Send a signed webhook directly to any URL (localhost, staging, etc.) |
preview_webhook | Preview a webhook request without sending it |
test_webhook_flow | Run a full test flow: create, mock, send, wait, verify, replay, cleanup |
Request management
| Tool | Description |
|---|---|
list_requests | List captured requests for an endpoint |
get_request | Get full details of a captured request |
wait_for_request | Wait for an incoming request (polling) |
wait_for_requests | Wait for multiple incoming requests |
search_requests | Search requests across endpoints with full-text search |
count_requests | Count requests matching filters |
clear_requests | Delete requests for an endpoint without deleting the endpoint |
Request analysis
| Tool | Description |
|---|---|
replay_request | Replay a captured request to a target URL |
compare_requests | Compare two requests and show structured differences |
extract_from_request | Extract specific JSON fields from a request body |
verify_signature | Verify the webhook signature on a captured request |
Emails
Every endpoint receives email at {slug}@mailhooks.cc, and at {slug}+{tag}@mailhooks.cc for any tag.
| Tool | Description |
|---|---|
list_emails | List an endpoint's emails with subject, sender, tag, code and link |
get_email | Get one email by ID, or the newest at an endpoint, with its code and link |
wait_for_email | Wait for an email to arrive (for example after a signup), then return it |
send_test_email | Deliver a sample email with a code and a link, optionally to a +tag |
Forwarding
| Tool | Description |
|---|---|
configure_forwarding | Set where and how captured requests and emails are forwarded, and turn it on or off |
get_forwarding_secret | Read or rotate the signing secret for forwarded deliveries |
test_forwarding | Send the newest request (or a sample) to the forwarding URL once and report the answer |
list_deliveries | The delivery log and its counts for an endpoint, or every try of one request |
redeliver | Forward one request again, or every failed one |
Teams
| Tool | Description |
|---|---|
list_teams | List the teams you own or belong to, with their pooled quota |
list_team_members | List a team's members and pending invites |
share_endpoint | Share an endpoint you own with a team |
unshare_endpoint | Stop sharing an endpoint you own with a team |
Utilities
| Tool | Description |
|---|---|
list_provider_templates | List supported providers, templates, and signing metadata |
get_usage | Check current request usage, quota, and plan |
describe | Describe all available SDK operations |
Without an API key: the agent sandbox
Started without WHK_API_KEY, the server still works. It offers create_endpoint, list_endpoints, get_endpoint, delete_endpoint, list_requests, get_request and wait_for_request with the same names and arguments as above, backed by the agent sandbox: up to 3 temporary endpoints, 25 captured requests each and 100 in all, for 24 hours. The first create_endpoint registers the sandbox, which takes a few seconds of proof of work.
To get everything else, the agent connects to your account: connect_account with your email returns a link and a 6-digit code, you sign in (or sign up) and enter the code, and wait_for_connection then swaps in the full tool set for your account, sandbox endpoints included. about_sandbox explains the limits without a network call. The connection lasts while the server runs; for a lasting setup, create an API key and set WHK_API_KEY.
Prompts
The MCP server provides 3 prompt templates for common workflows:
- debug_webhook_delivery: diagnose why webhook delivery is failing or missing
- setup_provider_testing: set up webhook testing for a specific provider
- compare_webhook_attempts: compare two webhook deliveries or retries
Resources
Three resources provide read-only access to your webhook data:
- endpoints-overview (
webhooks://endpoints): all endpoints with recent activity - endpoint-recent-requests (
webhooks://endpoint/{slug}/recent): last 10 requests at an endpoint - request-details (
webhooks://request/{id}): full details of a specific request
Resources return emails without the raw message or the HTML part, like the request tools.
Example conversation
With the MCP server connected, you can talk to your AI agent naturally:
You: "Create a webhook endpoint for testing Stripe"
Agent: Created endpoint "stripe-test" at https://go.webhooks.cc/w/abc123
You: "Set it to return 201 with {"received": true}"
Agent: Updated mock response for stripe-test
You: "Send a Stripe checkout.session.completed template webhook to stripe-test"
Agent: Sent signed Stripe template to stripe-test
You: "Show me what was captured"
Agent: 1 request captured:
POST /w/abc123 - stripe-signature + checkout.session.completed payload
You: "Replay that to my local server"
Agent: Replayed to http://localhost:3000/webhooks - got 200 OKLearn more
SDK Overview
The TypeScript SDK that powers the MCP server.
API Reference
All methods, matchers, and types.
Testing patterns
CI/CD integration examples.