Skip to main content
Glama

Check Pairing Status

wa_pair_status
Read-only

Check a pairing started with wa_pair_account. While state is "qr" a new image is returned each time — show the latest to the user. While state is "code", show pair_code. When state becomes "paired" the account is ready and appears in wa_list_accounts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pair_idYesthe pair_id returned by wa_pair_account

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
stateYesstarting, qr, code, paired or failed
pair_idNopass this to wa_pair_status to follow the pairing
refusalNopresent only when pairing could not be started
pair_codeNothe 8-character code the user types on their phone (phone-number pairing only)
expires_atNowhen pair_code stops working, RFC 3339 (phone-number pairing only)
needs_planNotrue when the linked number has no plan yet and will not run until the user buys one in the console
instructionsNowhat to tell the user to do
qr_png_base64Noa PNG image of the QR code, base64 encoded — display this to the user

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedOutput schema / properties / expires_at
      Added value: +{
      +  "description": "when pair_code stops working, RFC 3339 (phone-number pairing only)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / pair_code
      Added value: +{
      +  "description": "the 8-character code the user types on their phone (phone-number pairing only)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / refusal / properties / account_status
      Added value: +{
      +  "description": "when the number is not working: its status — starting, not_running, whatsapp_down, suspended, pairing, unlinked or locked",
      +  "type": "string"
      +}
    • addedOutput schema / properties / refusal / properties / account_status_reason
      Added value: +{
      +  "description": "the detail of account_status, e.g. no_egress, stopped, no_plan",
      +  "type": "string"
      +}
    • addedOutput schema / properties / refusal / properties / since
      Added value: +{
      +  "description": "when the number stopped working, RFC3339, when known",
      +  "type": "string"
      +}
    • changedOutput schema / properties / state / description
      Previous value: -"starting, qr, paired or failed"New value: +"starting, qr, code, paired or failed"
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Goes beyond the readOnlyHint/idempotentHint annotations by explaining the state machine (qr / code / paired) and the notable behavior that a fresh image is returned on each call — which is precisely why the tool is non-idempotent despite being a read. It could still note polling cadence or what happens on an expired/invalid pair_id.

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?

Three short sentences, front-loaded with the core action, then state-by-state guidance, then the terminal condition. No filler.

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?

An output schema exists, so return-value documentation is unnecessary; the description instead supplies the state-transition semantics an agent needs to drive the polling loop and present results to the user. Nothing essential 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 single pair_id parameter is already documented as coming from wa_pair_account, so the description adds no meaning beyond the schema. Baseline 3 applies.

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 (check a pairing) and ties itself directly to the sibling that starts the flow (wa_pair_account). An agent can immediately distinguish this polling tool from wa_pair_account and wa_list_accounts.

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?

Places the tool clearly in the pairing workflow (after wa_pair_account, before the account appears in wa_list_accounts) and tells the agent what to do per state. It does not name when-not-to-use or a competing tool, but for a status-polling tool the usage context is explicit.

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