Skip to main content
Glama
billyfranklim1

mcp-evolution

mcp-evolution

npm version license CI

TypeScript MCP server for Evolution API (WhatsApp) with instance pinning.

Architecture

This server implements the Model Context Protocol:

  • Transport: stdio — the MCP host (Claude Desktop, Claude Code, etc.) spawns this process and speaks JSON-RPC over stdin/stdout.

  • Server: uses the high-level McpServer class from the official TypeScript SDK, which handles capability negotiation and session lifecycle automatically.

  • Tools: 50 tools registered via registerTool() with Zod-validated input schemas — the SDK enforces types before the handler runs.

All three connection parameters (API URL, API key, instance name) are pinned at startup via environment variables. The AI caller cannot switch instances mid-conversation.

Related MCP server: mcp-evolution-api

Tools

Message

Tool

Description

send_text

Send a plain text message

send_media

Send an image, video, audio, or document

send_audio

Send a WhatsApp audio (PTT voice note)

send_sticker

Send a sticker (webp)

send_location

Send a location pin

send_contact

Share one or more contacts (vCards)

send_reaction

React to a message with an emoji

send_poll

Send a poll message

send_list

Send an interactive list/menu message

send_button

Send an interactive button message

send_status

Post a WhatsApp Status (story) update

Chat

Tool

Description

find_chats

Find chats, optionally filtered with a Prisma-style where clause

find_contacts

Find contacts, optionally filtered

find_messages

Find messages by remoteJid with optional limit

get_chat_history

Get message history for a contact or group JID

mark_as_read

Mark one or more messages as read

archive_chat

Archive or unarchive a chat

delete_message

Delete a message for everyone

fetch_profile_picture

Fetch a contact's profile picture URL

download_media

Download media from a message as base64

send_presence

Send a presence update (typing, recording, etc.)

check_number

Check whether phone numbers have WhatsApp accounts

Profile

Tool

Description

fetch_business_profile

Fetch a contact's WhatsApp Business profile

update_profile_name

Update the instance's display name

update_profile_status

Update the instance's about/status text

update_profile_picture

Update the instance's profile picture

remove_profile_picture

Remove the instance's profile picture

fetch_privacy

Fetch current privacy settings

update_privacy

Update privacy settings

update_block_status

Block or unblock a contact

Group

Tool

Description

list_groups

List all WhatsApp groups for the pinned instance

get_group_info

Get detailed info for a specific group by JID

create_group

Create a new WhatsApp group

update_group_subject

Update a group's name

update_group_description

Update a group's description

update_group_picture

Update a group's profile picture

fetch_invite_code

Fetch the invite code/link for a group

revoke_invite_code

Revoke and regenerate a group's invite code

accept_invite

Accept a group invite by code

send_group_invite

Send a group invite link to specific contacts

update_participants

Add, remove, promote, or demote group participants

update_group_setting

Update group settings (announcement mode, locked)

leave_group

Leave a group

find_group_by_invite

Get group info from an invite code without joining

Instance

Tool

Description

connection_state

Get the current connection state of the instance

restart_instance

Restart the instance (reconnects without logging out)

logout_instance

Logout the instance (clears session)

get_settings

Get current instance settings

set_settings

Update instance settings

Webhook

Tool

Description

find_webhook

Get the current webhook configuration

set_webhook

Configure the webhook

Label

Tool

Description

find_labels

List all labels (requires WhatsApp Business)

handle_label

Add or remove a label from a chat

Install & run via npx

EVOLUTION_API_URL=http://localhost:8080 \
EVOLUTION_API_KEY=your-key \
EVOLUTION_INSTANCE=your-instance \
npx mcp-evolution

Configuration

Variable

Required

Description

EVOLUTION_API_URL

Yes

Base URL of your Evolution API (e.g. http://localhost:8080)

EVOLUTION_API_KEY

Yes

Global API key from Evolution API config

EVOLUTION_INSTANCE

Yes

Instance name created in Evolution API

Copy .env.example to .env for local development.

Use with Claude Desktop / Claude Code

Add to ~/.claude/claude_desktop_config.json or project .mcp.json:

{
  "mcpServers": {
    "whatsapp": {
      "command": "npx",
      "args": ["mcp-evolution"],
      "env": {
        "EVOLUTION_API_URL": "http://localhost:8080",
        "EVOLUTION_API_KEY": "your-evolution-api-key",
        "EVOLUTION_INSTANCE": "your-instance-name"
      }
    }
  }
}

Or point directly at the built binary if running from a local checkout:

{
  "mcpServers": {
    "whatsapp": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-evolution/dist/index.js"],
      "env": {
        "EVOLUTION_API_URL": "http://localhost:8080",
        "EVOLUTION_API_KEY": "your-evolution-api-key",
        "EVOLUTION_INSTANCE": "your-instance-name"
      }
    }
  }
}

Development

# Install dependencies
npm install

# Run in dev mode (no build step)
npm run dev

# Build TypeScript → dist/
npm run build

# Run tests
npm test

# Start from built output
npm start

Evolution API endpoints wrapped

Tool

Method

Path

send_text

POST

/message/sendText/{instance}

send_media

POST

/message/sendMedia/{instance}

send_audio

POST

/message/sendWhatsAppAudio/{instance}

send_sticker

POST

/message/sendSticker/{instance}

send_location

POST

/message/sendLocation/{instance}

send_contact

POST

/message/sendContact/{instance}

send_reaction

POST

/message/sendReaction/{instance}

send_poll

POST

/message/sendPoll/{instance}

send_list

POST

/message/sendList/{instance}

send_button

POST

/message/sendButtons/{instance}

send_status

POST

/message/sendStatus/{instance}

find_chats

POST

/chat/findChats/{instance}

find_contacts

POST

/chat/findContacts/{instance}

find_messages / get_chat_history

POST

/chat/findMessages/{instance}

mark_as_read

POST

/chat/markMessageAsRead/{instance}

archive_chat

POST

/chat/archiveChat/{instance}

delete_message

DELETE

/chat/deleteMessageForEveryone/{instance}

fetch_profile_picture

POST

/chat/fetchProfilePictureUrl/{instance}

download_media

POST

/chat/getBase64FromMediaMessage/{instance}

send_presence

POST

/chat/sendPresence/{instance}

check_number

POST

/chat/whatsappNumbers/{instance}

fetch_business_profile

POST

/chat/fetchBusinessProfile/{instance}

update_profile_name

POST

/chat/updateProfileName/{instance}

update_profile_status

POST

/chat/updateProfileStatus/{instance}

update_profile_picture

POST

/chat/updateProfilePicture/{instance}

remove_profile_picture

DELETE

/chat/removeProfilePicture/{instance}

fetch_privacy

GET

/chat/fetchPrivacySettings/{instance}

update_privacy

POST

/chat/updatePrivacySettings/{instance}

update_block_status

POST

/chat/updateBlockStatus/{instance}

list_groups

GET

/group/fetchAllGroups/{instance}

get_group_info

GET

/group/findGroupInfos/{instance}

create_group

POST

/group/create/{instance}

update_group_subject

POST

/group/updateGroupSubject/{instance}?groupJid=

update_group_description

POST

/group/updateGroupDescription/{instance}?groupJid=

update_group_picture

POST

/group/updateGroupPicture/{instance}?groupJid=

fetch_invite_code

GET

/group/inviteCode/{instance}?groupJid=

revoke_invite_code

POST

/group/revokeInviteCode/{instance}?groupJid=

accept_invite

GET

/group/acceptInviteCode/{instance}?inviteCode=

send_group_invite

POST

/group/sendInvite/{instance}

update_participants

POST

/group/updateParticipant/{instance}?groupJid=

update_group_setting

POST

/group/updateSetting/{instance}?groupJid=

leave_group

DELETE

/group/leaveGroup/{instance}?groupJid=

find_group_by_invite

GET

/group/inviteInfo/{instance}?inviteCode=

connection_state

GET

/instance/connectionState/{instance}

restart_instance

POST

/instance/restart/{instance}

logout_instance

DELETE

/instance/logout/{instance}

get_settings

GET

/settings/find/{instance}

set_settings

POST

/settings/set/{instance}

find_webhook

GET

/webhook/find/{instance}

set_webhook

POST

/webhook/set/{instance}

find_labels

GET

/label/findLabels/{instance}

handle_label

POST

/label/handleLabel/{instance}

Requires Evolution API v2.

License

MIT — see LICENSE.

Disclaimer

Community software, not affiliated with Evolution API or any WhatsApp entity.

Available Tools

54 tools
accept_inviteAccept InviteB

Accept a WhatsApp group invite by invite code via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
inviteCodeYesGroup invite code (the part after https://chat.whatsapp.com/)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose if the operation is destructive, requires authentication, has rate limits, or what the result is. The mention of 'pinned instance' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is concise but could include one more sentence for clarity without becoming verbose.

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

Completeness3/5

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

Given the simple tool with one parameter and no output schema, the description is partially complete. It lacks behavioral context (e.g., return value, side effects) that would help an agent anticipate outcomes.

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

Parameters3/5

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

The input schema fully describes the inviteCode parameter with 100% coverage. The tool description adds no extra meaning beyond what the schema already provides, so baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Accept', resource 'WhatsApp group invite', and method 'by invite code via the pinned instance'. It distinguishes from sibling tools like send_group_invite, revoke_invite_code, and find_group_by_invite.

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

Usage Guidelines3/5

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

The description implies when to use (accepting an invite) but provides no explicit guidance on when not to use, prerequisites, or alternatives. The context of 'pinned instance' is mentioned but not explained.

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

archive_chatArchive ChatB

Archive or unarchive a WhatsApp chat via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
lastMessageYesLast message object of the chat
chatYesJID of the chat to archive/unarchive
archiveYestrue to archive, false to unarchive

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the basic action without mentioning side effects, required permissions, reversibility, or other important behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, using a single sentence. It is front-loaded but perhaps too brief for a tool with a nested parameter.

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

Completeness2/5

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

Given no output schema and moderate complexity (3 params, 1 nested object), the description fails to explain return values, error conditions, or success indicators. It omits expected output format.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds no parameter-specific information beyond the schema definitions; it merely restates the action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool archives or unarchives a WhatsApp chat, using the verb 'archive/unarchive' and specifying the resource 'WhatsApp chat'. It distinguishes itself from sibling tools, none of which provide archive functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context for exclusion. It only mentions 'via the pinned instance' but does not elaborate further.

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

check_numberCheck NumberA

Check whether phone numbers have WhatsApp accounts. Returns exists, jid, and number for each.

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesArray of phone numbers to check (e.g. ['5511999999999']). Returns whether each number has WhatsApp and their JID.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It correctly implies a read-only check operation but does not explicitly state it is non-destructive, nor does it describe potential errors, rate limits, or permission requirements. The description adds minor value beyond schema by listing return fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately conveys the tool's action and output. Every word contributes meaning, with no redundancy or extraneous information.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema, no annotations), the description provides a basic understanding. However, it lacks context about error handling, input validation, or operational dependencies (e.g., active session), which could lead to incorrect usage in edge cases.

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

Parameters3/5

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

The schema coverage is 100%, with a clear description of the 'numbers' parameter and what it returns. The tool description adds only the specific return fields (exists, jid, number), which marginally enhances understanding but is already implied by the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Check' and the resource 'phone numbers' with respect to WhatsApp accounts. It specifies the return values (exists, jid, number), making the tool's purpose clear and distinct from sibling tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives. There is no mention of prerequisites, typical use cases, or situations where the tool should not be used, leaving the agent to infer applicability from the name and limited context.

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

connection_stateConnection StateA

Get the current connection state of the pinned WhatsApp instance (open, close, connecting).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It states 'Get' implying a non-destructive read, but does not explicitly confirm safety, authentication needs, or any side effects. For a simple state query, this is adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the verb and resource, with no extraneous words. Every part of the description is essential and well-structured.

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

Completeness3/5

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

The description lacks details about the return format or possible error states. Since there is no output schema, the description should at least hint at what the output contains (e.g., a string). However, for a simple state tool, it is borderline adequate.

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

Parameters4/5

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

The input schema has zero parameters, so schema coverage is 100%. The baseline for parameterless tools is 4, and the description does not need to add parameter details. No additional value is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Get'), the resource ('current connection state'), and the possible values ('open, close, connecting'), distinguishing it from sibling tools that perform messaging, group management, or other actions.

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

Usage Guidelines2/5

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

No guidance on when to use this tool (e.g., before sending messages to check connectivity) or alternatives. While the purpose is clear, the description lacks 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.

create_groupCreate GroupB

Create a new WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectYesGroup name/subject
descriptionNoOptional group description
participantsYesArray of participant phone numbers or JIDs

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only says 'create a new WhatsApp group', which implies a write operation, but does not mention authentication requirements, potential side effects (e.g., consuming credits, creating on behalf of instance), or the group's initial state. Minimal information beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the action. It is concise with no superfluous words. However, it could benefit from additional context without becoming verbose.

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

Completeness2/5

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

Despite simplicity (3 params, no output schema), the description lacks completeness. It does not explain what happens on success (e.g., returns group ID), how errors are handled (e.g., invalid participants), or the requirement for an active instance. The description is too sparse for an agent to fully understand the tool's operation.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds no extra parameter semantics; it only restates the tool's purpose. The schema already describes each parameter adequately, so no deduction is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create', the resource 'a new WhatsApp group', and the context 'via the pinned instance'. This distinguishes it from sibling tools that modify existing groups (e.g., update_group_subject) or invite to groups.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not specify that participants are required, or that this should be used only when the instance is authenticated and ready. No when-not-to-use or alternative suggestions are given.

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

delete_messageDelete MessageA

Delete a message for everyone via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMessage ID to delete
remoteJidYesJID of the chat containing the message
fromMeYesWhether the message was sent by this instance
participantNoParticipant JID (required for group messages)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions 'for everyone' but does not disclose behavioral traits like irreversibility, required permissions, rate limits, or side effects (e.g., notifying participants).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single clear sentence with no wasted words, front-loading the core action.

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

Completeness3/5

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

For a simple delete tool, the description is sufficient given the parameter details. However, lack of output schema and annotations means more context on outcomes or error conditions could be helpful.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for all parameters. The description adds no extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete), resource (message), and scope (for everyone via pinned WhatsApp instance). It distinguishes from sibling tools like archive_chat or send_text.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use, but the purpose is straightforward. Lacks guidance on prerequisites or alternatives among siblings.

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

download_mediaDownload MediaA

Download media from a WhatsApp message and write it to disk. Returns { path, mimetype, size, messageId } — NOT raw base64 (prevents context overflow). File is written to /tmp/mcp-evolution-media/-.. Caller is responsible for cleanup (rm the file when done).

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage object containing the media
convertToMp4NoConvert audio to mp4 format (forwarded to Evolution)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that file is written to disk, returns metadata not raw base64 to prevent overflow, and caller is responsible for cleanup. This is transparent about side effects and return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three sentences, front-loaded with verb and resource, no superfluous words. Every sentence adds value (what it does, return format, file path, cleanup).

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

Completeness4/5

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

No output schema, but description covers return format. File path pattern and cleanup are specified. Could mention error conditions, but for a download tool it is sufficiently complete for an agent.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both parameters. Description adds meaning beyond schema by explaining return structure, file path pattern, and cleanup responsibility, which helps agent use parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action: download media from WhatsApp message and write to disk. It specifies return format and file path. No sibling tool has similar name, so no confusion.

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

Usage Guidelines3/5

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

Description does not explicitly state when to use vs alternatives, but usage for downloading media is clear. It provides cleanup instructions which guide post-use behavior.

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

fetch_business_profileFetch Business ProfileA

Fetch the WhatsApp Business profile information of a contact via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description must convey behavioral traits. It indicates a read operation but does not disclose error handling, rate limits, or what happens if the number lacks a business profile. Adequate but not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently communicates the tool's purpose. No unnecessary words.

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

Completeness4/5

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

For a simple fetch tool with one parameter and no output schema, the description is fairly complete. It explains what it does and how via the pinned instance. It could mention return format, but not required when output schema is missing.

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

Parameters4/5

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

The schema covers the parameter 'number' with a good description, and the tool description adds 'via the pinned instance', providing extra context beyond the schema. With 100% schema coverage, this is above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'WhatsApp Business profile information of a contact'. It is specific and distinct from sibling tools like 'fetch_profile_picture' or 'check_number'.

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

Usage Guidelines3/5

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

The phrase 'via the pinned instance' gives some context, but there is no explicit guidance on when to use this tool vs. alternatives (e.g., check_number or get_chat_history), nor any prerequisites or limitations.

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

fetch_invite_codeFetch Invite CodeB

Fetch the invite code/link for a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose all behavioral traits. It fails to mention that this is a read-only operation, any authentication needs, or what happens if the group JID is invalid or the user is not a member.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant information. However, it could be slightly expanded to include more context without losing brevity.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description covers the basic purpose and the parameter is documented in the schema. However, missing details on return value, errors, and behavioral implications lower the completeness to average.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter, and the description adds no additional meaning beyond the schema's description. Per the baseline, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Fetch') and the resource ('invite code/link') with context ('via the pinned instance'), clearly distinguishing from sibling tools like revoke_invite_code and accept_invite.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as revoke_invite_code or accept_invite, and lacks any context on prerequisites or typical scenarios.

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

fetch_privacyFetch Privacy SettingsA

Fetch the current privacy settings of the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

Without annotations, the description carries the full burden. It states 'Fetch' implying a read-only operation but lacks details on rate limits, authentication requirements, or any potential side effects, which are minimal but not clarified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, front-loaded with the verb and resource, and contains no redundant words.

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

Completeness4/5

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

Given the simplicity (no parameters, no output schema) and the presence of sibling tools, the description is mostly complete. However, it could mention what specific privacy settings are retrieved to improve clarity.

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

Parameters4/5

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

The tool has zero parameters, and the input schema adequately covers this. Per guidelines, baseline is 4; the description does not need to add parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch', the resource 'privacy settings', and the scope 'pinned WhatsApp instance', distinguishing it from sibling tools like 'update_privacy' (write) and 'get_settings' (broader).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'get_settings' for general settings or 'update_privacy' for modification, leaving the agent to infer usage context.

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

fetch_profile_pictureFetch Profile PictureA

Fetch the profile picture URL of a WhatsApp contact via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It states a read operation but does not disclose potential side effects, error scenarios, rate limits, or the meaning of 'pinned instance'. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no extraneous words, directly conveys the tool's purpose. Efficiently structured.

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

Completeness4/5

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

For a simple fetch operation, the description covers the key elements. Lacks details on return format (though 'URL' is implied) and handling of missing pictures, but overall adequate for a straightforward tool.

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

Parameters3/5

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

Schema has 100% description coverage, explaining the 'number' parameter as a JID or phone number. The description adds no additional meaning beyond 'WhatsApp contact', so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action ('Fetch'), the resource ('profile picture URL of a WhatsApp contact'), and the context ('via the pinned instance'). It distinguishes well from sibling tools like 'remove_profile_picture' or 'update_profile_picture'.

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

Usage Guidelines3/5

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

The description provides a clear purpose but offers no guidance on when to use this tool versus alternatives, such as when the contact lacks a profile picture or how to handle the returned URL.

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

find_chatsFind ChatsB

Find chats for the pinned instance. Supports search, limit, and offset to prevent large payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
whereNoOptional Prisma-style filter object (power-user). If supplied, search is ignored.
searchNoConvenience substring filter against pushName or remoteJid (case-insensitive). Ignored when where is provided.
limitNoMax results to return (default 50, max 500).
offsetNoSkip first N results (default 0).

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses that limit/offset prevent large payloads and mentions Prisma-style filtering. However, it does not state read-only semantics, authentication needs, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, concise and front-loaded with the core purpose. No extraneous text.

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

Completeness2/5

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

For a tool with nested objects, 4 parameters, and no output schema, the description is too brief. It lacks details on return format, pagination behavior, and error states. Given the complexity, more completeness is needed.

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

Parameters3/5

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

Input schema has 100% description coverage for all 4 parameters. The description adds context that limit/offset exist to prevent large payloads, which reinforces but does not significantly extend schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Find chats for the pinned instance' (verb+resource) and mentions key features (search, limit, offset). It distinguishes from similar sibling tools by specifying context 'for the pinned instance', though it does not explicitly differentiate from other find tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of when not to use it or what context would be better for a different tool.

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

find_contactsFind ContactsA

Find contacts for the pinned instance. Supports search (substring on pushName/name/remoteJid), limit, and offset to prevent large payloads. Returns normalized { remoteJid, pushName, profilePicUrl, isBusiness } — extra fields dropped.

ParametersJSON Schema
NameRequiredDescriptionDefault
whereNoOptional Prisma-style filter object (power-user). If supplied, search is ignored.
searchNoConvenience substring filter against pushName, name, or remoteJid (case-insensitive). Ignored when where is provided.
limitNoMax results to return (default 200, max 2000).
offsetNoSkip first N results (default 0).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description is the sole source of behavioral context. It discloses that the tool returns normalized fields and drops extra data, and mentions pagination parameters to prevent large payloads, implying it's a safe read operation. However, it does not discuss permissions, rate limits, or side effects, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each serving a purpose: stating the core function, listing key features, and specifying the output format. It is front-loaded with the main purpose and contains no unnecessary words or repetition.

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

Completeness4/5

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

Given the tool has no output schema, the description compensates by listing the returned fields and stating that extra fields are dropped. It covers the main parameters and their interactions. However, it does not mention behavior for empty results or whether pagination includes a total count, missing minor details.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that 'search' is a substring match on pushName/name/remoteJid and is case-insensitive, and clarifies that 'where' overrides 'search'. It also explains the purpose of limit/offset ('prevent large payloads'). This goes beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Find contacts for the pinned instance' with specific verb and resource. It clarifies support for search, limit, and offset, and specifies the returned fields. However, it does not explicitly distinguish this tool from other 'find_*' siblings like find_chats or find_labels, missing an opportunity to differentiate.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives, nor does it mention when not to use it. The usage is only implied by the purpose. No explicit context or exclusions are given.

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

find_group_by_inviteFind Group by InviteA

Get group information from an invite code without joining via the pinned instance. Returns { id, subject, subjectOwner, subjectTime, size, desc, descId, creation, owner, admins } by default. Set includeParticipants=true to also get the full participant list.

ParametersJSON Schema
NameRequiredDescriptionDefault
inviteCodeYesGroup invite code (the part after https://chat.whatsapp.com/)
includeParticipantsNoWhen true, includes the full participant list in the response (may be large for big groups). Default false returns only admins + size, which covers 95% of use cases.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It mentions the default return fields and the optional large participant list, but does not discuss side effects, authentication, rate limits, or error handling. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and return fields. Every sentence adds value without redundancy. Efficient and well-structured.

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

Completeness4/5

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

Given no output schema, the description specifies the default return fields and the effect of the optional parameter. It lacks error case details but covers core functionality adequately.

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

Parameters4/5

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

Both parameters have detailed descriptions in the schema (100% coverage). The description adds value by explaining 'inviteCode' is the part after the WhatsApp URL and that 'includeParticipants' may return large data, with a practical note about 95% use cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get' and resource 'group information from an invite code without joining'. It distinguishes from siblings like 'accept_invite' (joining), 'fetch_invite_code' (generating), and 'get_group_info' (requires membership).

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

Usage Guidelines4/5

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

The phrase 'without joining via the pinned instance' implies when to use this tool (pre-join info retrieval). While it doesn't name alternatives, the context is clear and sufficient for most agents.

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

find_labelsFind LabelsA

List all WhatsApp labels for the pinned instance (requires WhatsApp Business). Returns normalized { id, name, color } array — nested chat blobs dropped to prevent overflow.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description discloses output format, data normalization, and that nested chat blobs are dropped to prevent overflow. It also mentions the Business requirement. Could expand on potential limitations but sufficient for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no unnecessary words. Every sentence adds value.

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

Completeness5/5

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

Given no parameters and no output schema, the description covers purpose, requirements, output format, and a behavioral note about pruning nested data. It is complete for this tool's complexity.

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

Parameters4/5

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

The input schema has zero parameters, so schema coverage is 100%. The description adds value by explaining the return format and business requirement, which is beyond the empty schema baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all WhatsApp labels for the pinned instance, specifies a prerequisite (requires WhatsApp Business), and describes the output format. It distinguishes from sibling 'handle_label' which likely handles individual label operations.

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

Usage Guidelines4/5

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

The description provides the prerequisite (WhatsApp Business) and implicitly indicates usage to list labels. It lacks explicit guidance on when not to use or alternatives, but context makes it clear.

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

find_messagesFind MessagesA

Find messages by remoteJid (phone number or group JID) for the pinned instance. Returns normalized { id, fromMe, remoteJid, timestamp, type, text, mediaKey?, quotedMessageId? } — raw payload dropped to prevent overflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteJidYesWhatsApp JID (e.g. 5511999999999@s.whatsapp.net or group@g.us)
limitNoMax messages to return (default 50, max 200).
offsetNoSkip first N messages (default 0).

TDQS

A3.6/5.0
Behavior3/5

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 discloses the return format (normalized object with fields) and that the raw payload is dropped to prevent overflow. However, it does not mention behavioral traits like read-only nature, required authentication, rate limits, or any side effects, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Front-loaded with the core purpose, followed by the return format. Highly concise and well-structured for quick parsing.

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

Completeness4/5

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

Given no output schema, the description provides the return shape (fields list). It mentions normalization and overflow prevention. However, it lacks context on sorting order (e.g., chronological) and assumes the agent knows that remoteJid must correspond to an existing chat. Almost complete for a simple list tool.

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

Parameters3/5

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

Input schema has 100% description coverage for all three parameters (remoteJid, limit, offset). The description adds minimal value: it only mentions that remoteJid is a phone number or group JID, which is already implied by the schema description. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find messages by remoteJid' with a specific resource (messages) and a required parameter (remoteJid). It distinguishes from siblings like find_chats and get_chat_history by focusing on message retrieval by JID.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. While the description implies use for finding messages by remoteJid, it does not mention when not to use it or suggest alternative tools like get_chat_history or find_chats, which might be more appropriate for different use cases.

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

find_webhookFind WebhookA

Get the current webhook configuration for the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Given no annotations, the description carries the burden. It implies a read-only, non-destructive operation for retrieving configuration. However, it does not disclose what happens if no webhook is set, authentication requirements, or response format, which would add transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and precise, with no extraneous information. Every word contributes to the purpose.

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

Completeness4/5

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

For a simple retrieval tool with no parameters and no output schema, the description is largely complete. It states what is retrieved and from which instance. Could mention the return type or error cases, but current level is sufficient given simplicity.

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

Parameters4/5

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

Input schema has no parameters (100% coverage). The description adds meaning by specifying the scope ('pinned WhatsApp instance'), providing context beyond the schema. Baseline for zero-parameter tool is 4, and description meets it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the current webhook configuration for the pinned WhatsApp instance, using a specific verb ('Get') and resource ('webhook configuration'). It effectively distinguishes from sibling tool 'set_webhook' which modifies the webhook.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description mentions 'for the pinned WhatsApp instance' but does not explain context, prerequisites, or when to prefer this over other webhook-related tools.

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

get_chat_historyGet Chat HistoryA

Get chat history for a specific contact or group JID. Returns normalized { id, fromMe, remoteJid, timestamp, type, text, mediaKey?, quotedMessageId? } — raw payload dropped to prevent overflow.

ParametersJSON Schema
NameRequiredDescriptionDefault
remoteJidYesWhatsApp JID (e.g. 5511999999999@s.whatsapp.net or group@g.us)
limitNoMax messages to return (default 50, max 200).
offsetNoSkip first N messages (default 0).

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly discloses the return format (normalized object with fields) and explains why raw payload is dropped ('to prevent overflow'), providing useful behavioral context beyond a simple read operation. No annotations are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's purpose. Every part is informative with no redundant or extraneous content.

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

Completeness4/5

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

Given no output schema, the description adequately covers the return structure. The schema covers all parameter details. However, it could briefly contrast with find_messages for completeness in context.

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

Parameters3/5

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

All three parameters are fully described in the schema (100% coverage). The description adds no additional parameter-level detail beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('get') and resource ('chat history') with clear scope ('for a specific contact or group JID'). It distinctly differentiates from sibling tools like find_messages.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., find_messages), nor does it mention when not to use it. No exclusions or context are given.

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

get_group_infoGet Group InfoA

Get detailed info for a specific WhatsApp group. By default returns { id, subject, subjectOwner, subjectTime, size, desc, descId, creation, owner, admins } — participant list is dropped to prevent payload overflow. Set includeParticipants=true to get the full list (use sparingly for large groups).

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesThe group JID (e.g. 120363xxxxxxxx@g.us)
includeParticipantsNoWhen true, includes the full participant list in the response (may be large for big groups). Default false returns only admins + size, which covers 95% of use cases.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the default return, the payload overflow concern, and the effect of the parameter. It does not discuss performance, rate limits, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that immediately state the tool's purpose, list default fields, and explain the parameter. No redundant information.

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

Completeness3/5

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

Given no output schema or annotations, the description could include more details about the response structure, error scenarios, or permission requirements. It is adequate but leaves gaps.

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

Parameters4/5

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

The schema already covers both parameters with descriptions. The description adds value by explaining the rationale behind the default (avoiding payload overflow) and the 95% use case, going beyond the schema's literal meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get detailed info for a specific WhatsApp group' and lists the default fields returned. This distinguishes it from siblings like list_groups or get_group_resolved_participants.

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

Usage Guidelines4/5

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

The description advises using includeParticipants sparingly for large groups and notes that 95% of use cases are covered without it. However, it does not explicitly mention when not to use this tool or alternative siblings for specific tasks.

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

get_group_resolved_participantsGet Group Resolved Participants (LID → phone + name)A

Resolve a group's LID participants to phone JID + pushName by cross-referencing the Evolution Postgres Message history (key->>'participantAlt' field). Returns: { groupJid, total, resolved, unresolved, participants: [{ lid, phone, name, isAdmin, lastSeen }] }. Coverage depends on how many participants sent messages in the lookback window — silent members stay unresolved. Phone field is ready to use with send_text. Requires EVOLUTION_DB_URL env var pointing to Evolution's Postgres.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363xxxxxxxx@g.us)
sinceDaysNoLookback window in days for message history used to resolve LIDs. Default 180. Larger window = more LIDs resolved but slower query.
onlyResolvedNoWhen true, omits participants without phone or pushName from response. Useful when caller only wants actionable contacts.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that resolution depends on message history (lookback window) and that silent members remain unresolved. It also notes the output readiness for send_text. No destructive behavior is implied. The description could be more explicit about being read-only, but it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two sentences plus an inline output example. It is front-loaded with key information and contains no filler. Every sentence adds value.

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

Completeness5/5

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

Given no output schema and no annotations, the description is remarkably complete. It describes the return format (groupJid, total, resolved, unresolved, participants) and key fields (lid, phone, name, isAdmin, lastSeen). It also covers behavioral constraints (coverage depends on lookback) and prerequisites (env var). This is sufficient for an agent to use the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value beyond schema: for sinceDays it explains the trade-off between coverage and speed, and for onlyResolved it clarifies use case. This extra context justifies a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: resolving group LID participants to phone JID and pushName using Evolution's message history. It uses a specific verb ('resolve') and resource ('group's LID participants'), distinguishing it from siblings like get_group_info or update_participants.

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

Usage Guidelines4/5

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

The description provides context on when to use (when you need phone numbers from LIDs) and limitations (silent members stay unresolved). It also notes the requirement for EVOLUTION_DB_URL. However, it does not explicitly compare to alternatives or state when not to use it, so clarity is high but not maximal.

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

get_settingsGet SettingsA

Get the current settings of the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the tool reads settings, a non-destructive operation. With no annotations provided, the description carries the full burden, and it adequately conveys the behavior for a simple getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

Given no output schema, the description is sufficient for a parameterless getter. However, it could be improved by indicating what the settings include or the return format.

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

Parameters4/5

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

The input schema has no parameters, so schema coverage is 100%. The description adds meaning by specifying 'pinned WhatsApp instance', clarifying the scope of the settings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'current settings of the pinned WhatsApp instance', distinguishing it from sibling tools like set_settings.

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

Usage Guidelines3/5

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

The description implies that this tool is for reading settings, but does not explicitly state when to use it versus alternatives like set_settings. The context is clear for a simple getter, but lacks explicit guidance.

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

handle_labelHandle LabelA

Add or remove a WhatsApp label from a chat via the pinned instance (requires WhatsApp Business).

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
labelIdYesLabel ID to add or remove (get IDs from find_labels)
actionYesadd: assign label to chat; remove: unassign label from chat

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description bears the burden of behavioral disclosure. It states the tool mutates labels (add/remove) but does not specify idempotency, error behavior on invalid inputs, or side effects. Minimal additional context beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured sentence that conveys purpose and prerequisite efficiently. No superfluous words.

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

Completeness4/5

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

Given 3 required parameters, no output schema, and no annotations, the description covers the essential purpose and a key prerequisite. However, it could mention success/failure behavior or rate limits, though not critical.

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

Parameters3/5

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

Input schema has 100% description coverage with clear parameter descriptions. The tool description adds no new semantic information about parameters beyond what the schema already provides. Baseline rating applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action (add or remove) and resource (WhatsApp label from a chat), and mentions the prerequisite (requires WhatsApp Business) and context (via pinned instance). This clearly distinguishes it from sibling tools like find_labels.

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

Usage Guidelines4/5

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

The description includes a prerequisite (requires WhatsApp Business) and implies usage for label management. However, it lacks explicit guidance on when to use vs alternatives, though no direct sibling for label mutation exists.

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

leave_groupLeave GroupB

Leave a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID to leave (e.g. 120363000000000000@g.us)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description should disclose behavioral traits. Only mentions 'via pinned instance' but no side effects (e.g., irreversible, requires being participant). Lacks detail 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no unnecessary words. Every word earns its place.

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

Completeness3/5

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

For a simple 1-param tool with no output schema, description is adequate but missing behavioral context like irreversibility or participant requirements. Could be improved.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description doesn't add meaning beyond the schema (e.g., format or constraints).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (leave) and resource (WhatsApp group), and specifies it's via the pinned instance. It distinguishes from siblings like 'create_group' or 'update_group_subject'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'remove participant' for removing others). 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.

list_groupsList GroupsA

List WhatsApp groups for the pinned instance. Supports search and limit to prevent large payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoCase-insensitive substring match against group subject. Omit for no filter.
limitNoMax results to return (default 50, max 500).

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions listing groups and preventing large payloads, but lacks details on permissions, output format, or side effects. Basic behavior is clear but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the main purpose. No unnecessary words.

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

Completeness3/5

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

For a simple list operation, the description is adequate but omits what the response contains (e.g., list of group objects or just IDs). No output schema is provided, so the agent lacks important context about return values.

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

Parameters4/5

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

The input schema covers both parameters with good descriptions. The description adds value by explaining the purpose of limit (prevent large payloads) and specifying case-insensitive substring match for search, which is not in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists WhatsApp groups for the pinned instance, with search and limit options. This distinguishes it from sibling tools that create or modify groups.

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

Usage Guidelines4/5

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

The description implies use for listing with filtering and pagination, but does not explicitly state when to avoid or compare with alternatives like get_group_info.

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

logout_instanceLogout InstanceA

Logout the pinned WhatsApp instance (disconnects and clears session — requires QR scan to reconnect).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses that the session is disconnected and cleared requiring a QR scan to reconnect. However, it does not mention potential side effects like message loss or cooldown periods.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is clear and front-loaded with the action. Every word adds value; no fluff.

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

Completeness5/5

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

For a simple tool with no parameters and no output schema, the description sufficiently explains the action and consequence. It is complete for the tool's complexity.

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

Parameters4/5

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

There are zero parameters, and schema coverage is 100%. The description adds no parameter info, but with no parameters, baseline is 4. The description does not need to elaborate further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Logout' and the resource 'pinned WhatsApp instance'. It distinguishes itself from siblings like 'restart_instance' by specifying that it disconnects and clears the session, requiring a QR scan to reconnect.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., restart_instance). The description implies usage when a full disconnect and re-authentication is desired, but lacks direct comparisons or exclusions.

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

mark_as_readMark as ReadA

Mark one or more messages as read via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
readMessagesYesArray of message keys to mark as read

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. The description mentions 'via pinned WhatsApp instance' but fails to disclose authentication requirements, side effects (e.g., clearing badges), or error conditions. Minimal behavioral context beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, front-loaded with the action. Every word is necessary and no redundancy.

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

Completeness3/5

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

Tool is simple with one well-defined parameter, but the description does not explain the 'pinned' requirement or include guidance on prerequisites (e.g., instance must be connected). Without annotations or output schema, more context would be helpful.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for each field (remoteJid, fromMe, id). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('mark one or more messages as read') and the resource (WhatsApp messages via pinned instance). It distinguishes from siblings like 'delete_message' or 'archive_chat'.

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

Usage Guidelines3/5

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

Implied usage after reading messages, but no explicit guidance on when to use vs alternatives (e.g., send_presence). No mention of when not to use or prerequisites.

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

remove_profile_pictureRemove Profile PictureB

Remove the profile picture of the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool removes the profile picture, but it does not mention whether the action is reversible, what happens after removal (e.g., default avatar), or any required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no filler, front-loaded with the action and resource.

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

Completeness4/5

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

Given no parameters and no output schema, the description is mostly sufficient for a simple removal action. However, it could mention what happens if no profile picture is set or error conditions.

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

Parameters4/5

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

The input schema has zero parameters with 100% schema description coverage. The description does not need to add parameter information. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'remove' and the resource 'profile picture', distinguishing it from siblings like 'update_profile_picture' and 'fetch_profile_picture'. It adds specificity by mentioning 'pinned WhatsApp instance', which clarifies scope.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no prerequisites (e.g., must have a profile picture set), and no conditions for 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.

restart_instanceRestart InstanceA

Restart the pinned WhatsApp instance (reconnects without logging out).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

Discloses the key behavior (reconnects without logging out) but lacks details on prerequisites, side effects (e.g., chat state preservation), or error conditions. With no annotations, more behavioral context is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action, no redundant words. Every part contributes value.

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

Completeness3/5

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

Given no output schema or annotations, the description is minimal. It covers the core purpose but lacks completeness on implications (e.g., effect on ongoing operations, error handling).

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. Description adds no parameter info, which is acceptable. Baseline score for zero-parameter tool is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Restart'), the resource ('pinned WhatsApp instance'), and a key behavioral distinction ('reconnects without logging out'). Differentiates from sibling tools like logout_instance.

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

Usage Guidelines3/5

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

Implies usage for reconnecting without full logout, but no explicit guidance on when to use versus alternatives like connection_state or logout_instance.

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

revoke_invite_codeRevoke Invite CodeA

Revoke and regenerate the invite code for a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description bears full burden. It states revoke and regenerate but does not disclose side effects (e.g., invalidating existing invites), permissions required, or idempotency. Lacks important 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, front-loaded with the core action. Every word earns its place.

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

Completeness3/5

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

Adequate for a simple tool with one param and no output schema, but could explain the regeneration result (e.g., returns new code) and prerequisites (e.g., admin status). Leaves some questions unanswered.

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

Parameters3/5

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

Schema coverage is 100% with a clear description of the single parameter. The tool description adds no additional meaning or context beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'revoke and regenerate' with clear resource 'invite code for a WhatsApp group via the pinned instance'. It distinctly differentiates from siblings like 'fetch_invite_code' and 'send_group_invite'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or avoid this tool. No mention of alternatives among siblings like 'fetch_invite_code' for reading the current code. Usage is implied but not clarified.

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

send_audioSend AudioB

Send a WhatsApp audio (PTT voice note) via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
audioYesURL or base64-encoded audio (ogg/opus preferred for WhatsApp)
encodingNoSet true if audio is base64 encoded
delayNoDelay in milliseconds before sending

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It does not disclose behavioral traits such as synchronous/asynchronous execution, rate limits, authentication requirements, or what happens on failure. The description is too brief.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, direct and to the point. No unnecessary words or redundant information.

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

Completeness3/5

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

For a simple tool with 4 parameters and no output schema, the description is moderately complete. It lacks details on success/error returns, but the schema provides adequate parameter info. Could be improved by adding minimal behavioral context.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema; it only reiterates 'audio (PTT voice note)' without further detail on parameters like delay or encoding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (send), the specific resource (WhatsApp audio/PTT voice note), and the context (via pinned instance). It distinguishes from sibling tools like send_media by specifying 'audio (PTT voice note)'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., send_media for other media types). No prerequisites, exclusions, or context provided.

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

send_buttonSend ButtonB

Send a WhatsApp interactive button message via the pinned instance (max 3 buttons).

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
titleYesMessage title
descriptionYesMessage body
footerNoOptional footer text
buttonsYesArray of buttons (max 3)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only mentions the maximum button count but omits important behaviors such as rate limits, authentication requirements, error handling, or response format. This is insufficient for a send operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that includes the key functional detail (max 3 buttons) without any superfluous text. It is well-structured and front-loaded.

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

Completeness2/5

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

Given the tool's complexity (5 parameters including a nested array) and the absence of an output schema, the description is incomplete. It does not explain the button types, their required fields, or what the tool returns, leaving significant gaps for correct invocation.

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

Parameters3/5

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

The input schema already provides full descriptions for all parameters (100% coverage), so the description adds no extra semantic value. It does not explain parameter relationships or provide examples beyond what the schema contains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: sending a WhatsApp interactive button message via the pinned instance, with a maximum of 3 buttons. This differentiates it from sibling tools like send_text or send_list.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or limitations beyond the maximum button count. The context of sibling tools is not addressed.

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

send_contactSend ContactA

Share one or more contacts (vCards) via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
contactYesArray of contacts to share

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only describes the action without revealing prerequisites, error conditions, or side effects, such as whether the recipient must be a valid WhatsApp user or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 12 words with no unnecessary information, achieving maximum conciseness.

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

Completeness3/5

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

For a simple send action with two well-documented parameters, the description is adequate but misses important context such as limits on contact count, format of vCards, or required recipient validity.

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

Parameters3/5

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

Schema coverage is 100%, and the description does not add meaning beyond what is already in the schema. It mentions 'one or more contacts,' which echoes the minItems constraint, but provides no additional parameter insight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Share one or more contacts (vCards)') and the specific platform ('via the pinned WhatsApp instance'), distinguishing it from sibling tools like send_text or send_media.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (sharing contacts via WhatsApp), but lacks explicit guidance on when not to use it or alternative tools for similar purposes.

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

send_group_inviteSend Group InviteB

Send a WhatsApp group invite link to specific contacts via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID to invite people to
descriptionYesInvite message description
numbersYesPhone numbers or JIDs to send the invite to

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description only says 'send invite link' but does not disclose side effects (e.g., whether link is auto-generated), permission requirements, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action. Could be longer to add necessary detail, but no wasted words.

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

Completeness2/5

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

For a tool with 3 required parameters and no output schema, description lacks crucial context like return behavior, required permissions, and limitations.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description adds no additional meaning beyond schema, but does not conflict with it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'send', resource 'WhatsApp group invite link', and target 'specific contacts via pinned instance'. It distinguishes from sibling tools like accept_invite and fetch_invite_code.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no prerequisites mentioned (e.g., admin rights), no exclusions or preferred contexts.

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

send_listSend ListB

Send a WhatsApp list message (interactive menu) via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
titleYesMessage title
descriptionYesMessage body/description
buttonTextYesText on the list button (e.g. 'View Options')
footerTextNoOptional footer text
sectionsYesList sections, each with rows

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It only mentions 'via the pinned instance' but does not specify what happens if the instance is not pinned, required authentication, rate limits, or whether the operation is synchronous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is appropriately sized and front-loaded with the core purpose. No unnecessary words.

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

Completeness2/5

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

Given the complexity of the tool (6 parameters, no output schema, no annotations), the description lacks crucial context such as return values, error handling, or any behavioral details beyond the bare minimum.

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

Parameters3/5

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

The schema has 100% description coverage, so the baseline is 3. The description does not add value beyond the schema; it repeats the parameter names without explaining the structure of sections or providing examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'send', the resource 'WhatsApp list message (interactive menu)', and specifies 'via the pinned instance', which differentiates it from sibling tools like send_text or send_button.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as send_button or send_poll. No explicit context for when/not to use is given.

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

send_locationSend LocationA

Send a location pin message via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
latitudeYesLatitude in decimal degrees
longitudeYesLongitude in decimal degrees
nameNoLocation name/title
addressNoLocation address

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It briefly mentions the use of a pinned instance, but does not disclose behavior like side effects, error handling, or permission requirements. Acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that efficiently communicates the tool's purpose. No filler or redundancy.

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

Completeness3/5

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

For a tool of this complexity (5 params, no output schema), the description provides minimal context. It does not mention return values, failure modes, or integration details. Adequate but incomplete.

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

Parameters3/5

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

The input schema has 100% description coverage for all 5 parameters, so the schema already documents each parameter adequately. The description does not add extra meaning beyond the schema, warranting a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (send), resource (location pin message), and context (via pinned WhatsApp instance). It distinguishes effectively from siblings that send other message types like audio, media, text, etc.

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

Usage Guidelines3/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or typical use cases. For a simple tool, minimal guidance is acceptable but not exemplary.

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

send_mediaSend MediaB

Send a media message (image, video, audio, document) via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
mediatypeYesMedia type: image, video, audio, or document
mediaYesURL or base64 of the media
fileNameNoOptional filename (required for document type)
captionNoOptional caption for the media

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. However, it only states the action without revealing side effects, prerequisites, limitations (e.g., file size limits), or auth requirements, leaving significant gaps for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. Every element (verb, resource, types) is essential and immediately understandable.

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

Completeness2/5

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

Given the tool has 5 parameters (3 required) and no output schema or annotations, the description lacks details on return values, error handling, and usage context. It is insufficient for an agent to fully understand the tool's behavior and results.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters. The description adds no extra semantic meaning beyond what is already in the schema, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (send) and resource (media message), listing specific media types (image, video, audio, document). It effectively differentiates from sibling tools by specifying scope, making it easy for an agent to identify its purpose.

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

Usage Guidelines3/5

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

The description implies usage for sending media messages of listed types, but provides no explicit guidance on when to use this tool versus alternatives like send_text or send_sticker. No exclusions or context about when not to use it are given.

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

send_pollSend PollC

Send a WhatsApp poll message via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
nameYesPoll question/title
selectableCountYesNumber of options the recipient can select
valuesYesArray of poll options (minimum 2)

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries full burden. It fails to disclose whether the poll is sent immediately, if it requires a connected instance, or any side effects. The term 'pinned instance' is not explained, leaving behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and front-loaded with the action. It is concise but lacks depth, making it minimally useful. Could include more context without becoming verbose.

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

Completeness2/5

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

Given the absence of annotations, output schema, and the complexity of a poll message (with required parameters), the description is too sparse. It does not explain return behavior or prerequisites like instance status.

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

Parameters3/5

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

Input schema covers all 4 parameters with descriptions (100% coverage). The description adds no additional meaning beyond the schema. Baseline of 3 is appropriate as schema already provides semantic clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (send) and resource (WhatsApp poll message). However, it does not differentiate from sibling tools like send_button or send_list that also send interactive messages. The mention of 'pinned instance' is unique but unexplained.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other send tools. No alternatives or conditions for use are provided. The agent must infer usage context from the name alone.

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

send_presenceSend PresenceC

Send a presence update (typing, recording, etc.) to a chat via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
presenceYesPresence status to show: composing (typing), recording (audio), paused, available, unavailable
delayNoHow long to show the presence in milliseconds

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided; description only states the action and does not disclose behavioral traits like side effects, authentication needs, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action. Could be slightly more detailed, but overall concise.

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

Completeness3/5

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

Lacks context about 'pinned instance' and behavior. For a simple tool, description is adequate but leaves room for improvement.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions. Description adds minimal extra value beyond schema examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('send a presence update') and gives examples of presence types. However, 'via the pinned instance' is somewhat ambiguous without further context.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., other send_* tools). Usage is only implied by the tool's purpose.

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

send_reactionSend ReactionB

React to a WhatsApp message with an emoji via the pinned instance. Send empty string to remove reaction.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesMessage key identifying the message to react to
reactionYesEmoji reaction (e.g. '👍'). Send empty string to remove reaction.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It implies a mutation (sending a reaction) but lacks detail on idempotency, error handling, permissions, or what happens if the message doesn't exist. The removal behavior is stated but without further context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the main purpose and a key behavioral detail. No redundant information.

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

Completeness3/5

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

For a tool with a nested object and no output schema, the description covers the basic operation but lacks context on error scenarios, constraints (e.g., valid emojis), or expected outcomes. Adequate but not thorough.

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

Parameters3/5

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

Schema coverage is 100%, with detailed parameter descriptions already defining the message key and reaction. The description adds only the removal capability note, which is already in the schema. Minimal added value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action: react to a WhatsApp message with an emoji, and the ability to remove a reaction by sending an empty string. It distinguishes from sibling message tools like send_text or delete_message.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., when to react vs send a text). The mention of 'via the pinned instance' is vague and doesn't provide context for selection.

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

send_statusSend StatusB

Post a WhatsApp Status update (story) via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesStatus content type
contentYesText content or URL/base64 of the media
captionNoCaption for media statuses
backgroundColorNoBackground color hex for text statuses (e.g. #000000)
fontNoFont style 0-4 for text statuses
statusJidListNoSpecific JIDs to send status to (omit for all contacts)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only states 'Post' (a write operation) but does not detail effects (e.g., replaces previous status, visibility, expiration), authentication requirements, or rate limits. The description is too sparse given the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no extraneous words. It directly states the tool's purpose without redundancy.

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

Completeness2/5

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

Despite 6 parameters and no output schema, the description provides minimal context. It does not explain key aspects like visibility to contacts, that statuses are ephemeral, or how parameters like statusJidList affect delivery. The schema covers parameter structure but the description should add high-level context.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add any parameter-level context beyond what the schema already provides. It does not compensate for any gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Post') and the resource ('WhatsApp Status update (story)'), and specifies it is 'via the pinned instance', which distinguishes it from other send_ tools that send to chats.

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

Usage Guidelines3/5

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

The description implies the tool is for status updates, but does not explicitly guide when to use it versus other send_ tools (e.g., send_media, send_text) or provide exclusions. The purpose is clear but lacks explicit comparative guidance.

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

send_stickerSend StickerB

Send a sticker message via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
stickerYesURL or base64 of the sticker (webp format)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; the description does not disclose any behavioral traits such as error handling, required authentication, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded, but could include more context without becoming verbose.

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

Completeness2/5

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

Description is too minimal for a tool with no output schema and no annotations; it omits details like sticker format requirements or result feedback.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already details the parameters. The description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (send) and the object (sticker message), distinguishing it from sibling tools like send_media or send_image.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., send_media for other formats), or prerequisites like instance connection.

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

send_textSend TextA

Send a text message via the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
textYesMessage text to send

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full behavioral burden. It states the action ('send') and the target instance ('pinned'), but does not disclose side effects (e.g., instance state changes), failure conditions, or rate limits. For a simple send, this is minimally adequate but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core action and resource. No extraneous information; every word adds value.

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

Completeness4/5

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

Given the tool's simplicity and the full schema coverage, the description provides enough information for correct invocation. However, the absence of any mention of return values or success/failure indicators slightly lowers completeness, though this is mitigated by the lack of an output schema.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear descriptions for both parameters ('number' and 'text'). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states 'Send a text message', which is a specific verb and resource that differentiates it from sibling tools like send_audio or send_media. The reference to 'pinned WhatsApp instance' adds context about the execution environment.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like send_button or send_list. However, the tool name and description clearly indicate its purpose for text messages, providing implicit guidance.

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

set_settingsSet SettingsB

Update settings for the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
rejectCallNoAutomatically reject incoming calls
msgCallNoAuto-reply message when rejecting calls
groupsIgnoreNoIgnore messages from groups
alwaysOnlineNoAlways appear online
readMessagesNoAutomatically mark messages as read
syncFullHistoryNoSync full message history on connect
readStatusNoAutomatically read status updates

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Update settings' implying mutation, but lacks details on side effects, authorization needs, or whether changes are immediate. Many behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, making it concise and front-loaded. However, it could be slightly expanded to add context without losing conciseness.

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

Completeness2/5

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

Given the tool has 7 parameters and modifies settings, the description is too brief. It does not explain the scope of changes, persistence, or expected behavior, making it incomplete for effective use.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for all 7 parameters. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates settings for the pinned WhatsApp instance, using a specific verb and resource. It is distinguishable from the sibling get_settings tool, which reads settings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For instance, there is no mention of using get_settings for reading or any context on prerequisites or when not to use.

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

set_webhookSet WebhookC

Configure the webhook for the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesEnable or disable the webhook
urlYesWebhook URL to receive events
byEventsNoSend separate requests per event type
base64NoSend media as base64 in webhook payload
eventsYesEvents to subscribe to. Examples: MESSAGES_UPSERT, MESSAGES_UPDATE, SEND_MESSAGE, CONNECTION_UPDATE, QRCODE_UPDATED, etc.
headersNoCustom HTTP headers to include in webhook requests

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states 'Configure the webhook' without explaining whether this creates, updates, or replaces an existing webhook, what permissions are needed, or what side effects occur (e.g., overriding previous settings).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that delivers the core purpose with no waste. However, it may be too brief for a complex tool, but it does not contain unnecessary information.

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

Completeness2/5

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

Given the tool has 6 parameters including nested objects and no output schema, the description is too minimal. It does not explain the effect of changes, whether the webhook is immediately active, or what the response looks like. More context is needed for safe invocation.

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

Parameters3/5

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

The input schema covers 100% of parameters with descriptions, so the description does not need to add detail. The baseline of 3 is appropriate as the schema alone sufficiently documents parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Configure' and specifies the resource 'webhook for the pinned WhatsApp instance', which clearly indicates the tool's purpose. It distinguishes itself from sibling 'find_webhook' by implying modification rather than retrieval, though it could be more explicit.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'find_webhook'. It does not mention prerequisites, usage context, or situations where this tool should be avoided.

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

update_block_statusUpdate Block StatusB

Block or unblock a WhatsApp contact via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesRecipient JID or phone number (e.g. 5511999999999 or group@g.us)
statusYesblock: block the contact; unblock: unblock the contact

TDQS

B3/5.0
Behavior2/5

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

The description is too brief and fails to disclose behavioral traits beyond the basic action. With no annotations, it should mention what blocking entails (e.g., prevents messages), reversibility, or any 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise (one sentence) and front-loaded with the action. However, it is too minimal; more detail could be added without losing conciseness.

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

Completeness2/5

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

Lacks context for a simple tool. No output schema, no description of return value or error handling. Additional details like 'returns success/failure' or 'affects sending messages' would improve completeness.

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

Parameters3/5

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

Schema coverage is 100%, and schema descriptions already clarify the parameters (number format, status enum meanings). The tool description adds no extra semantics, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Block or unblock a WhatsApp contact via the pinned instance', which is a specific action on a specific resource. It distinguishes from sibling tools by focusing on blocking/unblocking, a unique operation among many messaging and management tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., check_number, update_participants). No mention of prerequisites like needing the instance to be connected or contact existing.

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

update_group_descriptionUpdate Group DescriptionB

Update the description of a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)
descriptionYesNew group description (empty string to clear)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'via the pinned instance' but does not explain what that means, nor does it disclose side effects, permissions, rate limits, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that contains no redundancy. Every word is necessary and the structure is optimal for quick comprehension.

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

Completeness3/5

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

The tool is simple with two parameters, but the description lacks information about return values (no output schema) and does not differentiate from similar sibling tools like update_group_subject. It is minimally acceptable but not fully informative.

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

Parameters3/5

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

Input schema has 100% coverage and already describes both parameters (groupJid and description) clearly. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the resource ('description of a WhatsApp group'), and it distinguishes itself from sibling tools like update_group_picture, update_group_subject, and update_group_setting.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites (e.g., pinned instance), and no exclusions. The description only states what it does without context.

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

update_group_pictureUpdate Group PictureB

Update the profile picture of a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)
imageYesBase64 encoded image or URL for the group picture

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It mentions 'via the pinned instance' but doesn't explain what that means regarding authentication or access. No disclosure of side effects, limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence with no extraneous words. Efficient but could include more useful details without becoming verbose.

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

Completeness3/5

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

For a straightforward update tool with two required parameters and no output schema, the description is minimally adequate but lacks behavioral context (e.g., return value, error scenarios).

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. Description adds 'Base64 encoded image or URL' which matches schema, but no extra context like size limits or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Update') and the resource ('profile picture of a WhatsApp group'), and is distinct from sibling tools like 'remove_profile_picture' and 'update_profile_picture'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'update_profile_picture' for user profile, or 'remove_profile_picture' to delete). No prerequisites mentioned.

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

update_group_settingUpdate Group SettingB

Update group settings (announcement mode, locked) via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)
actionYesannouncement: only admins can send; not_announcement: all can send; locked/unlocked: group info edit

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided; description only says 'update' without disclosing permissions, side effects, or error conditions. The phrase 'via the pinned instance' is unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise and front-loaded with the core action. No wasted words, but could benefit from additional brief context.

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

Completeness3/5

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

Basic description works for a simple tool but doesn't mention result or success condition. Output schema absent, so more detail expected.

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

Parameters3/5

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

Schema covers both parameters fully (100% coverage). Description adds only minimal context beyond schema, consistent with baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Update group settings' with specific examples: announcement mode and locked. Distinct from sibling tools that update other aspects like description or subject.

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

Usage Guidelines3/5

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

Implies usage for these two settings but lacks explicit when-to-use or when-not-to-use guidance. No mention of prerequisites like admin permissions.

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

update_group_subjectUpdate Group SubjectA

Update the name/subject of a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)
subjectYesNew group subject/name

TDQS

A3.6/5.0
Behavior3/5

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

The description indicates a mutation (update), which is consistent with the action. However, without annotations, it does not disclose potential side effects, requirement for admin rights, or whether the change is immediate/retroactive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence of 12 words, no fluff. Every word earns its place.

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

Completeness4/5

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

For a simple update operation with two well-documented parameters and no output schema, the description is sufficiently complete. It could mention the expected outcome (e.g., group subject changes immediately), but the current level is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and the resource (name/subject of a WhatsApp group). It distinguishes from sibling tools like create_group and update_group_description by focusing specifically on the subject.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as update_group_description or create_group. No mention of prerequisites like admin permissions or group membership.

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

update_participantsUpdate ParticipantsB

Add, remove, promote, or demote participants in a WhatsApp group via the pinned instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
groupJidYesGroup JID (e.g. 120363000000000000@g.us)
actionYesAction: add/remove members, promote to admin, demote from admin
participantsYesPhone numbers or JIDs of participants

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description must convey behavioral traits. It states mutating actions but omits side effects, authorization needs (likely admin), or implications of 'pinned instance'. No explanation of rate limits or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence covering the core functionality with no redundant words. Front-loaded with verb and resource, though the 'pinned instance' qualifier is slightly vague.

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

Completeness2/5

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

Given no output schema and no annotations, the description is too brief. Missing return format, error scenarios, and clarification of 'pinned instance'. Leaves ambiguity for a mutation tool with three required parameters.

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

Parameters3/5

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

Input schema provides 100% coverage with clear descriptions per parameter. The tool description adds no extra semantic value beyond listing actions, achieving the baseline for well-documented schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly lists the four actions (add, remove, promote, demote) and the resource (WhatsApp group via pinned instance), clearly distinguishing it from sibling tools like create_group, get_group_info, or update_group_setting.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like create_group for new groups or fetch_group_resolved_participants for listing. Missing context about prerequisites (e.g., admin status) or scenario boundaries.

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

update_privacyUpdate Privacy SettingsB

Update privacy settings for the pinned WhatsApp instance. Values: all, contacts, contact_blacklist, none.

ParametersJSON Schema
NameRequiredDescriptionDefault
readreceiptsNoWho can see read receipts
profileNoWho can see the profile picture
statusNoWho can see status updates
onlineNoWho can see online status
lastNoWho can see last seen
groupaddNoWho can add to groups
calladdNoWho can call

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It states 'update' implying mutation but does not disclose side effects, immediacy of changes, or any destructive potential. Important behavioral traits are missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence and a list. Every word serves a purpose, and the structure is front-loaded with the action and target. No wasted content.

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

Completeness2/5

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

For a mutation tool with no output schema and no annotations, the description is too brief. It does not explain return values, error conditions, or behavior when parameters are omitted. The schema covers parameters, but the behavioral and contextual gaps remain.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds the list of enum values but does not explain which parameter they apply to. The schema already provides per-parameter descriptions and enum values, so the description adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Update' and the target 'privacy settings for the pinned WhatsApp instance', with a specific list of allowed values. It distinguishes the tool from siblings like 'fetch_privacy' which retrieves settings.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives (e.g., 'set_settings' for other settings, 'fetch_privacy' for reading). There is no mention of prerequisites, conditions, 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.

update_profile_nameUpdate Profile NameA

Update the display name of the pinned WhatsApp instance's profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew display name for the WhatsApp profile

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full burden. It mentions 'pinned WhatsApp instance' but does not disclose behavioral traits such as whether the change is immediate, requires specific permissions, or has side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence that is front-loaded and contains no redundant words. Every part of the sentence adds value.

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

Completeness3/5

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

The description covers the core intent but lacks context on when to use the tool, any prerequisites, or what the result looks like. With no annotations or output schema, it is minimally adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% and the only parameter 'name' is described in the schema. The description adds no extra meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Update' and clearly identifies the resource as 'the display name of the pinned WhatsApp instance's profile'. This distinguishes the tool from siblings like update_profile_picture or update_profile_status.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives (e.g., update_profile_status). Usage is implied by the name but no guidance on exclusions or context is provided.

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

update_profile_pictureUpdate Profile PictureB

Update the profile picture of the pinned WhatsApp instance.

ParametersJSON Schema
NameRequiredDescriptionDefault
pictureYesBase64 encoded image or URL for the profile picture

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only says 'Update' without explaining effects, requirements, or limitations (e.g., image format validation, network state). 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, directly states purpose. Every word earns its place.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is minimally complete but lacks behavioral details and context about the 'pinned' instance, which is critical for correct usage.

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

Parameters3/5

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

Schema coverage is 100% and the description adds no extra meaning beyond the schema's parameter description. Baseline 3 applies as the schema already documents the parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update) and resource (profile picture) with a specific target (pinned WhatsApp instance), distinguishing it from sibling tools like remove_profile_picture and fetch_profile_picture.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no prerequisites, and no context about the 'pinned' instance requirement. The description is silent on decision-making.

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

update_profile_statusUpdate Profile StatusB

Update the 'about' status text of the pinned WhatsApp instance's profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusYesNew status text (about) for the WhatsApp profile

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose behavioral traits such as idempotency, side effects (e.g., overwritten status), authentication requirements, or rate limits. For a mutation tool, this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with precise language. No redundant words. Highly concise and front-loaded.

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

Completeness3/5

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

Given the simple nature (one parameter, no output schema), the description is adequate but could mention instance connection requirement or format constraints. Lacks behavioral details due to missing annotations.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the 'status' parameter. The tool description adds context ('pinned instance', 'about') but does not add significant meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'update' and the specific resource: 'the 'about' status text of the pinned WhatsApp instance's profile.' It distinguishes from sibling tools like update_profile_name and update_profile_picture by specifying the exact field being updated.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., update_profile_name for name changes). No context on prerequisites or conditions.

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

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose. Even similar actions (e.g., send_media vs send_audio) are precisely differentiated by description. No two tools overlap in function.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., send_text, update_group_subject, fetch_privacy). No mixing of camelCase or other conventions, making the set predictable.

Tool Count2/5

54 tools is well above the 25+ threshold, making the server feel heavy and potentially overwhelming for agents. While the domain is broad, the count could be reduced by combining or omitting rarely used tools.

Completeness4/5

The tool set comprehensively covers WhatsApp messaging, groups, instance management, and profile operations. Minor gaps exist (e.g., no forward message or fetch status updates) but do not critically impair core workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for sending and receiving WhatsApp messages through Evolution API, enabling management of instances, messages, and chats directly from Claude Code.
  • F
    license
    A
    quality
    D
    maintenance
    MCP server that wraps the Evolution API (WhatsApp) as semantic tools for LLM agents, enabling messaging, chat management, group operations, and instance control via natural language.
    32
  • A
    license
    C
    quality
    C
    maintenance
    Exposes the full WhatsApp API via Evolution API, enabling message sending, chat history, group management, and more through MCP tools.
    70
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/billyfranklim1/mcp-evolution'

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