WebhookTest.net
Anonymous webhook capture, inspection, waiting, and response configuration for AI agents.
Should I use this
Quality & Safety
Findings (8)
- LOWin clear_webhooks
- LOWin configure_webhook_response
- LOWin create_webhook_bucket
- LOWin delete_webhook_bucket
- LOWin get_webhook
- LOWin get_webhook_bucket
- LOWin list_webhooks
- LOWin wait_for_webhook
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"webhook-tester": {
"url": "https://webhooktest.net/mcp"
}
}
}Remote endpoints
https://webhooktest.net/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🔴clear_webhooks(bucket_id, confirm)
Permanently delete every capture in a bucket. Requires confirm=true.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"confirm": {
"type": "boolean",
"description": "must be true to perform this destructive action"
}
},
"required": [
"bucket_id",
"confirm"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟡configure_webhook_response(bucket_id, status, content_type, body, headers, ...)
Set the status, content type, body, safe response headers, and a delay up to 10 seconds returned by the webhook endpoint.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"status": {
"type": "integer"
},
"content_type": {
"type": "string"
},
"body": {
"type": "string"
},
"headers": {
"type": "object",
"description": "optional response headers; server-managed and hop-by-hop headers are rejected",
"additionalProperties": {
"type": "string"
}
},
"delay_ms": {
"type": "integer",
"description": "response delay in milliseconds, from 0 to 10000"
}
},
"required": [
"bucket_id",
"status",
"content_type",
"body"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟡create_webhook_bucket(name, controlled_test)
Create an anonymous temporary webhook capture bucket. The returned bucket ID is a bearer capability and expires after 15 days of inactivity.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "optional display name for the bucket"
},
"controlled_test": {
"type": "boolean",
"description": "set true only for maintainer QA or automated evaluations; not for a real user's first test"
}
},
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"webhook_endpoint": {
"type": "string"
},
"dashboard_url": {
"type": "string"
},
"inactivity_policy": {
"type": "string"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🔴delete_webhook_bucket(bucket_id, confirm)
Permanently delete a bucket and all of its captures. Requires confirm=true.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"confirm": {
"type": "boolean",
"description": "must be true to perform this destructive action"
}
},
"required": [
"bucket_id",
"confirm"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟢get_webhook(bucket_id, webhook_id, include_sensitive, max_body_bytes)
Read one webhook capture scoped to its bucket. Sensitive headers and query values are redacted by default.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"webhook_id": {
"type": "string"
},
"include_sensitive": {
"type": "boolean",
"description": "return sensitive header and query values; defaults to false"
},
"max_body_bytes": {
"type": "integer",
"description": "maximum body bytes to return; defaults to 65536 and cannot exceed 262144"
}
},
"required": [
"bucket_id",
"webhook_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"webhook": {
"type": [
"null",
"object"
],
"properties": {
"id": {
"type": "string"
},
"bucket_id": {
"type": "string"
},
"method": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": true
},
"query": {
"type": "object",
"additionalProperties": true
},
"body": {
"type": "string"
},
"created_at": {
"type": "string"
},
"body_bytes": {
"type": "integer"
},
"body_returned_bytes": {
"type": "integer"
},
"body_truncated": {
"type": "boolean"
},
"sensitive_included": {
"type": "boolean"
},
"redacted_fields": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
}
},
"dashboard_url": {
"type": "string"
}
},
"required": [
"id",
"bucket_id",
"method",
"headers",
"query",
"body",
"created_at",
"body_bytes",
"body_returned_bytes",
"body_truncated",
"sensitive_included",
"dashboard_url"
],
"additionalProperties": false
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟢get_webhook_bucket(bucket_id)
Read a bucket name and its configured HTTP response settings.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string",
"description": "bucket capability ID"
}
},
"required": [
"bucket_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"response_status": {
"type": "integer"
},
"response_content_type": {
"type": "string"
},
"response_body": {
"type": "string"
},
"response_headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"response_delay_ms": {
"type": "integer"
},
"webhook_endpoint": {
"type": "string"
},
"dashboard_url": {
"type": "string"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟢list_webhooks(bucket_id, limit, cursor)
List webhook capture summaries in newest-first order using cursor pagination.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"limit": {
"type": "integer",
"description": "number of summaries to return, from 1 to 50"
},
"cursor": {
"type": "string",
"description": "opaque cursor returned by a previous call"
}
},
"required": [
"bucket_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"webhooks": {
"type": [
"null",
"array"
],
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"method": {
"type": "string"
},
"created_at": {
"type": "string"
},
"body_bytes": {
"type": "integer"
}
},
"required": [
"id",
"method",
"created_at",
"body_bytes"
],
"additionalProperties": false
}
},
"has_more": {
"type": "boolean"
},
"next_cursor": {
"type": "string"
},
"dashboard_url": {
"type": "string"
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"additionalProperties": false
}🟢wait_for_webhook(bucket_id, after_webhook_id, wait_seconds, include_sensitive, max_body_bytes)
Return the latest capture, wait for a newer capture, or report received=false after the timeout.
Input Schema
{
"type": "object",
"properties": {
"bucket_id": {
"type": "string"
},
"after_webhook_id": {
"type": "string",
"description": "wait for a capture newer than this webhook ID"
},
"wait_seconds": {
"type": "integer",
"description": "seconds to wait; defaults to 20 and cannot exceed 25"
},
"include_sensitive": {
"type": "boolean"
},
"max_body_bytes": {
"type": "integer"
}
},
"required": [
"bucket_id"
],
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"received": {
"type": "boolean"
},
"webhook": {
"type": [
"null",
"object"
],
"properties": {
"id": {
"type": "string"
},
"bucket_id": {
"type": "string"
},
"method": {
"type": "string"
},
"headers": {
"type": "object",
"additionalProperties": true
},
"query": {
"type": "object",
"additionalProperties": true
},
"body": {
"type": "string"
},
"created_at": {
"type": "string"
},
"body_bytes": {
"type": "integer"
},
"body_returned_bytes": {
"type": "integer"
},
"body_truncated": {
"type": "boolean"
},
"sensitive_included": {
"type": "boolean"
},
"redacted_fields": {
"type": [
"null",
"array"
],
"items": {
"type": "string"
}
},
"dashboard_url": {
"type": "string"
}
},
"required": [
"id",
"bucket_id",
"method",
"headers",
"query",
"body",
"created_at",
"body_bytes",
"body_returned_bytes",
"body_truncated",
"sensitive_included",
"dashboard_url"
],
"additionalProperties": false
},
"error": {
"type": [
"null",
"object"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retry_after_seconds": {
"type": "integer"
},
"limit": {
"type": "integer"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"required": [
"received"
],
"additionalProperties": false
}Recommended Prompts
get_webhookget_webhooklist_webhookslist_webhookslist_webhooksget_webhookCommunity
Evidence