Skip to main content
Glama

Webhook Verify

webhook_verify
Read-onlyIdempotent

Verify (or create) webhook signatures for Stripe, GitHub, Slack, Shopify, Twilio, Standard Webhooks / Svix, Paddle, Square, Zoom, Mailgun, Intercom, Linear, Typeform and HubSpot v3, or any generic HMAC scheme — the step agents get wrong when wiring up webhook receivers. Pass the raw body, the received headers (or just the signature) and the signing secret: returns valid, the timestamp age against a replay tolerance, and on failure a diagnosis (body re-serialised or trimmed, wrong secret format, hex vs base64, stale timestamp). mode=sign produces the exact headers a provider would send, for testing receivers. Constant-time comparison; the secret is never echoed. Price: $0.002 USDC per successful call (x402, Solana). Same tool over HTTPS: POST https://scorptech.it.com/api/x402/v1/webhook-verify

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "provider": "<provider>",
      "payload": "<payload>",
      "secret": "<secret>"
    },
    "name": "webhook_verify"
  }
}

Input Schema

NameRequiredDescriptionDefault
idNoStandard Webhooks / Svix message id when not in headers
nowNoUnix time for "now" (testing)
urlNoFull webhook URL (Twilio, Square, HubSpot)
modeNoverify
headerNogeneric: header holding the signature
methodNoHTTP method (HubSpot v3)POST
prefixNogeneric: prefix before the signature, e.g. "sha256="
secretYesSigning secret (Stripe whsec_..., Svix whsec_<base64>, ...)
headersNoReceived headers (any case), e.g. {"Stripe-Signature": "t=...,v1=..."}
payloadYesThe raw request body exactly as received (not re-serialised JSON)
encodingNogeneric: signature encodinghex
providerYes
algorithmNogeneric: HMAC hashsha256
signatureNoThe signature header value (alternative to headers)
timestampNoTimestamp header value when not in headers (Slack, Zoom, Standard Webhooks, HubSpot)
toleranceNoMax timestamp age in seconds (0 = skip)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: discloses the return contents (valid, timestamp age vs replay tolerance, failure diagnosis categories), constant-time comparison, that the secret is never echoed, pricing ($0.002 USDC via x402 on Solana), and an alternate HTTPS transport. This is exactly the operational context an agent needs.

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?

Front-loaded with the core action, then value-adds (diagnostics, sign mode, pricing/transport). It is dense — one long opening sentence — but nearly every clause carries unique information with little redundancy.

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

Completeness4/5

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

For a 16-parameter tool with no output schema, the description covers the return shape (valid, timestamp age, failure diagnosis), the two modes, and the security properties. Minor gaps remain around provider-specific parameters (url, method, id, now), but those are documented in the schema.

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 already 88%, but the description still adds meaning: 'pass the raw body' (reinforcing the payload-not-reserialised constraint), 'headers (or just the signature)' mapping to the headers/signature alternatives, and the signing secret per provider. It does not explain provider-specific params like url/method/id/now, though the schema does.

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+resource ('Verify (or create) webhook signatures') and enumerates the exact provider schemes covered plus generic HMAC. An agent knows precisely what this does and which providers it accepts without opening the schema.

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?

Frames the use case explicitly ('the step agents get wrong when wiring up webhook receivers') and clarifies that mode=sign exists for testing receivers. No explicit exclusions are stated, but the tool's scope is narrow enough that this is effectively unambiguous.

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