Skip to main content
Glama
wuapidev

wuapi MCP server

Official
by wuapidev

Update a webhook endpoint

update_webhook
Idempotent

Change a webhook endpoint's URL or event subscriptions, or pause/resume it via active flag. Use it to control which WhatsApp events your endpoint receives.

Instructions

Change a webhook endpoint's URL or events, or pause it (active: false) and resume it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
activeNo
eventsNoEvent types to receive, such as `message.received`, `message.sent`, `message.failed`, `account.connected`, `account.disconnected`.
webhookEndpointIdYesThe webhook endpoint id, from list_webhooks.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.10.0
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "account.qr_code_issued",
      -  "account.pairing_code_issued",
      -  "account.connected",
      -  "account.disconnected",
      -  "account.failed",
      -  "message.received",
      -  "message.sent",
      -  "message.delivered",
      -  "message.read",
      -  "message.failed",
      -  "message.edited",
      -  "message.deleted",
      -  "message.media_downloaded",
      -  "poll.voted",
      -  "group.joined",
      -  "group.updated",
      -  "group.join_requested",
      -  "group.join_request_revoked",
      -  "chat.updated",
      -  "chat.presence_updated",
      -  "contact.presence_updated",
      -  "contact.picture_updated",
      -  "contact.updated",
      -  "blocklist.updated",
      -  "label.updated",
      -  "call.received",
      -  "call.ended",
      -  "channel.message_received",
      -  "channel.message_updated",
      -  "channel.updated",
      -  "history.synced",
      -  "project.created",
      -  "project.updated",
      -  "project.deleted",
      -  "invitation.status_changed"
      -]New value: +[
      +  "account.qr_code_issued",
      +  "account.pairing_code_issued",
      +  "account.connected",
      +  "account.disconnected",
      +  "account.failed",
      +  "message.received",
      +  "message.sent",
      +  "message.delivered",
      +  "message.read",
      +  "message.failed",
      +  "message.edited",
      +  "message.deleted",
      +  "message.media_downloaded",
      +  "story.received",
      +  "story.deleted",
      +  "story.viewed",
      +  "story.reacted",
      +  "poll.voted",
      +  "group.joined",
      +  "group.updated",
      +  "group.join_requested",
      +  "group.join_request_revoked",
      +  "chat.updated",
      +  "chat.presence_updated",
      +  "contact.presence_updated",
      +  "contact.picture_updated",
      +  "contact.updated",
      +  "blocklist.updated",
      +  "sticker.favorites_updated",
      +  "label.updated",
      +  "call.received",
      +  "call.ended",
      +  "channel.message_received",
      +  "channel.message_updated",
      +  "channel.updated",
      +  "history.synced",
      +  "project.created",
      +  "project.updated",
      +  "project.deleted",
      +  "invitation.status_changed"
      +]
  2. Changed1 schema field changedv0.9.0
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "account.qr_code_issued",
      -  "account.pairing_code_issued",
      -  "account.connected",
      -  "account.disconnected",
      -  "account.failed",
      -  "message.received",
      -  "message.sent",
      -  "message.delivered",
      -  "message.read",
      -  "message.failed",
      -  "message.edited",
      -  "message.deleted",
      -  "poll.voted",
      -  "group.joined",
      -  "group.updated",
      -  "group.join_requested",
      -  "group.join_request_revoked",
      -  "chat.updated",
      -  "chat.presence_updated",
      -  "contact.presence_updated",
      -  "contact.picture_updated",
      -  "contact.updated",
      -  "blocklist.updated",
      -  "label.updated",
      -  "call.received",
      -  "call.ended",
      -  "channel.message_received",
      -  "channel.message_updated",
      -  "channel.updated",
      -  "history.synced",
      -  "project.created",
      -  "project.updated",
      -  "project.deleted",
      -  "invitation.status_changed"
      -]New value: +[
      +  "account.qr_code_issued",
      +  "account.pairing_code_issued",
      +  "account.connected",
      +  "account.disconnected",
      +  "account.failed",
      +  "message.received",
      +  "message.sent",
      +  "message.delivered",
      +  "message.read",
      +  "message.failed",
      +  "message.edited",
      +  "message.deleted",
      +  "message.media_downloaded",
      +  "poll.voted",
      +  "group.joined",
      +  "group.updated",
      +  "group.join_requested",
      +  "group.join_request_revoked",
      +  "chat.updated",
      +  "chat.presence_updated",
      +  "contact.presence_updated",
      +  "contact.picture_updated",
      +  "contact.updated",
      +  "blocklist.updated",
      +  "label.updated",
      +  "call.received",
      +  "call.ended",
      +  "channel.message_received",
      +  "channel.message_updated",
      +  "channel.updated",
      +  "history.synced",
      +  "project.created",
      +  "project.updated",
      +  "project.deleted",
      +  "invitation.status_changed"
      +]
  3. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real behavioral context beyond that: that setting `active: false` pauses the endpoint and it can be resumed, which is not derivable from the annotation set.

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?

A single tight sentence that front-loads the primary action and folds the pause/resume nuance into the same clause. No filler or 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 4-parameter mutation tool with annotations covering safety and no output schema, the description is largely sufficient. It leaves minor gaps: it doesn't state whether unmentioned fields are left untouched (partial update semantics) or what authorization is required.

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 coverage is 50%: `events` and `webhookEndpointId` are documented in the schema, but `url` and `active` have no schema descriptions. The description partly compensates by clarifying `active: false` means pause and naming URL/events as the changeable fields, but it adds no format detail (e.g., HTTPS-only URL) beyond what the pattern already implies.

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?

States a specific verb (change/update) and resource (webhook endpoint) and enumerates the mutable fields (URL, events) plus the pause/resume capability. The 'update' verb clearly separates it from create_webhook/delete_webhook/get_webhook siblings, though it doesn't name them explicitly.

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 implies when to reach for it (to modify or pause/resume an existing endpoint) and the schema references list_webhooks for obtaining the id, but there is no explicit when-to-use-vs-alternatives guidance or statement of prerequisites such as required permissions.

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