Public webhook relay with signed observations, retries and verified receivers. Self-service.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Enqueue up to 65536 payload bytes for a previously verified receiver using its delivery token. Returns a deliveryId, not proof of delivery. Reuse eventId and exact bytes on retries, then poll get_hook_delivery. The free allowance is 100 events/day per verified receiver; extra admissions consume purchased credits. No arbitrary destination can be supplied here.
Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook.
Hook identifier returned by registration; preserve for all subsequent operations.
Stable caller-chosen event identifier, for example order-20261007-01. Reuse with identical payload bytes on retry; different bytes under the same ID are rejected.
Canonical base64 payload, at most 65536 decoded bytes. Preserve exact bytes with eventId on retries.
Media type of the decoded payload bytes; JSON must be encoded as UTF-8 before base64 conversion.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Enqueue up to 65536 payload bytes for a previously verified receiver using its delivery token. Returns a deliveryId, not proof of delivery. Reuse eventId and exact bytes on retries, then poll get_hook_delivery. The free allowance is 100 events/day per verified receiver; extra admissions consume purchased credits. No arbitrary destination can be supplied here.
| Argument | Type | Description |
|---|---|---|
| token* | string | Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook. |
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| eventId* | string | Stable caller-chosen event identifier, for example order-20261007-01. Reuse with identical payload bytes on retry; different bytes under the same ID are rejected. |
| bodyBase64* | string | Canonical base64 payload, at most 65536 decoded bytes. Preserve exact bytes with eventId on retries. |
| contentType* | string | Media type of the decoded payload bytes; JSON must be encoded as UTF-8 before base64 conversion. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"token",
"eventId",
"contentType",
"bodyBase64"
],
"properties": {
"token": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook."
},
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"description": "Stable caller-chosen event identifier, for example order-20261007-01. Reuse with identical payload bytes on retry; different bytes under the same ID are rejected."
},
"bodyBase64": {
"type": "string",
"maxLength": 87384,
"description": "Canonical base64 payload, at most 65536 decoded bytes. Preserve exact bytes with eventId on retries."
},
"contentType": {
"enum": [
"application/json",
"text/plain",
"application/octet-stream"
],
"type": "string",
"description": "Media type of the decoded payload bytes; JSON must be encoded as UTF-8 before base64 conversion."
}
},
"additionalProperties": false
}Read the existing hook ownership challenge and verification or revocation status using its management token. No activation or delivery. Use after registration or an interrupted verification; use get_hook_delivery for one accepted event.
| Argument | Type | Description |
|---|---|---|
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| managementToken* | string | Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"managementToken"
],
"properties": {
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token."
}
},
"additionalProperties": false
}Read remaining purchased admission credits for an existing hook using its management token. Free and read-only; does not purchase credits. Use purchase_hook_credits to request a quote. The daily free allowance remains separate.
| Argument | Type | Description |
|---|---|---|
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| managementToken* | string | Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"managementToken"
],
"properties": {
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token."
}
},
"additionalProperties": false
}Read one accepted event by its returned deliveryId and hook delivery token. Poll after accept_hook_event to distinguish queued, retried and completed delivery. Signed observations attest relay attempts, not successful business processing by the receiver. No new delivery or payment.
| Argument | Type | Description |
|---|---|---|
| token* | string | Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook. |
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| deliveryId* | string | Delivery identifier returned on event acceptance; acceptance does not mean delivered. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"token",
"deliveryId"
],
"properties": {
"token": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook."
},
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"deliveryId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "Delivery identifier returned on event acceptance; acceptance does not mean delivered."
}
},
"additionalProperties": false
}Request an x402 quote without payment, or buy credits with an explicitly authorized signed payment. Reuse purchaseId and the same payment after any timeout.
| Argument | Type | Description |
|---|---|---|
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| payment | object | Original signed x402 payment payload authorized by the payer. Omit to request a quote without paying. Never fabricate or replace an uncertain authorization. |
| purchaseId* | string | Unique caller-chosen purchase identifier, for example credits-20261007-01. Save before requesting the quote and reuse unchanged with the same payment on retries. |
| managementToken* | string | Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"managementToken",
"purchaseId"
],
"properties": {
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"payment": {
"type": "object",
"description": "Original signed x402 payment payload authorized by the payer. Omit to request a quote without paying. Never fabricate or replace an uncertain authorization.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"purchaseId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$",
"description": "Unique caller-chosen purchase identifier, for example credits-20261007-01. Save before requesting the quote and reuse unchanged with the same payment on retries."
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token."
}
},
"additionalProperties": false
}Register an HTTPS receiver you control. Returns hookId, private credentials and the ownership challenge; delivery remains inactive. Publish the exact challenge on your origin, then call verify_destination. Keep recoveryKey secret and reuse it with the identical target after interruption; do not register again with a new key.
| Argument | Type | Description |
|---|---|---|
| target* | string | HTTPS receiver you control; ownership challenge is required before delivery. |
| recoveryKey* | string | Generate 32 random bytes locally and encode as 64 lowercase hex characters. Save privately before registration; reuse with the identical target after interruption. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"target",
"recoveryKey"
],
"properties": {
"target": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "HTTPS receiver you control; ownership challenge is required before delivery."
},
"recoveryKey": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Generate 32 random bytes locally and encode as 64 lowercase hex characters. Save privately before registration; reuse with the identical target after interruption."
}
},
"additionalProperties": false
}Permanently revoke this hook with its management token after explicit owner approval. New submissions are rejected; previously accepted deliveries finish. This does not cancel queued events and cannot be undone. Use get_destination_status first if you only need to inspect access.
| Argument | Type | Description |
|---|---|---|
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| managementToken* | string | Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"managementToken"
],
"properties": {
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token."
}
},
"additionalProperties": false
}Fetch the ownership challenge from the previously registered receiver and activate it when valid. First publish the exact challenge returned by register_destination. Requires the management token; does not deliver an event. Use get_destination_status to inspect progress without activation.
| Argument | Type | Description |
|---|---|---|
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| managementToken* | string | Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"managementToken"
],
"properties": {
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"managementToken": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private management token returned by registration. Required for status, activation, revocation and credits; not the delivery token."
}
},
"additionalProperties": false
}Check an unchanged event and signed receipt returned by get_hook_delivery within the authenticated hook. Requires the delivery token; does not send an event. A valid signature attests relay observations, not business truth or exactly-once processing.
| Argument | Type | Description |
|---|---|---|
| event* | object | Exact event object returned with the relay receipt; preserve all fields. |
| token* | string | Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook. |
| hookId* | string | Hook identifier returned by registration; preserve for all subsequent operations. |
| receipt* | object | Exact signed relay receipt from delivery lookup. Do not substitute issuer keys or edit its fields. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hookId",
"token",
"event",
"receipt"
],
"properties": {
"event": {
"type": "object",
"description": "Exact event object returned with the relay receipt; preserve all fields.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"token": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "Private delivery token returned by registration; authenticates event submission, delivery lookup and receipt verification for this hook."
},
"hookId": {
"type": "string",
"pattern": "^pub-[a-f0-9]{32}$",
"description": "Hook identifier returned by registration; preserve for all subsequent operations."
},
"receipt": {
"type": "object",
"description": "Exact signed relay receipt from delivery lookup. Do not substitute issuer keys or edit its fields.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
}