Skip to main content
Glama

Search chats

find_chats
Read-onlyIdempotent

Search WhatsApp chats by name, group status, archive, block, pin, or label to retrieve chat IDs and metadata, then use the ID to read a conversation's messages.

Instructions

Searches the instance's chats with filters (name, group or not, archived, blocked, pinned, label). Returns chat ids and metadata, newest activity first by default. Use to find the chat id/number of a conversation before reading its messages. Read-only; paginate with limit/offset.

Input Schema

NameRequiredDescriptionDefault
nameNoMatch on contact or chat name.
limitNoMax results (default 20).
offsetNoRecords to skip, for pagination.
pinnedNo
blockedNo
archivedNo
is_groupNotrue = only groups, false = only private chats.
instance_idNoZapZap instance id (a connected WhatsApp number). Optional when ZAPZAP_INSTANCE_ID is configured; otherwise call list_instances first.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is carried structurally. The description adds genuine value beyond that: default sort order ('newest activity first by default') and pagination via limit/offset. It stops short of describing max result behavior or total counts, but the added context is real.

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

Conciseness5/5

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

Three short sentences with no filler: purpose plus filters first, then return shape and ordering, then the intended use case and pagination. Front-loaded 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 an 8-parameter read-only search with no required params and no output schema, the description covers filters, return shape, ordering, and pagination, and the schema handles instance_id fallback. The only real gap is the phantom 'label' filter, which is a correctness issue rather than missing 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?

Description names most filter dimensions (name, group, archived, blocked, pinned) matching schema properties, and the schema supplies descriptions for the key ones. However, it advertises a 'label' filter that does not exist in the input schema at all — a mismatch that could mislead an agent into passing an unsupported parameter.

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 ('searches the instance's chats'), enumerates the filter dimensions, and describes the return ('chat ids and metadata'). The clause 'Use to find the chat id/number of a conversation before reading its messages' cleanly separates it from the sibling find_messages.

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

Usage Guidelines4/5

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

Explicitly names the workflow context — find the chat id before reading messages — which is the main reason an agent would pick this over find_messages. It does not address alternatives such as list_groups for group enumeration, but the primary routing decision is covered.

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