Skip to main content
Glama
wuapidev

wuapi MCP server

Official
by wuapidev

Update an account

update_account
Idempotent

Change a WhatsApp account's settings: rename it, auto-reject calls, enable anti-ban pacing, import recent chats, auto-download media, set image quality, or move its proxy location.

Instructions

Change an account's settings: rename it, reject incoming calls automatically, turn on and tune its pacing (the anti-ban protections, off by default), choose whether the next link imports recent chats, choose which received media is downloaded right away (the rest on demand), choose the quality its images are sent at, or move its proxy location. Pacing applies from the next send. A proxy location change gives the number a new exit IP and reconnects it; it is refused within 10 minutes of the previous change. Returns the updated account with its pacing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoA name for the account, such as `Front desk`.
pacingNoAnti-ban pacing, merged over the stored values: omitted fields keep theirs, null resets the whole pacing to the defaults (every protection off). Recommended for bulk, cold or marketing sends: `{"messagesPerMinute": 12, "firstContactPerMinute": 5, "typing": {"enabled": true}}`.
accountIdYesThe wuapi account id of the linked number to act as (from list_accounts).
historySyncNo`recent` imports the chats the phone sends at the next link. A number that is already linked gets no new history.
rejectCallsNoReject incoming calls automatically.
imageQualityNoWhat the account's images are re-encoded to before their upload through the number's proxy (proxy traffic). `standard` (default): longest side 1600 px, JPEG, as WhatsApp sends a photo. `hd`: up to 4096 px. `original`: the file as it is.
proxyLocationNoMove the number (`country` and `city` together), switch whether its city is exact (`strictCity`), or both. The session reconnects on a new exit IP.
mediaAutoDownloadNoWhich received media is downloaded right away through the number's proxy (proxy traffic). `none` (default for new accounts): on demand, when its media URL is first requested. `all`: every file. `{maxBytes, types}`: only those.
rejectCallsMessageNoText sent to the caller after an automatic reject (not for group calls).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.9.0
    • addedInput schema / properties / imageQuality
      Added value: +{
      +  "description": "What the account's images are re-encoded to before their upload through the number's proxy (proxy traffic). `standard` (default): longest side 1600 px, JPEG, as WhatsApp sends a photo. `hd`: up to 4096 px. `original`: the file as it is.",
      +  "enum": [
      +    "standard",
      +    "hd",
      +    "original"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / mediaAutoDownload
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "none",
      +        "all"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "properties": {
      +        "maxBytes": {
      +          "description": "Largest file downloaded up front, in bytes.",
      +          "maximum": 2000000000,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "types": {
      +          "description": "Media types downloaded up front.",
      +          "items": {
      +            "enum": [
      +              "image",
      +              "video",
      +              "audio",
      +              "document",
      +              "sticker"
      +            ],
      +            "type": "string"
      +          },
      +          "minItems": 1,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "maxBytes",
      +        "types"
      +      ],
      +      "type": "object"
      +    }
      +  ],
      +  "description": "Which received media is downloaded right away through the number's proxy (proxy traffic). `none` (default for new accounts): on demand, when its media URL is first requested. `all`: every file. `{maxBytes, types}`: only those."
      +}
  2. Addedv0.3.0

TDQS

A4.2/5.0
Behavior5/5

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

Goes well past the annotations: it discloses that pacing takes effect from the next send, that a proxy change assigns a new exit IP and reconnects the number, that proxy changes are refused within 10 minutes of a prior change (an effective rate limit), and that the call returns the updated account with its pacing. These are exactly the side effects and timing constraints an agent needs before mutating a live account.

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 mutation and its option list, followed by three tight sentences on timing, proxy reconnect, and return value. Slightly dense in the opening enumeration where it partly restates schema field names, but every sentence carries information.

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 9-parameter, nested-object mutation tool with no output schema, the description covers the important gaps: default state of pacing, when changes take effect, the proxy cooldown, session reconnect behavior, and the return shape ('the updated account with its pacing'). Nothing an agent needs to call it correctly is missing.

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 100% and the nested pacing/proxy/media objects are thoroughly documented inline, so the schema does the heavy lifting. The description adds only a light gloss ('move its proxy location', 'choose which received media is downloaded right away') plus the pacing-applies-next-send timing note, which is baseline-level value over structured fields.

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 (change) on a specific resource (an account's settings) and enumerates the exact settings it can mutate: name, call rejection, pacing, history sync, media auto-download, image quality, proxy location. This clearly separates it from create_account, get_account, reconnect_account and unlink_account without opening a schema.

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 context is implied rather than stated: the description notes pacing is 'off by default' and applies 'from the next send', and that a proxy move is refused within 10 minutes of the previous change. However, it never says when to prefer this tool over siblings (e.g. reconnect_account for session issues) or what preconditions must hold before calling.

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