Skip to main content
Glama

Change a webhook

update_webhook
Idempotent

Rename a webhook, point it at a new address, change its events (form.submitted (every form submission on your site, with the contact it belongs to), contact.created (a form submission with an email address added or matched a contact), contact.revisited (a known contact came back to your site (once per visit)), payment.completed (a customer paid for an order), booking.created (a new appointment was booked (waiting for you, or already confirmed)), booking.confirmed (an appointment was confirmed), booking.rescheduled (an appointment moved to a new time), booking.cancelled (an appointment was cancelled or declined), booking.completed (an appointment was marked as done), order.placed (an order was paid online or placed with cash on delivery, with its items and totals), site.published (your site went live with your latest changes), collection.item_published (a blog post, product, listing or other collection item went live for the first time), review.received (a new Google review arrived, with its rating and text), site.alert (every site alert as it happens: new leads from forms, chat, WhatsApp, SMS and voicemail, bookings, payments and publishing (not included in "all events")), or * for all), or switch it off or back on (is_active). Only the fields you pass change. A new address must be public http(s). Its signing secret and headers are changed in the site's Webhooks settings.

Input Schema

NameRequiredDescriptionDefault
urlNoThe new address, exactly as the owner gave it
nameNo
eventsNoThe complete new event list (replaces the old one)
site_idYesThe site, from list_sites
is_activeNofalse stops sending without deleting it
user_goalNoOptional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details.
webhook_idYesThe webhook, from list_webhooks

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "form.submitted",
      -  "contact.created",
      -  "contact.revisited",
      -  "payment.completed",
      -  "booking.created",
      -  "booking.confirmed",
      -  "booking.rescheduled",
      -  "booking.cancelled",
      -  "booking.completed",
      -  "order.placed",
      -  "site.published",
      -  "review.received",
      -  "site.alert",
      -  "*"
      -]New value: +[
      +  "form.submitted",
      +  "contact.created",
      +  "contact.revisited",
      +  "payment.completed",
      +  "booking.created",
      +  "booking.confirmed",
      +  "booking.rescheduled",
      +  "booking.cancelled",
      +  "booking.completed",
      +  "order.placed",
      +  "site.published",
      +  "review.received",
      +  "collection.item_published",
      +  "site.alert",
      +  "*"
      +]
    • changedInput schema / properties / events / maxItems
      Previous value: -14New value: +15
  2. Changed2 schema fields changed
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "form.submitted",
      -  "contact.created",
      -  "contact.revisited",
      -  "payment.completed",
      -  "booking.created",
      -  "booking.confirmed",
      -  "booking.rescheduled",
      -  "booking.cancelled",
      -  "booking.completed",
      -  "site.alert",
      -  "*"
      -]New value: +[
      +  "form.submitted",
      +  "contact.created",
      +  "contact.revisited",
      +  "payment.completed",
      +  "booking.created",
      +  "booking.confirmed",
      +  "booking.rescheduled",
      +  "booking.cancelled",
      +  "booking.completed",
      +  "order.placed",
      +  "site.published",
      +  "review.received",
      +  "site.alert",
      +  "*"
      +]
    • changedInput schema / properties / events / maxItems
      Previous value: -11New value: +14
  3. Changed1 schema field changed
    • addedInput schema / properties / user_goal
      Added value: +{
      +  "description": "Optional: the user's goal behind this call, in one short sentence of plain words (e.g. \"add a page so customers can book tables\"). No names, emails or other personal details.",
      +  "type": "string"
      +}
  4. Changed2 schema fields changed
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "form.submitted",
      -  "contact.created",
      -  "contact.revisited",
      -  "payment.completed",
      -  "booking.created",
      -  "booking.confirmed",
      -  "booking.rescheduled",
      -  "booking.cancelled",
      -  "booking.completed",
      -  "*"
      -]New value: +[
      +  "form.submitted",
      +  "contact.created",
      +  "contact.revisited",
      +  "payment.completed",
      +  "booking.created",
      +  "booking.confirmed",
      +  "booking.rescheduled",
      +  "booking.cancelled",
      +  "booking.completed",
      +  "site.alert",
      +  "*"
      +]
    • changedInput schema / properties / events / maxItems
      Previous value: -10New value: +11
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-read-only, idempotent and non-destructive, so the bar is lower. The description adds genuinely new behavior: partial updates leave untouched fields alone, `is_active=false` stops delivery without deleting the webhook, and a new URL must be public http(s). The event glossary explains what each subscription actually delivers, which no annotation or schema field conveys.

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 action list is front-loaded, but the whole thing is one enormous sentence with deeply nested parentheses around the event glossary, which makes it hard to scan. The event explanations carry real information, but the formatting should have been broken into a bulleted list rather than a parenthetical run-on.

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 7-parameter mutation tool with no output schema, the description covers update semantics, URL validation, the full events vocabulary, the active toggle, and the out-of-scope secret/headers settings. It stops short of saying what the response contains or whether the endpoint must be re-verified after a URL change, which are the only notable gaps.

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 86%, so the baseline is 3; the description earns an extra point by defining each enum value in the `events` array, which the schema lists only as bare strings. It also constrains `url` to public http(s) (replacing the schema's generic uri format) and explains the delivery-stopping effect of `is_active`.

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?

Names a specific resource (webhook) and the exact mutations available: rename, re-point the URL, replace the event list, and toggle `is_active`. This clearly separates it from create_webhook, delete_webhook, get_webhook and test_webhook in the sibling list.

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?

Establishes partial-update semantics ('Only the fields you pass change'), so an agent knows it need not send a full object. It also sets a real boundary by stating the signing secret and headers must be changed in the site's Webhooks settings, effectively telling the agent when this tool is not the right one. It doesn't explicitly contrast with test_webhook or create_webhook, but the context is clear.

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