MCP WhatsApp
Enables sending and receiving WhatsApp messages, images, documents, and more, along with managing chats, groups, contacts, and media through the WhatsApp API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP WhatsAppSend a message to +5511999998888 saying I'll be late"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š± MCP WhatsApp
Send messages, images, documents and more on WhatsApp ā directly from any AI.
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 -dThat's it ā WuzAPI starts automatically on http://localhost:7143 with message history enabled. ā
The included
docker-compose.ymlsets everything up for you.
Default admin token:admin123(change viaWUZAPI_ADMIN_TOKENenv 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.serverRestart 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.
Open
http://localhost:7143ā click Admin ModeEnter the admin token ā default is
admin123Go 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 Code (recommended)
claude mcp add whatsapp -s user -- \
/path/to/.venv/bin/python -m mcp_whatsapp.serverThen 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.jsonmacOS:
~/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.serverEnv vars:
WUZAPI_BASE_URL,WUZAPI_TOKEN
š ļø Available Tools (30+)
Category | Tools |
āļø Setup |
|
š Session |
|
š¬ Messages |
|
š„ Chat |
|
š¤ Users |
|
š„ Groups |
|
š Webhook |
|
š¢ Newsletter |
|
š Admin |
|
š” 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 +5511999998888Sending 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? |
| ā Brazil (DDD 11) |
| ā USA (415) |
| ā Remove the |
| ā 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:
Avoid Spam: Do not use this tool for bulk messaging or automated marketing. Excessive automated activity is the #1 cause of WhatsApp account bans.
Privacy Guardrails: By default, this server includes masking for sensitive information (PII) like CPFs, Credit Cards, and Emails (when
WUZAPI_PRIVACY_MODE=true).Audit Logs: All tool calls are logged in
logs/audit_privacy.log. This is essential for transparency and accountability.Token Safety: Never share your
WUZAPI_TOKENorWUZAPI_ADMIN_TOKEN. These grant full access to your messages.AI Autonomy: Be careful when giving the AI "autonomy" to send messages. Always review the output if the AI is performing high-stakes tasks.
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.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes
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 toolswhatsapp_adminB
WuzAPI admin operations. action: 'list_users'|'create_user'|'delete_user'|'enable_history'. Requires admin token.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| name | No | ||
| token | No | ||
| confirmed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 '+'.
| Name | Required | Description | Default |
|---|---|---|---|
| phones | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | ||
| base_url | No | http://localhost:7143 | |
| admin_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 '+'.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| participants | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message_id | Yes | ||
| everyone | No | ||
| confirmed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| to_phone | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| group_jid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_group_invite_linkB
Get invite link for a group. group_jid: group identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| group_jid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose any behavioral traits such as permissions needed, side effects (e.g., link creation or expiration), error behavior for invalid groups, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the purpose. However, it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool and presence of an output schema, the description is partially complete. It explains the tool's purpose and parameter but lacks context on return values, error handling, and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds minimal value by restating 'group_jid: group identifier' without clarifying format, origin, or how to obtain the identifier. This is insufficient to guide correct parameter construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'invite link for a group', making the tool's purpose unambiguous and distinguishable from sibling tools like whatsapp_get_group_info or 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.
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. It does not mention prerequisites, typical use cases, or scenarios to avoid.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| only_today | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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. 'š'.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message_id | Yes | ||
| emoji | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message | Yes | ||
| quoted_message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| audio_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| contact_name | Yes | ||
| contact_phone | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| document_url | Yes | ||
| filename | No | ||
| caption | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| image_url | Yes | ||
| caption | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_linkB
Send link with preview via WhatsApp. phone: no '+'. url: link. text: optional message.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| url | Yes | ||
| text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether the tool modifies state, rate limits, error handling, or what happens if the link is invalid. The description is too terse for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with only three short phrases. Every word serves a purpose, but the structure could be improved to front-load essential usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description lacks important context such as prerequisites (e.g., WhatsApp must be connected), error scenarios, or what response to expect. Given the large number of sibling tools, more contextual completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds minimal meaning: 'phone: no '+'', 'url: link', 'text: optional message'. This provides basic formatting guidance (e.g., omit '+' in phone number) but does not fully explain semantics (e.g., expected URL scheme, phone number format).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send link with preview'), the resource ('link'), and the platform ('via WhatsApp'). It distinguishes from sibling tools like whatsapp_send_text or whatsapp_send_image by specifying that a link with a preview is sent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like whatsapp_send_text (for text only) or other send tools. There is no mention of 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_locationC
Send location via WhatsApp. phone: no '+'. latitude/longitude: coords. name: optional label.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| latitude | Yes | ||
| longitude | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| question | Yes | ||
| options | Yes | ||
| max_answers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| message | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| video_url | Yes | ||
| caption | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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 '+'.
| Name | Required | Description | Default |
|---|---|---|---|
| group_jid | Yes | ||
| participants | Yes | ||
| action | No | add |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Give your AI agents a real WhatsApp number to send and receive messages.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
Run WhatsApp Business campaigns from any AI assistant: contacts, segments, and broadcasts.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with WhatsApp through a Model Context Protocol server, supporting sending text messages, contacts, links, and locations via standardized tools.6MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables WhatsApp automation through MCP protocol, allowing users to manage sessions, send messages, handle groups/communities, and access contacts through natural language interactions with AI agents.13
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp messages, templates, and retrieve media through the WhatsApp Cloud API. Provides webhook handling and seamless integration with Meta's WhatsApp Business platform.23

@chatmaid/mcpofficial
AlicenseAqualityCmaintenanceEnables sending WhatsApp messages and managing Chatmaid account from any MCP-compatible AI client.819MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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