@webhooks-cc/mcp
MCP server for webhooks.cc. It gives coding agents direct access to webhook testing workflows: create endpoints, send signed test webhooks, inspect captures, compare attempts, verify signatures, and read recent webhook context through MCP resources.
It works with Claude Code, Cursor, VS Code, Codex, Windsurf, and Claude Desktop.
Install
The server reads WHK_API_KEY from the environment. It also supports:
WHK_BASE_URL for a custom API base URL
WHK_WEBHOOK_URL for a custom receiver base URL
One-click
CLI
claude mcp add -s user --transport stdio webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
codex mcp add webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
npx @webhooks-cc/mcp setup cursor --api-key whcc_...
npx @webhooks-cc/mcp setup vscode --api-key whcc_...
npx @webhooks-cc/mcp setup windsurf --api-key whcc_...
npx @webhooks-cc/mcp setup claude-desktop --api-key whcc_...
Manual config
{
"mcpServers": {
"webhooks-cc": {
"command": "npx",
"args": ["-y", "@webhooks-cc/mcp"],
"env": {
"WHK_API_KEY": "whcc_..."
}
}
}
}
Get your API key at webhooks.cc/account.
What it exposes
The server exposes 35 tools, 3 prompts, and 3 resource surfaces.
Endpoint tools
create_endpoint
list_endpoints
get_endpoint
update_endpoint
delete_endpoint
create_endpoints
delete_endpoints
Request tools
list_requests
search_requests
count_requests
get_request
wait_for_request
wait_for_requests
replay_request
compare_requests
extract_from_request
verify_signature
clear_requests
Send and test tools
send_webhook
send_to
preview_webhook
test_webhook_flow
Team tools
list_teams
list_team_members
share_endpoint
unshare_endpoint
Endpoints shared with you already appear in list_endpoints (with fromTeam) and work with every request tool except clear_requests, which stays with the owner. Invites are not exposed: accepting one claims a paid seat.
Discovery and account tools
list_provider_templates
get_usage (personal plan plus each subscribed team's pool)
describe
Agent registration tools
Registered on every server, with or without an API key, so an agent that has no credential yet can obtain one (auth.md):
how_to_register
register_agent
check_claim
register_agent_with_email
verify_agent_otp
register_agent_with_idjag
Prompts
The server exposes MCP prompts for common workflows:
debug_webhook_delivery
setup_provider_testing
compare_webhook_attempts
These prompts do not execute anything on their own. They give the client a structured starting point for multi-step agent work.
Resources
The server exposes MCP resources for recent webhook context:
webhooks://endpoints
webhooks://endpoint/{slug}/recent
webhooks://request/{id}
These are useful when the client supports resource browsing or prompt/resource attachment.
Provider support
Provider template and signing support includes:
stripe
github
shopify
twilio
slack
paddle
linear
sendgrid
clerk
discord
vercel
gitlab
typeform
standard-webhooks
meta
lemonsqueezy
coinbase-commerce
razorpay
cal
intercom
telegram
square
hubspot
mailgun
calendly
mux
sentry
bitbucket
docusign
adyen
paypal
plaid
resend
workos
Signature verification also supports:
- all template providers except
sendgrid (IP allowlisting) and plaid (JWT/JWK verification requires Plaid API credentials)
Use list_provider_templates to inspect templates, default events, signature headers, and signing requirements from the agent.
Example workflows
Typical agent flows:
- Create an ephemeral endpoint, send a provider-signed webhook, and wait for capture
- Search retained requests across endpoints with full-text filters
- Compare two webhook attempts and extract only the JSON fields you care about
- Verify a captured signature against a known secret
- Run
test_webhook_flow to create, send, capture, verify, replay, and clean up in one tool call
Programmatic use
The package also exports createServer(), registerTools(), registerPrompts(), and registerResources() if you want to embed the server yourself.
import { createServer } from "@webhooks-cc/mcp";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = createServer({
apiKey: process.env.WHK_API_KEY!,
baseUrl: process.env.WHK_BASE_URL,
webhookUrl: process.env.WHK_WEBHOOK_URL,
});
await server.connect(new StdioServerTransport());
Example conversation
You: Create an ephemeral endpoint for GitHub webhook testing.
Agent: Created endpoint https://go.webhooks.cc/w/abc123 and marked it ephemeral.
You: Preview the signed request for a push event before sending it.
Agent: Here is the exact method, headers, and JSON body that would be sent.
You: Send it, wait for two requests, and compare them.
Agent: Sent the webhook, captured two requests, and here are the header and body differences.
Documentation
Full docs: webhooks.cc/docs/mcp
License
MIT