Skip to main content
Glama

list_webhook_deliveries

Read-onlyIdempotent

Read the latest 50 deliveries and their exact JSON payloads (identifiers, sender line, dates, matched terms; never page text) for one webhook. HTTP 2xx delivered means receipt, not external-agent processing. No signing secrets or receiver response body. Requires webhook.manage. Uses the same bounded control plane and tenant/agent/Live-Sandbox authorization as /api/v1/webhooks/endpoints. Reuse the exact idempotency_key and input after an uncertain mutation. Webhook docs: https://mailbox.bot/docs/webhooks.

Input Schema

NameRequiredDescriptionDefault
endpoint_idYesWebhook endpoint id (UUID) from list_webhook_endpoints.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedOutput schema / properties / result / properties / deliveries / items / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.action.requested",
      -  "inbound.action.completed",
      -  "inbound.pages_ready",
      -  "inbound.keywords_matched",
      -  "mail.pending_approval",
      -  "mail.submitted",
      -  "mail.ready",
      -  "mail.mailed",
      -  "mail.delivered",
      -  "mail.failed",
      -  "mail.cancelled",
      -  "batch.submitted",
      -  "batch.completed",
      -  "batch.partially_completed",
      -  "batch.failed",
      -  "batch.cancelled",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "mail.pending_approval",
      +  "mail.submitted",
      +  "mail.ready",
      +  "mail.mailed",
      +  "mail.delivered",
      +  "mail.failed",
      +  "mail.cancelled",
      +  "batch.submitted",
      +  "batch.completed",
      +  "batch.partially_completed",
      +  "batch.failed",
      +  "batch.cancelled",
      +  "batch.piece.scanned",
      +  "batch.piece.confirmed",
      +  "webhook.test"
      +]
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.action.requested",
      -  "inbound.action.completed",
      -  "inbound.pages_ready",
      -  "inbound.keywords_matched",
      -  "mail.pending_approval",
      -  "mail.submitted",
      -  "mail.ready",
      -  "mail.mailed",
      -  "mail.delivered",
      -  "mail.failed",
      -  "mail.cancelled",
      -  "batch.submitted",
      -  "batch.completed",
      -  "batch.partially_completed",
      -  "batch.failed",
      -  "batch.cancelled",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "mail.pending_approval",
      +  "mail.submitted",
      +  "mail.ready",
      +  "mail.mailed",
      +  "mail.delivered",
      +  "mail.failed",
      +  "mail.cancelled",
      +  "batch.submitted",
      +  "batch.completed",
      +  "batch.partially_completed",
      +  "batch.failed",
      +  "batch.cancelled",
      +  "batch.piece.scanned",
      +  "batch.piece.confirmed",
      +  "webhook.test"
      +]
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / piece
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "confirmed_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "first_scanned_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "mode": {
      +      "enum": [
      +        "link",
      +        "confirm",
      +        "verify"
      +      ],
      +      "type": "string"
      +    },
      +    "ref": {
      +      "anyOf": [
      +        {
      +          "maxLength": 100,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "scans": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "sequence": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "sequence",
      +    "ref",
      +    "mode",
      +    "scans",
      +    "first_scanned_at",
      +    "confirmed_at"
      +  ],
      +  "type": "object"
      +}
  2. Changed6 schema fields changed
    • changedOutput schema / properties / result / properties / deliveries / items / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.action.requested",
      -  "inbound.action.completed",
      -  "inbound.pages_ready",
      -  "inbound.keywords_matched",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "mail.pending_approval",
      +  "mail.submitted",
      +  "mail.ready",
      +  "mail.mailed",
      +  "mail.delivered",
      +  "mail.failed",
      +  "mail.cancelled",
      +  "batch.submitted",
      +  "batch.completed",
      +  "batch.partially_completed",
      +  "batch.failed",
      +  "batch.cancelled",
      +  "webhook.test"
      +]
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / api_url / pattern
      Previous value: -"^https:\\/\\/mailbox\\.bot\\/api\\/v1\\/inbound-items\\/[a-f0-9-]{36}$"New value: +"^https:\\/\\/mailbox\\.bot\\/api\\/v1\\/(inbound-items|mail|batch-mail)\\/[a-f0-9-]{36}$"
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / batch
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "agent_id": {
      +      "anyOf": [
      +        {
      +          "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)$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "completed_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "created_at": {
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +      "type": "string"
      +    },
      +    "error_message": {
      +      "anyOf": [
      +        {
      +          "maxLength": 500,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "id": {
      +      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$",
      +      "type": "string"
      +    },
      +    "job_name": {
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "mail_type": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "mailing_class": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "pieces": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "failed": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "mailed": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "total": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "total",
      +        "mailed",
      +        "failed"
      +      ],
      +      "type": "object"
      +    },
      +    "refunded_cents": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "status": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "total_cents": {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "agent_id",
      +    "job_name",
      +    "status",
      +    "mail_type",
      +    "mailing_class",
      +    "pieces",
      +    "total_cents",
      +    "refunded_cents",
      +    "created_at",
      +    "completed_at",
      +    "error_message"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.action.requested",
      -  "inbound.action.completed",
      -  "inbound.pages_ready",
      -  "inbound.keywords_matched",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "mail.pending_approval",
      +  "mail.submitted",
      +  "mail.ready",
      +  "mail.mailed",
      +  "mail.delivered",
      +  "mail.failed",
      +  "mail.cancelled",
      +  "batch.submitted",
      +  "batch.completed",
      +  "batch.partially_completed",
      +  "batch.failed",
      +  "batch.cancelled",
      +  "webhook.test"
      +]
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / mail
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "agent_id": {
      +      "anyOf": [
      +        {
      +          "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)$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "carrier": {
      +      "anyOf": [
      +        {
      +          "maxLength": 40,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "cost_cents": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "created_at": {
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +      "type": "string"
      +    },
      +    "delivered_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "error_message": {
      +      "anyOf": [
      +        {
      +          "maxLength": 500,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "id": {
      +      "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$",
      +      "type": "string"
      +    },
      +    "mail_class": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "mailed_at": {
      +      "anyOf": [
      +        {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "metadata": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "recipient": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "city": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "company": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "state": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "zip": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "company",
      +        "city",
      +        "state",
      +        "zip"
      +      ],
      +      "type": "object"
      +    },
      +    "status": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "tracking_number": {
      +      "anyOf": [
      +        {
      +          "maxLength": 100,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "agent_id",
      +    "status",
      +    "mail_class",
      +    "recipient",
      +    "carrier",
      +    "tracking_number",
      +    "cost_cents",
      +    "created_at",
      +    "mailed_at",
      +    "delivered_at",
      +    "error_message",
      +    "metadata"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / required
      Previous value: -[
      -  "schema_version",
      -  "event_id",
      -  "event_type",
      -  "created_at",
      -  "environment",
      -  "sample",
      -  "item",
      -  "keywords"
      -]New value: +[
      +  "schema_version",
      +  "event_id",
      +  "event_type",
      +  "created_at",
      +  "environment",
      +  "sample"
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / endpoint_id / description
      Added value: +"Webhook endpoint id (UUID) from list_webhook_endpoints."
  4. Changed14 schema fields changed
    • changedOutput schema / properties / result / properties / deliveries / items / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.scan_available",
      -  "inbound.context_ready",
      -  "inbound.rule_matched",
      -  "inbound.action_completed",
      -  "inbound.action_failed",
      -  "mail.submitted",
      -  "mail.ready",
      -  "mail.mailed",
      -  "mail.delivered",
      -  "mail.failed",
      -  "mail.cancelled",
      -  "mail.pending_approval",
      -  "webhook.endpoint_verification",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "webhook.test"
      +]
    • addedOutput schema / properties / result / properties / deliveries / items / properties / item_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "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)$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / result / properties / deliveries / items / properties / last_error / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "http_error",
      -      "timeout",
      -      "network_error",
      -      "url_blocked",
      -      "dns_failed",
      -      "dns_timeout",
      -      "verification_failed",
      -      "invalid_response",
      -      "worker_failed",
      -      "lease_expired",
      -      "endpoint_changed",
      -      "endpoint_paused",
      -      "agent_unavailable"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "http_error",
      +      "timeout",
      +      "network_error",
      +      "url_blocked",
      +      "dns_failed",
      +      "dns_timeout",
      +      "invalid_response",
      +      "worker_failed",
      +      "lease_expired",
      +      "endpoint_changed",
      +      "endpoint_paused",
      +      "agent_unavailable"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / action
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "id": {
      +      "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)$",
      +      "type": "string"
      +    },
      +    "state": {
      +      "maxLength": 40,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "enum": [
      +        "scan",
      +        "forward",
      +        "discard"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "type",
      +    "state"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / api_url
      Added value: +{
      +  "pattern": "^https:\\/\\/mailbox\\.bot\\/api\\/v1\\/inbound-items\\/[a-f0-9-]{36}$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / data
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "agent_id": {
      -      "anyOf": [
      -        {
      -          "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)$",
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "assignment_revision": {
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "bundle_id": {
      -      "description": "Immutable captured scan bundle. Must occur with request_id; verify it equals the authorized captured-scan response's scan.bundle_id.",
      -      "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)$",
      -      "type": "string"
      -    },
      -    "challenge": {
      -      "pattern": "^[A-Za-z0-9_-]{32,128}$",
      -      "type": "string"
      -    },
      -    "context_version": {
      -      "pattern": "^[a-f0-9]{64}$",
      -      "type": "string"
      -    },
      -    "item_id": {
      -      "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)$",
      -      "type": "string"
      -    },
      -    "matched_rule_ids": {
      -      "items": {
      -        "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)$",
      -        "type": "string"
      -      },
      -      "maxItems": 10,
      -      "type": "array"
      -    },
      -    "ocr_status": {
      -      "enum": [
      -        "pending",
      -        "processing",
      -        "ready",
      -        "needs_review",
      -        "failed"
      -      ],
      -      "type": "string"
      -    },
      -    "reference_code": {
      -      "maxLength": 100,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "request_id": {
      -      "description": "Captured sample handling request. Must occur with bundle_id and item_id, only for member_sample/test scan_available, context_ready or rule_matched; never with context_version.",
      -      "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)$",
      -      "type": "string"
      -    },
      -    "resource_url": {
      -      "format": "uri",
      -      "maxLength": 2048,
      -      "type": "string"
      -    },
      -    "source_domain": {
      -      "enum": [
      -        "managed_inbound",
      -        "internal_team",
      -        "member_sample",
      -        "sandbox",
      -        "outbound",
      -        "control"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / event_type / enum
      Previous value: -[
      -  "inbound.received",
      -  "inbound.scan_available",
      -  "inbound.context_ready",
      -  "inbound.rule_matched",
      -  "inbound.action_completed",
      -  "inbound.action_failed",
      -  "mail.submitted",
      -  "mail.ready",
      -  "mail.mailed",
      -  "mail.delivered",
      -  "mail.failed",
      -  "mail.cancelled",
      -  "mail.pending_approval",
      -  "webhook.endpoint_verification",
      -  "webhook.test"
      -]New value: +[
      +  "inbound.received",
      +  "inbound.action.requested",
      +  "inbound.action.completed",
      +  "inbound.pages_ready",
      +  "inbound.keywords_matched",
      +  "webhook.test"
      +]
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / item
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "id": {
      +          "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)$",
      +          "type": "string"
      +        },
      +        "kind": {
      +          "enum": [
      +            "letter",
      +            "package"
      +          ],
      +          "type": "string"
      +        },
      +        "pages": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "contents": {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            },
      +            "envelope": {
      +              "maximum": 9007199254740991,
      +              "minimum": 0,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "envelope",
      +            "contents"
      +          ],
      +          "type": "object"
      +        },
      +        "received_at": {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        "reference": {
      +          "maxLength": 100,
      +          "minLength": 1,
      +          "type": "string"
      +        },
      +        "scanned_at": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "sender": {
      +          "anyOf": [
      +            {
      +              "maxLength": 200,
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "status": {
      +          "maxLength": 40,
      +          "minLength": 1,
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "id",
      +        "reference",
      +        "kind",
      +        "sender",
      +        "received_at",
      +        "scanned_at",
      +        "status",
      +        "pages"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / keywords
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "matched_terms": {
      +            "items": {
      +              "maxLength": 80,
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "page_numbers": {
      +            "items": {
      +              "maximum": 100,
      +              "minimum": 1,
      +              "type": "integer"
      +            },
      +            "maxItems": 100,
      +            "type": "array"
      +          },
      +          "rule": {
      +            "maxLength": 80,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "rule_id": {
      +            "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)$",
      +            "type": "string"
      +          },
      +          "where": {
      +            "enum": [
      +              "envelope",
      +              "contents"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "rule_id",
      +          "rule",
      +          "matched_terms",
      +          "where",
      +          "page_numbers"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 10,
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / pages_url
      Added value: +{
      +  "pattern": "^https:\\/\\/mailbox\\.bot\\/api\\/v1\\/inbound-items\\/[a-f0-9-]{36}\\/pages$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / sample
      Added value: +{
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / schema_version / const
      Previous value: -1New value: +2
    • changedOutput schema / properties / result / properties / deliveries / items / properties / payload / required
      Previous value: -[
      -  "schema_version",
      -  "event_id",
      -  "event_type",
      -  "created_at",
      -  "environment",
      -  "data"
      -]New value: +[
      +  "schema_version",
      +  "event_id",
      +  "event_type",
      +  "created_at",
      +  "environment",
      +  "sample",
      +  "item",
      +  "keywords"
      +]
    • changedOutput schema / properties / result / properties / deliveries / items / required
      Previous value: -[
      -  "id",
      -  "endpoint_id",
      -  "endpoint_revision",
      -  "event_id",
      -  "event_type",
      -  "environment",
      -  "status",
      -  "attempts",
      -  "payload",
      -  "created_at",
      -  "next_attempt_at",
      -  "completed_at",
      -  "last_http_status",
      -  "last_error"
      -]New value: +[
      +  "id",
      +  "endpoint_id",
      +  "endpoint_revision",
      +  "event_id",
      +  "event_type",
      +  "environment",
      +  "item_id",
      +  "status",
      +  "attempts",
      +  "payload",
      +  "created_at",
      +  "next_attempt_at",
      +  "completed_at",
      +  "last_http_status",
      +  "last_error"
      +]
  5. Changed2 schema fields changed
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / data / properties / bundle_id
      Added value: +{
      +  "description": "Immutable captured scan bundle. Must occur with request_id; verify it equals the authorized captured-scan response's scan.bundle_id.",
      +  "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)$",
      +  "type": "string"
      +}
    • addedOutput schema / properties / result / properties / deliveries / items / properties / payload / properties / data / properties / request_id
      Added value: +{
      +  "description": "Captured sample handling request. Must occur with bundle_id and item_id, only for member_sample/test scan_available, context_ready or rule_matched; never with context_version.",
      +  "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)$",
      +  "type": "string"
      +}
  6. Added

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, and the description adds substantial context: a 50-delivery limit, excluded payload fields, 2xx semantics, permission requirements, and authorization boundaries. The idempotency_key sentence is oddly placed for a read tool but does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key purpose is front-loaded and the payload/security constraints are useful, but the description is dense and includes an irrelevant instruction to reuse idempotency_key after an uncertain mutation. That sentence does not earn its place in a read-only delivery listing tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple one-parameter read tool with an output schema and safety annotations, the description is complete: it covers scope, payload exclusions, limits, permissions, authorization model, and documentation. Return formatting does not need further explanation because an output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter and schema description coverage is 100%, with endpoint_id already documented as a UUID from list_webhook_endpoints. The description reinforces 'for one webhook' but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: read the latest 50 deliveries for one webhook. It also scopes the payload contents and makes clear this is per-webhook delivery inspection rather than endpoint listing or replay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives prerequisites such as webhook.manage and authorization context, but it does not explicitly say when to use this versus list_webhook_endpoints, replay_webhook_delivery, or test tools. Usage is therefore implied rather than fully guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.