@webhooks-cc/mcp
v1.4.1
Published
MCP server for webhooks.cc — AI agent integration for webhook testing
Maintainers
Readme
@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_URLfor a custom API base URLWHK_WEBHOOK_URLfor a custom receiver base URL
One-click
- Cursor: Add to Cursor
- VS Code: Add to VS Code
CLI
# Claude Code
claude mcp add -s user --transport stdio webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
# OpenAI Codex
codex mcp add webhooks-cc -e WHK_API_KEY=whcc_... -- npx -y @webhooks-cc/mcp
# Cursor
npx @webhooks-cc/mcp setup cursor --api-key whcc_...
# VS Code
npx @webhooks-cc/mcp setup vscode --api-key whcc_...
# Windsurf
npx @webhooks-cc/mcp setup windsurf --api-key whcc_...
# Claude Desktop
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 25 tools, 3 prompts, and 3 resource surfaces.
Endpoint tools
create_endpointlist_endpointsget_endpointupdate_endpointdelete_endpointcreate_endpointsdelete_endpoints
Request tools
list_requestssearch_requestscount_requestsget_requestwait_for_requestwait_for_requestsreplay_requestcompare_requestsextract_from_requestverify_signatureclear_requests
Send and test tools
send_webhooksend_topreview_webhooktest_webhook_flow
Discovery and account tools
list_provider_templatesget_usagedescribe
Prompts
The server exposes MCP prompts for common workflows:
debug_webhook_deliverysetup_provider_testingcompare_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://endpointswebhooks://endpoint/{slug}/recentwebhooks://request/{id}
These are useful when the client supports resource browsing or prompt/resource attachment.
Provider support
Provider template and signing support includes:
stripegithubshopifytwilioslackpaddlelinearsendgridclerkdiscordvercelgitlabtypeformstandard-webhooks
Signature verification also supports:
- all template providers except
sendgrid, which uses IP allowlisting instead of cryptographic signatures
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_flowto 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
