Skip to main content
Glama

Server Details

Wassenger MCP server to manage and automate WhatsApp chats

Ownership verified

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
0.0% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3/5.0

Scored across 54 tools

Disambiguation2/5

The set contains heavy redundancy: get_whatsapp_chats already exposes actions for archived, assigned, by_id, unread, by_status, by_date_range, and search, yet separate tools duplicate each of these. Likewise get_whatsapp_chat_statistics and export_whatsapp_chats are explicitly aliases of analyze_whatsapp_chats, and file tools split inbound/outbound/download in overlapping ways. This makes misselection likely despite detailed individual descriptions.

Naming Consistency3/5

Most tools use readable snake_case verb_noun naming, but the set mixes conventions with camelCase tools like validatePhoneNumbers and verifyWhatsAppNumberExists. It also uses near-synonymous verbs (get, list, search, analyze, export) for overlapping retrieval operations, so the pattern is only somewhat predictable.

Tool Count2/5

54 tools are far too many for a coherent surface, especially because many are thin aliases or convenience wrappers over a smaller set of unified action-based tools. The domain is broad, but the count is inflated by duplication rather than clean capability separation.

Completeness4/5

The surface covers most WhatsApp administration domains: chats, messages, contacts, groups, channels, templates, campaigns, files, CRM deals/pipelines, team, queues, statuses, flows, devices, and health. Some lifecycle gaps remain, such as template updates, message deletion, and channel message management beyond retrieval, but the core workflows are well supported.

Available Tools

54 tools
analyze_whatsapp_chat_messagesAInspect

WhatsApp chat message analysis tool. Supports delivery-status lookups and chat export. The 'device' parameter accepts a device ID (24-hex), phone number (E.164), or alias — auto-selected if the account has a single device; otherwise the tool errors with the list of available devices so you can ask the user.

Available actions:

  • delivery_status: Check delivery and read receipts for specific outbound messages (≤30 days old)

  • export: Export chat messages in JSON, CSV, or TXT format

NameRequiredDescriptionDefault
chatNoWhatsApp chat ID (required for export)
actionYesAction to perform for WhatsApp message analysis operations
deviceNoTarget WhatsApp device — accepts device ID (24-hex), phone number in E.164 format, or device alias. Optional: if the account has a single device, it is auto-selected; otherwise specify which one.
formatNoExport formatjson
toDateNoExport period end date
fromDateNoExport period start date
messageIdsNoMessage IDs to check status for (required for delivery_status, max 20)
maxMessagesNoMaximum messages to export (paginated under the hood)
includeMediaNoInclude media file information in export
includeMetadataNoInclude full message metadata in export

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations to lean on, the description still discloses real behavioral traits: the 30-day lookback window for delivery_status, the 20-ID batch cap, auto-selection/error semantics for device, and that maxMessages is paginated under the hood. It omits auth requirements and whether 'export' produces inline content vs. a downloadable file artifact.

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

Conciseness4/5

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

Front-loaded summary sentence followed by a scannable action list and a dedicated paragraph for the tricky device parameter. Minor redundancy: the device paragraph largely repeats the schema's description of accepted ID formats, though it adds the error-handling behavior.

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?

Ten parameters with no output schema and no annotations mean the description must carry a lot, and it covers actions, key constraints, and the device parameter well. It never explains what an 'export' returns (inline payload, file reference, or link) or which parameters apply to which action, which matters given the shared schema.

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 earns above that by encoding conditional requirements the schema cannot express (chat required for export, messageIds required for delivery_status) and by restating the device identifier formats alongside their fallback behavior.

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

Purpose4/5

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

States a specific resource (WhatsApp chat messages) and enumerates the two actions it performs (delivery_status, export), so the agent knows exactly what capability is offered. It does not, however, differentiate itself from close siblings such as export_whatsapp_chats or get_whatsapp_chat_messages, leaving overlap ambiguous.

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?

Gives action-level guidance (delivery_status for outbound receipts, export for dumping messages) and states the device auto-selection rule with the exact failure behavior ('errors with the list of available devices so you can ask the user'). It stops short of saying when to pick this tool over the sibling export/list tools.

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

analyze_whatsapp_chatsAInspect

Reports and exports of the chats of a WhatsApp number.

Available actions:

  • statistics: the team's figures for a period (7 days by default, up to 92): new, resolved and reopened chats, messages received and sent, internal notes, average time to the first reply, to each reply, to resolve and to handle a chat, what was in the inbox at the end of the period, the most used labels and a day-by-day breakdown. Add compareFromDate and compareToDate to compare with an earlier period and get the change in percent. Days are cut at midnight in the account timezone, so for whole days pass local midnights with their offset. Times are in seconds. There is no breakdown per agent or per hour.

  • export: Export chats in JSON, CSV or TXT, filtered by status and date, paging through as many chats as requested

Use this tool for: weekly reports, response time reviews, backups, and feeding chat lists into another system.

NameRequiredDescriptionDefault
limitNoMaximum number of WhatsApp chats to export (max 1000, fetched in pages of 500)
actionYesChat analysis action to perform
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fieldsNoExplicit dot-path allowlist for the json format. Overrides verbosity when set.
formatNoExport formatjson
statusNoExport only: filter by chat status
toDateNoEnd of the period. Statistics: defaults to now. Export: only chats whose last message is before this date
fromDateNoStart of the period, e.g. 2026-09-11T00:00:00+02:00. Statistics: defaults to 7 days before toDate. Export: only chats whose last message is after this date
verbosityNoResponse detail level for the json formatsummary
compareToDateNoStatistics only: end of the earlier period to compare with
compareFromDateNoStatistics only: start of an earlier period to compare with. Requires compareToDate

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does so well: it discloses defaults (7 days, up to 92), timezone cutover at local midnight, units in seconds, available comparison behavior, and the absence of per-agent/per-hour breakdowns. It omits permission/auth requirements and rate-limit behavior, which keeps it from a 5.

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 front-loaded with a clear purpose statement and then organized into action-specific bullet points, which makes it easy to scan. It is somewhat long, but nearly every sentence adds operational detail; minor trimming could improve it.

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 an 11-parameter tool with no output schema and no annotations, the description is substantial: it outlines what statistics returns and what export supports. It does not cover device/auth context or response shape for export, but the schema handles most remaining parameter-level detail.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3; the description adds meaningful semantics on top, including date defaults, the 92-day statistics cap, midnight timezone handling, seconds as units, and how compareFromDate/compareToDate work. It leaves device and status semantics primarily to the schema, so it is not a full 5.

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 that the tool reports and exports WhatsApp chat data, and it enumerates the two supported actions (statistics and export) with concrete details. It does not, however, distinguish itself from sibling tools such as get_whatsapp_chat_statistics or export_whatsapp_chats, which appear to overlap directly.

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?

It gives explicit use cases ('weekly reports, response time reviews, backups, and feeding chat lists into another system'), which helps an agent decide when to reach for it. It stops short of naming when not to use it or pointing to the sibling alternatives that likely handle statistics or export separately.

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

create_whatsapp_templateAInspect

Create a WhatsApp message template and submit it to WhatsApp for review (WhatsApp Business API numbers only). It works in steps. Call it with whatever the user has given so far: if anything is missing or breaks a WhatsApp rule, it returns needsInput with the exact questions to ask, and nothing is created. When everything is valid it returns a preview and a confirmToken, still without creating anything. Show the preview; only after the user approves, call it again with the same fields plus the confirmToken. Supports text, image, video, document and location headers, body variables ({{1}} or {{first_name}}) with sample values, a footer, quick reply, URL, phone number and copy code buttons, and authentication (one-time code) templates.

NameRequiredDescriptionDefault
bodyNoMessage body, up to 1024 characters. Mark per-message values with {{1}}, {{2}} or named variables like {{first_name}}; never at the very start or end, and never next to each other. Not used for AUTHENTICATION templates.
nameNoTemplate name: lowercase letters, numbers and underscores, e.g. order_ready
deviceNoWhatsApp Business API device ID (24 hex characters) that will own the template. Use get_whatsapp_devices to find it.
footerNoOptional footer, up to 60 characters, without variables
headerNoOptional header shown above the body
buttonsNoOptional buttons: up to 10 in total, at most 2 URL, 1 PHONE_NUMBER and 1 COPY_CODE, with quick replies grouped together
categoryNoMARKETING (promotions and offers), UTILITY (order, account or appointment updates) or AUTHENTICATION (one-time codes)
languageNoWhatsApp language code of the template text, e.g. en_US, es, pt_BR
bodyExamplesNoOne realistic sample value per body variable, keyed by the variable: {"1": "Maria"} or {"first_name": "Maria"}. Ask the user for them; never invent them.
confirmTokenNoToken returned with the preview. Pass it only after the user approved that exact preview.
authenticationNoOptions for AUTHENTICATION templates only

TDQS

A4.7/5.0
Behavior4/5

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

Annotations declare a non-read-only, non-destructive, non-idempotent, open-world tool; the description adds the crucial behavioral detail that no side effect occurs until the confirm-token call, and that submission goes to WhatsApp review. It does not cover failure-after-approval or duplicate-name behavior, keeping it short of a 5.

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?

Front-loaded with purpose in the first clause, then the multi-step protocol, then a capability list. Despite its length, every sentence carries operational information; nothing is redundant filler.

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

Completeness5/5

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

With 11 parameters, nested objects and no output schema, the description compensates by describing both return states (needsInput with questions, preview with confirmToken) and the full set of supported template features. An agent can drive the interaction without seeing a response schema.

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 the baseline is 3, but the description adds cross-parameter flow semantics the schema cannot: confirmToken is valid only for the exact previewed payload, and bodyExamples must be asked of the user rather than invented. Variable syntax and template-type capability are also surfaced.

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

Purpose5/5

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

States a specific verb and resource ('Create a WhatsApp message template') plus the scope constraint ('submit it to WhatsApp for review, WhatsApp Business API numbers only'). This clearly distinguishes it from list_whatsapp_templates and delete_whatsapp_template.

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

Usage Guidelines5/5

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

Gives an explicit staged procedure: call with whatever the user has provided, expect needsInput when incomplete, show the preview, then re-call with the confirmToken only after user approval. It also names the when-not condition ('nothing is created') at each stage.

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

delete_whatsapp_fileAInspect

Delete an uploaded WhatsApp file permanently. This action cannot be undone and will remove the file from storage. The file will no longer be available for sending in messages.

NameRequiredDescriptionDefault
fileIdYesFile ID (24 character hexadecimal string)

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and does disclose key traits: permanent deletion, irreversible action, removal from storage, and unavailability for sending in messages. It does not mention permission requirements or error behavior for missing files, but the core destructive impact is clearly communicated.

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 front-loaded with the core action and consequences. It is generally concise, though the permanence and removal implications are stated in multiple overlapping ways across three sentences.

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, one fully specified parameter, and no output schema, the description provides enough context to understand the destructive behavior. It could be improved with guidance on alternatives or failure conditions, but it is largely complete for this 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?

The single parameter, fileId, is fully documented in the input schema with a 24-character hexadecimal pattern. The description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 applies for high schema coverage.

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 a specific verb and resource: deleting an uploaded WhatsApp file permanently. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools such as delete_whatsapp_template or update_whatsapp_file_metadata.

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 implied usage context by emphasizing permanent deletion and removal from storage. However, it does not state when to use this tool versus alternatives like update_whatsapp_file_metadata or delete_whatsapp_template, nor does it describe prerequisites or exclusions.

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

delete_whatsapp_templateA
Destructive
Inspect

Delete one WhatsApp message template, in one language, from a WhatsApp Business API number. It works in two steps: called without a confirmToken it only reports which template would be deleted and returns a token, writing nothing; the deletion happens on a second call carrying that token, after the user approved it. It never deletes more than the template it reported, and it asks which language when the name exists in several.

NameRequiredDescriptionDefault
nameNoName of the template to delete
deviceNoWhatsApp Business API device ID (24 hex characters) that owns the template
languageNoLanguage code of the template to delete, e.g. es or en_US. Required when the name exists in several languages.
confirmTokenNoToken returned with the confirmation. Pass it only after the user approved deleting that exact template.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is known, yet the description adds the crucial detail that the first invocation writes nothing and returns a token requiring user approval. It also bounds the blast radius ('never deletes more than the template it reported') and discloses the disambiguation behavior for multi-language names — real behavioral value beyond the annotations.

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

Conciseness4/5

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

Three sentences, front-loaded with the scope and then the safety protocol; minimal waste. Slight overlap between 'it works in two steps' and the following sentence explaining the same flow prevents a 5.

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 destructive, no-output-schema tool, the description covers scope, the confirmation protocol, and the response of the preview call (which template would be deleted plus a token). It leaves out permission/error conditions (e.g., what happens with an invalid or expired token), which a fully complete definition would mention.

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 the schema already documents all four parameters; the baseline is 3. The description nonetheless adds meaning the schema only implies: confirmToken's role as the second-step gate and the rule that language becomes necessary when the name exists in several languages. This earns a bump 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?

States a specific verb (delete) and a precisely scoped resource: one WhatsApp template, in one language, on one WhatsApp Business API number. This distinguishes it clearly from list_whatsapp_templates, create_whatsapp_template, and delete_whatsapp_file without needing the schema.

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 two-step protocol gives strong operational guidance: first call without confirmToken merely previews, second call with the token performs the deletion. It also states the condition that triggers language resolution. It stops short of naming alternatives (e.g., use list_whatsapp_templates to find the exact name/language first), which would have made it a 5.

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

download_whatsapp_chat_fileBInspect

Download the content of a received file from a WhatsApp chat. Returns the file content in the specified format: URL only (default) or base64 encoded content.

NameRequiredDescriptionDefault
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fileIdYesFile ID (24 character hexadecimal string)
outputFormatNoDownload format: url (download URL only) or base64 (encoded file content)url

TDQS

B3.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 carries the behavioral burden. It usefully discloses the two return shapes (URL vs base64) and the default, but says nothing about permissions, whether the URL expires, file size limits, or failure modes for an expired/inaccessible file.

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

Conciseness4/5

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

Two tight sentences with the action front-loaded and the return-format detail after it. Nothing is wasted, though the return-format sentence is close to duplicating schema enum documentation.

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

Completeness3/5

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

With no output schema, the description does explain the return shape, which is valuable. However, for a download tool with no annotations, it omits operational context an agent would want (URL lifetime, size limits, what happens when the file was not received or has expired).

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 device, fileId, and outputFormat are already documented, including the enum values. The description restates the outputFormat options but adds no format strings, constraints, or defaults beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource (download the content of a received file) and scopes it to a WhatsApp chat, which narrows it versus the generic download_whatsapp_file sibling. It does not explicitly name or contrast that sibling, so the differentiation is inferred rather than stated.

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 when-to-use, when-not-to-use, or alternative is given. An agent seeing both download_whatsapp_chat_file and download_whatsapp_file has to guess which applies; the only guidance is the implied 'received file from a chat' phrasing.

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

download_whatsapp_fileBInspect

Download the content of an uploaded WhatsApp file. Returns the file content in the specified format: URL only (default) or base64 encoded content.

NameRequiredDescriptionDefault
fileIdYesFile ID (24 character hexadecimal string)
outputFormatNoDownload format: url (download URL only) or base64 (encoded file content)url

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; it does disclose the two return modes and which is the default, which is genuinely useful. It omits whether the operation requires auth/scopes, whether the URL expires, any size limits on base64 responses, and gives no read-only reassurance.

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

Conciseness4/5

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

Two short sentences, front-loaded with the action and followed by the return behavior. The second sentence largely echoes the schema's outputFormat description, which is minor waste but not harmful.

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?

There is no output schema and no annotations, so the description is the only place a caller learns the response shape; it names the two forms but doesn't describe the returned object structure (field names, whether base64 includes mime type). Adequate but with a real gap for a no-annotation, no-output-schema 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 coverage is 100%, so both fileId and outputFormat are already fully documented in the schema, including the enum and default. The description restates the format choice without adding syntax, constraints, or size considerations beyond it — baseline 3.

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

Purpose4/5

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

States a specific verb and resource — download the content of an uploaded WhatsApp file — which is clear on its own. It doesn't distinguish itself from the nearby sibling download_whatsapp_chat_file, which an agent could easily confuse with it.

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?

"Uploaded WhatsApp file" implicitly scopes usage to files previously uploaded (e.g. via upload_whatsapp_file_from_url), but there is no explicit when-to-use guidance and no mention of when to prefer get_whatsapp_file_details or download_whatsapp_chat_file instead.

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

export_whatsapp_chatsBInspect

Export WhatsApp chats list in various formats for backup, analysis, or reporting purposes.

Same as analyze_whatsapp_chats with action "export".

NameRequiredDescriptionDefault
limitNoMaximum number of WhatsApp chats to export (max 1000, fetched in pages of 500)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fieldsNoExplicit dot-path allowlist for the json format. Overrides verbosity when set.
formatNoExport formatjson
statusNoExport only: filter by chat status
toDateNoEnd of the period. Statistics: defaults to now. Export: only chats whose last message is before this date
fromDateNoStart of the period, e.g. 2026-09-11T00:00:00+02:00. Statistics: defaults to 7 days before toDate. Export: only chats whose last message is after this date
verbosityNoResponse detail level for the json formatsummary
compareToDateNoStatistics only: end of the earlier period to compare with
compareFromDateNoStatistics only: start of an earlier period to compare with. Requires compareToDate

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 carries the full burden of behavioral disclosure. It does not explain whether exporting is read-only, whether files are created, what permissions are needed, how pagination works, or what the response looks like beyond the selected format.

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

Conciseness4/5

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

The description is brief and front-loaded with the core export purpose. The second sentence usefully points to the related analyze action, though it adds slight ambiguity by referencing an action parameter not present in this tool's schema.

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 rich schema covers all ten parameters, so invocation details are mostly available elsewhere. Still, for a complex export tool with no annotations and no output schema, the description should do more to explain the returned data or file behavior and any operational constraints.

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 parameter semantics are already well documented in the input schema. The description adds only a general mention of export formats and does not provide additional meaning for parameters such as limit, status, dates, fields, or verbosity.

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 a specific verb and resource: exporting a WhatsApp chats list in multiple formats. It also relates itself to analyze_whatsapp_chats with the export action, but it does not distinguish itself from many other chat-listing siblings such as get_whatsapp_chats or search_whatsapp_chats_by_name.

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?

It gives broad use cases such as backup, analysis, and reporting, which implies when the tool is useful. However, it does not explicitly say when to choose this tool over analyze_whatsapp_chats or the several get/search chat tools, nor does it state exclusions or prerequisites.

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

get_whatsapp_archived_chatsBInspect

Retrieve archived WhatsApp chats. Useful for accessing historical conversations and managing chat organization.

Same as get_whatsapp_chats with action "archived".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
toDateNoEnd date (for by_date_range and archived actions)
fromDateNoStart date (for by_date_range and archived actions)

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 carries the full behavioral burden. It does not say the operation is read-only, how pagination/sorting behave, that results are scoped to a single device, or that fromDate/toDate only apply in this mode — the only signal is the terse equivalence note.

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

Conciseness4/5

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

Two short sentences with the core statement front-loaded and the sibling equivalence second. The middle clause about 'managing chat organization' is mild filler but the whole entry stays efficient.

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

Completeness3/5

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

With six parameters, no output schema, and no annotations, the description is minimally sufficient — the schema covers the inputs and the purpose is clear. It nonetheless omits pagination behavior, device scoping, and date-filter applicability, which an agent would want 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?

Schema description coverage is 100%, so all six parameters including page, limit, sort, and the date range are documented in the schema itself. The description adds nothing about parameter meaning beyond referencing the 'archived' action, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Retrieve archived WhatsApp chats') and implicitly differentiates from the general get_whatsapp_chats sibling by scope. It goes further by declaring equivalence to get_whatsapp_chats with action 'archived', which lets an agent place it precisely in the family.

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?

Says it is useful for accessing historical conversations, which implies usage, and the equivalence note hints at an alternative route via get_whatsapp_chats. But there is no explicit when-to-use-this-vs-get_whatsapp_chats, and no exclusions (e.g. that non-archived chats will not be returned).

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

get_whatsapp_assigned_chatsAInspect

Retrieve WhatsApp chats assigned to specific agents or departments. Essential for agent workload management and performance tracking.

Same as get_whatsapp_chats with action "assigned".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
agentIdNoFilter by assigned agent ID (for assigned action)
departmentIdNoFilter by assigned department ID (for assigned action)

TDQS

A3.6/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 behavioral burden. 'Retrieve' implies a read operation, but it does not explicitly guarantee read-only behavior, mention auth/permissions, describe pagination behavior, or explain return shape.

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?

It is short and front-loads the core purpose, followed by use context and sibling equivalence. The 'Essential for...' sentence is mildly promotional but still provides usage context, so it is close to optimally 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?

For a six-parameter read/list tool with no output schema and no annotations, the description covers selection and basic scope. It relies heavily on the rich input schema and does not compensate for the missing behavioral and return-value guidance.

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 device, page, sort, limit, agentId, and departmentId are already well documented in the schema. The description only echoes the agent/department filtering concept and adds no syntax, constraints, or defaults 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 uses a specific verb, resource, and scope: 'Retrieve WhatsApp chats assigned to specific agents or departments.' It also explicitly maps the tool to get_whatsapp_chats with action 'assigned', which helps distinguish it from sibling chat-list tools.

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

Usage Guidelines4/5

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

It gives a clear use case, 'agent workload management and performance tracking,' and identifies its relationship to get_whatsapp_chats. However, it does not explicitly say when not to use it or compare it against the many other chat-list siblings such as status/date/unread variants.

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

get_whatsapp_chat_by_idBInspect

Retrieve detailed information about a specific chat using its WhatsApp ID. Includes complete metadata, assignment info, and activity details.

Same as get_whatsapp_chats with action "by_id".

NameRequiredDescriptionDefault
chatYesWhatsApp chat ID (e.g., 1234567890@c.us for phone numbers, 123456789000000000@g.us for groups, 123456789000000@newsletter for WhatsApp channels)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fieldsNoExplicit dot-path allowlist, e.g. ['id','name','contact.phone','unreadCount']. Overrides verbosity when set.
verbosityNoResponse detail level: summary = curated high-signal fields (default, token-lean); standard = broader set; full = complete chat objects (escape hatch).summary

TDQS

B3.4/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 does disclose the payload shape at a high level ('complete metadata, assignment info, and activity details') and reveals the equivalence to another endpoint, but says nothing about permissions, error behavior for an unknown/invalid chat ID, or that the default response is token-lean (that detail lives only in the schema).

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

Conciseness4/5

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

Two short sentences, front-loaded with the verb and resource, and the second sentence carries real routing information rather than filler. Minimal waste, though the 'Includes complete metadata, assignment info, and activity details' clause is slightly vague and overlaps with what the response level enum already conveys.

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

Completeness3/5

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

With no annotations and no output schema, the definition should do more heavy lifting for a 4-parameter tool. It covers purpose and gives a rough return-content sketch but omits failure modes (invalid ID, missing device), and does not note that the default verbosity is 'summary', which materially affects what the agent receives.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains the chat ID formats, device ID pattern, fields allowlist and verbosity enum in detail. The description adds only that the chat identifier is a WhatsApp ID, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Retrieve detailed information about a specific chat') and names the identifier type used to address it (WhatsApp ID). The closing note maps it to get_whatsapp_chats with action 'by_id', which helps place it among siblings, though it does not distinguish it from the many other chat-getter siblings like search_whatsapp_chats_by_name or get_whatsapp_chats_by_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 'Same as get_whatsapp_chats with action by_id' line is an implied routing hint, and 'using its WhatsApp ID' implies you must already have the ID. But there is no explicit statement of when to prefer search_whatsapp_chats_by_name (when you only have a name) or the filtered getters, so the agent must infer the boundary.

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

get_whatsapp_chat_file_detailsBInspect

Get detailed information about a specific received file from a WhatsApp chat by ID. Returns complete file metadata including sender information, chat context, media details, and download URLs.

NameRequiredDescriptionDefault
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fileIdYesFile ID (24 character hexadecimal string)

TDQS

B3.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 carries the full burden. It usefully discloses the shape of the response (sender info, chat context, media details, download URLs) and implicitly that this is a read-only lookup, but says nothing about permission requirements, behavior when the ID is invalid or the file is deleted, 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?

Two short sentences, front-loaded with the purpose and followed by the return contents. Nothing is wasted, though it is too brief to cover routing or failure behavior.

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 two-parameter read lookup with no output schema, the description adequately covers what is returned, which the agent would otherwise not know. The missing piece is sibling disambiguation and error behavior, which keeps it short of a 5.

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 both parameters are fully documented, including the 24-character hex format for each, so the schema does the heavy lifting. The description only adds the idea of lookup 'by ID', which is already obvious from the parameter names — baseline 3.

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

Purpose4/5

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

States a specific verb and resource ('Get detailed information about a specific received file from a WhatsApp chat by ID') and narrows scope with 'received'. However, it never distinguishes itself from the near-identical sibling get_whatsapp_file_details, leaving the agent to guess which one applies to chat-scoped files.

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?

There is no when-to-use or when-not-to-use guidance, and no routing to alternatives. With siblings like get_whatsapp_file_details, download_whatsapp_chat_file, and search_whatsapp_chat_files in the same namespace, the absence of any disambiguation is a real selection hazard.

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

get_whatsapp_chat_messagesAInspect

Retrieve WhatsApp chat messages (both inbound and outbound) for a specific device. Backed by the device-scoped Chat Messages endpoint, which requires a Platform subscription on the target device.

Available actions:

  • recent: Latest messages in a chat (newest first by default)

  • search: Text search across messages (within a chat or device-wide)

  • date_range: Messages in a specific time window

  • by_sender: Messages sent from a specific phone number or WID

  • by_type: Messages filtered by type (text, image, video, audio, document, location, contact, etc.)

  • by_id: Fetch a specific message by its WhatsApp message ID

  • thread: Get conversation context around a specific message (N before + target + N after)

  • media: Messages containing media files

The 'device' parameter accepts a device ID (24-hex), phone number in E.164 format, or device alias (e.g., "Sales 2") — pass exactly what the user named in their request. If the account has a single device, omit it and it will be auto-selected. If the account has multiple devices and the user didn't name one, the tool returns an error listing available devices — ask the user which one they mean.

NameRequiredDescriptionDefault
chatNoWhatsApp chat ID. Required for all actions except by_id and search (which accepts device-wide search when chat is omitted)
limitNoMaximum messages to retrieve per request (REST API caps at 50)
queryNoText to search for (required for search action)
actionYesAction to perform for WhatsApp message retrieval operations
deviceNoTarget WhatsApp device — accepts device ID (24-hex), phone number in E.164 format, or device alias. Optional: if the account has a single device, it is auto-selected; otherwise specify which one.
fieldsNoExplicit dot-path allowlist, e.g. ['id','date','flow','body']. Overrides verbosity when set.
senderNoPhone number or WID of message sender (required for by_sender action)
toDateNoUpper bound of the date range (maps to REST `before`)
fromDateNoLower bound of the date range (maps to REST `after`)
messageIdNoSpecific message ID (required for by_id and thread actions)
sortOrderNoSort order by date (default: desc)
verbosityNoResponse detail level: summary = curated high-signal fields (default, token-lean); standard = broader set; full = complete message objects (escape hatch).summary
mediaTypesNoFilter by specific media types (media action)
contextAfterNoMessages after target message (thread action)
includeMediaNoReserved for compatibility — media is always included when present
messageTypesNoTypes of messages to retrieve (required for by_type action)
contextBeforeNoMessages before target message (thread action)
includeQuotesNoWhen true, request quoted message details from the API (off by default to keep responses lean)
includeReactionsNoReserved for compatibility — reactions are returned inline by the REST API when available
includeFileDetailsNoReturn full media file metadata (media action)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the backing endpoint requires a Platform subscription on the target device and explains device auto-selection and error behavior. However, it does not describe response shape, pagination behavior, rate limits, or other operational traits that would help an agent anticipate results.

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 front-loaded with the tool purpose and then organized into action variants and device semantics. The action list is long but appropriate for an eight-action tool whose enum descriptions are otherwise generic. There is little wasted text, though the paragraph structure could be slightly tighter.

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 a complex 20-parameter tool with no annotations and no output schema, the description covers the essential invocation context: what the tool retrieves, what each action means, subscription requirements, and how to resolve the device. It stops short of describing return values or operational limits, but the rich input schema covers most parameter-level 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 the schema already documents all 20 parameters and the baseline is 3. The description adds meaningful semantics beyond the schema by explaining each action and giving detailed guidance for the device parameter, including accepted formats and multi-device handling. This is useful value-add over the structured fields.

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

Purpose5/5

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

The description states a specific verb and resource: retrieve WhatsApp chat messages, both inbound and outbound, for a specific device. It enumerates the supported retrieval actions, making clear that this is a message-level tool rather than a chat-list or chat-detail tool. An agent can distinguish it from siblings like get_whatsapp_chats and get_whatsapp_chat_by_id without opening the schema.

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 clearly explains how to choose among the tool's action variants, and gives explicit device-selection guidance including what happens when the device is omitted and how to respond to multiple-device ambiguity. It does not explicitly name sibling tools or state when not to use this tool, but the context is strong enough for correct invocation.

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

get_whatsapp_chatsAInspect

Comprehensive WhatsApp chat retrieval tool supporting all chat operations through a unified action-based interface. Perfect for accessing chat lists, searching conversations, filtering by various criteria, and managing chat data. Supports all WhatsApp chat retrieval operations with consistent formatting.

Available actions:

  • recent: Most recent chats

  • unread: Chats with unread messages

  • by_status: Filter by chat status (pending, active, resolved, archived...)

  • assigned: Chats assigned to an agent or department, or to anyone

  • unassigned: Chats nobody is handling yet

  • by_contact_type: Filter by chat type (chat, group, community, channel)

  • by_id: One chat by its WhatsApp ID

  • search: Free text search over phone, name, contact, company, metadata and private notes

  • archived: Archived chats

  • by_date_range: Chats by last message, first message or last inbound message date

Every action accepts labels, labelsExclude, status and contactTypes as extra filters. To find leads that went quiet, use by_date_range with activityType "lastInbound" and a toDate: those are the chats where the customer has not written since then.

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
queryNoFree text to search for (required for search action)
actionNoChat retrieval action to performrecent
chatIdNoSpecific chat ID (required for by_id action)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fieldsNoExplicit dot-path allowlist, e.g. ['id','name','contact.phone','unreadCount']. Overrides verbosity when set.
labelsNoOnly chats carrying at least one of these labels. Use ["*"] for any label. Cannot be combined with labelsExclude
statusNoFilter by chat status (required for by_status action, optional elsewhere)
toDateNoEnd date (for by_date_range and archived actions)
agentIdNoFilter by assigned agent ID (for assigned action)
fromDateNoStart date (for by_date_range and archived actions)
verbosityNoResponse detail level: summary = curated high-signal fields (default, token-lean); standard = broader set; full = complete chat objects (escape hatch).summary
activityTypeNoWhich date the range applies to: last message of any side, first message ever, or last message received from the customerlastMessage
contactTypesNoFilter by chat type (required for by_contact_type action, optional elsewhere)
departmentIdNoFilter by assigned department ID (for assigned action)
labelsExcludeNoExclude chats carrying any of these labels. Use ["*"] to exclude every labelled chat

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 carries the full behavioral burden. It discloses the filter-composition rule ('Every action accepts labels, labelsExclude, status and contactTypes as extra filters') and a semantic subtlety for date ranges, but says nothing about permission/auth requirements, pagination or rate limits despite 18 parameters. It adds some context beyond the schema but not enough for a tool of this complexity.

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 purpose is front-loaded and the action list is scannable and earns its space. The opening two sentences are redundant though: 'Comprehensive... supporting all chat operations' and 'Supports all WhatsApp chat retrieval operations with consistent formatting' say the same thing twice and could collapse into one.

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 an 18-parameter tool with no output schema and no annotations, the description covers action selection but omits the required device parameter, pagination semantics, and what the verbosity levels actually return. An agent could pick an action, but the call contract is only complete once it opens the schema.

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 the baseline is 3; the description lifts it above that by glossing each action's intent and by showing the non-obvious combination of by_date_range + activityType 'lastInbound' + toDate, which the enum descriptions do not convey. It still leaves the device parameter and pagination handling unaddressed.

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

Purpose4/5

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

States a specific verb and resource ('WhatsApp chat retrieval') and enumerates ten named retrieval actions, so an agent knows exactly what it does. However, it never distinguishes itself from the many direct-overlap siblings (get_whatsapp_unread_chats, get_whatsapp_chats_by_status, search_whatsapp_chats_by_name, etc.), which is the difference between a 4 and a 5.

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?

It provides internal guidance via the action glossary and one concrete scenario ('To find leads that went quiet, use by_date_range with activityType "lastInbound" and a toDate'), which is genuinely useful. But it gives zero routing against alternatives, even though siblings like get_whatsapp_unread_chats and search_whatsapp_chats_by_name cover the same ground. Usage is implied through actions, not stated vs. alternatives.

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

get_whatsapp_chats_by_contact_typeBInspect

Filter WhatsApp chats by contact type (individual users, groups, communities, channels). Useful for analyzing different communication patterns.

Same as get_whatsapp_chats with action "by_contact_type".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
contactTypesNoFilter by chat type (required for by_contact_type action, optional elsewhere)

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 carries the full behavioral burden. 'Filter' implies a read, but nothing is said about pagination (page/limit exist in the schema), result volume, sort behavior, or what a result record looks like — all of which an agent needs for a paged listing call.

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

Conciseness4/5

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

Two short sentences, with the purpose front-loaded and the equivalence to the generic tool second. No filler, though the second sentence could have been phrased more directly as a routing rule.

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

Completeness3/5

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

With no output schema and no annotations, the description should say more about return shape and paging behavior. It covers what the tool filters on and which generic tool it mirrors, but leaves an agent guessing about results, making it only adequately complete.

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 marginal meaning by enumerating chat types, but omits 'broadcast' and gives no guidance on combining contactTypes, sort, or paging beyond what the schema already documents.

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

Purpose4/5

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

States a specific verb+resource (filter WhatsApp chats) and the discriminating dimension (contact type), with the enum values spelled out as 'individual users, groups, communities, channels'. It also names the sibling it is equivalent to. Minor flaw: the parenthetical list omits 'broadcast', which the schema enum allows, and renders 'chat' as 'individual users'.

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?

'Useful for analyzing different communication patterns' hints at intent but is vague. The second sentence does route the agent ('Same as get_whatsapp_chats with action "by_contact_type"'), which tells it this tool is a specialized action of the generic list tool, but no when-not or preference rule is stated.

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

get_whatsapp_chats_by_date_rangeBInspect

Retrieve WhatsApp chats that were active within a specific date range. Perfect for analyzing conversation patterns and generating reports.

Same as get_whatsapp_chats with action "by_date_range".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
toDateNoEnd date (for by_date_range and archived actions)
fromDateNoStart date (for by_date_range and archived actions)
activityTypeNoWhich date the range applies to: last message of any side, first message ever, or last message received from the customerlastMessage

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 carries the full burden of behavioral disclosure. "Retrieve" implies a read operation, but the description does not explicitly confirm read-only behavior, mention side effects, describe permissions or rate limits, or explain pagination/return behavior. For a tool with zero annotation coverage, this is a notable gap.

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

Conciseness4/5

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

The description is short and front-loads the core purpose in the first sentence. The second sentence is somewhat generic marketing language ("Perfect for analyzing..."), while the third provides useful equivalence information. It is structurally efficient overall but contains minor filler.

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 schema is rich and fully documented, and the description identifies the date-range purpose and its relationship to get_whatsapp_chats. However, with no output schema and many sibling tools, it does not describe returns, pagination behavior, or when to use this versus alternatives. It is adequate but incomplete for an agent navigating a crowded toolset.

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 parameters like device, fromDate, toDate, activityType, page, limit, and sort are already documented in the schema. The description only reinforces that the tool operates on a date range and does not add parameter-specific meaning beyond the schema. A baseline 3 is appropriate when the schema does the heavy lifting.

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 a specific verb and resource plus the date-range qualifier: retrieving WhatsApp chats active in a specific date range. It also maps the tool to get_whatsapp_chats with action "by_date_range," which helps distinguish it from the generic chat listing. It does not, however, clarify why to choose this over date-related siblings like archived 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 gives a broad use case (analyzing conversation patterns and generating reports) and relates the tool to get_whatsapp_chats with a specific action. It does not explicitly state when to prefer this over sibling tools such as get_whatsapp_chats, get_whatsapp_archived_chats, or search_whatsapp_chats_by_name. Usage is therefore implied rather than fully guided.

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

get_whatsapp_chats_by_statusBInspect

Search and filter WhatsApp chats by their platform status (active, pending, resolved, etc.). Useful for workflow management and chat organization.

Same as get_whatsapp_chats with action "by_status".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
statusNoFilter by chat status (required for by_status action, optional elsewhere)

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 carries the full behavioral burden. It implies a read operation via 'search and filter' but does not explicitly state non-destructiveness, permission requirements, rate limits, or pagination behavior beyond what the schema already documents.

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 front-loaded and efficient, using two short sentences plus an equivalence note. The final sentence adds routing value, though the phrase 'Same as get_whatsapp_chats' could be slightly ambiguous without knowing that tool's action parameter.

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 read-only list tool with full schema coverage and no output schema, the description covers the core purpose. It lacks guidance on return format and does not clearly differentiate from near-sibling tools like get_whatsapp_archived_chats, leaving the agent to infer selection.

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 all parameters including the status enum are already well documented in the schema. The description mentions the status filter and gives examples, but adds no syntax or format details beyond the schema baseline.

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 a specific verb (search/filter) and resource (WhatsApp chats), plus the filtering dimension (platform status). It also clarifies equivalence to get_whatsapp_chats with action 'by_status', which helps distinguish it from that sibling. However, it does not resolve overlap with specialized siblings like get_whatsapp_archived_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 gives implied usage ('useful for workflow management and chat organization') and points to get_whatsapp_chats as the general form. It does not explicitly state when to choose this tool over dedicated siblings such as get_whatsapp_archived_chats or get_whatsapp_assigned_chats.

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

get_whatsapp_chat_statisticsAInspect

Figures of the team for a period: chat and message volumes, response and resolution times, and what was in the inbox at the end of the period, optionally compared with an earlier period.

Same as analyze_whatsapp_chats with action "statistics".

NameRequiredDescriptionDefault
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
toDateNoEnd of the period. Defaults to now
fromDateNoStart of the period, e.g. 2026-09-11T00:00:00+02:00. Defaults to 7 days before toDate
compareToDateNoStatistics only: end of the earlier period to compare with
compareFromDateNoStatistics only: start of an earlier period to compare with. Requires compareToDate

TDQS

A3.5/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 does disclose the returned metric categories and the comparison capability, but says nothing about whether the tool is read-only, permission requirements, or result size — gaps for an unannotated tool, though the read-only nature is strongly implied by "figures".

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

Conciseness4/5

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

Two tight sentences with no filler, and the substantive return-value content is front-loaded. The trailing cross-reference sentence is useful but slightly ambiguous about how the two tools differ.

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?

There is no output schema, so the description must carry the return-value burden, and it does so by listing the metric categories and the comparison option. Minor gaps remain on result structure and on the requirement that compareFromDate needs compareToDate (left to the 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?

Schema coverage is 100%, so the schema already documents device, fromDate/toDate defaults, and the compare pair. The description's only added value is confirming that comparison is optional and period-based; it adds no format or constraint detail beyond the schema.

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

Purpose4/5

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

The description names the resource and enumerates the exact metrics returned (chat/message volumes, response and resolution times, ending inbox snapshot), which lets an agent distinguish this statistics tool from the message/chat listing siblings. It does not state a crisp verb, but the scope is unambiguous.

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?

It notes the optional period-over-period comparison and points to analyze_whatsapp_chats with action "statistics", implying an alternate route. However it never says which one to prefer or when, so the routing decision is left to inference.

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

get_whatsapp_device_detailsAInspect

Retrieve comprehensive detailed information about a specific WhatsApp device using its ID. Returns complete device configuration, session status, metrics, and actionable insights. For WhatsApp Cloud API numbers it includes the health Meta reports: quality rating, messaging limit, payment problems, restrictions and the issues Meta lists with their fix. Use it to find out why messages are not going out.

NameRequiredDescriptionDefault
deviceIdYesWhatsApp device ID (24 character hexadecimal string)
includeMetricsNoInclude device metrics and statistics
includeSettingsNoInclude device settings and configuration
includeSessionLogsNoInclude recent session logs

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It clearly discloses the rich return content—configuration, session status, metrics, health ratings, payment problems, restrictions, and fixable issues—which is valuable context. It stops short of explicitly stating that this is a read-only operation with no side effects or noting any auth/rate-limit considerations.

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 four sentences, front-loaded with purpose, then return values, then Cloud API specifics, then a diagnostic use case. Every sentence contributes unique information with no redundancy.

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 and no annotations, the description does a good job explaining what is returned, including the Meta health details for Cloud API numbers. It could be slightly more complete by confirming that the call is read-only and does not modify device state, but otherwise it provides sufficient context to invoke the tool correctly.

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 all four parameters are fully documented in the schema. The description only implies the deviceId parameter ('using its ID') and adds no meaning beyond the schema for includeMetrics, includeSettings, or includeSessionLogs, so the baseline of 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 ('Retrieve') and resource ('detailed information about a specific WhatsApp device using its ID'). The singular 'specific device using its ID' naturally distinguishes it from the sibling list tool get_whatsapp_devices, and the added detail about Cloud API health makes the scope unambiguous.

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?

It gives a clear diagnostic use case: 'Use it to find out why messages are not going out.' However, it does not explicitly compare against alternatives (e.g., get_whatsapp_devices for listing) or state when not to use it, so it falls short of a 5.

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

get_whatsapp_devicesBInspect

Comprehensive tool to retrieve WhatsApp devices with flexible filtering options. Supports all device query scenarios: get all devices, filter by status/session status, search by terms, get only active/online devices, etc.

NameRequiredDescriptionDefault
pageNoPage number for pagination (0-based)
limitNoMaximum number of devices to retrieve
searchNoSearch term: phone number, alias, or device ID
statusNoFilter by device operational statuses
minUptimeNoMinimum session uptime in seconds (for online devices)
activeOnlyNoOnly include active/operational devices (authorized, verified, operative)
exactMatchNoWhether to use exact match for search (only applies when search is provided)
onlineOnlyNoOnly include devices that are currently online
sessionStatusNoFilter by session connectivity statuses
includeMetricsNoInclude device metrics (chat counts, contacts, etc.)
includeSettingsNoInclude device settings and configuration
includeSessionLogsNoInclude recent session logs
includeSessionDetailsNoInclude detailed session information

TDQS

B3.1/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 behavioral burden, and it discloses almost nothing: 'retrieve' implies a read, but there is no statement about permissions, rate limits, pagination behavior, or what the response contains despite several include* flags changing the shape. For a 13-parameter tool with zero annotation coverage this is a substantive gap.

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?

Two sentences, front-loaded with the purpose, which is good. But 'Comprehensive tool' and the trailing 'etc.' are filler that dilute rather than inform, and the second sentence largely restates the first.

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

Completeness3/5

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

With 13 optional parameters, no annotations, and no output schema, the description should at minimum clarify what is returned and how the include* flags affect payload size/behavior. The schema covers parameter semantics well, but return-shape and behavior remain implicit.

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 all 13 parameters are already documented in the schema, including pagination, filters, and the include* toggles. The description merely gestures at status/session-status/search/active-online filtering without adding syntax or interaction details, so the baseline 3 applies.

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 names a specific verb and resource ('retrieve WhatsApp devices') and lays out the scope of query scenarios it covers. It does not, however, distinguish itself from the sibling get_whatsapp_device_details, which an agent could easily confuse with this list-style tool.

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?

It enumerates usage scenarios (all devices, status/session-status filters, search, active/online only), which implies when to call it. But there is no explicit when-not guidance and no mention of the sibling get_whatsapp_device_details as the alternative for single-device lookups.

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

get_whatsapp_file_detailsAInspect

Get detailed information about a specific uploaded WhatsApp file by ID. Returns complete file metadata including size, type, format, status, expiration, tags, and download URLs.

NameRequiredDescriptionDefault
fileIdYesFile ID (24 character hexadecimal string)

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 does disclose the return payload (size, type, format, status, expiration, tags, download URLs), which signals a read-only metadata lookup, but it says nothing about permissions/auth, rate limits, or behavior on an invalid or expired file ID.

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

Conciseness5/5

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

Two tight sentences with no filler: the action is front-loaded and the return contents follow. Nothing is repeated needlessly.

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

Completeness4/5

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

With no output schema and no annotations, the description usefully enumerates the metadata fields returned, which is the main gap it needed to close for a single-parameter read tool. Missing only error/not-found behavior and how download URLs expire.

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% — the fileId pattern and 24-character hexadecimal constraint are fully documented in the schema. The description only restates 'by ID', adding no meaning beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource pair: 'Get detailed information about a specific uploaded WhatsApp file by ID.' The word 'uploaded' implicitly separates it from get_whatsapp_chat_file_details and download_whatsapp_file, but no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is only implied by 'by ID' — an agent can infer it needs a known file ID and wants metadata. There is no explicit when-to-use / when-not-to-use guidance and no mention of alternatives such as search_whatsapp_outbound_files for discovering an ID first.

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

get_whatsapp_unread_chatsBInspect

Retrieve WhatsApp chats with unread messages. Essential for managing pending conversations and customer support.

Same as get_whatsapp_chats with action "unread".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
sortNoResult order. Defaults to the API order (most recent activity first)
limitNoNumber of WhatsApp chats per call (max 100)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
labelsNoOnly chats carrying at least one of these labels. Use ["*"] for any label. Cannot be combined with labelsExclude

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 bears the full burden. Beyond implying a read operation, it says nothing about what 'unread' means precisely, whether results are paginated by default, what fields a returned chat contains, or any auth/device requirements, all of which matter for a 5-parameter listing tool.

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?

Purpose is front-loaded in the first sentence and the sibling equivalence note is a compact second line. The middle sentence ('Essential for managing pending conversations and customer support') is promotional and does not add operational value, a minor bit of waste.

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

Completeness3/5

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

For a 5-parameter filtered-list tool with no annotations and no output schema, the description establishes what is fetched but not what comes back (chat shape, unread counts) or any behavioral constraints. The rich schema covers inputs well, but the return-side gap keeps this at minimum viable.

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%, with page, limit, sort, device, and labels all documented including enum values and the labels/'*' semantics, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond what the schema already states, which is the baseline expectation.

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

Purpose4/5

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

States a specific verb and resource with a clear filter scope ('Retrieve WhatsApp chats with unread messages') and explicitly maps itself to get_whatsapp_chats with action 'unread', so an agent can distinguish it from the general list tool. It does not, however, differentiate itself from the many other filtered siblings such as get_whatsapp_archived_chats, get_whatsapp_assigned_chats, or get_whatsapp_chats_by_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 phrase 'Essential for managing pending conversations and customer support' implies a use case, and the equivalence note points at get_whatsapp_chats as the broader alternative. But there is no explicit statement of when to prefer this over the archived/assigned/status variants or any prerequisites, leaving selection mostly to inference.

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

health_checkBInspect

Comprehensive health check of the MCP server and connected WhatsApp devices.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/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 does disclose the check's coverage (server plus connected devices), which is real scope information, but says nothing about whether the call is read-only/side-effect free, how expensive or slow it is, whether it requires authentication, or what 'comprehensive' actually encompasses.

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 front-loaded sentence with no waste; the scope is stated immediately. 'Comprehensive' is slightly promotional filler, but the sentence is otherwise tight and appropriately sized for a no-argument tool.

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?

There is no output schema, so the description is the only place an agent could learn what a health check returns (pass/fail boolean, per-device status list, error details) and it does not say. For a zero-parameter diagnostic tool this is adequate but leaves a meaningful gap in interpretability of results.

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 takes zero parameters and the schema is trivially complete, so there are no parameter semantics to explain. Baseline 4 applies.

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

Purpose4/5

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

States a specific verb+resource: a health check covering both the MCP server and connected WhatsApp devices, and the scope wording distinguishes it from the narrower 'ping' sibling. It doesn't explicitly name that sibling or say how the two differ, so it stops short of full sibling differentiation.

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?

There is no statement of when to call this versus alternatives, and notably no guidance on choosing between this and the sibling 'ping' (or 'get_whatsapp_devices' for device status). Diagnostic use is only weakly implied by the phrase 'health check'.

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

list_whatsapp_flow_responsesA
Read-only
Inspect

List what customers answered in a WhatsApp Form (Meta WhatsApp Flow), newest first: who answered, each question's label and value, and when. Takes the form's id from list_whatsapp_flows (not its flowId). Only keys of the account owner or an admin can read answers.

NameRequiredDescriptionDefault
toNoLast day, YYYY-MM-DD (UTC)
fromNoFirst day, YYYY-MM-DD (UTC)
pageNoPage, from 0
sizeNoAnswers per page (default 25, max 100)
deviceNoOnly answers received on this number
form_idYesThe form id ("id" from list_whatsapp_flows, 24 hex characters)
campaignNoOnly answers to this campaign

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful behavior: results are newest first, include who answered, question labels/values, and timestamps, and require owner/admin credentials. It does not discuss rate limits or error behavior, but adds meaningful context beyond the annotations.

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

Conciseness5/5

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

The description is two tight sentences with no wasted language. Purpose and return shape are front-loaded, followed by the key id-source warning and permission caveat.

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

Completeness4/5

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

With no output schema, the description does a good job listing the returned content and ordering, while the schema covers filters and pagination inputs. A minor gap remains around the full response envelope and pagination metadata, but the definition is otherwise complete for this read-only list tool.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds a useful disambiguation for the required form_id parameter: it comes from list_whatsapp_flows and not the flowId. It does not add meaning for the other six parameters beyond the schema, so it is above baseline but not exhaustive.

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

Purpose5/5

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

The description states a specific verb and resource: list what customers answered in a WhatsApp Form. It also distinguishes the form id from the flowId, which prevents confusion with list_whatsapp_flows. The return fields and newest-first ordering make the tool's purpose immediately clear.

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?

It explicitly says to take the form id from list_whatsapp_flows rather than its flowId, which is a concrete prerequisite and alternative reference. It also states the owner/admin key restriction. It does not explicitly frame when to choose this over other WhatsApp tools beyond that prerequisite, so it is strong but not complete.

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

list_whatsapp_flowsA
Read-only
Inspect

List WhatsApp Flows available for a device (WABA). Returns flow id, name, status, categories and entry screen. Use this to find a flow to send.

NameRequiredDescriptionDefault
deviceYesTarget WhatsApp device ID (24 character hex string)
statusNoFilter by flow status

TDQS

A3.8/5.0
Behavior4/5

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

With readOnlyHint and openWorldHint already declared, the bar is lower, but the description still earns credit by enumerating the returned fields (flow id, name, status, categories, entry screen) — valuable since there is no output schema. It doesn't cover pagination or result-size behavior, keeping it from a 5.

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 tight sentences: scope and return shape first, then the intended use. Zero filler and every clause carries information.

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

Completeness4/5

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

For a read-only filtered-list tool with no output schema, the description covers what it returns and what it's for, which is enough to invoke it correctly. Missing only secondary details like result limits or ordering.

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 both the device ID format and the status enum are fully documented in the schema. The description only restates 'for a device (WABA)' and adds no format or filtering semantics beyond that, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('List WhatsApp Flows') and clarifies the scope as per-device (WABA), which distinguishes it from sibling tools like list_whatsapp_flow_responses and list_whatsapp_templates. It doesn't explicitly name which sibling to use instead, but the resource noun is unambiguous.

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?

'Use this to find a flow to send' implies the downstream action (send_whatsapp_flow) but never names it or states explicit when-not conditions. Usage is inferable rather than stated, so it lands at minimum viable guidance.

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

list_whatsapp_templatesA
Read-only
Inspect

Retrieve WhatsApp templates for a specific device (approved ones by default). Each template includes its components and the variables that must be filled in to send it. This is required for sending template-based messages.

NameRequiredDescriptionDefault
sizeNoMaximum number of templates to retrieve
deviceYesTarget WhatsApp device ID (24 character hex string)
statusNoFilter templates by status (defaults to APPROVED)APPROVED

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnlyHint and openWorldHint, and the description adds useful context: the default status filter and what each returned template contains (components and required variables). Minor omission is any mention of pagination/result-size limits for larger template sets.

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?

Three short sentences, front-loaded with the core action and scope, with the usage rationale last. Little waste, though the 'approved ones by default' clause duplicates schema info.

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?

There is no output schema, and the description compensates by explaining that each template includes its components and variables needed to send it. Combined with the fully documented schema, an agent has enough to call it correctly; only pagination behavior is left unstated.

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 device, size, and status are already documented with defaults and constraints. The description only restates the APPROVED default, adding little beyond the schema – baseline 3 applies.

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

Purpose4/5

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

States a specific verb ('Retrieve') and resource ('WhatsApp templates') scoped to a device, and clarifies that only approved templates come back by default. It doesn't name the sibling create/delete template tools to differentiate explicitly, but the list-vs-mutate distinction is obvious from the name and description.

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?

'This is required for sending template-based messages' gives a concrete use context, and '(approved ones by default)' implies when to override the status filter. However, no explicit when-not guidance or mention of the alternative tools for template management is given.

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

manage_whatsapp_campaign_contactsBInspect

Universal WhatsApp campaign contacts management tool that handles all campaign recipient operations through action-based parameters. Supports add, remove, and search operations for campaign recipients: phone numbers and groups. Essential for WhatsApp campaign recipient management.

add keeps the recipients already on the campaign. On a campaign that sends a template (WhatsApp Cloud API numbers), give every variable its component exactly as on manage_whatsapp_campaigns create: body, header, header_location, button_url_N or button_copy_code_N, with N the buttonIndex that list_whatsapp_templates reports. Such a campaign only reaches phone numbers, not groups. On a campaign from a number linked by QR, each variable key fills the {{ key }} placeholder of the campaign message.

NameRequiredDescriptionDefault
kindNoFilter by contact type (for search action)
pageNoResults page number (for search action)
sizeNoResults page size (for search action)
widsNoWhatsApp message IDs to remove (for remove action)
actionYesAction to perform on campaign contacts
groupsNoGroup IDs to remove (for remove action)
phonesNoPhone numbers to remove (for remove action)
searchNoSearch contacts by phone number, name, or group ID (for search action)
statusNoFilter by delivery status (for search action)
targetNoFilter by contact target: phone number or group WhatsApp ID (for search action)
channelsNoChannel IDs to remove (for remove action)
contactsNoContacts to add to campaign (for add action)
campaignIdYesWhatsApp campaign ID

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden. It does disclose meaningful behavior beyond structure: add preserves already-attached recipients, and template campaigns (Cloud API) reach phone numbers only while QR campaigns use {{ key }} placeholders. It stays silent on remove semantics (permanence, whether removal affects already-sent messages), permissions, and 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?

The second paragraph is dense and front-loads the most important constraint (add is additive, template vs QR variable shapes). The opening is padded with self-referential boilerplate — 'Universal ... management tool', 'Essential for WhatsApp campaign recipient management' — which restates the name and wastes space an agent must read.

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 13-parameter tool with no annotations and no output schema, the definition covers only the add path and variable formatting. The remove action (three ID arrays) and the search action (kind, status, target, pagination) receive no description-level explanation, and the agent gets no sense of what a call returns or how large result pages behave.

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 the baseline is 3, but the description genuinely adds meaning: it explains the component values (body, header, header_location, button_url_N, button_copy_code_N), ties N to the buttonIndex reported by list_whatsapp_templates, and contrasts template keys against QR placeholder keys. It gives no guidance on how to use the remove parameters (wids, groups, phones, channels) or the search filters.

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 names a specific resource (campaign recipients) and enumerates the supported operations (add, remove, search), which is enough for an agent to know what the tool does. It references sibling tools (manage_whatsapp_campaigns, list_whatsapp_templates) for related data, but never states how this tool differs from manage_whatsapp_campaigns for recipient work.

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

Usage Guidelines3/5

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

Usage is implied through the operation list and the richer note that add appends to existing recipients and that template campaigns can only target phone numbers, not groups. However, there is no explicit when-to-use/when-not-to-use routing, and nothing tells the agent when to pick this over manage_whatsapp_campaigns or manage_whatsapp_contacts.

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

manage_whatsapp_campaignsAInspect

Universal WhatsApp campaign management tool that handles all campaign operations through action-based parameters. Supports search, create, update, start, stop, and delete operations for WhatsApp bulk messaging campaigns. Perfect for comprehensive WhatsApp marketing automation.

What a campaign sends depends on the number. Its connector, reported by get_whatsapp_devices and health_check, says which kind it is: cloud for WhatsApp Cloud API, web for a number linked by QR.

  • WhatsApp Cloud API (WABA) numbers: a pre-approved template is required, and it only reaches phone numbers, never groups. Pass template { name, language } and give each recipient the values its variables need. Read the template first with list_whatsapp_templates: every variable it reports has a location (header, body or buttons) and, for buttons, a buttonIndex starting at 0. Send each value with its component, and for a button variable use button_url_N or button_copy_code_N with that index.

  • Numbers linked by QR: a message, optionally with a file. Personalize it with placeholders: {{ name }} is the recipient's name, {{ phone }} their number, and each key in a recipient's variables fills {{ key }}. For example message "Hi {{ name }}, your order {{ order }} has shipped" with variables [{ key: "order", value: "A-1043" }]. Write keys and placeholders in lowercase. A placeholder a recipient has no value for disappears from their message; {{ order | on its way }} prints the text after the bar instead.

To send it: create with activate true, which needs settings.date and at least one recipient, or create first and then start, which asks for the same two. If activation fails during create, the campaign is deleted and you have to create it again.

Recipients: pass them on create, up to 2000 per request. To add or remove them afterwards use manage_whatsapp_campaign_contacts. The total a campaign can hold depends on the plan, from 100 on trial to 2000.

What it will cost: before launching a template campaign, estimate_cost gives the price Meta lists per message for each country, in costs: one line per country (or dialling code) with the category of the template and how many messages go there.

Payment problems: when Meta reports one on a Cloud API number's WhatsApp Business account, the templates it sends are rejected (error 131042). A Cloud API number that needs reconnecting stops the same way, because its messages fail until it is reconnected. The three ways to send a campaign (create with activate true, update with activate true, and the start action) then refuse, say why and write nothing. Tell the user, and only repeat the call with confirmPaymentIssue true if they say the payment is already fixed or want to send anyway.

Things that do not undo: delete removes a campaign for good, and stop does not recall messages already handed to WhatsApp.

NameRequiredDescriptionDefault
fileNoUploaded file ID. On a template campaign this is the header media, and only for a template whose header is an image, video or document: on a template without a media header the API sends a header the template does not have and Meta rejects it. Upload the file first with upload_whatsapp_file_from_url
nameNoCampaign name (required for create action)
pageNoResults page number (for search action)
sizeNoResults page size (for search action, max 100)
afterNoFilter campaigns created after this date (for search action)
costsNoFor estimate_cost: one line per country of the recipients, with the template category and the number of messages. Up to 100 lines
groupNoFilter campaigns by group IDs (for search action)
ownerNoFilter by owner user IDs (for search action)
phoneNoFilter campaigns by recipient phone numbers (for search action)
actionYesAction to perform on WhatsApp campaigns
beforeNoFilter campaigns created before this date (for search action)
deviceNoWhatsApp device ID (required for create action)
statusNoFilter campaigns by status (for search action)
messageNoCampaign message, for numbers linked by QR. On a WhatsApp Cloud API number use template instead. Personalize it with {{ name }}, {{ phone }} and {{ key }} for each key in the recipients' variables
activateNoStart the campaign right after creating it. Needs settings.date and at least one recipient; without them the campaign is created and left as a draft
contactsNoCampaign recipients, for the create action only. Max 2000 per request, and the total a campaign can hold depends on the plan (100 on trial, 500 to 2000 otherwise). To add or remove recipients later use manage_whatsapp_campaign_contacts
settingsNoCampaign delivery settings (for create/update actions)
templateNoPre-approved template to send. Required on WhatsApp Cloud API numbers, and not accepted on numbers linked by QR
campaignIdNoWhatsApp campaign ID (required for get, update, start, stop, delete actions)
unsubscribeNoUnsubscribe settings (for create/update actions)
confirmPaymentIssueNoOnly after telling the user that Meta reports a payment problem on the number, or that it needs reconnecting: true to activate or start the campaign anyway, because they say it is already fixed or reconnected, or want to send regardless

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and delivers: activation failure during create deletes the campaign, delete is permanent, stop does not recall already-sent messages, plan-based recipient caps, and a detailed payment-issue/error-131042 flow gated by confirmPaymentIssue. This is unusually rich 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.

Conciseness4/5

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

Purpose is front-loaded in the first sentence and the body is organized by scenario (sending, activation, recipients, cost, payment, irreversibility). It is long and repeats some placeholder/component detail already in the schema, keeping it from a 5.

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 21-parameter tool with nested objects and no output schema, the description covers every consequential path an agent must navigate—number type routing, activation prerequisites, cost estimation, payment failures, and destructive operations—leaving nothing essential unexplained.

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 the baseline is 3, and the description adds real meaning on top: placeholder syntax ({{ name }}, {{ key }}, fallback via the bar), template component/buttonIndex mapping, and speed semantics. It stops short of full coverage of every nested field (e.g., unsubscribe actions), so a 4 rather than 5.

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 opening sentence states a specific resource (WhatsApp campaigns) and enumerates all supported operations (search, create, update, start, stop, delete), so the agent knows exactly what the tool does. It also points to siblings like manage_whatsapp_campaign_contacts and list_whatsapp_templates for adjacent tasks, differentiating its scope.

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

Usage Guidelines5/5

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

It gives explicit branching guidance: cloud (WABA) numbers require a pre-approved template and reach phones only, while QR-linked numbers take a message with optional file. It spells out the two activation paths (create with activate true vs create then start), when to call estimate_cost, and redirects recipient edits to a sibling tool.

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

manage_whatsapp_channel_messagesCInspect

Comprehensive WhatsApp channel message management tool for retrieving and managing channel content. Perfect for monitoring channel activity and accessing channel message history.

Available actions:

  • get: Get recent messages from a specific channel with filtering options

NameRequiredDescriptionDefault
pageNoPage number for pagination (0-based)
limitNoNumber of recent messages to retrieve (max 100)
actionYesAction to perform on WhatsApp channel messages
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
toDateNoGet messages up to this date
fromDateNoGet messages from this date onwards
channelIdYesWhatsApp channel ID to get messages from
sortOrderNoSort order by timestamp
includeMediaNoInclude media message details
messageTypesNoFilter by specific message types
includeDeletedNoInclude deleted messages in results

TDQS

C2.6/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 behavioral burden and mostly fails it. It never states that the operation is read-only, how pagination behaves (page/limit interaction), whether deleted messages appear by default, or whether media details are omitted unless requested — all decisions an agent must make.

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 action list is well structured and front-loads the only usable action, but the lead sentences are marketing filler ("Comprehensive", "Perfect for") that consume space without informing invocation. Roughly half the text could be deleted with no loss.

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?

Parameter documentation is fully handled by the schema, and there is no output schema to explain, so the remaining obligations are behavioral. For an 11-parameter, filter-heavy retrieval tool with zero annotations, the description should say more about paging, defaults, and result shape than it does.

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 every parameter (device, channelId, fromDate/toDate, sortOrder, messageTypes, includeMedia, includeDeleted, page, limit) is already documented in the schema. The description only says "with filtering options," adding no semantics beyond the schema, which is the baseline-3 case.

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

Purpose3/5

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

The action list makes the concrete operation clear: a single 'get' action that retrieves recent messages from a specific channel. However, the framing as a "comprehensive ... message management tool for retrieving and managing channel content" overstates the scope, since no write/manage action exists, and the description never distinguishes this from get_whatsapp_chat_messages or manage_whatsapp_channels.

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?

"Perfect for monitoring channel activity and accessing channel message history" gestures at use cases but gives no actual when-to-use / when-not criteria. With siblings like get_whatsapp_chat_messages and manage_whatsapp_channels in the same family, an agent gets no signal about which one applies to channels vs. chats.

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

manage_whatsapp_channelsBInspect

Comprehensive WhatsApp channel management tool supporting all channel operations. Perfect for managing channel lifecycle, membership, and content. Supports all WhatsApp channel operations through a unified action-based interface.

Available actions:

  • list: List and retrieve channels with filtering options

  • get: Get detailed information about a specific channel

  • create: Create new channels with optional profile images

  • update: Update existing channel information (name, description)

  • search: Search for public channels by category and keywords

  • join: Join/follow channels via invite code or URL

  • leave: Leave/unfollow channels

  • delete: Delete channels (alias for leave)

  • update_image: Update channel profile images

NameRequiredDescriptionDefault
nameNoChannel name (required for create, optional for update)
pageNoPage number for pagination (0-based)
sortNoSort field and order (e.g., "-createdAt", "name")
limitNoNumber of results to retrieve (max 250)
actionYesAction to perform on WhatsApp channels
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
includeNoInclude related entities in response
categoryNoCategory of channels to search for (for search action)
imageUrlNoURL of image to use as channel profile picture (JPG or PNG, max 1MB)
channelIdNoWhatsApp channel ID (required for get, update, leave, delete, update_image actions)
countriesNoCountry codes to filter channels by (e.g., ["US", "GB"])
imageDataNoBase64-encoded image data (JPG or PNG, max 1MB)
inviteUrlNoChannel invitation URL (required if joinMethod is "url")
sortFieldNoField to sort search results by
sortOrderNoSort order for search results
inviteCodeNoChannel invitation code (required if joinMethod is "code")
joinMethodNoMethod to join the channel (for join action)
permissionNoFilter channels by permission type (for list action)
descriptionNoChannel description (up to 2048 characters)
imageSourceNoSource type for channel image
searchQueryNoText to search for in channel names and descriptions (for search action)
uploadImageNoWhether to upload a profile image (for create action)

TDQS

B3/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 the full behavioral burden. It names destructive operations like delete and leave but does not disclose permissions, reversibility, side effects, rate limits, or what happens to channel content on delete; the note that delete is an alias for leave adds some context but is not enough for a 22-parameter 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.

Conciseness3/5

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

The action list is useful and front-loaded, but the opening two sentences are repetitive: “Comprehensive WhatsApp channel management tool supporting all channel operations” is immediately restated. The content is appropriately sized for a unified action tool, but it could be tightened.

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?

This is a large unified tool with 22 parameters, no output schema, and no annotations, yet the description does not cover permissions, side effects, return values, or preconditions. The action list helps, but important operational context is missing 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?

Schema description coverage is 100%, so the schema already documents all parameters extensively. The description adds useful action-level mapping, such as create using profile images, search using category/keywords, and join using invite code or URL, but it does not add significant per-parameter meaning beyond the schema descriptions.

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 that this is a WhatsApp channel management tool and enumerates the supported channel operations, so the verb and resource are specific. It does not distinguish itself from sibling channel tools such as manage_whatsapp_channel_messages, but the channel-management scope is clear.

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 available actions list implies when each operation is relevant, but there is no explicit guidance on when to use this tool versus siblings, no prerequisites, and no warnings about destructive operations such as delete/leave. The action list is helpful but is not a full usage policy.

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

manage_whatsapp_chatAInspect

Change a WhatsApp chat in the team inbox without sending anything to the customer: hand it to a teammate or department, add or remove labels, resolve or reopen it, leave an internal note, or mark it read or unread. The customer sees none of it. Your team sees the change, and your account's chat webhooks are notified.

Available actions:

  • assign: give the chat to agentId, agentEmail or departmentId (departments need a plan that includes them). A pending chat becomes active.

  • unassign: take the chat off its agent and department. It goes back to pending.

  • add_labels / remove_labels: the labels must already exist on the number, create them first with manage_whatsapp_labels. The chat keeps any label you do not mention.

  • resolve: close the conversation.

  • reopen: back to active if someone owns the chat, pending otherwise.

  • add_note: private note only your team can see (2 to 6000 characters). authorId writes it as that teammate.

  • mark_read / mark_unread: marking a resolved chat as unread reopens it.

To write to the customer, use send_whatsapp_message instead.

NameRequiredDescriptionDefault
chatYesThe chat: a phone number in international format, or its WhatsApp chat ID as returned by get_whatsapp_chats
noteNoInternal note text, WhatsApp formatting allowed (for add_note)
actionYesWhat to change on the chat
deviceYesWhatsApp number (device) ID the chat belongs to
labelsNoLabel names (for add_labels and remove_labels)
agentIdNoTeammate user ID to assign the chat to (for assign)
authorIdNoTeammate user ID the note is written as. Defaults to the API key owner (for add_note)
agentEmailNoTeammate email to assign the chat to, instead of agentId (for assign)
departmentIdNoDepartment ID to assign the chat to (for assign). Look it up with manage_whatsapp_departments

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does: it states nothing reaches the customer, the team sees the change, chat webhooks fire, and it documents state transitions (pending→active on assign, back to pending on unassign, reopen→active or pending depending on ownership).

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 safety-relevant scope ('customer sees none of it') is front-loaded, followed by a scannable action list where every bullet adds a distinct rule. No filler sentences.

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?

Nine parameters and no annotations or output schema, yet the description covers side effects, visibility, state transitions, cross-tool prerequisites, and the note length bound. Nothing needed to invoke it correctly 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?

Schema coverage is 100%, so the baseline is 3; the description goes further by mapping parameters to actions (agentId/agentEmail/departmentId for assign, labels for add/remove, authorId for add_note) and adds a constraint not in the schema — departments require a plan that includes them.

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?

Opens with a concrete verb and resource ('Change a WhatsApp chat in the team inbox') and immediately scopes it as internal-only, then enumerates the nine actions it covers. An agent can distinguish it from send_whatsapp_message and the read-side get/search siblings without opening the schema.

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

Usage Guidelines5/5

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

Explicitly routes writing to the customer elsewhere ('use send_whatsapp_message instead') and routes label creation to manage_whatsapp_labels. Per-action notes add conditions ('departments need a plan that includes them', unread-on-resolved reopens), so when-to-use and when-not-to-use are both covered.

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

manage_whatsapp_contact_actionsBInspect

Manage WhatsApp contact blocking and unblocking operations. Handle contact blocking status with action-based operations to control message reception from specific contacts. Contacts are identified by phone number in E.164 format, not by WhatsApp ID.

NameRequiredDescriptionDefault
actionYesAction to perform on WhatsApp contact blocking/unblocking
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
contactsYesArray of contact phone numbers in E.164 format to block or unblock (max 50)

TDQS

B3.4/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 behavioral disclosure burden. It usefully notes that blocking controls message reception and that contacts are identified by phone number rather than WhatsApp ID, but it omits permissions, reversibility, side effects on existing chats, and response behavior 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.

Conciseness4/5

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

The description is short and front-loaded, with the core purpose stated immediately. It has some redundancy between 'blocking and unblocking operations' and 'contact blocking status,' but it remains efficient.

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 three-parameter mutation tool with full schema coverage, the description covers purpose and identifier format adequately. However, without annotations or an output schema, it should say more about operational effects, permissions, and whether blocking changes existing conversations.

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 action, device, and contacts. The description reinforces E.164 formatting and clarifies that contacts are not identified by WhatsApp ID, but adds no meaning beyond the schema for device or action parameters.

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

Purpose4/5

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

The description states a clear resource and operation: WhatsApp contact blocking and unblocking, with action-based control over message reception. It is more specific than the bare tool name, though it does not explicitly contrast itself with sibling tools like manage_whatsapp_contacts.

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 by explaining that the tool controls message reception from specific contacts, but it does not state when to use this tool versus manage_whatsapp_contacts or provide any exclusions or prerequisites.

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

manage_whatsapp_contactsCInspect

Comprehensive WhatsApp contacts management with action-based operations. Supports listing, searching, creating, updating, deleting contacts, bulk operations, and metadata management. All contact operations including CRUD, filtering, pagination, and metadata handling in one unified tool.

NameRequiredDescriptionDefault
crmNoCRM system name (for create, update actions)
widNoFilter contacts by WhatsApp IDs (for list action)
cityNoContact city (for create, update actions)
kindNoContact category (for create, update actions)
nameNoContact first name (for create, update actions)
pageNoPage number for pagination (0-based, for list action)
sortNoSort field and order (e.g., "-createdAt", "name", for list action)
typeNoFilter contacts by type (for list action)
afterNoFilter contacts created after this date (for list action)
emailNoContact email address (for create, update actions)
limitNoNumber of contacts to retrieve (max 200, for list action)
notesNoPrivate notes about the contact (for create, update actions)
ownerNoFilter contacts assigned to specific agents (for list action)
phoneNoPhone number for create action, or array of phone numbers for list filtering
titleNoContact title (Mr., Mrs., Dr., etc., for create, update actions)
actionYesAction to perform on WhatsApp contacts
assignNoAssign contact to specific agent (for create action)
beforeNoFilter contacts created before this date (for list action)
crmRefNoCRM reference ID or URL (for create, update actions)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
fieldsNoExplicit dot-path allowlist, e.g. ['wid','phone','info.email']. Overrides verbosity when set.
genderNoContact gender (for create, update actions)
searchNoSearch contacts by name, surname, phone, email, company, address, or notes (for list action)
statusNoFilter contacts by status (for list action)
upsertNoUpdate the contact if it already exists instead of failing with 409 (for create and bulk_create actions)
addressNoContact address (for create, update actions)
countryNoContact country 2-letter ISO code (for create, update actions)
includeNoInclude related entities in response
surnameNoContact surname/last name (for create, update actions)
altPhoneNoAlternative phone number (for create, update actions)
birthdayNoContact birthday in YYYY-MM-DD format (for create, update actions)
contactsNoArray of contacts to create (max 1000, for bulk_create action)
currencyNoContact currency 3-letter ISO code (for create, update actions)
metadataNoContact metadata key-value pairs (for create, update, update_metadata, upsert_metadata actions)
timezoneNoContact timezone (for create, update actions)
verbosityNoResponse detail level for list/get: summary = curated high-signal fields (default, token-lean); standard = broader set; full = complete contact objects (escape hatch).summary
contactWidNoWhatsApp contact ID (required for get, update, delete, update_metadata, upsert_metadata actions)
postalCodeNoContact postal code (for create, update actions)
companyCodeNoCompany code (for create, update actions)
companyNameNoCompany name (for create, update actions)
companyRoleNoContact role in company (for create, update actions)
descriptionNoContact description (for create, update actions)
metadataKeyNoFilter contacts with specific metadata keys (for list action)
companyEmailNoCompany email (for create, update actions)
companyPhoneNoCompany phone number (for create, update actions)
companyTaxIdNoCompany tax ID (for create, update actions)
removeFieldsNoFields to remove/clear from contact (for update action)
updatedAfterNoFilter contacts updated after this date (for list action)
metadataValueNoFilter contacts with specific metadata values (for list action)
updatedBeforeNoFilter contacts updated before this date (for list action)
companyCountryNoCompany country 2-letter ISO code (for create, update actions)
companyWebsiteNoCompany website (for create, update actions)

TDQS

C2.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 and largely fails it: it does not disclose that 'delete' is destructive/irreversible, that 'upsert' suppresses 409 conflicts, that bulk_create caps at 1000 items, or what permissions/auth are needed. Only vague hints ('bulk operations', 'pagination') appear, leaving the risk profile of a mutation-heavy tool undisclosed.

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

Conciseness2/5

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

The three clauses are largely redundant, repeating 'all contact operations/CRUD/filtering/metadata' from different angles without adding information. The filler opener 'Comprehensive ... with action-based operations' and the restatement in the final sentence waste space that could have been spent on action-specific guidance.

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 52-parameter, 8-action mutation tool with no annotations and no output schema, the description is far too thin: it omits action-specific requirements, destructive-operation warnings, bulk limits, and response behavior. An agent still relies almost entirely on the schema and must guess at risk and routing.

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 every one of the 52 parameters is documented inline (including action-gating notes like 'for create, update actions'), which sets the baseline at 3. The description itself adds no parameter meaning beyond the schema and merely gestures at 'metadata handling' and 'filtering' without elaborating.

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

Purpose3/5

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

The description names the resource (WhatsApp contacts) and lists operations (list, search, create, update, delete, bulk, metadata), so the general purpose is inferable. However, it never differentiates itself from the very similarly named sibling manage_whatsapp_contact_actions, nor does it clarify the boundary against manage_whatsapp_campaign_contacts, so an agent cannot confidently route between these overlapping tools from the text alone.

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?

There is no when-to-use guidance, no mention of which tool to prefer for contact actions, and no statement of prerequisites (e.g., needing a valid device ID, or when to choose this over manage_whatsapp_contact_actions). The action list is enumerated but the conditions that select each action are not described at all.

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

manage_whatsapp_deal_notesAInspect

Comprehensive WhatsApp deal note management tool supporting all note operations. A note is what somebody wrote on a sales deal; a note that carries a due date IS a task. Perfect for managing sales notes, tracking tasks, and attaching files to deals. Supports both standalone notes and comments nested under deal history events.

Available actions:

  • list: Retrieve all notes for a deal with filtering and metadata

  • create: Create a new note (optionally as a task with due date, or as a comment on a deal event)

  • update: Update note text, due date, completion status, or file attachments

  • delete: Remove a note (requires confirmation)

Note: The Sales Funnel API is available on the Platform Professional subscription and above. Write endpoints return HTTP 403 when the account's plan does not include it; read endpoints are deliberately NOT plan-gated. Restricted agents (plain agent role) only ever receive their own deals, regardless of filters.

NameRequiredDescriptionDefault
doneNoCompletes the task (true) or reopens it (false). Update only.
skipNoNumber of notes to skip (>= 0). List only.
textNoNote body (required for create, optional for update)
dueAtNoISO 8601 date-time string. A note that has one IS a task. On update, passing null turns the task back into a plain note.
eventNoId of one of the deal's own history events. Create only, set at birth and never moved. Makes the note a comment nested under that event.
filesNoIds of previously uploaded files to attach. Upload them first with the file-upload tools (POST /files). On BOTH create and update this means the COMPLETE list the note carries afterwards, never a delta: ids missing from the list are detached, and an empty array [] removes all of them. Accepted attachment types: images (jpeg, png, webp), PDF, Word, Excel, PowerPoint, plain text and markdown.
limitNoMaximum number of notes to return (1-200, default 50). List only.
actionYesAction to perform on deal notes
dealIdNoDeal ID (required for all actions)
noteIdNoNote ID (required for update and delete)
confirmDeletionNoConfirmation flag required for delete action

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses plan gating (write endpoints return 403 on unsupported plans, reads are not gated), restricted agent visibility (only own deals), that delete requires confirmation, that dueAt null on update turns a task into a plain note, and that file attachments use full-list semantics (not delta). These are important behavioral traits beyond the schema.

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 front-loaded with purpose and action list, then follows with important behavioral notes. It is somewhat lengthy but every sentence contributes useful context, and the bulleted action list aids scanning. Minor redundancy in the opening phrase keeps it from a 5.

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 absence of annotations and output schema, the description is quite complete: it covers plan requirements, agent restrictions, confirmation needs, update side effects, and file attachment semantics. It does not detail the exact return shape for list actions, but for a tool of this complexity it provides enough to invoke correctly.

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 all 11 parameters in detail. The description reinforces the note/task relationship via dueAt and outlines action-specific requirements, but it adds no parameter-level syntax or constraints beyond what the schema provides. Baseline 3 is appropriate when schema coverage is complete.

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 a specific verb and resource: managing WhatsApp deal notes, with a clear list of actions (list, create, update, delete). It defines what a note and task are, which distinguishes the resource from sibling tools like manage_whatsapp_deals. However, it does not explicitly name a sibling tool for contrast, keeping it at a 4 rather than a 5.

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 says it is "Perfect for managing sales notes, tracking tasks, and attaching files to deals," which gives implied use cases. It also notes plan gating and restricted agent behavior. But it does not explicitly state when to choose this tool over alternatives (e.g., manage_whatsapp_deals or file-upload tools), so guidance is only implied.

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

manage_whatsapp_dealsAInspect

Comprehensive WhatsApp sales funnel deal management tool. A deal is one sales opportunity tied to a WhatsApp contact, sitting in one stage of one pipeline. Supports listing, retrieving, creating, updating, archiving, moving between stages, linking to chats, and fetching event history.

Available actions:

  • list: Retrieve deals with rich filtering (pipeline, stage, status, agent, contact, device, stalled, chatStatus, unread, updatedAfter/Before, pagination)

  • get: Retrieve a single deal by ID

  • create: Create a new deal (requires pipeline, device, contactWid)

  • update: Update deal fields (title, amount, currency, agent, department) - stage moves are NOT here, use move_stage

  • archive: Archive a deal (frees the contact's open-deal slot, preserves as sales history)

  • move_stage: Move a deal to another stage (requires previousStage for atomic compare-and-swap)

  • link_chat: Link a deal to a WhatsApp conversation by contactWid

  • events: Fetch deal event history (limit, skip)

Important notes:

  1. move_stage requires previousStage - the stage the client last saw. The server performs an atomic compare-and-swap and answers 409 when it no longer matches. Always read the deal first (action: 'get') and pass its current stage value.

  2. Only ONE open deal may exist per contact per pipeline. The API answers 409 otherwise, and the check spans the @c.us/@lid identity equivalence.

  3. Restricted agents (plain agent role) only ever see their own deals, regardless of filters.

  4. Write operations (create, update, archive, move_stage, link_chat) require the Professional plan or above. Read operations (list, get, events) are not plan-gated.

NameRequiredDescriptionDefault
cardNoDisplay-only card seed
pageNoPage number (1-based)
sizeNoPage size (default 50)
skipNoNumber of events to skip
agentNoAssigned agent user ID. Filter value on list; on update, pass null to unassign
limitNoNumber of events to return (default 50)
stageNoStage ID within the pipeline
titleNoDeal title (defaults to contact name)
actionYesAction to perform on deals
amountNoDeal amount. On update, pass null to clear it
dealIdNoDeal ID (required for get, update, archive, move_stage, link_chat, events)
deviceNoWhatsApp device ID. A single ID when creating a deal; one or more IDs when filtering a list
statusNoDeal status filter (defaults to open)
unreadNoOnly deals whose conversation has unread messages
chatWidNoWhatsApp ID of the chat the deal was created from
contactNoDeals for one contact (spans @c.us/@lid identity equivalence)
stalledNoDeals stuck in their stage (requires pipeline)
currencyNoISO 4217 currency code. Defaults to the pipeline currency; on update, pass null to clear it
pipelineNoFilter by pipeline ID
chatStatusNoState of the deal's WhatsApp conversation (requires pipeline, only for open deals)
contactWidNoWhatsApp ID of the contact (required for create and link_chat)
departmentNoDepartment ID. On update, pass null to clear it
lostReasonNoReason for losing the deal (only meaningful when moving to a lost stage)
unassignedNoOnly deals with no agent (cannot be combined with agent)
updatedAfterNoISO 8601 date-time, e.g. 2026-08-01T00:00:00.000Z (half-open range [after, before))
previousStageNoThe stage the client last saw (required for move_stage). Must be the current stage value from a prior get. Server answers 409 if stale.
updatedBeforeNoISO 8601 date-time, e.g. 2026-08-01T00:00:00.000Z (half-open range [after, before))
confirmDeletionNoConfirm deal archiving (required for archive action)

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses atomic compare-and-swap behavior, 409 conflict conditions, identity-equivalence checks, archive side effects, restricted-agent visibility, and Professional-plan gating for write operations. These are exactly the behavioral traits an agent needs before calling the 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 front-loaded with the tool purpose and a scannable action list, followed by high-value operational notes. Despite being detailed, every section corresponds to actionable invocation or error-prevention information for a complex 28-parameter tool.

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

Completeness5/5

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

Given the tool's complexity, lack of annotations, and lack of an output schema, the description is complete enough for reliable selection and invocation. It covers action semantics, prerequisites, conflict handling, visibility rules, plan gating, and pagination/event options; return payload detail is the only minor omission, but it is not required to call 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 already 100%, so the baseline is 3. The description adds useful semantic context beyond the schema by mapping parameters to actions: create needs pipeline/device/contactWid, move_stage needs previousStage from a prior get, link_chat needs contactWid, and update excludes stage moves. It does not cover every parameter detail, but it meaningfully improves action-specific parameter interpretation.

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?

Defines the tool as WhatsApp sales funnel deal management and explicitly defines what a deal is, then enumerates specific supported actions. The verb+resource are clear and the action list distinguishes deal operations from sibling areas like pipelines and deal notes.

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

Usage Guidelines5/5

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

The action list provides explicit selection guidance, and the notes add when-to-use constraints: move_stage instead of update for stage changes, read/get before move_stage, one open deal per contact per pipeline, and plan gating for writes. It also explains restricted-agent visibility, which prevents incorrect filtering expectations.

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

manage_whatsapp_departmentsBInspect

Comprehensive WhatsApp department management tool supporting all department operations. Perfect for organizing team structure, managing agent assignments, and customizing department appearance. Supports all WhatsApp department operations through a unified action-based interface.

Available actions:

  • list: List and retrieve all departments with complete information

  • create: Create new departments with agents, colors, and icons

  • update: Update existing department information and agent assignments

  • delete: Delete departments (removes department but preserves agent assignments)

NameRequiredDescriptionDefault
iconNoDepartment icon identifier
nameNoDepartment name (required for create, optional for update)
colorNoDepartment color for visual identification
actionYesAction to perform on WhatsApp departments
agentsNoArray of agent IDs to include in the department (required for create, optional for update)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
descriptionNoDepartment description (max 300 characters)
departmentIdNoDepartment ID (required for update, delete actions)

TDQS

B3.3/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 behavioral burden. It discloses one genuinely valuable trait — delete removes the department but preserves agent assignments — but says nothing about permission requirements, whether delete is irreversible, whether update replaces or merges fields, or what a create response returns.

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 action bullet list is well structured and front-loads the useful content, but the opening two sentences are largely redundant restatements of 'supports all department operations' before the list arrives. Tightening the preamble would make the definition notably stronger.

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 an 8-parameter mutation tool with no annotations and no output schema, the description covers the action space and one destructive side effect, but omits permissions, error conditions, and return shape. Adequate to call the tool, not complete enough to call it safely.

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 every parameter is already documented, including which fields are required for create vs update. The description adds only marginal framing ('with agents, colors, and icons'), so the baseline 3 for a fully-described schema 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 names a specific verb set and resource ('WhatsApp department management') and enumerates the four operations (list/create/update/delete) with enough detail for an agent to match intent to action. It is clearly distinguishable from siblings like manage_whatsapp_team or manage_whatsapp_labels by resource, though it never explicitly draws that contrast.

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 action list implies which operation corresponds to which intent, which is useful routing information. However, there is no explicit when-to-use guidance, no exclusion against the overlapping manage_whatsapp_team/manage_whatsapp_queue siblings, and no stated prerequisites such as needing a valid device before any operation.

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

manage_whatsapp_group_participantsCInspect

Universal WhatsApp group participants management tool that handles all participant operations through action-based parameters. Supports add, remove, promote, demote, and approval management operations. Essential for WhatsApp group moderation.

NameRequiredDescriptionDefault
allNoApply action to all participants/pending members (for remove, approve, reject actions)
actionYesAction to perform on group participants
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
phonesNoPhone numbers of participants (for remove, promote, demote, approve, reject actions)
groupIdYesWhatsApp group ID
participantsNoParticipants to add with admin status (for add action)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, yet it only implies mutation without stating permission requirements, reversibility of remove/demote/reject, whether 'all' can bulk-remove every member, or rate limits. For a destructive moderation tool with zero structured safety hints, this is a significant gap.

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

Conciseness4/5

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

Two sentences, front-loaded with the resource and the action list. The words 'Universal' and 'Essential for WhatsApp group moderation' are mild filler but do not obscure the core statement.

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

Completeness3/5

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

With six parameters fully documented by the schema and no output schema, the description is adequate for invocation, but it omits what get_pending returns and the admin preconditions for promote/demote/approve. Those omissions matter for a six-parameter mutation tool with no annotations.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already documents its role (phones vs participants, the 'all' flag, the action enum). The description adds little beyond restating that operations are action-driven, so the baseline of 3 applies.

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 names a specific resource (WhatsApp group participants) and enumerates the supported operations (add, remove, promote, demote, approvals), so an agent can tell what is managed. It does not explicitly distinguish itself from the sibling 'manage_whatsapp_groups', so a caller must infer that this one operates on membership rather than the group entity itself.

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?

'Essential for WhatsApp group moderation' is a vague endorsement rather than a usage rule. There is no statement of when to choose this over manage_whatsapp_groups, no prerequisites (e.g. the device account must be a group admin), and no mention that remove/demote/reject are irreversible moderation actions.

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

manage_whatsapp_groupsCInspect

Universal WhatsApp group management tool that handles all group operations through action-based parameters. Supports search, create, update, join, leave, and invite management operations. Perfect for comprehensive WhatsApp group administration.

NameRequiredDescriptionDefault
urlNoGroup invitation URL (for join action)
codeNoGroup invitation code (for join action)
kindNoFilter groups by type (for search action)
nameNoGroup name (required for create action)
pageNoResults page number (for search action)
sizeNoResults page size (for search action)
sortNoSort field and order (for search action)
actionYesAction to perform on WhatsApp groups
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
removeNoRemove group from chat list after leaving (for leave action)
searchNoSearch groups by name or description (for search action)
statusNoFilter groups by status (for search action)
groupIdNoWhatsApp group ID (required for get, update, leave, get_invite, revoke_invite actions)
includeNoInclude additional data in response
ephemeralNoEphemeral messages duration (for create/update actions)
descriptionNoGroup description (for create/update actions)
permissionsNoGroup permissions and settings (for create/update actions)
participantsNoGroup participants (required for create action)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden — yet it never discloses that this tool performs destructive/irreversible operations (leave, revoke_invite, create, update), what the 'remove' flag does, or what permissions are required. Listing action names implies mutation but gives no consequence or safety context.

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?

Three short sentences that front-load the purpose, which is good, but 'Universal' and 'Perfect for comprehensive WhatsApp group administration' are filler that duplicates the preceding sentence. The middle sentence carries all the real 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 an 18-parameter action-multiplexed tool with nested objects and no output schema, the description is thin: it doesn't explain that most parameters are action-conditional, nor what a search vs. get response looks like. The rich schema descriptions compensate substantially, keeping this at a minimum-viable 3 rather than lower.

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 per-parameter meaning (device, groupId, participants, permissions) is already documented in the schema, warranting the baseline 3. The description adds no action-to-parameter mapping beyond the action list already in the schema enum.

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?

It names a specific resource (WhatsApp groups) and enumerates the operations (search, create, update, join, leave, invite), so an agent knows the scope. It fails to differentiate itself from the sibling manage_whatsapp_group_participants, which overlaps on participant-level work.

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 only guidance is the marketing line 'Perfect for comprehensive WhatsApp group administration,' which restates the purpose rather than saying when to pick this tool over the sibling participant/channel tools. No prerequisites, no exclusions, no action-selection advice.

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

manage_whatsapp_labelsBInspect

Comprehensive WhatsApp label management tool supporting all label operations. Perfect for organizing conversations with color-coded categories and managing chat organization systems. Supports both WhatsApp Business and platform-specific labels.

Available actions:

  • list: Retrieve all available labels with filtering and metadata

  • create: Create new labels with custom colors and descriptions

  • update: Update existing label colors and descriptions

  • delete: Remove labels and cleanup associated chats

NameRequiredDescriptionDefault
nameNoLabel name (required for create, update, delete actions)
colorNoLabel color from predefined palette (required for create, optional for update)
actionYesAction to perform on WhatsApp labels
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
activeOnlyNoOnly return active labels (for list action)
descriptionNoLabel description (optional for create, required for update)
filterByScopeNoFilter labels by scope for list action
confirmDeletionNoConfirm label deletion and removal from all chats/contacts (required for delete action)
includeMetadataNoInclude additional label metadata like scope and active status

TDQS

B3.1/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 the full behavioral burden, yet it never states that create/update/delete mutate shared state, that deletion removes labels from all chats, or what permissions are needed. The phrase 'cleanup associated chats' hints at a destructive cascade but is not framed as a warning or tied to the confirmDeletion parameter.

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 action list is compact and front-loadable, but the opening paragraph spends sentences on marketing ('Comprehensive', 'Perfect for organizing conversations') and a redundant note about Business vs. platform labels that carries no actionable 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 9-parameter tool spanning read and destructive write actions with no annotations and no output schema, the description covers the action surface but omits safety context (confirmDeletion, irreversibility) and says nothing about what list returns or how metadata flags affect it.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter is documented inline, so the baseline applies. The description adds only that colors come from a palette and that labels carry descriptions; it does not explain device scoping, activeOnly, or filterByScope beyond what the schema already says.

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 action list gives a specific verb+resource mapping (list/create/update/delete on WhatsApp labels), which is more than the vague opening sentence. No sibling tool covers labels, so differentiation is implicit rather than stated, but an agent can identify the resource unambiguously.

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?

Each action is described with a short purpose, which implies when to choose it, but there is no guidance on prerequisites, when-not-to-use, or how this relates to chat-level tools like manage_whatsapp_chat. It stops at enumerating the enum values already present in the schema.

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

manage_whatsapp_message_interactionsCInspect

Manage WhatsApp message interactions including replies, forwards, reactions, and poll voting. Handle all message interaction operations with action-based approach for comprehensive message engagement functionality.

NameRequiredDescriptionDefault
chatYesWhatsApp chat ID (e.g., 1234567890@c.us for phone numbers, 123456789000000000@g.us for groups, 123456789000000@newsletter for WhatsApp channels)
voteNoVote details (required for vote action)
agentNoAgent ID (24 character hex string)
quoteNoMessage ID to reply to (required for reply action)
actionYesAction to perform for WhatsApp message interactions
deviceNoTarget WhatsApp device ID (24 character hex string) used for message delivery. Only required if you have multiple WhatsApp numbers connected. Use MCP tool "get_whatsapp_devices" to retrieve a list of available devices.
forwardNoForward message details (required for forward action)
messageNoReply message content (required for reply action)
reactionNoEmoji reaction to send, use "-" to remove reaction (required for reaction action)
selectIdNoID of selected button/list option when replying to interactive messages (for reply action)
referenceNoCustom reference ID for message tracking
reactionMessageNoMessage ID to react to (required for reaction action)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden and adds nothing behavioral: it does not say that reply/forward/reaction actually send outbound content, whether a reaction can be undone, what permissions are needed, or what is returned. The schema carries the only concrete behavioral hint ('-' removes a reaction), leaving the description redundant.

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 first sentence is front-loaded and useful; the second sentence restates the same idea in abstractions ('action-based approach', 'comprehensive message engagement functionality') without adding information. Net result is short but roughly one third wasted.

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

Completeness4/5

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

With 12 parameters, nested objects, and no annotations or output schema, the description is thin but the richly documented schema covers the action-to-parameter mapping, so an agent can construct a valid call. What remains missing is the behavioral framing (outbound effects, device selection implications) rather than the mechanics.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself flags which parameters belong to which action (e.g. 'required for reply action', 'required for forward action'). The description adds no mapping or format detail beyond the action names already listed in the enum, so the baseline 3 applies.

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 names a specific verb (manage) and resource (WhatsApp message interactions) and enumerates the four concrete operations matching the action enum: replies, forwards, reactions, poll voting. However, it does not distinguish this from close siblings like send_whatsapp_message or manage_whatsapp_channel_messages, so an agent must still infer the boundary.

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?

There is no guidance on when to use this tool versus sending a new message via send_whatsapp_message, nor any exclusion for channel messages. The only usage-like statement, 'action-based approach for comprehensive message engagement functionality', is filler rather than a condition.

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

manage_whatsapp_pipelinesAInspect

Comprehensive sales pipeline management tool for the WhatsApp sales funnel (CRM). A pipeline is a sales board: an ordered list of stages that deals move through, optionally fed by specific WhatsApp numbers. Use it to set up sales boards, inspect their configuration and read their headline numbers.

Available actions:

  • list: Retrieve all sales pipelines of the account, optionally only those fed by one device

  • get: Retrieve a single pipeline with its full stage configuration

  • create: Create a new pipeline with stages, entry rules and behaviour settings

  • update: Update pipeline properties, stages, lost reasons or settings

  • delete: Remove a pipeline (refused with 409 while it still holds open deals)

  • summary: Per-stage deal counts and open amount totals for the board, plus won and lost totals for the last 30 days

Stage ordering matters: a pipeline requires at least one open, one won and one lost stage, and the won and lost stages must come AFTER all the open ones, because a deal advances to the next open stage by position. When no stages are supplied on create, a sensible default ladder is seeded.

Note: the sales funnel is available on the Platform Professional subscription and above. Write operations answer 403 on a plan without it, while reads stay available so an account that downgrades keeps access to its funnel data.

NameRequiredDescriptionDefault
iconNoPipeline icon identifier. Defaults to funnel-dollar
nameNoPipeline name (required for create action)
colorNoPipeline color name used for quick identification
entryNoEntry rule configuration: how chats enter this pipeline
actionYesAction to perform on WhatsApp sales pipelines
deviceNoWhatsApp device ID: only return pipelines fed by this device (for list action)
stagesNoPipeline stages, in order. At least one open, one won and one lost stage are required, and the won and lost stages must come after all the open ones
devicesNoWhatsApp device IDs that feed this pipeline. An empty array means all the account devices
currencyNoISO 4217 currency code for deal amounts. Defaults to the account currency; on update, pass null to clear it back to that default
settingsNoPipeline behaviour settings
pipelineIdNoPipeline ID (required for get, update, delete and summary actions)
descriptionNoPipeline description
lostReasonsNoPreset lost reasons offered when a deal is lost
confirmDeletionNoConfirm pipeline deletion (required for delete action)

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are supplied, so the description carries the full burden, and it does substantial work: the 409 refusal condition on delete, the requirement of at least one open/won/lost stage with won and lost after all open stages, default-stage seeding on create, and the Professional-plan gating that makes writes 403 while reads stay open. It does not describe list pagination or result ordering, which are the remaining behavioral gaps for a no-annotation 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?

Front-loaded with the domain definition before any action list, then a scannable per-action bullet block, then two short 'note' paragraphs for constraints and plan gating. Every sentence carries information an agent needs; nothing is padding, despite the length the six-action surface requires.

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

Completeness4/5

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

With 14 parameters, nested objects, no annotations and no output schema, the definition still covers the high-risk behaviors an agent needs: destructive-delete precondition, plan-gating failure mode, and stage-ordering validity. It also summarizes what 'summary' returns (per-stage counts, open amounts, 30-day won/lost totals), compensating for the absent output schema. The list/get return shape and pagination behavior remain unspecified.

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 of 3 applies: enum values, the 24-hex pipelineId pattern, stage constraints and the currency null-clears-to-account-default rule are all already documented in the schema. The description reinforces the ordering rule for the stages array and the 'fed by one device' meaning of the device filter, but adds little that is not already in the structured field descriptions.

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

Purpose5/5

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

The description states a specific verb+resource ('sales pipeline management') and defines the domain concept ('a pipeline is a sales board: an ordered list of stages that deals move through'). It also implicitly separates itself from the sibling manage_whatsapp_deals: this tool manages the board, not the deals. The six enumerated actions remove any ambiguity about the scope of 'manage'.

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?

Each of the six actions is given a one-line explanation of what it does and, importantly, when it fails ('delete: refused with 409 while it still holds open deals'). The subscription note tells the agent when writes will 403 vs when reads still work, which is actionable usage guidance. It stops short of explicitly pointing at a sibling for per-deal work, which keeps it from a 5.

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

manage_whatsapp_queueBInspect

Comprehensive WhatsApp queue management tool supporting all queue operations. Perfect for monitoring queue health, controlling message delivery flow, and performing bulk message operations. Supports all WhatsApp queue operations through a unified action-based interface.

Available actions:

  • get_status: Get comprehensive queue statistics and status information

  • update_status: Update queue processing status (pause/active/reject/freeze) with optional force delivery

  • delete_messages: Delete queued messages with flexible filtering options

NameRequiredDescriptionDefault
forceNoForce delivery of all queued messages with no delay for 30 minutes (only works with "active" or "reject" status)
actionYesAction to perform on WhatsApp queue
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
statusNoQueue processing status (required for update_status action)
filtersNoFiltering options for selective message deletion (for delete_messages action)
waitForCompletionNoWait until all messages are deleted (may take up to 90 seconds for large queues)

TDQS

B3/5.0
Behavior2/5

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

No annotations exist, so the description carries the full disclosure burden and largely does not meet it. It never states that delete_messages is irreversible, what pause/freeze/reject actually do to in-flight messages, whether permissions or a connected device are required, or that the tool can block for up to 90 seconds. The only behavioral detail (force delivery for 30 minutes) is already in the schema, not the description.

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 action list is well front-loaded and easy to scan, but the opening three sentences say the same thing three times ("comprehensive ... supporting all queue operations ... supports all queue operations through a unified action-based interface"), which is pure filler. The useful content is roughly a third of the length.

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?

This is a mutation-capable tool with a nested filter object, no annotations, and no output schema, so the description needed to cover side effects, return shape, and safety. It covers none of them — an agent cannot learn from the description what get_status returns, what deletion scope defaults to, or that deleting with no filters may wipe the whole queue.

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 each parameter (including the nested filters object, status enum, and force/waitForCompletion flags) is already documented in the schema; the description adds no format or constraint detail beyond what is there. Baseline 3 applies — the action list paraphrases the enum without adding semantics such as which parameters apply to which action (beyond the status/force hints already in the schema).

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

Purpose4/5

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

The description names a specific resource (WhatsApp queue) and enumerates the three operations it performs, so an agent knows exactly which capabilities live here. It loses a point because the framing sentences ("Comprehensive ... supporting all queue operations", "Supports all WhatsApp queue operations through a unified action-based interface") are restatements of the same idea rather than sharper scoping, and it never states what distinguishes this from the many other manage_whatsapp_* siblings beyond the word "queue".

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?

"Perfect for monitoring queue health, controlling message delivery flow, and performing bulk message operations" implies when to reach for it, and each action is paired with a use case. But there are no explicit preconditions (a valid device ID, an existing queue), no when-not-to-use guidance, and no routing to alternatives such as send_whatsapp_message or the chat tools.

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

manage_whatsapp_statusBInspect

Comprehensive WhatsApp status management tool supporting all status operations. Perfect for managing status lifecycle, publishing immediate or scheduled content, and retrieving status history. Supports all WhatsApp status operations through a unified action-based interface.

Available actions:

  • get: Search and retrieve status history with comprehensive filtering

  • publish: Publish immediate status updates with text, images, or videos

  • schedule: Schedule status updates for future publishing with advanced timing

NameRequiredDescriptionDefault
ackNoFilter by delivery status (for get action)
widNoFilter by specific WhatsApp message IDs (for get action)
chatNoFilter status by specific chat WhatsApp ID (for get action)
flowNoFilter by message direction (for get action)
fontNoFont style for text status (for publish/schedule actions)
mineNoReturn only status published by your own WhatsApp number (for get action)
pageNoPage number for pagination (for get action)
typeNoFilter by status content types (for get action)
colorNoBackground color for text status (for publish/schedule actions)
delayNoDelay in seconds (for schedule action with scheduleType: delay)
limitNoMaximum number of status entries to retrieve (for get action)
mediaNoMedia content (image/video) for status update (for publish/schedule actions)
orderNoEnforce strict publication order for scheduled status (for publish action)
phoneNoFilter status from specific phone number or WhatsApp ID (for get action)
actionYesAction to perform on WhatsApp status
deviceNoWhatsApp device ID (24-character hex string)
searchNoSearch status by text content, contact name, or media filename (for get action)
toDateNoGet status published up to this date (for get action)
delayToNoTime notation delay (for schedule action with scheduleType: delayTo)
messageNoText content for status update (required for text status in publish/schedule actions)
fromDateNoGet status published from this date onwards (for get action)
scheduleNoSchedule options for delayed publishing (for publish action)
timezoneNoTimezone for date scheduling (for schedule action)
referenceNoFilter by custom reference field or set reference for publish/schedule
scheduledNoReturn only scheduled status to be published in the future (for get action)
sortOrderNoSort order by creation date (for get action)
publishDateNoSpecific publish date and time (for schedule action with scheduleType: date)
strictOrderNoEnforce strict publication order (for schedule action)
scheduleTypeNoType of scheduling method (required for schedule action)
idempotencyKeyNoUnique key to prevent duplicate status publishing (for publish action)

TDQS

B3.1/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 behavioral-disclosure burden. It names write-like actions but does not state permissions, visibility, reversibility, rate limits, error behavior, or side effects of publishing/scheduling status updates.

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 reasonably compact and uses an action-based bullet structure that is easy to scan. It has some redundancy in repeatedly emphasizing comprehensive/all status operations, but it remains front-loaded and 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?

For a 30-parameter tool with nested objects, no annotations, and no output schema, the description is under-specified. It does not explain action-specific requirements such as which parameters are needed for publish versus schedule, nor does it describe return values, permissions, or scheduling constraints.

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 parameter meanings are already well documented in the schema. The description adds only high-level action groupings and does not meaningfully clarify the 30 parameters beyond what the schema provides.

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 WhatsApp status management and enumerates the three supported actions (get, publish, schedule), which makes the tool's scope understandable. It does not explicitly differentiate itself from sibling tools, but no sibling appears to cover status operations directly.

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 action list implies when each mode is appropriate: get for history retrieval, publish for immediate updates, schedule for future publishing. However, there is no explicit guidance on when to use this tool versus related siblings such as send_whatsapp_message, nor are there exclusions or prerequisites.

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

manage_whatsapp_teamAInspect

Comprehensive WhatsApp team management tool supporting all team operations. Perfect for managing team member lifecycle, device access, and role assignments. Supports all WhatsApp team operations through a unified action-based interface.

Available actions:

  • search: Search and list team members with filtering options

  • get: Get detailed information about a specific team member by ID

  • create: Create a new team member and grant them access to a WhatsApp device (requires device, email, displayName, password, role and color)

  • update: Update an existing team member's name, email, password, role or color

  • delete: Delete one or more team members from the account, choosing what happens to their assigned chats

  • grant_access: Grant an existing team member access to a WhatsApp device

  • revoke_access: Revoke a team member's access to a WhatsApp device, choosing what happens to their assigned chats

Notes:

  • New team members are always created against a specific WhatsApp device and are granted access to it immediately.

  • grant_access and revoke_access operate on a single team member at a time.

  • delete, and revoke_access when chatAction is "reassign", require reassignTo.

NameRequiredDescriptionDefault
idsNoRestrict search results to these team member IDs
pageNoResults page number
roleNoFilter by team member role for search, or the role to assign for create and update
sizeNoMaximum number of results per page
colorNoTeam member color (required for create, optional for update)
emailNoTeam member email address (required for create; may be used instead of userId to identify the member for delete and revoke_access)
forceNoDelete team members even when they still have access to active WhatsApp devices (for delete action)
queryNoFree text search over team member name and email (for search action)
actionYesAction to perform on WhatsApp team members
deviceNoWhatsApp device ID (required for create, grant_access and revoke_access actions; optional filter for search)
inviteNoSend an invitation email to the new team member (for create action)
removeNoAlso delete the team member from the account, not just from this device (for revoke_access action)
statusNoFilter by team member status (for search action)
userIdNoTeam member ID (required for get, update, grant_access and revoke_access actions)
userIdsNoArray of team member IDs to delete (required for the delete action, max 10)
passwordNoTeam member password (required for create, optional for update)
exceptIdsNoExclude these team member IDs from search results
chatActionNoWhat to do with the chats assigned to the removed team memberunassign
loginAfterNoOnly team members whose last login is after this ISO 8601 date and time
reassignToNoTeam member ID to reassign chats to (required when chatAction is "reassign")
displayNameNoTeam member display name (required for create)
loginBeforeNoOnly team members whose last login is before this ISO 8601 date and time
onlineAfterNoOnly team members last seen online after this ISO 8601 date and time
onlineBeforeNoOnly team members last seen online before this ISO 8601 date and time

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does disclose the destructive surface: delete removes team members and lets the caller choose what happens to their chats via chatAction, revoke_access with 'remove' deletes the member from the account entirely, and 'force' signals a guard that would otherwise block deletion. It stops short of stating permission requirements or whether deletion is reversible.

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

Conciseness4/5

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

Front-loaded action list with per-action one-liners plus a tight Notes block is well suited to a multi-action dispatcher. The opening two sentences are largely redundant with each other ('comprehensive team management' / 'supports all team operations through a unified action-based interface'), costing a little efficiency.

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 24-parameter, action-dispatch tool with no output schema and no annotations, the description covers action semantics, key required-field bundles, and destructive side effects. It does not describe result shape, pagination behavior for search (page/size), or the meaning of status filters, leaving some gaps an agent may need.

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 the baseline is 3, but the description adds cross-parameter dependency semantics the schema only states locally: reassignTo is required when chatAction is 'reassign', and create requires device/email/displayName/password/role/color as a bundle. That conditional logic is genuine added value beyond the per-field descriptions.

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 names the specific resource (WhatsApp team members) and enumerates all seven supported actions verb-by-verb, so the agent knows exactly what scope this tool covers. No sibling tool handles team membership, so differentiation is achieved by the explicit domain statement rather than by naming an alternative.

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?

Each action is paired with its intent (e.g. 'grant_access: Grant an existing team member access to a WhatsApp device'), and the Notes section adds applicability constraints such as grant_access/revoke_access operating on one member at a time and delete/revoke_access requiring reassignTo under 'reassign'. There is no explicit when-not-to-use guidance or routing to a sibling, which keeps it below a 5.

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

pingAInspect

Basic ping test to check MCP server connectivity and response time. Returns server status and timestamp.

NameRequiredDescriptionDefault
messageNoOptional message to include in the ping responseping

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the load; it does disclose the return content (status and timestamp) and that it is a lightweight timing probe. It omits that the call is side-effect-free and that the optional message is echoed back, but for a trivial probe this is reasonably informative.

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 short sentences with zero filler; the purpose is front-loaded and the return behavior follows immediately.

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 zero-required-parameter diagnostic with no output schema, the description tells the agent what it gets back. The only missing piece is disambiguation from 'health_check', which matters given the crowded sibling list.

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

Parameters3/5

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

Schema description coverage is 100% and the single 'message' parameter is fully documented in the schema (default 'ping', max 100 chars). The description adds nothing about the parameter, so the schema-only baseline of 3 applies.

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

Purpose4/5

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

States a specific action (connectivity/response-time check) and what it returns (server status and timestamp). It does not differentiate itself from the sibling 'health_check', which appears to serve an overlapping purpose, so an agent cannot fully route between the two from the text alone.

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 purpose implies when to call it (a quick connectivity check), but there is no explicit when/when-not guidance and no mention of the closely related 'health_check' sibling. With two overlapping diagnostics tools available, the lack of an alternative reference is a real gap.

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

search_whatsapp_chat_filesBInspect

Search and list received files from WhatsApp chats (inbound files). These are media files that were sent to your WhatsApp number by other users. Supports filtering by chat, file type, date range, and more.

NameRequiredDescriptionDefault
chatNoFilter by specific chat IDs
flowNoFilter by message flow direction
pageNoPage number for pagination (0-based)
sizeNoNumber of files to return per page
sortNoSort order for resultsdate:desc
typeNoFilter by file media types
afterNoFilter files received after this date (ISO 8601 format)
beforeNoFilter files received before this date (ISO 8601 format)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
searchNoSearch files by filename or content

TDQS

B3.4/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 usefully defines what counts as a match ('media files sent to your WhatsApp number by other users') and implies a read-only listing, but says nothing about permissions, result ordering defaults, or whether returned entries include a ready-to-use file URL versus requiring a separate download call.

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?

Three short sentences with the inbound scoping constraint front-loaded, which is the key disambiguator. The trailing 'and more' is slightly vague but costs little.

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

Completeness3/5

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

With ten parameters, no annotations, and no output schema, the description must cover the remaining gaps and partially does so via the inbound definition. It never addresses what a result record contains or how pagination/sorting defaults behave beyond the schema, which is the main thing an agent still has to guess.

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 every one of the ten parameters is already documented, including defaults for page/size/sort and the ISO 8601 date formats. The description only restates the filter surface ('chat, file type, date range, and more') without adding syntax or constraints, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (search/list) and resource (received files from WhatsApp chats) and pins the scope to inbound media, which implicitly separates it from the sibling search_whatsapp_outbound_files. It does not name that sibling explicitly, so an agent must infer the pairing from the '(inbound files)' parenthetical.

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

Usage Guidelines3/5

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

Usage is only implied: the inbound qualifier tells an agent this is the tool for files sent to its number, and the filter list suggests exploratory retrieval. There is no explicit when-to-use/when-not, no mention of download_whatsapp_chat_file or get_whatsapp_chat_file_details for actually fetching content, and no prerequisites (e.g., needing a valid device).

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

search_whatsapp_chats_by_nameBInspect

Search for WhatsApp chats by contact name, group name, phone number, company, metadata or private notes. Perfect for quickly finding specific conversations.

Same as get_whatsapp_chats with action "search".

NameRequiredDescriptionDefault
pageNoResults page, starting at 0
limitNoNumber of WhatsApp chats per call (max 100)
queryNoFree text to search for (required for search action)
deviceYesWhatsApp device ID connected to Wassenger (24 character hexadecimal string)
contactTypesNoFilter by chat type (required for by_contact_type action, optional elsewhere)

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 carries the full burden, yet beyond implying a read-only lookup it discloses nothing about behavior: no result ordering, no note on partial/fuzzy matching, no device/permission requirements, no paging behavior. The safety profile can only be guessed from the word "search".

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

Conciseness4/5

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

Two short sentences with the core capability front-loaded and zero filler. The second sentence ("Same as get_whatsapp_chats with action 'search'") is slightly awkward given get_whatsapp_chats is also a standalone sibling, but it is compact and informative.

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 5-parameter search tool with no annotations and no output schema, the description covers the what but not the how: nothing on paging through large result sets, on whether the device must be linked, or on what a match looks like. It is adequate to call the tool, but thin given the missing structured 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 the baseline is 3; the schema already documents query, device, page, limit and contactTypes. The description adds only a slightly richer account of what the query string matches against (company, metadata, private notes) beyond the schema's generic "free text to search for".

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

Purpose4/5

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

States a specific verb and resource (search chats by name) and enumerates the searchable fields — contact name, group name, phone number, company, metadata, private notes. This distinguishes it reasonably well from siblings like get_whatsapp_chats_by_status or get_whatsapp_chats_by_date_range, though it never explicitly names a sibling.

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?

"Perfect for quickly finding specific conversations" implies usage, and the note that it equals get_whatsapp_chats with the search action hints at an alternative path. But there is no explicit when-to-use / when-not-to-use guidance against the many adjacent list tools, leaving the agent to infer routing.

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

search_whatsapp_outbound_filesAInspect

Search and list uploaded WhatsApp files with advanced filtering. Returns outbound files that have been uploaded to the platform for sending as media messages. Supports extensive filtering by filename, file type, size, creation date, tags, and more.

NameRequiredDescriptionDefault
extNoFilter by file extensions (e.g., ["jpg", "pdf", "mp4"])
kindNoFilter by file kinds (e.g., ["image", "video", "document"])
mimeNoFilter by MIME types (e.g., ["image/jpeg", "video/mp4"])
pageNoPage number for pagination (0-based)
sizeNoNumber of files to return per page
tagsNoFilter by file tags
afterNoFilter files created after this date (ISO 8601 format)
beforeNoFilter files created before this date (ISO 8601 format)
formatNoFilter by file format types
originNoFilter by upload origin: upload (local file) or remote (URL)
searchNoSearch files by filename, tags, or reference ID
statusNoFilter by file status
maxSizeNoMaximum file size in bytes
minSizeNoMinimum file size in bytes
filenameNoFilter by exact filename
permissionNoFilter by access permission level

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 does establish that this is a retrieval operation returning outbound uploaded files, but it says nothing about whether results are paginated, what the default ordering is, or whether a total count is returned — and it does not state read-only behavior explicitly.

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?

Three compact sentences, front-loaded with the verb and resource, then scope, then filter breadth. The trailing 'and more' is the only slack; everything else earns its place relative to a 16-parameter tool.

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 filtered-list tool with 100% schema coverage and no output schema, the description covers what the tool returns (outbound uploaded files) and what can be filtered — enough for an agent to call it correctly. Return-shape detail is the schema's burden here, not the description's.

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% across all 16 parameters, each with types, enums, defaults and bounds, so the schema already does the heavy lifting. The description only summarizes the filter dimensions ('filename, file type, size, creation date, tags') in general terms, adding no syntax or combination guidance beyond that.

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 a specific verb and resource ('Search and list uploaded WhatsApp files') and narrows scope to 'outbound files that have been uploaded to the platform for sending as media messages', which implicitly separates it from chat-attached files. However, it never names the near-identical sibling search_whatsapp_chat_files, leaving the agent to infer the distinction from the phrase 'outbound'.

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 'uploaded to the platform for sending as media messages' phrasing implies the use case (browsing the outbound media library before sending), but there is no explicit when-to-use or when-not guidance. With a sibling named search_whatsapp_chat_files in the catalog, the absence of a routing statement is a real gap.

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

send_whatsapp_flowAInspect

Send a published WhatsApp Form (Meta WhatsApp Flow) to a chat as a native interactive message: one message instead of asking question after question. Only works within the 24h customer-service window; to start a conversation, send a template whose button opens the form. Pass a token to match the answers to your own record (it comes back in the message:flow:response webhook), and data to prefill the form.

NameRequiredDescriptionDefault
ctaYesText of the button that opens the form (max 30 chars)
bodyNoMessage text shown above the button (max 1024 chars)
dataNoValues to prefill the form with, by field name
phoneYesRecipient phone number in international format (E.164), e.g. +34600111222
tokenNoYour reference for this send (an order or ticket id). It comes back with the answers.
deviceYesTarget WhatsApp device ID (24 character hex string)
footerNoFooter text under the message (max 60 chars)
headerNoHeader text above the message (max 60 chars)
screenNoScreen to open. If omitted, the form opens on its first screen.
flow_idYesThe WhatsApp Flow ID to send (flowId from list_whatsapp_flows)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only carry openWorldHint=true, so the description does real work: it discloses the 24h customer-service window constraint, the requirement that the flow be published, and the token round-trip via the message:flow:response webhook. It stops short of covering failure behavior, rate limits, or what the call returns on success, which keeps it from a 5.

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

Conciseness5/5

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

Three sentences, front-loaded with the core action, then the eligibility constraint and alternative, then the two semantically tricky params. No filler and no restatement of the name.

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

Completeness4/5

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

With 10 params, 4 required, a nested data object, and no output schema, the description covers the essential calling context: preconditions, alternative path, and the token/data mechanics. It leaves the response shape (message id, immediate failure modes) unspecified, a minor gap given the tool exists to hand off to a webhook.

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 light context around token (matched to your own record and returned in the webhook) and data (prefill), but both points are already in the schema's own parameter descriptions, and the UI text fields (header/body/footer/cta) and screen are untouched.

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

Purpose5/5

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

States a specific verb and resource ("Send a published WhatsApp Form ... as a native interactive message") and frames the mechanism (one message instead of a question-by-question flow). This is clearly differentiable from send_whatsapp_message (plain message) and create_whatsapp_template (template authoring) in the sibling list.

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

Usage Guidelines5/5

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

Gives an explicit when-not plus the alternative: "Only works within the 24h customer-service window; to start a conversation, send a template whose button opens the form." The agent knows both the eligibility gate and the fallback path without opening a schema.

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

send_whatsapp_messageAInspect

Comprehensive WhatsApp message sending with action-based operations. Supports all message types including text, media, location, contact, poll, event messages, with scheduling, live delivery, expiration, agent messaging, and template support. All message sending operations unified in one tool.

Scheduling: pass exactly one of deliverAt, delay or delayTo on the text, media, template, agent or scheduled actions. Leaving all three out sends the message right away. On WhatsApp Cloud API (WABA) numbers a plain text, media or agent message still needs the customer to have written within the last 24 hours at delivery time, so a reminder that lands later than that must use the template action.

NameRequiredDescriptionDefault
chatYesWhatsApp chat ID (e.g., 1234567890@c.us for phone numbers, 123456789000000000@g.us for groups, 123456789000000@newsletter for WhatsApp channels)
pollNoPoll content (required for poll action)
agentNoAgent ID (24 character hex string)
delayNoDeliver the message after this many seconds (max 31536000, a year)
eventNoEvent content (required for event action)
mediaNoMedia content (required for media action)
orderNoEnsure strict message delivery order
actionYesAction to perform for WhatsApp message sending
deviceNoTarget WhatsApp device ID (24 character hex string) used for message delivery. Only required if you have multiple WhatsApp numbers connected. Use MCP tool "get_whatsapp_devices" to retrieve a list of available devices.
actionsNoActions to perform after message delivery (for agent action)
agentIdNoAgent ID for agent messaging (required for agent action)
delayToNoDeliver the message after a duration: 30m, 2h, 3d, 2w, 1M (max a year)
enqueueNoMessage delivery mode (for live action)never
messageNoText message content (required for text, scheduled, live, expiring, agent, template actions)
contactsNoArray of contacts to send, max 10 (required for contact action)
locationNoLocation content (required for location action)
templateNoTemplate configuration (required for template action)
deliverAtNoAbsolute ISO 8601 instant to deliver the message at, with a time zone (e.g. 2026-09-20T09:00:00+02:00). Must be in the future and less than a year away
referenceNoCustom reference ID for message tracking
expirationNoTime-to-live duration e.g. "1h", "30m", "2d" (for expiring action)
previewUrlNoEnable URL preview in messages (for text, template actions)
sendReadAckNoSend chat read acknowledgment after the message is delivered

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden and does disclose important constraints like scheduling exclusivity and the WABA 24-hour delivery window. However, it does not explain many action-specific behaviors, rate limits, authentication needs, or return behavior, leaving significant gaps for such a large tool.

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 front-loaded with purpose and scheduling rules, and the scheduling guidance is dense and useful. It has some mild redundancy in the opening paragraph, such as repeating that all message sending operations are unified, but it remains appropriately sized for a complex 22-parameter tool.

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 complexity, 22 parameters, and no output schema, the description provides key operational context around scheduling and WABA delivery constraints. The schema itself thoroughly documents parameters, but the description does not explain return values or all action-specific behavior, so it is strong but not fully complete.

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 the schema already documents individual parameters. The description adds cross-parameter meaning by stating exactly one of deliverAt, delay, or delayTo must be used and that omission sends immediately, which is useful semantic context beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: it sends WhatsApp messages and enumerates supported message types and actions. It does not explicitly differentiate itself from sibling sending tools such as send_whatsapp_flow or campaign/channel message tools, so it falls short of a 5 despite being otherwise clear.

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 gives strong when-to-use guidance for scheduling: pass exactly one of deliverAt, delay, or delayTo, and leaving all out sends immediately. It also explains the WABA 24-hour window and directs delayed reminders to the template action. It does not, however, explain when to choose this tool over sibling sending tools.

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

update_whatsapp_file_metadataCInspect

Update metadata and properties of an uploaded WhatsApp file. You can modify filename, tags, expiration time, access permissions, format, and reference ID to better organize and manage your files.

NameRequiredDescriptionDefault
tagsNoNew tags for the file
fileIdYesFile ID (24 character hexadecimal string)
formatNoNew file presentation format
messageNoDefault caption text for media messages (images/videos only)
filenameNoNew filename for the file
referenceNoNew reference identifier
expirationNoNew expiration time-to-live
permissionNoNew access permission level

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and does not meet it: it never says whether this is a partial or full replacement update, what happens to fields omitted from the call, what permission level is required, or whether an expiration change affects files already referenced in messages. For a mutation tool with zero annotation coverage this is a real gap.

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

Conciseness4/5

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

Two compact sentences with the action front-loaded and the field list following. The second sentence's 'better organize and manage your files' is mildly redundant padding, but there is no real bloat.

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

Completeness2/5

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

With no annotations, no output schema, and eight parameters for a destructive-capable mutation, the description should cover update semantics (partial vs. replace), prerequisites, and the effect of permission/expiration changes. None of that is present, leaving an agent under-informed about how to call it safely.

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 all eight parameters are already documented in the schema, which sets the baseline at 3. The description restates six of the seven optional fields at a high level and adds no syntax, constraint, or interaction detail (e.g., that format=ptt applies only to audio), so it adds little beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource ('Update metadata and properties of an uploaded WhatsApp file') and enumerates the mutable fields, so an agent can distinguish it from read-level siblings like get_whatsapp_file_details or delete_whatsapp_file. It stops short of explicitly naming which sibling to use when, but the operation is unambiguous.

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

Usage Guidelines2/5

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

The only usage framing is the vague 'to better organize and manage your files', with no statement of when to choose this over upload_whatsapp_file_from_url, delete_whatsapp_file, or get_whatsapp_file_details. The prerequisite that the file must already be uploaded is only implied by the word 'uploaded'.

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

upload_whatsapp_file_from_urlBInspect

Upload a file from a remote URL to the WhatsApp platform for use in media messages. The file will be downloaded from the provided URL and stored securely. Returns the uploaded file details including ID for use in message sending.

NameRequiredDescriptionDefault
urlYesPublic URL from which to download file contents
tagsNoOptional tags for file categorization
formatNoFile presentation format (gif for videos as GIF, ptt for audio as voice note)
filenameNoCustom filename for the uploaded file
referenceNoOptional reference identifier for file tracking
expirationNoFile expiration time-to-live
permissionNoFile access permission level

TDQS

B3.4/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 behavioral burden. It adds useful facts (the content is fetched from the URL and stored, an ID is returned for later message sending), but says nothing about failure modes (unreachable/invalid URL), size limits, or what expiration/permission actually cause.

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?

Three short sentences, front-loaded with the action and purpose, and the return value is noted last. Minor redundancy in restating that the file is downloaded from the given URL, but no real waste.

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

Completeness3/5

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

With a rich seven-parameter schema but no annotations and no output schema, the description covers the core flow and return value (ID). It is adequate but leaves behavioral gaps (expiration semantics, permission effects, error behavior) that an agent would want before invoking.

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 all seven parameters including the enums for format, expiration, and permission. The description adds no parameter-level detail beyond what the schema provides, so baseline 3 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?

States a specific verb ("Upload") and resource ("a file from a remote URL to the WhatsApp platform") plus the downstream purpose (media messages). Clear enough to separate from siblings like download_whatsapp_file or delete_whatsapp_file, though it doesn't name them.

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?

"for use in media messages" implies the context, but there is no explicit when-to-use/when-not guidance, no mention of the alternative upload path (e.g., sending an existing hosted file vs uploading), and no prerequisites about URL accessibility.

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

validatePhoneNumbersB
Read-only
Inspect

Validates the format of given phone numbers according to E.164 standard and checks their potential validity. Can validate up to 500 phone numbers at once.

NameRequiredDescriptionDefault
phoneNumbersYesArray of phone numbers to validate in E.164 format (max 500)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the E.164 standard and the 500-number cap, but leaves 'checks their potential validity' undefined and gives no hint about what the output contains or whether external lookups occur.

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

Conciseness4/5

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

Two tight sentences with the core purpose front-loaded. Minor redundancy in repeating the 500-number limit that maxItems already encodes, but nothing wasted.

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

Completeness3/5

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

With no output schema, the description should say what comes back for each number (valid flag, reason, E.164-normalized value) — 'checks their potential validity' is too vague to substitute. The input side is fully covered by the schema, so the gap is on the return-value side.

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 single phoneNumbers parameter is fully documented in the schema, so the baseline is 3. The description restates the 500-item cap already present in maxItems and adds no format examples or normalization guidance beyond what the schema provides.

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

Purpose4/5

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

States a specific verb and resource ('Validates the format of given phone numbers') plus the standard applied (E.164) and a batch scope. It implicitly distinguishes itself from the sibling verifyWhatsAppNumberExists by being a format/validity check rather than an existence check, though the sibling is never named.

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

Usage Guidelines3/5

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

Usage is only implied — an agent can infer this is a pre-flight format check, but the description never says when to prefer it over verifyWhatsAppNumberExists or what to do with the results. No explicit exclusions or prerequisites are given.

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

verifyWhatsAppNumberExistsBInspect

Checks if a given phone number is associated with an active WhatsApp account.

NameRequiredDescriptionDefault
phoneNumberYesThe phone number to verify in E.164 format

TDQS

B3.1/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 disclosure burden. It implies a non-mutating lookup, but says nothing about return shape (boolean vs. object), whether a connected device/session is needed, rate limits, or quota costs on WhatsApp's side.

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 with no filler. Nothing in it is redundant with the tool name or title.

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: one required string parameter, no nested objects, and no output schema. Given this simplicity, the description is adequate, but without an output schema the description should say what a successful check returns (a boolean, a status object, or something similar).

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?

There is a single parameter with 100% schema description coverage, so the schema already carries the format detail ('E.164 format'), minLength, and maxLength. The description adds nothing beyond what the schema states, which matches the baseline for high coverage.

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

Purpose4/5

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

States a specific verb and resource: 'Checks if a given phone number is associated with an active WhatsApp account.' This is far more than a restatement of the name. However, it does not distinguish itself from the sibling validatePhoneNumbers, which an agent could easily confuse with this one.

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?

There is no explicit guidance on when to use this tool versus the sibling validatePhoneNumbers, or versus contact-lookup tools like manage_whatsapp_contacts. The agent must infer usage 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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources