Skip to main content
Glama

Verify webhook

payments_verify_webhook
Read-only

Verify payment gateway webhook signatures using the raw request body and normalize verified events into common types such as payment.succeeded or refund.processed.

Instructions

Verify a webhook signature and normalise it into a common event (payment.succeeded, refund.processed, ...). Pass the RAW body string exactly as received.

Input Schema

NameRequiredDescriptionDefault
headersYes
providerYesGateway id
raw_bodyYes
include_rawNoInclude the untouched provider response (verbose).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

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

readOnlyHint=true is consistent with a verification operation, and the description adds real behaviour beyond the annotations: the output is normalised into named common events (with examples), and the input must be the untouched raw body or the signature check will fail. It omits the failure path (what happens on an invalid signature) and whether any state is recorded, which keeps it short of a 5.

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

Conciseness5/5

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

Two short sentences, zero waste, with the primary action front-loaded and the critical input constraint as a distinct imperative sentence.

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

Completeness3/5

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

With no output schema, the description usefully sketches the return value as a normalised event, which is the key thing an agent needs. But for a 4-parameter tool with a required nested object, it leaves the headers parameter and error behaviour unexplained — the agent cannot predict what an invalid signature yields.

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?

Schema description coverage is only 50% (provider and include_raw documented; headers and raw_body have no schema description). The description compensates well for raw_body by mandating the exact raw string, but says nothing about the required nested `headers` object — the agent must infer that it is the provider's request headers verbatim.

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

Purpose4/5

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

The description gives a specific verb and resource ('Verify a webhook signature') plus a second concrete outcome ('normalise it into a common event (payment.succeeded, refund.processed, ...)'), so the agent knows exactly what it gets back. It does not name the nearest sibling (payments_simulate_webhook), so differentiation is only implicit.

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?

Usage is implied by the nature of the tool — you call it on an incoming provider webhook before acting on it — and 'Pass the RAW body string exactly as received' prevents the classic failure mode of verifying a re-serialised body. However, there is no explicit when/when-not statement and no pointer to payments_simulate_webhook or payments_verify_payment as alternatives.

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