Skip to main content
Glama
wuapi MCP server

wuapi MCP server

Official
by wuapidev

Update an account

update_account
Idempotent

Change a linked WhatsApp account's settings: rename, call rejection, anti-ban pacing, history import, media download, image quality, contact auto-save, and 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, save the contacts of new chats on the phone automatically (contactAutoSave), 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

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.
contactAutoSaveNoContact auto-save: only direct chats with a number, never renaming a contact the phone already holds, each contact at most once, at most 200 a day. The given fields change.
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. Changed1 schema field changedv0.14.0
    • addedInput schema / properties / contactAutoSave
      Added value: +{
      +  "description": "Contact auto-save: only direct chats with a number, never renaming a contact the phone already holds, each contact at most once, at most 200 a day. The given fields change.",
      +  "properties": {
      +    "enabled": {
      +      "description": "Save the contacts of new direct chats on the phone automatically.",
      +      "type": "boolean"
      +    },
      +    "fallbackName": {
      +      "description": "Used when the template needs a profile name the contact has not set.",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "nameTemplate": {
      +      "description": "The saved name: `{profileName}` (WhatsApp profile name) and `{phone}` (E.164).",
      +      "maxLength": 100,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "trigger": {
      +      "description": "`first_inbound`: the contact's first message in a new chat. `any_chat`: any new chat, whoever writes first.",
      +      "enum": [
      +        "first_inbound",
      +        "any_chat"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. 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."
      +}
  3. Addedv0.3.0

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, idempotent, non-destructive), yet the description still adds real side-effect context: pacing takes effect from the next send, a proxy change forces a reconnect on a new exit IP, that change is refused within 10 minutes of the prior one, and pacing protections default to off. It omits permission/auth requirements and error behavior, but the timing and rate-limit disclosures are genuinely beyond the annotations.

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 verb and resource, and the behavioral constraints are grouped at the end where they are easy to scan. The long inline enumeration of ~8 settings is only partially wasteful given how dense the schema is, but it repeats content the agent can already read in the properties.

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?

With no output schema, the description usefully states that it returns the updated account with its pacing, and it explains the merge/reset semantics at a high level via 'off by default' and the pacing note. For a 10-parameter mutation over nested objects this is close to complete, missing only auth/prerequisite and failure-mode detail.

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 nested objects are fully documented, so the baseline is 3. The description largely paraphrases what the schema already states (media download modes, contact auto-save, image quality) rather than adding syntax or format detail beyond it.

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?

Specific verb plus resource ('Change an account's settings') followed by an explicit inventory of every mutable field, so an agent immediately knows the scope. It reads as a superset of get_account/create_account/reconnect_account but never names or excludes those siblings, so it falls short of full differentiation.

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 only implied by the enumeration of settings; there is no explicit 'use this when / use X instead' routing despite close neighbors such as set_presence, reconnect_account, manage_privacy and list_proxy_locations. The pacing recommendation ('Recommended for bulk, cold or marketing sends') lives in the schema, not the description.

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