Skip to main content
Glama

šŸ“± MCP WhatsApp

Send messages, images, documents and more on WhatsApp — directly from any AI.

Python MCP License: MIT Stars

Works with Claude, Gemini, Cursor, Windsurf, Continue.dev and any MCP-compatible AI.

100% Open Source and MIT Licensed.


✨ What can you do?

Just talk to your AI naturally:

"Send a message to +5511999998888 saying the meeting is postponed"

"Send the invoice.pdf to the Clients group"

"Get the last 20 messages from my support chat"

"Create a group called 'Team Sprint' with these numbers"

No code. No manual API calls. Just ask.


Related MCP server: MCP WPPConnect Server

šŸš€ Quick Start (3 steps)

Step 1 — Clone and start WuzAPI

git clone https://github.com/YOUR_USER/mcp-whatsapp
cd mcp-whatsapp
docker compose up -d

That's it — WuzAPI starts automatically on http://localhost:7143 with message history enabled. āœ…

The included docker-compose.yml sets everything up for you.
Default admin token: admin123 (change via WUZAPI_ADMIN_TOKEN env var).

Step 2 — Install the MCP server

python -m venv .venv

# Windows
.venv\Scripts\activate

# Linux / macOS
source .venv/bin/activate

pip install -e .

Step 3 — Register with Claude Code (global, one-time)

# Windows (replace with your absolute path)
claude mcp add whatsapp -s user -- C:\path\to\mcp-whatsapp\.venv\Scripts\python.exe -m mcp_whatsapp.server

# Linux / macOS (replace with your absolute path)
claude mcp add whatsapp -s user -- /path/to/mcp-whatsapp/.venv/bin/python -m mcp_whatsapp.server

Restart Claude, then just ask:

"Configure my WhatsApp with token mytoken123"

Magic: The server will automatically create the user in WuzAPI for you (Plug & Play). No manual dashboard work required! šŸŖ„


šŸ”‘ Manual Configuration (Optional)

If you prefer to use the dashboard, it is available at http://localhost:7143.

  1. Open http://localhost:7143 → click Admin Mode

  2. Enter the admin token — default is admin123

  3. Go to Users → Create User, enter any name and choose a token.

"Configure my WhatsApp with token myusertoken"

šŸ’” Two tokens, two purposes:

  • User token → sends/receives messages — this is what you use daily

  • Admin token → manages users — only needed for whatsapp_admin_* tools


šŸ”Œ Connect to Your AI

claude mcp add whatsapp -s user -- \
  /path/to/.venv/bin/python -m mcp_whatsapp.server

Then ask Claude to configure:

"Configure my WhatsApp: token=abc123, url=http://localhost:7143"

Claude Desktop

Add to claude_desktop_config.json:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "whatsapp": {
      "command": "/path/to/mcp-whatsapp/.venv/bin/python",
      "args": ["-m", "mcp_whatsapp.server"],
      "env": {
        "WUZAPI_BASE_URL": "http://localhost:7143",
        "WUZAPI_TOKEN": "your_token_here"
      }
    }
  }
}

Cursor / Windsurf / Continue.dev

Add to your editor's MCP config file:

{
  "mcpServers": {
    "whatsapp": {
      "command": "/path/to/mcp-whatsapp/.venv/bin/python",
      "args": ["-m", "mcp_whatsapp.server"],
      "env": {
        "WUZAPI_BASE_URL": "http://localhost:7143",
        "WUZAPI_TOKEN": "your_token_here"
      }
    }
  }
}

Any other MCP-compatible AI

  • Transport: stdio (standard)

  • Command: python -m mcp_whatsapp.server

  • Env vars: WUZAPI_BASE_URL, WUZAPI_TOKEN


šŸ› ļø Available Tools (30+)

Category

Tools

āš™ļø Setup

whatsapp_configure

šŸ”— Session

whatsapp_connect, whatsapp_disconnect, whatsapp_status, whatsapp_get_qrcode, whatsapp_health

šŸ’¬ Messages

whatsapp_send_text, whatsapp_send_image, whatsapp_send_document, whatsapp_send_audio, whatsapp_send_video, whatsapp_send_sticker, whatsapp_send_location, whatsapp_send_contact, whatsapp_send_link, whatsapp_send_buttons, whatsapp_send_list, whatsapp_send_poll

šŸ“„ Chat

whatsapp_get_chats, whatsapp_get_unread_messages, whatsapp_get_messages, whatsapp_reply_message, whatsapp_delete_message, whatsapp_react, whatsapp_mark_read, whatsapp_download_media, whatsapp_search_messages, whatsapp_forward_message

šŸ‘¤ Users

whatsapp_get_user_info, whatsapp_get_contacts, whatsapp_search_contacts, whatsapp_check_phones, whatsapp_get_avatar

šŸ‘„ Groups

whatsapp_list_groups, whatsapp_get_group_info, whatsapp_create_group, whatsapp_update_group_participants, whatsapp_get_group_invite_link

šŸ”” Webhook

whatsapp_set_webhook

šŸ“¢ Newsletter

whatsapp_get_newsletter_messages, whatsapp_subscribe_newsletter

šŸ” Admin

whatsapp_admin_list_users, whatsapp_admin_create_user, whatsapp_admin_delete_user


šŸ’” Usage Examples

First-time setup

You: "Configure my WhatsApp with token abc123"
Claude: āœ… Configuration saved! Now use whatsapp_connect() to connect.

You: "Connect my WhatsApp"
Claude: [generates QR Code — scan with your phone]

You: "Check if WhatsApp is connected"
Claude: āœ… Connected as +5511999998888

Sending messages

You: "Send 'Hello!' to +5511999998888"
You: "Send the file report.pdf to the Sales group"
You: "Send my location to +5511987654321"
You: "React with šŸ‘ to the last message in chat 5511999998888@s.whatsapp.net"

Managing groups

You: "List all my WhatsApp groups"
You: "Create a group 'Project X' with +5511111111111 and +5522222222222"
You: "Get the invite link for group 120363XXXXXXXX@g.us"

šŸ“ž Phone Number Format

WhatsApp via WuzAPI uses numbers without the + prefix:

Format

Valid?

5511999998888

āœ… Brazil (DDD 11)

14155552671

āœ… USA (415)

+5511999998888

āŒ Remove the +

011999998888

āŒ Use country code


šŸ“ Project Structure

mcp-whatsapp/
ā”œā”€ā”€ pyproject.toml          # Python project config
ā”œā”€ā”€ .env.example            # Environment variables template
└── src/
    └── mcp_whatsapp/
        ā”œā”€ā”€ server.py       # MCP server with all tools
        └── wuzapi_client.py # Async HTTP client for WuzAPI

šŸ›”ļø Security & Responsible Use

IMPORTANT: This project uses an unofficial WhatsApp API. Use it at your own risk.

To ensure your account stays safe and you remain compliant with global data laws (LGPD/GDPR), please follow these guidelines:

  1. Avoid Spam: Do not use this tool for bulk messaging or automated marketing. Excessive automated activity is the #1 cause of WhatsApp account bans.

  2. Privacy Guardrails: By default, this server includes masking for sensitive information (PII) like CPFs, Credit Cards, and Emails (when WUZAPI_PRIVACY_MODE=true).

  3. Audit Logs: All tool calls are logged in logs/audit_privacy.log. This is essential for transparency and accountability.

  4. Token Safety: Never share your WUZAPI_TOKEN or WUZAPI_ADMIN_TOKEN. These grant full access to your messages.

  5. AI Autonomy: Be careful when giving the AI "autonomy" to send messages. Always review the output if the AI is performing high-stakes tasks.

  6. Terms of Service: Be aware that using unofficial APIs violates WhatsApp's Terms of Service. This tool is intended for personal productivity and research.


šŸ¤ Contributing

Contributions are welcome! Feel free to open issues and pull requests.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes

  4. Open a Pull Request


šŸ“„ License

This project is open-source and available under the MIT License.


Built with ā¤ļø for the MCP ecosystem

If this project helped you, please ⭐ star it!

Available Tools

37 tools
whatsapp_adminB

WuzAPI admin operations. action: 'list_users'|'create_user'|'delete_user'|'enable_history'. Requires admin token.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
nameNo
tokenNo
confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It lists actions and token requirement but lacks details on side effects (e.g., destructuring of delete_user), rate limits, or auth specifics beyond token.

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?

Description is brief and front-loaded with purpose. However, listing action values inline could be more scannable. No redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0% schema coverage and no annotations, the description fails to fully explain all four parameters. It doesn't describe return values (though output schema exists) or the effects of each action beyond their names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters. It explains action values and token requirement but leaves 'name' and 'confirmed' undefined. These parameters are crucial for actions like create_user or delete_user.

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?

Description clearly states it handles admin operations and lists specific actions like list_users, create_user, delete_user, enable_history. This distinguishes it from sibling WhatsApp tools which focus on messaging, media, etc.

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?

Mentions requirement of admin token, which is a key prerequisite. However, no explicit guidance on when to use this tool versus alternatives; sibling tool names imply context, but description could be clearer.

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

whatsapp_check_phonesB

Check if phone numbers are on WhatsApp. phones: list, country code, no '+'.

ParametersJSON Schema
NameRequiredDescriptionDefault
phonesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It mentions input format ('country code, no '+'') but fails to specify if the operation is read-only, has rate limits, or returns detailed status per number. No side effects or authorization needs are discussed.

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?

The description is extremely concise, using one sentence to state purpose and a brief parameter hint. Every word adds value without redundancy, making it efficient for an AI agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and one parameter, the description provides minimal context. It covers the input format but omits details about the output (despite an output schema existing). No information about response structure or error handling is included.

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?

The input schema has 0% description coverage, so the description's hint ('phones: list, country code, no '+'') adds some value by specifying formatting expectations. However, it remains ambiguous (e.g., whether numbers must be international format) and does not cover all nuances.

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?

The description clearly states the tool's verb ('Check') and resource ('if phone numbers are on WhatsApp'), making it easy to understand its core function. However, it does not differentiate from sibling tools like whatsapp_search_contacts, which might overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any context on prerequisites or limitations. The description simply states what it does without any usage instructions.

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

whatsapp_configureC

Save WuzAPI credentials. Run once to set up. token: user token. admin_token: optional, for admin tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes
base_urlNohttp://localhost:7143
admin_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states 'Save WuzAPI credentials' without explaining side effects (e.g., overwrite, validation, persistence). The output schema exists but is not described, so the agent cannot know what to expect after calling. This insufficient transparency scores a 2.

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?

The description is short (two sentences plus two parameter lines) and front-loads the core purpose. It wastes no words, though the parameter format is somewhat informal. Still, it is efficient and easy to parse, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and the tool's role as a setup step, the description should cover what the output looks like, whether it is idempotent, and any prerequisites. It lacks these details, leaving the agent with significant uncertainty. The presence of an output schema partially mitigates, but the description itself is incomplete. Score 2.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. It covers 'token' and 'admin_token' with brief explanations, but completely omits 'base_url' (a parameter with a default). The explanations are minimal and lack detail on format or constraints. This partial coverage scores a 2.

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?

The description clearly states the tool saves WuzAPI credentials and is for initial setup, distinguishing it from sibling tools that perform messaging or other operations. However, it could be more explicit about the scope, such as 'initializes the WhatsApp integration'. The verb 'save' is specific, but 'Run once to set up' adds necessary context, earning a 4.

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 advises 'Run once to set up', indicating one-time use, and mentions that admin_token is optional for admin tools. This provides some usage guidance but lacks explicit instructions on when not to use it or alternatives. Since siblings are all operational tools, the context implies this is the prerequisite, but no prerequisites are stated. Score 3.

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

whatsapp_connectA

Connect to WhatsApp. Shows QR code if not yet paired — scan with phone.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses the key behavior (showing QR code if not paired), which is sufficient for a simple connection tool. Additional details about what happens if already paired would improve transparency.

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?

The description is exceptionally concise: two short sentences that front-load the action. Every word adds value, with no wasted space.

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?

Given zero parameters and the presence of an output schema (which explains return values), the description is largely complete. It could mention success/failure outcomes, but is adequate for a simple tool.

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?

The tool has zero parameters, so schema coverage is 100%. The description adds context about the QR code behavior, which is valuable beyond the schema. Baseline for zero params is 4.

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?

The description clearly states the tool's purpose: connecting to WhatsApp. It specifies the action (connect) and the mechanism (shows QR code for scanning), distinguishing it from siblings like whatsapp_disconnect or whatsapp_get_qrcode.

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?

The description implies usage context (when not paired), but does not explicitly state when to use this tool versus alternatives. The context is clear enough for an agent to infer appropriate usage.

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

whatsapp_create_groupC

Create a WhatsApp group. name: group name. participants: list of phone numbers, no '+'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
participantsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must bear full behavioral disclosure. It does not mention any behavioral traits such as what happens if participants are invalid, whether the creator is automatically added, rate limits, authentication requirements, or irreversible effects. The description is too brief to inform the agent about side effects or constraints.

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?

The description is extremely concise: two sentences with no superfluous words. The first sentence states the purpose, the second enumerates parameters. Every sentence is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not shown) but no return value description. Given its complexity as a creation tool, it lacks context about prerequisites (e.g., must be connected via whatsapp_connect), error handling (e.g., invalid numbers), or behavioral nuances. The description is too sparse to fully inform the agent.

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 0%, so the description must compensate. It provides minimal but useful semantics: 'name: group name' and 'participants: list of phone numbers, no '+''. While it clarifies the phone number format, it omits details like whether numbers must be in international format or if the creator should be included. The compensation is partial.

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?

The description clearly states the tool's purpose: 'Create a WhatsApp group.' The verb 'create' and resource 'group' are specific. It distinguishes from siblings like whatsapp_send_text or whatsapp_update_group_participants, though it does not explicitly differentiate from all group creation tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as whatsapp_update_group_participants for adding members to existing groups, or whatsapp_list_groups for viewing groups. The agent receives no context on prerequisites (e.g., must be connected) or scenarios where calling this tool would fail.

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

whatsapp_delete_messageA

Delete a message. āš ļø DESTRUCTIVE. confirmed=True required — always ask user first. everyone: revoke for all.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
message_idYes
everyoneNo
confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Warns 'DESTRUCTIVE' and explains revocation behavior, but lacks details on error handling, undo possibility, or system logging. Adequate but not rich.

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?

Very concise with only three sentences. Uses symbols for emphasis. Every sentence provides unique information without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with 4 parameters and an output schema, the description minimally covers key aspects. Could include hints on how to obtain message_id or handle failures, but output schema reduces need for return info.

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 0%, so description must compensate. It explains 'confirmed' and 'everyone', but 'phone' and 'message_id' are not elaborated. Adds value for two out of four parameters.

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?

Clear verb 'delete' and resource 'message' make the tool's purpose immediately obvious. Distinguishes from siblings like send, get, or react tools.

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?

Explicitly states 'confirmed=True required — always ask user first' and explains the 'everyone' parameter. Provides clear guidance on when to use (with confirmation). Could mention alternatives (like deleting for self only) but is sufficient.

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

whatsapp_disconnectA

Logout from WhatsApp. āš ļø DESTRUCTIVE. confirmed=True required — always ask user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description warns that the tool is destructive and requires confirmation. This provides key behavioral context, though it could mention the post-logout state or reversibility.

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?

The description is concise with two clear sentences: the purpose and a warning with usage instruction. No unnecessary information.

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?

Given the tool's simplicity and the presence of an output schema, the description covers purpose, destructive nature, and parameter requirement. It could mention the need for an active connection, but it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning to the 'confirmed' parameter beyond the schema, explicitly stating it must be set to True and that the user must be asked first.

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?

The description clearly states 'Logout from WhatsApp' using a specific verb and resource, and it distinguishes itself from siblings like 'whatsapp_reset_session' by focusing on disconnection.

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?

The description provides usage guidance: it is destructive and requires confirmed=True, and instructs to always ask the user first. However, it does not explicitly compare to alternatives like reset_session.

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

whatsapp_download_mediaC

Download media from a message (image/audio/video/doc). phone: chat. message_id: target msg.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
message_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description alone must disclose behavior. It does not mention side effects, authentication requirements, size limits, or output format. Minimal behavioral info.

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?

Extremely concise with two short sentences. No redundant information; purpose and key parameters stated up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and 0% schema coverage, the description is incomplete. It omits prerequisites (e.g., that the message must contain media), return type information, and error handling. Output schema exists but description doesn't hint at it.

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 0%, so description must compensate. It provides brief mappings ('phone: chat', 'message_id: target msg') which add some meaning but lack detail on format or how to obtain values.

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?

The description clearly states the tool downloads media from a message and lists supported types (image/audio/video/doc). It distinguishes from sibling tools by focusing on downloading rather than sending or getting messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. For example, it does not mention that the user should first obtain a message with media via whatsapp_get_messages before downloading.

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

whatsapp_force_syncA

Force full history sync by reconnecting. Use when messages are missing. Wait ~30s after.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states it forces sync by reconnecting and hints at a ~30s wait, but does not disclose potential disruptions, safety, or whether it is destructive. Decent but incomplete.

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?

Highly concise with two sentences: first states action, second gives usage context. No wasted words, front-loaded effectively.

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?

Given zero parameters and presence of an output schema, the description is fairly complete for a simple action tool. It could mention prerequisites (e.g., being connected) or output expectations, but overall adequate.

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?

No parameters exist, so baseline is 4. The description adds no parameter info, which is acceptable since there are none to describe.

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?

The description clearly states the tool forces a full history sync by reconnecting and is used when messages are missing. While it distinguishes from general connection tools, it does not explicitly differentiate from similar tools like whatsapp_reset_session or whatsapp_connect.

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 explicitly states when to use (when messages are missing) but does not mention when not to use or provide alternatives among the many sibling tools. It implies usage in specific scenarios but lacks exclusions.

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

whatsapp_forward_messageC

Forward a message to another chat. message_id: original msg. to_phone: number or group JID.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
to_phoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

The description is extremely minimal and does not disclose any behavioral traits beyond the basic operation. With no annotations, the description carries the full burden but fails to mention side effects, permissions, or constraints (e.g., can it forward to groups? Does it require the message to belong to the user?).

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?

The description is extremely concise: one sentence plus two parameter hints. No redundant information; every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks completeness given the tool's complexity and number of siblings. It does not explain return values (despite having an output schema), error handling, or conditions under which the operation might fail. Critical context is missing for an agent to use the tool effectively.

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?

The schema has 0% description coverage, so the description must compensate. It adds brief explanatory notes: 'message_id: original msg' and 'to_phone: number or group JID', which clarify the parameter roles beyond the schema titles. However, it does not specify format or validation requirements.

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?

The description clearly states the action ('Forward a message to another chat') and identifies the key parameters (message_id, to_phone). However, it does not fully differentiate from similar tools like whatsapp_reply_message or whatsapp_send_text, which could also send messages to chats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as whatsapp_send_text or whatsapp_reply_message. There is no mention of prerequisites, limitations, or context for using forward vs. other messaging actions.

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

whatsapp_get_chatsA

List all active WhatsApp chats with last message info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It discloses the tool lists active chats with last message, but doesn't state read-only nature, authentication needs, rate limits, or pagination behavior.

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?

Single sentence, front-loaded with action and resource, no unnecessary words.

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?

Adequate for a simple list tool with 0 parameters and output schema present. Could mention ordering or filtering, but complete enough.

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?

No parameters, baseline 4. Description adds value by specifying 'active' chats and 'last message info', clarifying scope beyond the schema.

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?

Description clearly states verb 'list', resource 'active WhatsApp chats', and specifies included info 'last message info'. Distinguishes from sibling tools like whatsapp_get_messages and whatsapp_list_groups.

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?

Implied usage for listing active chats, but no explicit when-to-use or when-not-to-use. No mention of alternatives among siblings.

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

whatsapp_get_datetimeA

Get current date and time (Brazil/SĆ£o Paulo). Use to know today's date before comparing message timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

The description discloses the tool returns the current date and time in a specific timezone, which implies a read-only, non-destructive operation. Since no annotations are provided, the description effectively covers the behavioral aspect adequately for a simple getter.

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?

The description is extremely concise, with two sentences that efficiently state the purpose and provide a usage hint. No unnecessary words.

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?

The description fully covers the tool's function for a zero-parameter tool with an output schema present. It explains what it returns (date and time in a specific timezone) and why it's useful, leaving no 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?

The tool has no parameters, and the description adds meaning beyond the empty schema by specifying the timezone ('Brazil/SĆ£o Paulo'). With 100% schema coverage and no params, the description usefully clarifies the output context.

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?

The description clearly states the action ('Get') and the resource ('current date and time'), with specificity ('Brazil/SĆ£o Paulo'). It distinguishes from all sibling tools, none of which are time-related.

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?

The description explicitly states when to use this tool: 'Use to know today's date before comparing message timestamps.' This provides clear context, though it does not explicitly mention when not to use or alternative tools.

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

whatsapp_get_group_infoC

Get group details. group_jid: group identifier (e.g. 120363...@g.us).

ParametersJSON Schema
NameRequiredDescriptionDefault
group_jidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'Get group details' without disclosing behavior like read-only nature, error handling, or what happens with invalid JID. Minimal transparency.

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?

The description is brief with no extra words. The key action is front-loaded. However, it could include a bit more information without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (reducing need to describe return values), the description is incomplete. It doesn't specify what 'group details' include (e.g., name, participants) or any constraints. For a simple tool, it's still insufficient.

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?

The input schema has 0% description coverage. The description adds 'group_jid: group identifier (e.g. 120363...@g.us)', providing format and example beyond the empty schema. This adds value but is minimal for a single parameter.

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?

The description 'Get group details' clearly states the action and resource. It distinguishes from siblings like whatsapp_list_groups (which lists groups) by implying a specific group via JID, but does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., whatsapp_list_groups for listing, whatsapp_get_group_invite_link for link). The description does not provide context for appropriate usage.

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

whatsapp_get_messagesB

Get recent messages from a chat, sorted by timestamp. phone: no '+'. count: default 20.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

Only discloses that messages are sorted by timestamp. With no annotations, the description carries full burden, but it fails to mention read-only nature, authentication needs, or error handling (e.g., invalid phone). Minimal behavioral context.

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?

Short and front-loaded with key info: one sentence plus two parameter hints. No fluff, but could benefit from slight restructuring (e.g., separate parameter details).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple 2-parameter tool, but missing context like what 'recent' means (time range), pagination, and error behavior. Output schema exists but description doesn't reference return format. Gaps remain given no annotations.

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?

Adds meaning to 'phone' (format constraint: no '+') and restates default for 'count' (already in schema). With 0% schema description coverage, this is helpful but incomplete—does not explain that phone identifies the chat or what count limits.

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?

Description clearly states it gets recent messages from a chat, sorted by timestamp, using phone as identifier. Distinguishes from siblings like get_messages_by_contact_name and get_unread_messages by focusing on a specific chat via phone number.

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?

Provides formatting hint for phone (no '+') and notes default count, but does not specify when to use this over similar tools like get_unread_messages or search_messages. No exclusion criteria or alternative recommendations.

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

whatsapp_get_messages_by_contact_nameB

Get messages from a contact by name/nickname. only_today: filter today only. limit: default 20.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
only_todayNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description is too brief. Lacks disclosure of return format, ordering, pagination, error handling (e.g., contact not found), or whether messages are marked as read. Important behavioral traits missing.

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?

Two sentences, front-loaded with purpose. No wasted words, but could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With many sibling tools and no output schema shown (though context says it exists), the description is adequate for simple usage but lacks completeness for confident tool selection. Missing context on when to use this over similar message-retrieval tools.

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?

Adds meaning beyond schema: explains only_today as 'filter today only' and limit with default 20. Name parameter is clear from context. Schema coverage is 0%, so description compensates well for 2 of 3 parameters.

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?

Clearly states 'Get messages from a contact by name/nickname', specifying the verb and resource. Implicitly differentiates from siblings like whatsapp_get_messages (by chat ID) and whatsapp_search_messages (more extensive), but lacks explicit 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?

Implies usage when contact name is known, but no explicit guidance on when to use vs alternatives like whatsapp_get_messages or whatsapp_get_unread_messages. No when-not or alternative recommendations.

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

whatsapp_get_qrcodeA

Get QR code image for WhatsApp pairing. Scan with phone to connect.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. States it returns a QR code image but does not disclose side effects (e.g., session state) or safety guarantees. However, for a retrieval operation, it is minimally adequate.

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?

Two concise sentences with no extraneous information. Efficiently conveys purpose and usage.

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?

Given the tool's simplicity (no parameters, no output schema), the description is sufficiently complete. It covers what the tool does and how to use it.

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?

No parameters in input schema, so description does not need to add parameter info. Baseline score of 4 is appropriate.

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?

Description clearly states verb 'Get', resource 'QR code image', and purpose 'for WhatsApp pairing'. It distinguishes from siblings as the only tool related to QR code retrieval.

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?

States 'for WhatsApp pairing' and 'Scan with phone to connect', which implies when to use. Lacks explicit exclusions or alternatives, but context is clear.

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

whatsapp_get_unread_messagesB

Get recent incoming messages across all chats (from others, not sent by you). limit: default 20.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only specifies the default limit and that messages are 'incoming (from others)', but fails to mention side effects (e.g., whether messages are marked read after retrieval), rate limits, or error conditions.

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?

Two concise sentences with front-loaded purpose. No redundant or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description provides the core action but omits whether tool use marks messages as read, the ordering of results, or pagination behavior. The tool name 'unread' is not explicitly reinforced in the text.

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?

The schema description coverage is 0%, so the description must add meaning. It notes the default value (20) and purpose (limit), but does not explain constraints like min/max values or behavior when omitted.

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?

The description clearly states the verb 'Get' and the resource 'recent incoming messages across all chats (from others, not sent by you)', which is specific and distinguishes from sibling tools like whatsapp_get_messages and whatsapp_get_messages_by_contact_name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or the context in which this tool is preferred over other message retrieval tools.

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

whatsapp_get_user_infoA

Get WhatsApp profile (name, about) for a number. phone: no '+'. For own session use whatsapp_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, and description only states basic function. Does not disclose auth requirements, error behavior, or that it is a read-only operation.

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?

Two sentences, front-loaded with purpose, no wasted words.

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?

Simple tool with one parameter and output schema exists. Description covers core function and hints at result fields (name, about). Missing edge cases but adequate for straightforward use.

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?

Adds format constraint 'no +' for the phone parameter, which helps avoid common input errors. However, schema coverage is 0% and description does not fully specify expected format (e.g., country code).

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?

Clearly states it gets WhatsApp profile (name, about) for a number. Distinguishes from sibling 'whatsapp_status' by noting own session use case.

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?

Explicitly provides alternative tool for own session (whatsapp_status), but does not discuss other possible alternatives among many siblings.

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

whatsapp_list_groupsA

List all WhatsApp groups.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided and description omits behavioral traits such as scope, rate limits, or whether it returns only groups the user administers.

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?

Single sentence with no fluff, perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Minimal but adequate for a no-param list tool with an output schema; could clarify return format (e.g., group names and IDs) but not essential.

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?

No parameters exist, and schema coverage is 100%. Baseline 4 for 0 parameters; description adds no param info but none needed.

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?

Description explicitly states 'List all WhatsApp groups' with a clear verb and resource, distinguishing it from sibling tools like create_group or get_group_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like whatsapp_get_group_info for specific groups; lacks context for selection.

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

whatsapp_mark_readC

Mark messages as read. phone: chat number. message_ids: list of IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
message_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description only states the core action without detailing side effects (e.g., triggering read receipts, changing unread counts). This is insufficient for a mutation tool with no annotation support.

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?

The description is very concise, with a single sentence plus parameter hints. It is front-loaded and contains no filler, but could be expanded slightly for clarity without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description is almost adequate. However, it omits practical context like whether the operation is reversible or affects multiple chats, which would help in real-world use.

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 0%, but the description adds basic meaning: 'phone: chat number' and 'message_ids: list of IDs'. While minimal, it clarifies the parameters' roles beyond the schema's type definitions.

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?

The description clearly states the verb 'mark' and the resource 'messages as read', which distinguishes it from sibling tools like sending or deleting messages. However, it lacks full context like 'in a WhatsApp chat' but is still unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like reacting to messages or deleting them. The description does not mention prerequisites or limitations, which is a significant gap given the number of sibling tools.

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

whatsapp_reactA

React to a message with emoji. phone: chat number. message_id: target msg. emoji: e.g. 'šŸ‘'.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
message_idYes
emojiYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavior. It states the action but does not disclose potential errors, permission requirements, or side effects. Adequate but minimal.

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?

Two sentences with no waste. First sentence states purpose, second explains parameters. Front-loaded and concise.

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?

The tool is simple with 3 required parameters. There is an output schema (not shown) that likely covers return values. The description is sufficient for basic use, though it lacks detail on error handling.

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 description coverage is 0%, so the description compensates by explaining each parameter: 'phone: chat number', 'message_id: target msg', 'emoji: e.g. šŸ‘'. This adds value beyond the schema.

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?

The description clearly states the action (React to a message with emoji) and resource (message). It is specific and distinct from sibling tools like sending messages or deleting messages.

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 explains what the tool does and its parameters, but does not provide any guidance on when to use it versus alternatives like deleting or replying. No when-not or context is given.

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

whatsapp_reply_messageB

Reply quoting a message. phone: no '+'. message: reply text. quoted_message_id: original msg ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
messageYes
quoted_message_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states 'Reply quoting a message' implying a write operation, but doesn't disclose security requirements (e.g., active session), rate limits, or what happens on failure. Minimal behavioral insight beyond the core action.

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?

The description is very concise (one sentence plus parameter hints). It front-loads the purpose and then lists parameter specifications efficiently. No unnecessary words, though it could be structured as a clearer list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low tool complexity (3 required params, simple action) and existence of an output schema, the description is adequate but not exhaustive. It misses context like prerequisites (e.g., must be connected) and return value description, but the output schema may compensate.

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 0%, so description must compensate. It explains each parameter: 'phone: no '+', message: reply text, quoted_message_id: original msg ID.' This adds value beyond schema names, but could be more detailed on format and constraints (e.g., phone format, message length).

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?

The description clearly states the tool's action: 'Reply quoting a message.' It distinguishes from similar tools like whatsapp_send_text by specifying quoting behavior. However, it could be more explicit about how it differs from other messaging tools.

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 provides format hints (phone no '+') and explains each parameter, but lacks explicit guidance on when to use this tool versus alternatives (e.g., whatsapp_send_text). No exclusions or prerequisites mentioned.

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

whatsapp_reset_sessionA

Reset WhatsApp session completely — logout + wipe message history + clear media + fresh QR. āš ļø DESTRUCTIVE. confirmed=True required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries burden. Lists destructive actions and required confirmation. Lacks details on reversibility or notifications but sufficient for this tool.

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?

Two sentences, front-loaded with action and warning, no wasted words.

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?

Given output schema exists and tool is simple (one boolean param), description covers all essential: purpose, destructiveness, confirmation needed.

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 has 0% description coverage for the 'confirmed' parameter. Description adds that confirmed=True is required, which is crucial beyond schema defaults.

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 verb 'Reset' + resource 'WhatsApp session' and specifies actions (logout, wipe history, clear media, fresh QR). Clearly distinguishes from sibling tools like connect/disconnect.

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?

Provides clear context: destructive operation, requires confirmed=True. Does not explicitly mention alternatives but warning is strong.

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

whatsapp_search_contactsA

Search contacts by name or nickname. Falls back to recent chat history when not found in phone book.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

Discloses a key behavioral trait: fallback to recent chat history when contact is not found in phone book. No annotations exist, so the description carries the full burden; this adds value beyond the obvious.

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?

Two succinct sentences, front-loaded with the core action and an important detail. No wasted words.

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?

Given the tool's simplicity (single parameter, output schema exists), the description covers the essential behavior and a notable edge case. Could add more about return format or limitations, but adequate.

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?

With 0% schema description coverage, the description compensates by clarifying that the 'query' parameter expects a name or nickname. While not exhaustive, it provides meaningful guidance.

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?

Clearly states it searches contacts by name or nickname, and mentions a fallback behavior. However, it does not explicitly distinguish itself from sibling tools like whatsapp_get_messages_by_contact_name or whatsapp_search_messages.

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?

Only implies usage for searching contacts. Does not mention when not to use it or suggest alternatives, leaving the agent to infer context from sibling tool names.

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

whatsapp_search_messagesB

Search messages by keyword across all synced history. query: term. limit: default 50.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'across all synced history'. It does not disclose read-only status, rate limits, or what happens if no results are found. The description carries the full burden but is insufficient.

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?

The description is very concise with two short sentences, but it could be more structured or include more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (2 params, output schema present), the description covers the basic purpose but lacks detail on scope or edge cases. It is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only restates parameter names and limit default (already in schema). It adds no additional meaning like accepted formats or behavior beyond defaults.

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?

The description clearly states the verb (Search), resource (messages), and scope (by keyword across all synced history), distinguishing it from sibling tools like whatsapp_get_messages and whatsapp_get_messages_by_contact_name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. It mentions parameters but lacks context about prerequisites or when not to use it.

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

whatsapp_send_audioC

Send audio via WhatsApp. phone: no '+'. audio_url: public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
audio_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It only provides input formatting tips ('no +', 'public URL'), but does not disclose behavioral traits like required permissions, size limits, supported formats, or whether the audio is sent as a voice note.

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?

Two sentences: the first states the action, the second gives parameter hints. Front-loaded and efficient, but could include more detail without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown), description should mention return values. It also lacks differentiation from many sibling send tools and misses constraints like file size or format. Incomplete for practical use.

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?

With 0% schema description coverage, the description adds value by hinting at formatting constraints (phone without '+', audio_url must be public URL). However, it does not specify expected formats or country code requirements, leaving gaps.

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?

The description clearly states the action 'Send audio via WhatsApp' and implies the resource. It distinguishes from sibling send tools by specifying audio, though it could be more explicit about the type of audio (e.g., voice note).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus other WhatsApp send tools (e.g., send_text, send_image). The description only implies via context, but does not explicitly state prerequisites or alternatives.

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

whatsapp_send_contactB

Send contact card (vCard) via WhatsApp. phone: recipient no '+'. contact_name/contact_phone: contact to share.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
contact_nameYes
contact_phoneYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as whether the vCard is created automatically, any limitations, or error conditions.

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?

Extremely concise with two sentences, front-loading the core purpose and parameter hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Missing details on output, prerequisites (e.g., WhatsApp connection), and behavior when parameters are invalid or contact not found.

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?

The description adds some meaning to parameters (phone format, contact_name/contact_phone roles), but with 0% schema coverage, more detail on parameter semantics is needed.

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?

The description clearly states the action (send) and resource (contact card via WhatsApp), and distinguishes from sibling tools focused on other media types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like sending text or images, and no mention of prerequisites or context for use.

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

whatsapp_send_documentB

Send document/file via WhatsApp. phone: no '+'. document_url: public URL. filename/caption: optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
document_urlYes
filenameNo
captionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Adds specifics like phone number format (no '+') and document_url must be public URL, and filename/caption optional. But lacks info on file size limits, supported formats, or error handling behavior.

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?

Very concise; three sentences cover purpose and key constraints. Front-loaded with purpose, then parameter notes. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters, 2 required, and an output schema present, the description provides minimal but essential info. Missing details on file size, supported formats, and possible errors, which could impact agent decision-making.

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 0%, so description must compensate. Explains phone format, document_url requirement, and optional fields. However, doesn't elaborate on document_url needing to be a direct download link or filename default behavior.

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 'Send document/file via WhatsApp' clearly. Distinguishes from sibling tools like send_image, send_audio, but could be more specific about document types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like whatsapp_send_text or whatsapp_send_link. No context about prerequisites or excluded scenarios.

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

whatsapp_send_imageC

Send image via WhatsApp. phone: no '+'. image_url: public URL. caption: optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
image_urlYes
captionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It only gives formatting hints for phone and image_url but omits side effects (e.g., message sending), auth requirements, error handling, or limitations (e.g., file size).

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?

The description is very concise (one sentence) and front-loaded with the core purpose. It could be slightly better structured, but every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no annotations, and an output schema, the description is too minimal. It fails to mention return value, error cases, or any behavioral context beyond parameter hints.

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 0%, so description must add meaning. It explains phone format (no '+'), image_url type (public URL), and caption as optional. This is helpful but minimal; it lacks accepted image formats or size limits.

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?

The description clearly states 'Send image via WhatsApp', specifying the verb (send) and resource (image). It distinguishes from siblings like whatsapp_send_video or whatsapp_send_text by focusing on images. However, it lacks specificity on image format or size constraints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like whatsapp_send_document. No prerequisites mentioned (e.g., WhatsApp connection status). The description provides no context for proper invocation.

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

whatsapp_send_locationC

Send location via WhatsApp. phone: no '+'. latitude/longitude: coords. name: optional label.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
latitudeYes
longitudeYes
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description only says 'Send location' without disclosing side effects (e.g., creates message, requires authentication, returns status). Minimal behavioral insight.

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?

Description is very brief (three fragments) and front-loaded with purpose. Every word earns its place, though it could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and an output schema (not described), the description lacks completeness. It does not mention return values, error handling, or expected outcomes.

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 0%, so description adds meaning: phone format (no '+'), latitude/longitude as coords, name optional label. But lacks details like phone country code, coordinate ranges, or behavior when invalid.

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?

The description clearly states this tool sends a location via WhatsApp, distinguishing it from other send tools (e.g., audio, image) by resource type. The purpose is immediately understandable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It only provides format constraints (phone no '+', coords format). Implicit usage from sibling differentiation is weak.

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

whatsapp_send_pollB

Send poll. phone: no '+' or group JID. question: poll text. options: list of choices. max_answers: default 1.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
questionYes
optionsYes
max_answersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. Provides minimal formatting hints (phone format, default max_answers) but lacks details on success/failure conditions, errors, or side effects.

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?

Extremely concise: one sentence per parameter, front-loaded with purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers parameter semantics adequately but lacks context on expected behavior, response format, or error handling. For a send tool with 4 parameters, more behavioral context would improve completeness.

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 has 0% description coverage, but description explicitly explains each parameter: phone format, question text, options list, and default max_answers. Adds significant value beyond schema.

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?

Description states 'Send poll,' which clearly indicates the verb and resource. It implicitly distinguishes from sibling tools by specifying poll-specific parameters, but could be more explicit about the feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like whatsapp_send_text or whatsapp_send_image. The description only lists parameters without contextual usage advice.

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

whatsapp_send_textA

Send WhatsApp text. phone: country code, no '+' (e.g. 5511999998888). message: text content.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
messageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only covers phone format and message text. Fails to disclose success/failure behavior, rate limits, message length, or return value despite having an output schema.

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?

Extremely concise: two sentences with front-loaded purpose and no extraneous details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with two parameters and an output schema, but missing usage guidance and behavioral details that are important given no annotations.

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?

Adds meaning beyond schema by explaining phone format (country code, no '+') and message is text. With 0% schema coverage, this is helpful but still lacks constraints like maximum length.

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?

Clearly states 'Send WhatsApp text' with specific verb and resource. Differentiates from sibling send tools (audio, image, etc.) by focusing on text.

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?

No explicit guidance on when to use this versus other send tools. Implied by tool name but not stated.

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

whatsapp_send_videoC

Send video via WhatsApp. phone: no '+'. video_url: public URL. caption: optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYes
video_urlYes
captionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior1/5

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

No annotations provided, and the description fails to disclose important behavioral traits such as file size limits, supported video formats, error behaviors, or whether the action is destructive. The description only hints at parameter formats.

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?

Two sentences with no waste. Information is front-loaded. Could be slightly more structured but is efficient for the content provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (which reduces need to describe returns), the description lacks critical context: no mention of prerequisites, error handling, or rate limits. For a media sending tool, it is incomplete.

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?

Given 0% schema description coverage, the description adds meaning: phone format (no '+'), video_url must be a public URL, caption is optional. However, it does not explain the phone format in detail (e.g., include country code) or provide constraints on video_url.

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?

The description states 'Send video via WhatsApp' with a specific verb and resource, clearly distinguishing it from media senders like send_image or send_audio. The additional format hints remove ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., send_image for images). No mention of prerequisites like needing an active WhatsApp session or connection status.

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

whatsapp_statusA

Get WhatsApp session status (connected/disconnected/QR pending) and WuzAPI service health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The description accurately indicates a read-only operation without side effects. It would benefit from stating that no state changes occur, but the context is clear given no destructive actions are mentioned.

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?

Single sentence, no redundancy, immediately conveys the tool's function.

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 simple status tool with no parameters and an output schema, the description covers the essential aspects. It mentions both session status and service health, which is sufficient.

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?

With zero parameters, baseline is 4 per rules. The description does not need to add parameter info, as schema coverage is 100%.

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?

Description specifically states it retrieves WhatsApp session status and service health, listing possible status values (connected/disconnected/QR pending). This clearly distinguishes it from sibling tools that perform actions like connect, send, or configure.

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?

No explicit guidance on when to use or alternatives. However, the purpose implies it's for checking connectivity before operations, which is reasonable for a diagnostic tool.

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

whatsapp_update_group_participantsC

Add or remove group participants. action: 'add'|'remove'. participants: phone list, no '+'.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_jidYes
participantsYes
actionNoadd

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description has the full burden. It mentions the phone number format (no '+') but fails to disclose behavioral traits like required permissions, potential consequences of removal, or error conditions.

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?

The description is concise at two sentences, with the first sentence stating the purpose and the second detailing parameters. No unnecessary words, though more detail could fit without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's potential for destructive actions (removing participants), the description lacks warnings or prerequisites. It also does not explain the output schema or handle edge cases, making it incomplete for safe use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain all parameters. It partially covers 'action' and 'participants' but omits 'group_jid' entirely, leaving a required parameter unexplained.

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?

The description clearly states the verb 'Add or remove' and the resource 'group participants'. It distinguishes from sibling tools like whatsapp_create_group or whatsapp_get_group_info by focusing on participant modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as when to add vs. remove participants, or prerequisites like being a group admin.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (e.g., send_text vs send_image, get_chats vs get_messages), but some pairs like whatsapp_get_messages and whatsapp_get_unread_messages could cause minor confusion due to overlapping functionality. Overall, the set is well-disambiguated.

Naming Consistency5/5

All tool names follow a consistent 'whatsapp_verb_noun' pattern in snake_case (e.g., whatsapp_send_text, whatsapp_get_chats). There are no deviations or mixed conventions, making the naming predictable and easy to understand.

Tool Count3/5

With 37 tools, the server covers a broad range of WhatsApp functionality, but the count is high compared to typical MCP servers. Some consolidation (e.g., a generic send_media tool) could reduce complexity. The count is borderline but still reasonable for the domain.

Completeness4/5

The tool set covers core operations: messaging (text, media, polls), group management, search, and admin tasks. Minor gaps exist, such as missing edit_message or typing indicators, but the surface is largely complete for most WhatsApp automation use cases.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabriellopesdesouza2002/mcp-whatsapp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server