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

TableJSON Schema
NameRequiredDescriptionDefault
endpoint_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +]
  2. 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"
      +}
  3. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior, and the description adds substantial non-obvious context beyond that: 2xx means receipt rather than external processing, signing secrets and receiver response body are omitted, and the exact payload fields are disclosed. This is rich behavioral disclosure, not a restatement of annotations.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and uses compact, information-dense sentences for caveats, permissions, and semantics. It is longer than the minimum, but each clause carries useful operational information; only the idempotency_key guidance feels slightly tangential to a read-only call.

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?

For a single-parameter, read-only tool with an output schema available, the description covers scope, payload contents, response interpretation, exclusions, authorization, environment, and documentation. An agent has enough information to invoke it correctly and to interpret results without further lookup.

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

Parameters4/5

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

Schema coverage is 0%, but the description compensates by clarifying that the operation is 'for one webhook' and by tying authorization to /api/v1/webhooks/endpoints, making endpoint_id's role reasonably clear. It does not explicitly describe the parameter by name, and the idempotency_key mention is not part of the request schema, leaving minor ambiguity; still, with one self-named parameter this is adequate.

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 ('Read') and resource ('latest 50 deliveries and their exact JSON payloads') with clear scoping to 'one webhook'. The phrase 'never page text' further distinguishes the payload content from other inbox/mail tools. This is unambiguous even among siblings like list_webhook_endpoints and replay_webhook_delivery.

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

Usage Guidelines4/5

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

Provides clear context for when to use the tool, including the constraint to one webhook, the 'uncertain mutation' verification scenario, and the requirement for webhook.manage. It does not explicitly name alternatives or state when not to use this tool, so it falls just short of a 5.

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.

Resources