WebhookTest.net

Anonymous webhook capture, inspection, waiting, and response configuration for AI agents.

Should I use this

Quality & Safety

B
Description quality
90%
Schema completeness
91%
Naming quality
98%
Poisoning risk
100%
Permission match
20%
Protocol compliance
100%

Findings (8)

  • LOWTool 'clear_webhooks' suggests web access but openWorldHint=falsein clear_webhooks
  • LOWTool 'configure_webhook_response' suggests web access but openWorldHint=falsein configure_webhook_response
  • LOWTool 'create_webhook_bucket' suggests web access but openWorldHint=falsein create_webhook_bucket
  • LOWTool 'delete_webhook_bucket' suggests web access but openWorldHint=falsein delete_webhook_bucket
  • LOWTool 'get_webhook' suggests web access but openWorldHint=falsein get_webhook
  • LOWTool 'get_webhook_bucket' suggests web access but openWorldHint=falsein get_webhook_bucket
  • LOWTool 'list_webhooks' suggests web access but openWorldHint=falsein list_webhooks
  • LOWTool 'wait_for_webhook' suggests web access but openWorldHint=falsein wait_for_webhook

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,160Tokens (tool definitions)
~2.8 KBTypical response size
Moderate attention impact (1.69% of 128k context)

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-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🔴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 (JSON, plain text, XML, or form-encoded), body, optional Retry-After or X-Hook-Secret header, and a delay up to 10 seconds returned by the webhook endpoint. Browser visits always receive plain text.

Input Schema

{
  "type": "object",
  "properties": {
    "bucket_id": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "content_type": {
      "type": "string",
      "description": "application/json, text/plain, application/xml, text/xml, application/soap+xml, application/problem+xml, application/x-www-form-urlencoded, or application/*+json; only a charset parameter is allowed; empty selects application/json"
    },
    "body": {
      "type": "string"
    },
    "headers": {
      "type": "object",
      "description": "optional response headers; only Retry-After and X-Hook-Secret are supported, matched case-insensitively",
      "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

retrieve_data
Get details about [item] from WebhookTest.net
Expected tools: get_webhook
fetch_info
Fetch [information type] using WebhookTest.net
Expected tools: get_webhook
list_items
List all [items] available in WebhookTest.net
Expected tools: list_webhooks
browse_collection
Show me the [collection] from WebhookTest.net
Expected tools: list_webhooks
explore_workflow
List available [items], then get details for each one using WebhookTest.net
Expected tools: list_webhooksget_webhook

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools