Zappaz MCP Server
Connects to the Zappaz API to send and manage WhatsApp messages, supporting text, multimedia (images, video, audio, documents), contact sharing, location sharing, and message deletion.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zappaz MCP ServerSend a WhatsApp message to +5511988887777 saying 'Your order is ready!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zappaz MCP Server
O Zappaz MCP Server conecta ferramentas MCP a Zappaz API de WhatsApp. Ele expoe tools para envio e gerenciamento de mensagens (texto, imagem, video, audio, documento, contato, localizacao) usando um sessionId e um token de sessao.
Casos de uso
Envio de mensagens via WhatsApp a partir de agentes MCP.
Automacao de atendimentos com multimidia (imagem, video, audio, documento).
Compartilhamento de contatos e localizacoes.
Remocao de mensagens pelo id.
Servidor Zappaz MCP (Remoto)
O servidor e remoto e esta disponivel em https://mcp.zappaz.io.
Related MCP server: MCP WhatsApp
Autenticacao
Todas as chamadas exigem:
sessionIdno query string (?sessionId=...)Authorizationno header
Sem esses valores o servidor retorna erro.
Configuracao no OpenCode
Adicione o servidor no seu opencode.json do OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no Cursor
Crie o arquivo .cursor/mcp.json com a entrada abaixo:
{
"mcpServers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no Antigravity
No Agent Panel, clique nos tres pontos no canto superior direito e selecione MCP Servers. Clique em Manage MCP Servers. Selecione "View raw config" e adicione:
{
"mcpServers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"serverUrl": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no VS Code
Abra a Command Palette (Cmd+Shift+P) e digite "MCP: Add Server". Selecione
"Add MCP Server". Escolha HTTP para adicionar um MCP remoto. Informe a URL
https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION e o nome zappaz-mcp.
Depois, edite o mcp.json para adicionar o header de autorizacao:
{
"servers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no Claude Desktop
Adicione o servidor no seu arquivo de configuracao MCP:
{
"servers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no Claude Code
Adicione o servidor no seu arquivo de configuracao MCP:
{
"servers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Configuracao no Windsurf
Adicione o servidor no seu arquivo de configuracao MCP:
{
"servers": {
"zappaz-mcp": {
"type": "remote",
"enabled": true,
"url": "https://mcp.zappaz.io/mcp?sessionId=YOUR_SESSION",
"headers": {
"Authorization": "YOUR_SESSION_TOKEN"
}
}
}
}Tools disponiveis
Tool de Mensagens
Tool | Descricao |
| Envia mensagem de texto. |
| Envia mensagem de imagem. |
| Envia mensagem de video. |
| Envia mensagem de audio. |
| Envia mensagem de documento. |
| Envia mensagem com contato. |
| Envia mensagem com localizacao. |
| Deleta uma mensagem por id. |
Tool de Grupos
Tool | Descricao |
| Lista todos os grupos da sessao. |
| Lista os participantes de um grupo. |
| Cria um novo grupo. |
| Adiciona participantes a um grupo. |
| Remove participantes de um grupo. |
| Promove participantes a administradores. |
| Rebaixa administradores a membros. |
| Envia o link de convite de um grupo. |
| Atualiza nome, descricao e configuracoes do grupo. |
| Atualiza a foto do grupo. |
Tool de Webhooks
Tool | Descricao |
| Obtem a lista de webhooks configurados para uma sessao. |
| Cria um novo webhook para uma sessao. |
| Atualiza um webhook existente para uma sessao. |
| Deleta um webhook existente para uma sessao. |
Observacoes
O token e o sessionId sao obrigatorios para todas as chamadas.
Available Tools
22 toolsadd_participantsC
Adiciona participantes a um grupo na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet it only implies a mutation via 'Adiciona' and discloses nothing else: no permission requirements, no behavior for already-present participants, no error conditions, and no indication of whether the array is additive or replacing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no padding, which is structurally clean. The brevity is driven by under-specification rather than efficiency, so it earns only a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating, two-required-parameter tool with zero schema documentation, no annotations, no output schema, and a dense set of closely related sibling tools, this one-liner omits far too much. An agent cannot reliably call it without guessing the identifier format and the effect on existing members.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and neither parameter has a description, so the description must compensate — but it does not. It never clarifies what the string items in 'data' represent (phone numbers, user IDs, participant identifiers) or that groupId identifies the target group, leaving both required parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Adiciona participantes a um grupo'), which is enough to distinguish it from siblings like remove_participants or create_group. However, it makes no explicit reference to any alternative tool and the trailing 'na Zappaz API' adds no distinguishing information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus remove_participants, promote_participants, or create_group, nor any noted preconditions (e.g. group must exist, participants must not already be members). The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupC
Cria um novo grupo na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the basic create action. It does not state whether the creator becomes an admin, whether the group is immediately visible, what identifiers are returned, or any auth/rate-limit constraints for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of padding, which is structurally fine. But for a write tool with a nested payload, one bare sentence is under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations, no output schema, and a nested required object, the description is far too thin. An agent learns nothing about the response, side effects, or constraints it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is reported at 0% (the 'data' wrapper itself is undocumented), and the description adds no parameter meaning at all. The nested subject/description/participants fields do carry inline schema descriptions, which partially compensates, but the description itself contributes nothing to help an agent populate the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Cria um novo grupo' = creates a new group), which is clear and distinct from mutation siblings like update_group or add_participants. However, it makes no explicit effort to differentiate itself from the many other group tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (update_group, list_groups, add_participants), no prerequisites, and no mention of what happens after creation. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookC
Cria um novo webhook para uma sessão na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it only asserts that a webhook is created. It says nothing about whether this is idempotent, what happens on duplicate URLs, whether the endpoint must be reachable or verified, what permissions/auth are needed, or how the optional Authorization header is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no wasted words. It is under-specified rather than bloated, which is a completeness problem rather than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and a large nested input (events toggles, headers, enabled flag), the description is far too thin. An agent lacks enough context to know what a 'session' is, what the required fields mean, or what a successful call returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is a nested object with 0% schema description coverage, and the description adds no meaning beyond the schema's property names. The rich 'events' map and the 'headers.Authorization' field are entirely unexplained, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Cria um novo webhook') plus a scoping detail ('para uma sessão na Zappaz API'), so an agent can tell it creates a webhook rather than reading, updating, or deleting one. It does not name the sibling CRUD counterparts, but the distinction is obvious from the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite (e.g. an existing session is implied but not stated), and no reference to update_webhook/get_webhooks as alternatives. The agent must infer routing from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_messageC
Deleta uma mensagem atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses only that the operation is a deletion. It does not state whether the deletion is permanent or a revoke-for-everyone, what permissions are needed, or what happens on failure for a nonexistent message.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action front-loaded and no padding. It is efficient, though the trailing API reference is dead weight rather than useful structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, single-parameter mutation with no annotations and no output schema, the description should explain permanence, permissions, and expected outcome. None of that is present, leaving the agent under-informed before an irreversible action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning for messageId — no format, no source (e.g., returned by another call), no scope constraints. The parameter name is largely self-explanatory, which prevents a 1, but nothing beyond the schema is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource pair ("Deleta uma mensagem") is identifiable, but the only elaboration is "atraves da Zappaz API," which is filler rather than scope. It gives no indication of whose messages can be deleted, in which conversations, or how this differs from other message tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives among the ~21 siblings. The agent must infer entirely on its own that this is the tool for removing an existing message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookC
Deleta um webhook existente para uma sessão na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| webhookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses nothing about irreversibility, required permissions, whether the session must be active, or what happens if the webhookId does not exist — all material for a destructive call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the action and resource front-loaded and no filler. It is appropriately sized for a one-parameter operation, though it is too terse to be useful rather than truly economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, single-parameter tool with no annotations and no output schema, the description should at minimum cover irreversibility, failure behavior, and where the webhookId comes from. None of these are present, leaving the agent under-informed before an irreversible call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% schema description coverage, and the description adds nothing about webhookId — not its format, origin, or how to obtain it (presumably from get_webhooks/create_webhook). This is the only input the agent must supply, and it is left completely undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Deleta um webhook existente') scoped to a session in the Zappaz API. The destructive action is unmistakable and naturally separates it from create_webhook, update_webhook and get_webhooks, though it never names a sibling explicitly. The Portuguese phrasing is understandable but inconsistent with the English tool names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to delete versus update, no prerequisites (e.g. must the webhook be inactive?), and no warning about consequences. The only hint of scope is 'para uma sessão', which is context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demote_participantsC
Rebaixa participantes de administradores a membros de um grupo na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the state transition (admin → member), which is genuinely useful, but says nothing about required permissions, whether the change is reversible, what happens to invalid or non-admin participant IDs, or whether the operation is partial-failure tolerant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource and transformation front-loaded. No filler, though the terseness comes at the cost of missing detail rather than being optimally structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotation coverage, no output schema, and 0% parameter documentation, a single sentence is insufficient. An agent lacks the permission, error, and parameter-format context needed to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two required parameters. The description's mention of 'participants' and 'grupo' loosely hints that data holds participant identifiers and groupId targets a group, but it never clarifies that data is an array of user IDs or what format groupId takes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (demote) plus resource (participants) and the exact state transition — from administrators to group members. An agent can distinguish it from promote_participants by the direction of the change, though 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. The agent must infer that this is the inverse of promote_participants entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_participantsC
Obtém a lista de participantes de um grupo específico na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| groupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the basic purpose. It does not mention pagination, result ordering, permission requirements, or whether large groups are truncated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity borders on under-specification for a tool that needs more behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one undocumented parameter, no annotations, and no output schema, the description should at least hint at the returned participant fields or response shape. As written, an agent has only the purpose and cannot anticipate the result or any limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required parameter groupId, so the description must compensate. It only implies that a group identifier is needed ('grupo específico') and adds no format, ID-scheme, or validation detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it retrieves the participant list for a specific group. It implicitly distinguishes itself from siblings such as add_participants, remove_participants, and promote_participants, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related siblings like list_groups or the participant-mutation tools. The only usage signal is the implicit read-only framing of 'Obtém'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhooksB
Obtém a lista de webhooks configurados para uma sessão na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 disclose pagination, return format, or authentication requirements, and the reference to 'uma sessão' is ambiguous given the tool takes no session parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted clauses. The trailing 'na Zappaz API' is mild filler but does not meaningfully dilute the statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema or annotations, the description covers the core purpose but leaves the 'sessão' scoping unexplained and offers no expectations about the returned list, so it is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so per the rubric the baseline is 4. The description adds nothing about inputs, but there is nothing to describe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Obtém a lista') and resource ('webhooks configurados'), which is enough to separate it from the create_webhook/update_webhook/delete_webhook siblings. However, it never names those siblings explicitly nor scopes the read beyond a generic listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of the alternative webhook tools. The listing semantics imply read usage, but the description never says when an agent should call this instead of create_webhook, update_webhook, or delete_webhook.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_groupsB
Lista todos os grupos de uma sessão na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 hints that listing is scoped to a session, but discloses nothing about permissions, result size/pagination, ordering, or what happens on an empty session – thin disclosure for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the verb+resource front-loaded and no filler. It is efficient, though it is arguably too terse to be maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the minimal description is nearly sufficient, but it leaves the meaning of "sessão" and the shape/count of returned groups unexplained. Adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so the baseline is 4. The only wrinkle is that the description references "uma sessão" (a session) even though no session parameter exists in the schema, which could momentarily puzzle an agent about how the session is supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Lista todos os grupos" – lists all groups), which is clear and distinct from mutation siblings like create_group, update_group, and add_participants. It does not explicitly contrast itself with the closest read sibling get_group_participants, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and names no alternative. An agent must infer on its own that this is the read path for group enumeration versus get_group_participants or get_webhooks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promote_participantsC
Promove participantes a administradores de um grupo na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a privilege-granting mutation but says nothing about required permissions, whether the change is reversible, partial-failure behavior for a batch of participants, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the core action front-loaded, but its brevity is under-specification rather than efficiency given the 0% parameter coverage and missing mutation semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and two entirely undocumented parameters, the description leaves too much unstated: permissions, error behavior, and the meaning of the 'data' array are all absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither 'data' nor 'groupId' is documented anywhere. The description loosely implies the array holds participants and the ID names a group, but gives no format details (user IDs vs. phone numbers, batching limits) for the agent to build a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: promoting group participants to administrator status. It is clearly distinguishable from siblings like demote_participants, add_participants, and remove_participants, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (e.g., the caller must already be an admin), and no routing to the inverse tool demote_participants. The agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_participantsC
Remove participantes de um grupo na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
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 falls short. It does not say that this is a mutating, effectively destructive operation, whether removals are reversible, what permissions are required, or what happens if a listed participant is not in the group. For an opaque 2-parameter mutation tool this is a meaningful disclosure gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler. It is efficient, though it is arguably under-specified rather than genuinely concise, which keeps it out of the top band.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and 0% parameter documentation, the description is far too thin. An agent would need external knowledge about the Zappaz API to call it correctly, so the definition is not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does not. It never explains that 'data' is an array of participant identifiers (or what form those take) or what 'groupId' refers to, leaving both required parameters semantically undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('remove') plus resource ('participants from a group'), which clearly separates it from siblings like add_participants, promote_participants and demote_participants. It doesn't explicitly name those alternatives, but the action itself is unambiguous. Only a slight deduction for not stating scope limits (e.g. bulk vs single removal).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the adjacent participant-management siblings (add, promote, demote). No prerequisites, no mention of who is allowed to remove participants, and no conditions or exclusions are given. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_audio_messageC
Envia uma mensagem de áudio atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the action itself. It does not state whether 'source' is fetched server-side, whether sending is idempotent, what happens on failure, or any rate-limit/auth requirements for this mutating send operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler is structurally clean, but for a tool with a nested five-property payload it is under-specified rather than genuinely concise. Brevity here reflects missing information, not discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a nested object parameter, the description should at minimum cover audio source formats, delivery semantics, and return behavior. It covers none of these, leaving the agent with only the tool name and schema to work from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0% for the top-level parameter, and the description adds no parameter meaning at all — it does not mention number, source, delay, quoted, or mentions. The nested property descriptions in the schema do some work, but the tool description contributes nothing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Envia uma mensagem de áudio') via the named Zappaz API, so an agent immediately knows this sends audio. It is naturally distinguishable from siblings like send_text_message or send_video_message by the resource, though it never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over send_text_message/send_image_message/etc., nor any prerequisites such as required permissions, channel availability, or supported audio formats. The agent is left to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_contact_messageC
Envia uma mensagem com um contato atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It mentions sending via the Zappaz API but does not describe side effects, authentication requirements, rate limits, or the fact that this is a write/mutation operation beyond what the verb 'Envia' already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. The trailing phrase 'atraves da Zappaz API' is arguably filler since all sibling tools share that API, but the overall structure is concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a required nested object, no output schema, and no annotations, the description is too sparse. It does not explain how to structure the data parameter, what the contact object requires, or any usage conditions. An agent must rely almost entirely on the input schema to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the top-level parameter is 0% (the only parameter 'data' has no description in the schema). The description adds no information about the required structure of data, such as the need for number and contact fields. Although nested fields have schema descriptions, the description itself does nothing to compensate for the undocumented top-level parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Envia) and resource (mensagem com um contato), and the phrase 'com um contato' distinguishes it from the other send_*_message siblings that send text, image, video, etc. However, it remains slightly ambiguous whether the contact is the payload or the recipient, which prevents a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description does not say when to choose this tool over send_text_message, send_image_message, or any other sibling, nor does it name prerequisites or exclusions. It only states what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_document_messageC
Envia uma mensagem de documento atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and it fails to meet it. It says nothing about authentication, rate limits, whether the message is queued or sent immediately, what the delay/quoted options do in practice, or what the call returns. The only behavioral claim, 'atraves da Zappaz API', is tautological.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, so nothing is wasted. But it is terse to the point of under-specification rather than genuinely economical, containing only a verb and a resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with a nested 7-property payload, no annotations and no output schema, the description is far too thin. It leaves the agent to infer the payload shape, sending semantics and result behavior from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds zero parameter meaning; all substance lives in the nested object schema, whose seven properties (source, caption, fileName, mentions, quoted, delay, number) are individually documented. The top-level 'data' wrapper is undocumented anywhere, and with coverage reported at 0% the description was expected to compensate, which it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Envia uma mensagem de documento'), which clearly separates it from siblings like send_text_message, send_image_message and send_audio_message. However, it never states what a 'document' payload is or how it differs from the other media senders beyond the noun, so sibling differentiation is implicit rather than explicit. The Portuguese text against English sibling names is a minor clarity cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this tool over send_image_message or send_video_message, nor any prerequisite or exclusion. The only usage signal is the word 'documento' in the tool name itself. Nothing tells the agent when this is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_group_invite_linkC
Envia o link de convite de um grupo específico na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
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 not meet it. It never states whether the caller must be an admin/participant, what happens if the number is not on WhatsApp, whether sending is rate-limited, or whether the invite link has an expiry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no wasted words and the core action front-loaded. It is efficient, though its brevity is partly the source of the other gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation/messaging tool with nested required input, zero annotations, and no output schema, the description is too thin. It omits preconditions, side effects, and any indication of what the call returns or how failures surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level: neither 'data' nor 'groupId' is documented. The nested 'number' and 'message' fields do have Portuguese descriptions, but the description text itself adds no parameter meaning, so it fails to compensate for the uncovered required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (envia) and resource (link de convite de um grupo), so an agent knows it sends a group's invite link rather than a plain message. However it offers no explicit differentiation from siblings like send_text_message or send_contact_message beyond the tool name itself, and 'na Zappaz API' is filler.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. must be a group admin), and no mention of alternatives among the many send_* siblings. The agent must infer all selection logic from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_image_messageC
Envia uma mensagem de imagem atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no authentication/API-key requirement, no rate limits, no delivery/confirmation behavior, no statement about what happens on failure. For a message-sending (mutating) operation this is a substantial gap; it only conveys that sending occurs through the Zappaz API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short, front-loaded sentence with no wasted words, but its brevity reflects under-specification rather than efficient communication. Adequate in size, thin in content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a send operation taking a nested object payload with seven fields, no annotations, and no output schema, the description is incomplete: it omits usage context, behavioral traits, and any return/error expectations. Only the nested schema keeps the definition minimally usable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter meaning whatsoever. However, the nested schema itself documents each field (number, source, delay, quoted, caption, fileName, mentions) with clear Portuguese descriptions, so the schema does the heavy lifting for parameter semantics and a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Envia uma mensagem de imagem' = sends an image message) via the Zappaz API, so an agent knows exactly what operation this is. It does not explicitly contrast itself with the many send_*_message siblings (text, video, audio, document), though the 'imagem' resource implicitly separates it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives among the sibling send_*_message tools, and no prerequisites or constraints. The agent must infer entirely from the name that this is the image-sending variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_location_messageC
Envia uma mensagem com uma localização por endereço ou coordenadas atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a write/send operation, and it discloses almost nothing: not what happens on an invalid recipient, whether delivery is immediate, auth requirements, or rate limits. Only the implicit fact that this mutates state ('envia') is conveyed, plus a passing mention of the Zappaz API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no padding; the core action is stated first. The closing 'atraves da Zappaz API' is largely filler, which keeps it just short of maximal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a nested required object, no annotations, and no output schema, one sentence is not enough. The description omits recipient format (phone number vs. group ID), valid input constraints, and expected outcome, leaving gaps that neither annotations nor structured fields fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Stated schema coverage is 0% at the top level, and the description covers neither the 'data' wrapper nor the 'number' recipient field. It does add real meaning for the nested location object by signaling the two mutually alternative modes — address or latitude/longitude — which maps onto the schema's address vs. latitude/longitude properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Envia uma mensagem com uma localização'), and adds a mode distinction ('por endereço ou coordenadas') that separates it from send_text_message, send_image_message, and send_contact_message. It does not explicitly name or contrast a sibling, 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.
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 the other send_* siblings, no prerequisites (e.g., must the recipient be an existing chat or group), and no exclusions. The agent must infer all routing decisions from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_text_messageC
Envia uma mensagem de texto atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It says nothing beyond the act of sending: no mention of authentication/API key requirements, delivery semantics, whether a sent message can be recalled, rate limits, or what happens to group vs. individual targets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no padding, which is efficient. But its brevity is under-specification rather than genuine conciseness, since it conveys nothing an agent could not get from the tool name alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating message-send tool with a nested required object, no annotations, and no output schema, the description is too thin. It omits the data-envelope contract, quoting/mention mechanics, and the safety profile of an irreversible outbound action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool-level metric reports 0% coverage, but the nested schema actually documents every leaf field (number, message, delay, quoted, mentions, linkPreview) with meaningful descriptions. The description itself adds nothing about parameters and does not explain the required "data" envelope, so it merely rides on the schema's work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ("Envia uma mensagem de texto"), which is clear and implicitly separates it from the sibling send_image/video/audio/document tools. However, it never states scope (direct chat vs. group) or positions itself against those siblings, so an agent gets the action but no disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the many alternative send_* siblings. The agent must infer from the name alone that this is the text-only channel of a family of message-sending tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_video_messageC
Envia uma mensagem de vídeo atraves da Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it only restates the purpose. It says nothing about authorization needs, delivery behavior, retry semantics, or what happens on failure for a mutation-style send operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding — appropriately sized for the one line it contains, but it is under-specified rather than genuinely concise, so it earns only a middling score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a nested 7-field data object, the description is too thin. An agent gets no help on quoting, mentions, gifPlayback, or source format, leaving key calling decisions entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the top-level parameter list is 0%: the single 'data' wrapper has no description. The nested fields happen to be documented in the schema, but the description adds no syntax, format, or constraint detail of its own, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Envia' plus resource 'mensagem de vídeo' clearly states what the tool does, and 'video' distinguishes it from the send_text/send_image/send_audio siblings by resource type. It stops short of explicitly naming alternatives or scope conditions, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no preconditions, and no mention of the sibling send_* tools the agent should choose between. The agent must infer selection purely from the resource word 'vídeo'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_groupC
Atualiza as informações de um grupo específico na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| groupId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only implies a mutation and says nothing about required permissions (e.g., onlyAdminsCanEditInfo), whether omitted fields are preserved, reversibility, or rate limits. It is barely more informative than the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence is efficient and front-loaded, but it is under-specified rather than genuinely concise. It lacks any of the details needed for correct invocation, so its brevity is not a strength here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and a nested parameter object, the description is insufficient. It omits field semantics, admin restrictions, and the meaning of empty-string sentinel values documented only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It does not mention the required 'data' object, 'groupId', or any of the nested updatable fields. Although nested schema properties contain their own descriptions, the tool description itself adds no parameter guidance whatsoever.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Atualiza' (Updates) and the resource 'grupo' (group), so the action is identifiable. However, 'informações' is vague about which fields can be changed, and it does not distinguish itself from siblings like update_group_picture or create_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, what preconditions exist (e.g., admin permissions), or when not to use it. The agent must infer everything from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_group_pictureC
Atualiza a foto de um grupo específico na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It uses 'Atualiza' (updates), implying mutation, but doesn't state whether it requires admin permissions, whether the change is reversible, what happens to the old picture, or what the response looks like. This is significantly under-specified for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and resource. It is efficient, though its brevity borders on under-specification given the lack of behavioral or parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and a nested object parameter, the description is too sparse. It omits required behavioral context (auth, side effects) and parameter details, leaving the agent with insufficient information to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 0% at the top level, but the nested object properties include Portuguese descriptions for both 'source' and 'identifier'. The top-level parameter 'data' is not described in the schema, and the tool description adds no parameter information. The nested descriptions partially compensate, yielding a marginal score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The Portuguese description states a specific verb+resource: updating a group's profile picture on the Zappaz API. It clearly maps to the update_group_picture tool name. However, it does not distinguish this from siblings like update_group or send_image_message, which an agent might confuse when choosing a picture-related operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like update_group or send_image_message. The description does not mention prerequisites, permissions, or conditions that would help the agent select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_webhookC
Atualiza um webhook existente para uma sessão na Zappaz API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| webhookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and fails it. It does not say whether this is a full replacement or a partial merge, whether the call is reversible, what auth is required, or what happens to event flags not supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with no filler — structurally clean. However it is under-specified rather than genuinely concise, so brevity here is a symptom rather than a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a large nested events payload, zero annotation coverage, no output schema and no parameter docs, this single sentence is far too thin. An agent cannot confidently construct the 'data' object or predict the effect of the call from this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no parameter meaning at all. The nested 'data.events' object alone has ~26 boolean flags whose semantics (which webhook events fire, defaults, null behavior) are nowhere explained, and the 'headers.Authorization' field's role is undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Atualiza um webhook existente'), which cleanly separates it from create_webhook, delete_webhook and get_webhooks. The mention of 'sessão' hints at scope but no explicit sibling routing is given.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. the webhook must already exist, permissions needed), and no pointer to alternatives such as create_webhook or delete_webhook. The reader must infer everything from the word 'existente'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
22 tool updates
v0.1.0- First observed
add_participants - First observed
create_group - First observed
create_webhook - First observed
delete_message - First observed
delete_webhook - First observed
demote_participants - First observed
get_group_participants - First observed
get_webhooks - First observed
list_groups - First observed
promote_participants - First observed
remove_participants - First observed
send_audio_message - First observed
send_contact_message - First observed
send_document_message - First observed
send_group_invite_link - First observed
send_image_message - First observed
send_location_message - First observed
send_text_message - First observed
send_video_message - First observed
update_group - First observed
update_group_picture - First observed
update_webhook
TDQS
Scored across 22 tools
Each tool targets a distinct resource and action: webhook CRUD, message sending by type, and group management operations. Overlaps like update_group vs. update_group_picture are clearly differentiated by their descriptions. An agent can reliably select the intended tool.
All tools use a consistent snake_case verb_noun pattern in Portuguese/English mixed terms, e.g., send_text_message, create_webhook, add_participants. Pluralization varies slightly but follows natural resource semantics and remains predictable.
With 22 tools, the set is borderline heavy for the scope. While most map to distinct API operations, several message send variants and group participant actions could potentially be consolidated. It is still navigable but sits in the heavy range.
Webhook lifecycle is complete, but message handling lacks retrieval/list operations (e.g., get messages, mark as read) and group management lacks delete/get group details or leave group. These omissions are notable for an agent relying on full CRUD workflows.
Maintenance
Related MCP Connectors
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
WhatsMCP connects Claude and other MCP-compatible AI agents directly to WhatsApp. Send and receive text, images, documents, and voice notes; manage groups (create, add/remove members, promote admins); look up contacts and profiles; follow channels; and read call and message history — all through a standard MCP interface. For voice use cases, WhatsMCP offers SIP-based calling plans (inbound-only, or full inbound/outbound) so AI voice agents can answer and place WhatsApp calls, plus low-latency WebSocket integrations with voice agent providers like ElevenLabs. Multiple WhatsApp accounts can be paired and managed per workspace, with webhook support for real-time inbound message delivery to your own infrastructure.
WhatsApp (Web + Business API), SMS, contacts, and call records via 2Chat's MCP server.
Let Claude or ChatGPT search, read and send your WhatsApp messages over MCP. OAuth sign-in.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables WhatsApp automation through MCP protocol, allowing users to manage sessions, send messages, handle groups/communities, and access contacts through natural language interactions with AI agents.4 npm-
- AlicenseBqualityBmaintenanceEnables sending messages, images, documents and more on WhatsApp directly from any MCP-compatible AI, with tools for chat management, groups, and webhooks.371MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that turns WhatsApp into agent-callable tools, enabling search contacts, send/receive messages, read chats, handle media, and monitor calls via the WhatsApp Web multi-device protocol.1 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables connecting a personal WhatsApp number to any MCP client, providing tools to send, search, and manage WhatsApp messages, with an optional auto-reply feature.30 PyPI4MIT