Skip to main content
Glama
Vinix-Code-Dev

Wasapi MCP Server

Wasapi MCP Server

npm version license node

Servidor MCP para Wasapi. Gestiona tu cuenta de WhatsApp Business directamente desde Claude, Cursor o cualquier cliente compatible con MCP: envía mensajes, administra contactos y consulta conversaciones usando lenguaje natural.


Tabla de contenidos


Related MCP server: Uazapi WhatsApp MCP Server

Instalación

Opción 1 — Conector remoto (recomendado · Claude.ai web, ChatGPT, etc.)

La forma más fácil y recomendada. No requiere instalación: cualquier IA que soporte conectores MCP remotos puede conectarse directamente con tu cuenta de Wasapi.

Endpoint: https://ia.wasapi.io/mcp

  1. En tu cliente de IA (Claude.ai, ChatGPT, etc.), abre la sección de conectores o integraciones.

  2. Agrega un nuevo conector MCP con la URL: https://ia.wasapi.io/mcp

  3. El cliente abrirá el flujo de autorización de Wasapi — inicia sesión con tu cuenta.

  4. Acepta los permisos en la pantalla de consentimiento.

  5. ¡Listo! La IA ya puede gestionar tu cuenta de WhatsApp Business.

Para una guía detallada con capturas de pantalla, visita: ayuda.wasapi.io — Conecta Claude, ChatGPT y otras IA con el MCP de Wasapi


Las opciones 2–4 son para instalar el servidor MCP localmente (necesario si usas clientes de escritorio como Claude Desktop o Cursor). Antes de empezar necesitas una API key de Wasapi. Consíguela en app.wasapi.io/account/developer.

Opción 2 — Claude Desktop, sin terminal

La forma más fácil si usas Claude Desktop y no quieres tocar la terminal:

  1. Descarga wasapi-mcp.mcpb (enlace directo, siempre la última versión).

  2. Haz doble click en el archivo — Claude Desktop abre el diálogo de instalación.

  3. Pega tu API key de Wasapi.

  4. Haz click en Instalar.

  5. Activa la extensión: ve a Configuración → Extensiones, busca "Wasapi" y enciéndela (Claude Desktop instala deshabilitadas las extensiones de desarrolladores no verificados).

  6. Abre un chat nuevo y prueba: "Lista mis números de WhatsApp".

Nota: verás un aviso de que el desarrollador "no está verificado por Anthropic". Es lo esperado para extensiones distribuidas fuera del directorio oficial de Anthropic; la fuente es este repositorio.

Opción 3 — Asistente de configuración (recomendada para developers)

No necesitas instalar nada previamente — npx descarga y ejecuta el paquete en un solo paso:

npx -y @wasapi/mcp-server setup --restart

El asistente te guía por todo el proceso:

  1. Abre tu navegador en el panel de Wasapi para que copies tu API key

  2. Valida la key contra el API en vivo

  3. Selecciona un número de WhatsApp por defecto (si tienes alguno)

  4. Detecta tu cliente MCP (Claude Desktop / Cursor) y escribe la configuración

  5. Reinicia la aplicación por ti (con el flag --restart)

npm install -g @wasapi/mcp-server
wasapi-mcp setup --restart

Con la instalación global, el comando wasapi-mcp queda disponible en tu terminal de forma permanente.

Opción 4 — Configuración manual

Si prefieres editar la configuración tú mismo:

  1. Consigue tu API key en app.wasapi.io/account/developer

  2. Agrega este bloque a la configuración de tu cliente MCP:

{
  "mcpServers": {
    "wasapi": {
      "command": "npx",
      "args": ["-y", "@wasapi/mcp-server"],
      "env": {
        "WASAPI_API_KEY": "tu_api_key_aquí",
        "WASAPI_FROM_ID": "12345"
      }
    }
  }
}
  1. Reinicia tu cliente MCP.

Rutas de configuración más comunes:

Cliente

macOS

Linux

Windows

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json

~/.config/Claude/claude_desktop_config.json

%APPDATA%\Claude\claude_desktop_config.json

Cursor

~/.cursor/mcp.json

~/.cursor/mcp.json

%USERPROFILE%\.cursor\mcp.json

Tip: npx -y @wasapi/mcp-server setup --print-only genera este JSON ya personalizado con tu cuenta, sin escribir ningún archivo.


¿Qué puedo hacer?

Una vez instalado, háblale a tu cliente MCP en lenguaje natural. Algunos ejemplos:

"Lista los primeros 10 contactos de mi cuenta de Wasapi."

"¿Cuántos contactos tengo en total?"

"Crea un contacto: Ana Gómez, teléfono +57 300 123 4567, código de país 57."

"Envíale por WhatsApp a +57 300 123 4567 el mensaje: 'Hola Ana, te confirmo tu cita mañana a las 10am.'"

"Etiqueta al contacto con UUID abc-123 con el label 42."

"Muéstrame los últimos mensajes con el wa_id 573001234567."

"Envíale la plantilla de bienvenida al 573001234567 con el nombre Ana en la variable 1."

"¿Qué flows tengo configurados? Envíale el flow de encuesta al 573001234567."

"¿Cómo le fue a mi última campaña? ¿Cuántos mensajes se entregaron?"

"¿Cuántos mensajes enviamos entre el 1 y el 31 de enero? ¿Y cuántos agentes están en línea ahora?"

"Desactiva el bot para el contacto 573001234567 y dime qué campos personalizados tengo configurados."

"Muéstrame las conversaciones abiertas sin etiqueta y dame el reporte de satisfacción del último mes."

Claude decide cuál de las 62 herramientas usar, pide aclaraciones si algo es ambiguo, y te muestra la respuesta.


Clientes compatibles

Cliente

Cómo conectar

Notas

Claude.ai web

Conector remoto — https://ia.wasapi.io/mcp (Opción 1)

Recomendado · sin instalación

ChatGPT

Conector remoto — https://ia.wasapi.io/mcp (Opción 1)

Requiere soporte de conectores MCP en tu plan

Claude Desktop

.mcpb (Opción 2) o asistente (Opción 3)

Instalación local

Cursor

Asistente (Opción 3) con auto-configuración y reinicio

Instalación local

Claude Code

setup --print-only + claude mcp add o editar ~/.claude.json

Instalación local

Windsurf, Zed y otros

setup --print-only + pegar el JSON en su configuración

Instalación local


Referencia del asistente (setup)

npx -y @wasapi/mcp-server setup [flags]

Flag

Descripción

--target claude-desktop|cursor

Salta el menú de plataforma e instala directo en esa

--restart

Reinicia la aplicación destino automáticamente al terminar (solo macOS)

--print-only

Imprime el JSON personalizado; nunca escribe en disco

--local

(desarrollo) Escribe la ruta local del repo en vez de npx

Ejemplos:

# Configurar Claude Desktop y reiniciarlo automáticamente
npx -y @wasapi/mcp-server setup --target claude-desktop --restart

# Obtener el JSON para pegarlo manualmente en Windsurf / Zed / Claude Code
npx -y @wasapi/mcp-server setup --print-only

Variables de entorno

Variable

Requerida

Descripción

WASAPI_API_KEY

Tu API key de Wasapi. Consíguela en app.wasapi.io/account/developer

WASAPI_FROM_ID

No

ID del número de WhatsApp por defecto para mensajes salientes. Descúbrelo con la herramienta list_whatsapp_numbers

WASAPI_BASE_URL

No

Sobrescribe la URL base del SDK (staging / pruebas)

WASAPI_DEBUG

No

Ponla en 1 para logs detallados de errores por stderr


Herramientas disponibles

62 herramientas en total.

Contactos (9)

Herramienta

Qué hace

Parámetros clave

list_contacts

Lista paginada de contactos con búsqueda opcional

search, labels[], page

get_contact

Obtiene un contacto por su WhatsApp ID

wa_id

create_contact

Crea un contacto

first_name (requerido), phone, country_code, last_name, email

update_contact

Actualiza un contacto existente

wa_id + campos a cambiar

delete_contact

Elimina un contacto permanentemente

wa_id

add_label_to_contact

Agrega una etiqueta

contact_uuid, label_id

remove_label_from_contact

Quita una etiqueta

contact_uuid, label_id

assign_agent_to_contact

Asigna un agente automáticamente

contact_uuid

export_contacts

Inicia una exportación de todos los contactos

email_urls[] (opcional)

Los contactos se identifican por wa_id (un WhatsApp ID en texto), no por ID numérico.

WhatsApp — Mensajería y conversaciones (7)

Herramienta

Qué hace

Parámetros clave

list_whatsapp_numbers

Lista los números conectados y sus from_id

send_message

Envía un mensaje de texto

wa_id, message, from_id (opcional)

send_template

Envía una plantilla aprobada, con variables y adjunto por URL

recipients[], template_id, contact_type, body_vars[], url_file, from_id (opcionales)

send_attachment

Envía un archivo desde una URL pública

wa_id, file_url, caption, filename, from_id (opcionales)

send_contact_card

Envía tarjetas de contacto (vCard)

wa_id, contacts[], from_id (opcional)

get_conversation

Obtiene el hilo de mensajes con un contacto

wa_id, from_id, page (opcionales)

change_conversation_status

Cambia el estado de la conversación

wa_id, status (open/hold/closed), agent_id (opcional)

WhatsApp — Plantillas (5)

Herramienta

Qué hace

Parámetros clave

list_whatsapp_templates

Lista todas las plantillas de la cuenta

get_whatsapp_template

Detalle de una plantilla

template_uuid

get_template_fields

Variables que acepta una plantilla (úsalo antes de send_template)

template_uuid

list_templates_by_number

Plantillas disponibles para un número

from_id

sync_meta_templates

Sincroniza plantillas desde Meta

WhatsApp — Flows (6)

Herramienta

Qué hace

Parámetros clave

list_flows

Lista los WhatsApp Flows de la cuenta

list_flows_by_number

Flows disponibles para un número

from_id (opcional)

send_flow

Envía un Flow interactivo a un contacto

wa_id, message, cta, screen, flow_id

get_flow_responses

Respuestas que enviaron los usuarios por un Flow

flow_id, page (opcional)

get_flow_assets

Detalle y assets de un Flow

flow_id

get_flow_screens

Pantallas de un Flow (para elegir screen en send_flow)

flow_id

Campañas (2)

Herramienta

Qué hace

Parámetros clave

list_campaigns

Lista las campañas de difusión de la cuenta

get_campaign

Detalle de una campaña con sus envíos por contacto

campaign_uuid

Crear, editar o eliminar campañas aún no está disponible (el SDK no lo implementa todavía).

Funnels (3)

Herramienta

Qué hace

Parámetros clave

list_funnels

Lista los embudos de venta y sus etapas

search_contact_in_funnels

Busca un contacto en los embudos

phone_number o contact_uuid

move_contact_to_funnel_stage

Mueve un contacto a otra etapa

funnel_contact_id, to_stage_id

Métricas (11)

Herramienta

Qué hace

Parámetros clave

get_online_agents

Agentes en línea

get_status_contacts

Contactos por estado

get_total_campaigns

Total de campañas en un rango

start_date, end_date

get_consolidated_conversations

Conversaciones consolidadas

start_date, end_date

get_agent_conversations

Conversaciones por agente

start_date, end_date

get_messages

Volumen de mensajes

start_date, end_date

get_messages_bot

Mensajes del bot

start_date, end_date

get_agent_time_response

Tiempo de respuesta de un agente

agent_id, start_date, end_date

get_agent_transferred

Conversaciones transferidas de un agente

agent_id, start_date, end_date

get_agent_volume_of_work

Volumen de trabajo de un agente

agent_id, start_date, end_date

get_agent_time_in_conversation

Tiempo en conversación de un agente

agent_id, start_date, end_date

Las métricas con rango de fechas esperan formato YYYY-MM-DD.

Bot (1)

Herramienta

Qué hace

Parámetros clave

toggle_bot_status

Activa/desactiva el chatbot para un contacto

wa_id, action (enable/disable/disable_permanently), from_id (opcional)

Workflow (1)

Herramienta

Qué hace

Parámetros clave

get_workflow_statuses

Lista cambios de estado de conversaciones, con filtros

action, phone, agent_id, dates, per_page, page (todos opcionales)

Campos personalizados (4)

Herramienta

Qué hace

Parámetros clave

list_custom_fields

Lista los campos personalizados

create_custom_field

Crea un campo

name

update_custom_field

Renombra un campo

field_id, name

delete_custom_field

Elimina un campo

field_id

Usuario (2)

Herramienta

Qué hace

Parámetros clave

get_current_user

Datos de la cuenta asociada a la API key

list_users

Lista los usuarios (agentes) de la cuenta

Conversaciones (2)

Herramienta

Qué hace

Parámetros clave

list_conversations

Lista conversaciones (paginado por cursor) con filtros

status, query, phones, labels, agents, dates, per_page (todos opcionales)

get_conversations_next_page

Siguiente página vía cursor

cursor + mismos filtros

Etiquetas (6)

Herramienta

Qué hace

Parámetros clave

list_labels

Lista las etiquetas

search_labels

Busca etiquetas por nombre

name

get_label

Obtiene una etiqueta por ID

label_id

create_label

Crea una etiqueta

title, color, description (opcional)

update_label

Actualiza una etiqueta

label_id, title, color, description (opcional)

delete_label

Elimina una etiqueta

label_id

Reportes (3)

Herramienta

Qué hace

Parámetros clave

get_agent_performance_report

Desempeño por agente en un rango

start_date, end_date, agent_id (opcional)

get_workflow_volume_report

Volumen de workflow en un rango

start_date, end_date, from_id (opcional)

get_satisfaction_survey_report

Encuestas de satisfacción en un rango

start_date, end_date, agent_id (opcional)


¿Cómo actualizo?

Depende de cómo instalaste:

Si usaste el asistente o la configuración manual con npx

Tu configuración usa npx -y @wasapi/mcp-server sin versión fijada, así que basta con reiniciar tu cliente MCP (Cmd+Q completo + abrir) — npx resuelve la última versión automáticamente.

Si por caché te sigue sirviendo una versión vieja, fuérzala y reinicia:

npx -y @wasapi/mcp-server@latest --version

Si lo instalaste globalmente

npm install -g @wasapi/mcp-server@latest

y reinicia tu cliente.

Si instalaste la extensión .mcpb en Claude Desktop

Las extensiones instaladas fuera del directorio oficial de Anthropic no se actualizan solas:

  1. Descarga el nuevo wasapi-mcp.mcpb (siempre apunta a la última versión)

  2. Haz doble click — Claude Desktop detecta la extensión existente y la actualiza

  3. Tu API key se conserva, pero tenla a mano por si el diálogo la vuelve a pedir

  4. Verifica que la extensión siga activa en Configuración → Extensiones

Puedes ver qué versión tienes instalada en Configuración → Extensiones → Wasapi.


Solución de problemas

"Instalé la extensión pero Claude no ve las herramientas de Wasapi"

Las extensiones de desarrolladores no verificados se instalan deshabilitadas. Ve a Configuración → Extensiones, busca "Wasapi" y actívala. Luego abre un chat nuevo (los chats abiertos antes de activar no recargan las herramientas).

"Ejecuté el asistente pero el MCP no aparece en mi cliente"

  1. Reinicio completo, no solo cerrar la ventana. En macOS: Cmd+Q, no la × roja. O usa el flag --restart.

  2. Verifica la ruta de configuración. El asistente imprime la ruta donde escribió. Confirma que sea la misma que usa tu cliente (tabla de rutas arriba).

  3. Revisa variables de entorno conflictivas que hayan quedado de pruebas anteriores:

    echo $CLAUDE_DESKTOP_CONFIG
    echo $CURSOR_MCP_CONFIG

    Si alguna imprime una ruta, elimínala (unset CLAUDE_DESKTOP_CONFIG) y vuelve a ejecutar el asistente. El asistente actual te advierte de esto, pero versiones anteriores no.

"Las herramientas devuelven 'API key inválida o sin permisos'"

Tu API key funciona pero no tiene permiso para ese endpoint. Revisa la consola de desarrollador en app.wasapi.io/account/developer y confirma que la key tiene los permisos que necesitas.

"send_attachment falla"

send_attachment espera una URL pública en file_url (no una ruta de archivo local). El tipo de medio se infiere de la extensión de la URL (.jpg/.png → imagen, .mp4 → video, .mp3 → audio; cualquier otra → documento). Asegúrate de que la URL sea accesible públicamente y termine con la extensión correcta.

Activar logs de depuración

WASAPI_DEBUG=1 wasapi-mcp

O agrega "WASAPI_DEBUG": "1" al bloque env de tu configuración MCP. Los logs salen por stderr.


Privacidad

  • Conector remoto (ia.wasapi.io): las solicitudes pasan por el servidor MCP de Wasapi, que actúa como intermediario OAuth entre tu cliente de IA y la API de Wasapi. No almacena el contenido de tus mensajes ni contactos.

  • Instalación local (stdio): el servidor MCP corre en tu máquina. Envía tus solicitudes únicamente a la API de Wasapi (https://api-ws.wasapi.io). No transmite datos a los autores del paquete ni a terceros.

  • No recolecta, almacena ni comparte tus datos por su cuenta. Tu API key se guarda donde tu cliente MCP la configure (en Claude Desktop, en el keychain del sistema operativo).

  • El tratamiento de los datos de tu cuenta por parte de Wasapi se rige por la Política de Privacidad de Wasapi.

  • Soporte y contacto: issues del repositorio.


Limitaciones conocidas

Limitación

Detalle

send_attachment requiere URL pública

El archivo debe estar accesible por URL; el tipo se infiere de la extensión. No envía archivos locales.


Licencia

ISC

Available Tools

62 tools
add_label_to_contactB
Destructive

Agrega una etiqueta (label) a un contacto. Usa contact_uuid (UUID del contacto) y label_id (número).

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYes
contact_uuidYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true, so the description does not need to restate. However, it does not disclose whether adding a label that already exists replaces or appends, nor any side effects. Minimal value added beyond 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 extremely concise with two short sentences, no fluff. Every word earns its place.

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

Completeness2/5

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

Missing crucial context: no mention of return value, error conditions, or behavior when parameters are invalid. For a destructive tool with no output schema, the description is insufficient.

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?

With 0% schema description coverage, the description adds brief meaning by naming parameters and noting types (UUID and number). But it lacks details like how to obtain these values, and the explanation is minimal.

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 it adds a label to a contact with specific parameters. However, it does not differentiate from sibling tool 'remove_label_from_contact' or other related tools, missing explicit distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'create_label' or 'remove_label_from_contact'. Missing prerequisites (e.g., contact and label must exist).

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

assign_agent_to_contactC
Destructive

Asigna automáticamente un agente al contacto (rotación automática de Wasapi). Usa el contact_uuid del contacto.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_uuidYes

TDQS

C2.6/5.0
Behavior2/5

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

The description adds 'automatically' and 'rotación' but does not disclose destructive behavior beyond the annotation. It fails to explain what happens to previous assignments or if confirmation is needed.

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

Conciseness4/5

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

The description is two sentences, efficient and to the point. However, the second sentence is slightly redundant. No fluff, but could integrate the UUID info more smoothly.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema), the description is adequate but lacks information on return values, error cases, or post-assignment state. Minimal for completeness.

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

Parameters2/5

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

With 0% schema coverage, the description only restates the parameter name 'contact_uuid' without adding meaning. It does not explain how to obtain the UUID or any constraints 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 clearly states the tool assigns an agent to a contact automatically, using the contact's UUID. It distinguishes from siblings like update_contact by specifying 'rotación automática de Wasapi'. However, it's not as precise as possible.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives, such as when to assign manually or update contact details. No exclusions or prerequisites are mentioned.

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

change_conversation_statusC
Destructive

Cambia el estado de la conversación con un contacto: open, hold o closed. Opcionalmente asigna agente o envía mensaje de cierre.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYes
statusYes
from_idNo
messageNo
agent_idNo
send_end_messageNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true. The description adds that status can be changed and optionally assign agent or send message, but does not elaborate on side effects (e.g., closing other conversations, permissions required, or reversibility). Does not contradict 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?

Single sentence, no fluff. Uses a colon to list statuses efficiently. Could be slightly more structured but is concise overall.

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 6 parameters, no output schema, and only destructiveHint annotation, the description leaves many gaps: prerequisites, what happens after status change, error cases, or return format. Incomplete for safe agent usage.

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

Parameters2/5

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

Schema has 0% description coverage. The description covers only 'status' and hints at 'agent_id' and 'send_end_message'/'message', but does not explain 'wa_id', 'from_id', or how parameters interact. Insufficient compensation for the lack of schema 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 clearly states the verb ('Cambia'), the resource ('estado de la conversación con un contacto'), and the possible values ('open, hold or closed'). It also mentions optional actions, making the purpose specific and easily distinguishable from sibling tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., assign_agent_to_contact, send_message). The description only states what it does, not when it is appropriate or when to avoid it.

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

create_contactA
Destructive

Crea un nuevo contacto en Wasapi. first_name es requerido. Incluir phone y country_code para enviar mensajes.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNo
phoneNo
last_nameNo
first_nameYes
country_codeNo

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true, which matches the creation action. Description adds behavioral context: first_name is required, and phone and country_code enable messaging. No contradictions with 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?

Two sentences, no redundant information. Every sentence adds value: first sentence states purpose, second provides usage guidance on required and optional fields. Highly concise.

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

Completeness4/5

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

No output schema, but tool is simple. Description covers creation, required field, and optional fields for messaging. Lacks details on return values or error handling, but adequate for a basic creation tool given annotations and 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 description coverage is 0%, so description must compensate. It explains first_name (required) and that phone+country_code are needed for messaging, but does not describe email or last_name. Some value added but not for all parameters.

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

Purpose5/5

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

Description clearly states 'Crea un nuevo contacto en Wasapi' (creates a new contact in Wasapi), with specific verb and resource. It includes required field and optional fields for messaging, distinguishing it from sibling tools like update_contact or delete_contact.

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

Usage Guidelines3/5

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

Description implies when to use (to create a contact) and suggests including phone and country_code to send messages, but lacks explicit when-not-to-use or comparisons to alternatives. It provides minimal guidance on context beyond creation.

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

create_custom_fieldC
Destructive

Crea un campo personalizado nuevo con el nombre indicado.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, but the description adds no behavioral details beyond the basic action. It does not explain effects like what happens if the field already exists or permissions required.

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

Conciseness3/5

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

The description is a single concise sentence, front-loaded with verb and resource. However, it is too brief and lacks structured exposition of behavior or parameters.

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

Completeness2/5

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

Given no output schema and low parameter count, the description should explain return expectations or side effects. It fails to mention whether creation returns the field object, confirms success, or handles errors.

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

Parameters2/5

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

With 0% schema description coverage, the description's phrase 'con el nombre indicado' barely adds meaning. It does not elaborate on name format, constraints, or examples, so agents get minimal guidance.

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 it creates a new custom field with a given name, using the verb 'Crea' and resource 'campo personalizado'. It distinguishes itself from update and delete siblings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no prerequisites or when-not-to-use conditions. The description provides a basic action without context for selection.

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

create_labelB
Destructive

Crea una etiqueta nueva con título, color y descripción opcional.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYesColor en hex, p.ej. #ff0000
titleYes
descriptionNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations include destructiveHint=true, so the description's 'crea' is consistent. However, it does not add behavioral context like whether duplicate titles are allowed or any side effects.

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

Conciseness5/5

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

A single, straightforward sentence that immediately conveys the tool's purpose without extraneous words.

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

Completeness2/5

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

Missing details like return value (created label), uniqueness or ownership constraints, and any prerequisites. Incomplete for a creation tool with no output schema.

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

Parameters2/5

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

Schema coverage is 33% (only color has description). The description names the parameters but adds no details beyond the schema, such as constraints on title length or color format.

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

Purpose5/5

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

The description clearly states 'Crea una etiqueta nueva' (creates a new label) with specific attributes (title, color, optional description), distinguishing it from sibling tools like delete_label or update_label.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like add_label_to_contact or update_label, nor any exclusions or context.

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

delete_contactB
Destructive

Elimina un contacto por su wa_id. Operación irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true. The description adds 'Operación irreversible' (irreversible operation) which is consistent and provides a small additional behavioral cue, but does not disclose other traits like side effects on conversations or required permissions.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no filler, and immediately communicates the core purpose and a key warning. Front-loaded and 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 simple delete operation with one parameter and no output schema, the description is mostly adequate but lacks context about what happens after deletion (e.g., impact on conversations, contact lists). It does not mention permissions or soft-delete behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must clarify the parameter. It mentions 'por su wa_id' (by its wa_id), which tells the parameter identifies the contact but does not explain what wa_id means or provide format details. Minimal value added.

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

Purpose5/5

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

The description clearly states 'Deletes a contact by its wa_id' with a specific verb and resource. It distinguishes itself from sibling tools like create_contact or update_contact, as no other tool performs this exact deletion operation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as update_contact or create_contact. It only states the action without context about prerequisites or when deletion is appropriate.

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

delete_custom_fieldA
Destructive

Elimina un campo personalizado por su ID. Operación irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
field_idYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true. The description adds 'irreversible', which confirms but does not significantly extend behavioral understanding. No contradictions with 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?

The description is very short (two fragments) with no unnecessary words. However, it could be slightly more structured by separating the action and the note, but it is efficient for a simple 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 simplicity (one param, no output schema, annotations present), the description provides adequate context: what it does and that it's irreversible. It is complete enough for an agent to invoke correctly.

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

Parameters2/5

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

The input schema has 0% coverage (no descriptions) for a single required parameter (field_id). The description only says 'por su ID', adding minimal semantic value beyond the schema. More detail about the field_id format or source would improve clarity.

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

Purpose5/5

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

The description clearly states the action ('Elimina un campo personalizado por su ID') and distinguishes it from siblings like update_custom_field and create_custom_field. The verb-resource pair is specific and 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?

The description implies cautious usage with 'Operación irreversible', but does not explicitly state when to use or when not to use this tool versus alternatives. For a delete operation, the context is fairly clear, but explicit guidelines are missing.

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

delete_labelA
Destructive

Elimina una etiqueta por su ID. Operación irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds 'Operación irreversible,' reinforcing the destructive nature and providing context beyond annotations. No contradiction.

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 succinct sentences, no wasted words. Front-loaded with the primary action. Efficient and to the point.

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 one parameter, no output schema, and annotations covering destructiveness, the description provides essential information. It could mention effects on associated data, but it's largely 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?

With 0% schema coverage, the description adds meaning by stating 'por su ID,' clarifying that label_id is the identifier of the label. This goes beyond the parameter name alone.

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

Purpose5/5

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

The description clearly states the action ('Elimina' - deletes) and the resource ('etiqueta' - label), specifying by ID. It distinguishes from sibling tools like create_label, update_label, and remove_label_from_contact.

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 warns of irreversibility, implying caution, but does not explicitly state when to use this tool versus alternatives or provide when-not-to-use guidance. No sibling differentiation is mentioned.

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

export_contactsA
Destructive

Inicia una exportación de todos los contactos de la cuenta. Opcionalmente recibe emails a los que enviar el archivo exportado.

ParametersJSON Schema
NameRequiredDescriptionDefault
email_urlsNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate destructiveHint=true, so the description's mention of initiating an export is consistent. However, it does not elaborate on what 'destructive' entails (e.g., whether it overwrites previous exports or triggers a download). The optional email sending is a helpful behavioral detail.

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 short sentences, front-loading the primary action and mentioning the optional parameter. No unnecessary words.

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

Completeness3/5

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

Given the tool initiates an export (with destructiveHint true) and has no output schema, the description should clarify whether the export is asynchronous, where the file goes, or how to retrieve it. The current description leaves important context gaps.

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 only parameter, email_urls, is described as optional recipients for the exported file. This adds meaning beyond the schema (which only specifies type and format), but lacks details like whether multiple emails are allowed or any constraints.

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

Purpose5/5

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

The description clearly states that the tool initiates an export of all contacts and optionally sends the exported file to specified emails. This is specific and unambiguous, especially since no sibling tool performs an export.

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 explains what the tool does but provides no guidance on when to use it versus alternatives or any prerequisites. It does not mention if this is an asynchronous process or any limitations.

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

get_agent_conversationsB
Read-only

Métrica: conversaciones por agente en un rango de fechas (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesFecha final del rango, formato YYYY-MM-DD
start_dateYesFecha inicial del rango, formato YYYY-MM-DD

TDQS

B3.1/5.0
Behavior3/5

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

Annotations include readOnlyHint=true, which is consistent with the tool's read-only nature. The description adds that it is a metric (aggregated data) and specifies the date format. However, it does not disclose whether the response is a list of agents with conversation counts or something else. With annotations already covering the safety profile, the description adds minimal extra value.

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

Conciseness4/5

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

The description is a single, concise sentence that immediately conveys the purpose and format. It is front-loaded and efficient, though it could benefit from additional structural elements like bullet points or separate sections.

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

Completeness2/5

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

Given the tool has no output schema, the description should explain what is returned (e.g., a list of agents with conversation counts). It fails to do so, leaving ambiguity about the response format. The tool is simple, but this omission reduces completeness.

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

Parameters3/5

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

The input schema already provides 100% coverage with descriptions for both start_date and end_date (format YYYY-MM-DD). The description reiterates the date format but adds no new semantics beyond what the schema offers. Following the baseline rule for high schema coverage, a score of 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?

The description 'Métrica: conversaciones por agente en un rango de fechas (YYYY-MM-DD)' clearly indicates the tool returns conversations per agent over a date range. It specifies the resource (agent conversations) and scope (date range). However, it does not differentiate from sibling tools like get_agent_performance_report, but the name and metric focus provide adequate distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, typical use cases, or explain that it might return aggregated counts rather than individual conversations. Users must infer usage from the title and name alone.

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

get_agent_performance_reportC
Read-only

Reporte de desempeño por agente en un rango de fechas. agent_id es un filtro opcional.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoFiltra por agente; si se omite, cubre todos
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true. The description adds no behavioral context beyond that—nothing about data freshness, pagination, authentication requirements, or what happens if no data exists for the period. The description does not contradict 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?

Two sentences: one for purpose, one for optional filter. Front-loaded and no unnecessary words. Every sentence earns its place.

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

Completeness2/5

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

Lacks details about what the report contains (metrics, aggregation), response format, or examples. For a reporting tool with no output schema, the description should provide more context on the returned data structure.

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 are already documented. The description minimally adds that agent_id is optional, but this is already stated in the schema description. No additional semantics 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 states the tool retrieves a performance report for agents within a date range, with an optional filter. The verb 'get' and resource 'performance report' are specific. However, it does not distinguish from sibling tools like get_agent_time_response or get_agent_volume_of_work, which also report on agent metrics.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other agent report tools. No exclusion criteria or prerequisites mentioned. A agent simply knows it's for performance reports but not when to choose it over sibling alternatives.

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

get_agent_time_in_conversationB
Read-only

Métrica de un agente: tiempo en conversación en un rango de fechas.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

B3/5.0
Behavior3/5

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

The description does not add significant behavioral context beyond the annotations, which already declare readOnlyHint=true. It confirmes the scope (date range) but fails to mention any other traits like pagination or aggregation.

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

Conciseness5/5

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

The description is a single, focused sentence. It is front-loaded with the key action and resource, containing no unnecessary words.

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

Completeness2/5

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

The tool has 3 required parameters and no output schema, yet the description does not explain the return value (e.g., total time, average). It is adequate for a simple read metric but lacks completeness for an agent to fully understand the output.

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

Parameters2/5

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

Schema coverage is 67%; start_date and end_date have format descriptions. The description adds a date-range context for these two parameters but does not explain agent_id or provide additional meaning beyond the schema. No compensation for the missing parameter description.

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

Purpose4/5

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

The description clearly states the tool returns a metric of an agent's time in conversation within a date range. It distinguishes from sibling tools like 'get_agent_time_response' or 'get_agent_volume_of_work' by specifying 'tiempo en conversación'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives, such as when to use 'get_agent_performance_report' or 'get_agent_conversations' instead. 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.

get_agent_time_responseC
Read-only

Métrica de un agente: tiempo de respuesta en un rango de fechas.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds that it returns a 'metric' (response time) over a date range, but does not elaborate on output specifics or other behavioral traits. It adds some value but not rich context.

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 short sentence that clearly conveys the core purpose. No filler words. However, it could be expanded slightly to improve completeness without losing conciseness.

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

Completeness2/5

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

Given the absence of an output schema, the description should hint at the return format (e.g., a number, units) or provide example usage. It does not, leaving the agent without sufficient context for understanding the tool's output. The description is adequate only for the simplest scenario.

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

Parameters2/5

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

The input schema has 3 parameters, with descriptions for start_date and end_date (67% coverage). The description does not add any parameter-specific meaning beyond what the schema already provides; notably, agent_id lacks description, and the description does not clarify it. Minimal added value.

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 it is a metric of agent response time over a date range, clearly identifying the resource and scope. While the verb is implied rather than explicit (e.g., 'get'), it is sufficient to distinguish it from sibling tools like get_agent_performance_report.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_agent_time_in_conversation or get_agent_volume_of_work. The description offers no context for selection, making it harder for an agent to choose appropriately.

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

get_agent_transferredB
Read-only

Métrica de un agente: conversaciones transferidas en un rango de fechas.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds that it returns a metric about transferred conversations, which is consistent. However, no additional behavioral traits (e.g., how pagination works, if any, or what the response format is) are disclosed. Given the annotations, the description is adequate but not exemplary.

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

Conciseness4/5

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

The description is a single, direct sentence that immediately conveys the purpose. It is appropriately succinct with no redundant information. However, it is slightly too brief, missing an opportunity to add valuable usage context.

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

Completeness3/5

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

Given the tool's simplicity (three parameters, no output schema, readOnlyHint), the description covers the basic purpose but remains incomplete. It does not specify the return type (e.g., count, percentage, list) or interpretation of 'transferred conversations'. For a metric tool, this omission reduces completeness.

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

Parameters2/5

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

Schema description coverage is 67% (two of three parameters have descriptions). The description adds no parameter-level information; it does not explain agent_id, which is missing a schema description, nor does it elaborate on the date format beyond what is already in the schema. The tool would benefit from describing that agent_id refers to the agent's unique identifier.

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 provides a metric about transferred conversations for an agent within a date range. It uses specific language ('Métrica de un agente: conversaciones transferidas') and the resource is clear. However, it does not explicitly distinguish from sibling tools like get_agent_conversations or get_agent_volume_of_work, which might also relate to agent conversations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or exclusions. The agent must infer usage from the name and description alone, which is insufficient for optimal tool selection among the many similar agent metric tools.

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

get_agent_volume_of_workB
Read-only

Métrica de un agente: volumen de trabajo en un rango de fechas.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYes
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare 'readOnlyHint=true', indicating a safe read operation. The description adds that it provides a 'metric', which is consistent. No additional behavioral traits like rate limits, data freshness, or aggregation method are mentioned.

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

Conciseness5/5

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

The description is a single, concise sentence that directly conveys the tool's purpose with no extraneous words. It is appropriately front-loaded and easy to parse.

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

Completeness2/5

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

Given the tool has 3 required parameters, no output schema, and sibling tools that could overlap, the description is incomplete. It does not explain what 'volumen de trabajo' represents (e.g., number of conversations, messages, hours), leaving ambiguity for the agent.

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 67% (start_date and end_date have descriptions in schema, agent_id lacks description). The tool description does not add any further meaning or format details beyond what the schema provides, earning the baseline score of 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?

The description clearly states it provides a metric for an agent's work volume over a date range, using specific verb 'ver' (see) and resource 'volumen de trabajo'. However, it does not differentiate from sibling tools like 'get_agent_conversations' or 'get_agent_performance_report' which also provide agent metrics.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusion criteria, leaving the agent to infer usage 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.

get_campaignA
Read-only

Obtiene el detalle de una campaña por su UUID, incluyendo los envíos (jobs) por contacto y su estado. Usa list_campaigns para descubrir los UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_uuidYes

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, so the tool is known to be read-only. The description adds value by specifying that the detail includes 'envíos (jobs) por contacto y su estado' which provides behavioral context beyond what annotations offer.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence conveys the core purpose and what is included. The second sentence provides immediate actionable guidance. Highly efficient.

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

Completeness4/5

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

Given the simplicity of the tool (one required parameter, no output schema), the description adequately covers the main aspects: what it does, what it returns, and how to get the input. It does not address error conditions, but that is not critical for a read-only retrieval 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 description coverage is 0%, so the description must compensate. It mentions 'por su UUID' which explains the purpose of the campaign_uuid parameter. However, no format or constraints are provided; the parameter is just a string with minLength 1. The description is minimal but sufficient for a single required 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?

The description states 'Obtiene el detalle de una campaña por su UUID, incluyendo los envíos (jobs) por contacto y su estado.' This clearly identifies the verb (get), resource (campaign detail), and scope (including jobs per contact and status). It also distinguishes from sibling list_campaigns.

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 description explicitly says 'Usa list_campaigns para descubrir los UUID.' This gives a direct usage guideline, telling the agent to use list_campaigns first to get the UUID. It implies when to use this tool: when you have a specific UUID and need detail.

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

get_consolidated_conversationsB
Read-only

Métrica: conversaciones consolidadas en un rango de fechas (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesFecha final del rango, formato YYYY-MM-DD
start_dateYesFecha inicial del rango, formato YYYY-MM-DD

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, which is consistent. Description adds minimal behavioral context beyond the term 'metric', so it meets the baseline for annotation-covered tools.

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

Conciseness4/5

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

Single short sentence, efficient and to the point. Could be slightly more structured but avoids unnecessary verbosity.

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

Completeness2/5

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

Despite low complexity, description lacks return value specification. Without output schema, it should clarify what the metric returns (e.g., count or 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 coverage is 100% with both parameters described. Tool description repeats date format already in schema, adding no new meaning. Baseline 3 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?

The description clearly states 'metric: consolidated conversations in a date range', specifying the resource and operation. It distinguishes from sibling tools like list_conversations or get_agent_conversations by focusing on a consolidated metric.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Among many sibling report tools, the description lacks context for appropriate usage or exclusions.

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

get_contactA
Read-only

Obtiene un contacto por su wa_id (WhatsApp ID, p.ej. número de teléfono internacional sin +).

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYes

TDQS

A3.7/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, so no contradiction exists. However, the description adds no behavioral context beyond that—no mention of authentication requirements, rate limits, or what happens on failure. Since annotations cover the safety profile, the description adds little extra value.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It immediately states the action and resource, then specifies the parameter. Perfectly concise for the tool's simplicity.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, read-only, no output schema), the description covers the core purpose and parameter. However, it lacks information about what the tool returns (expected response structure) and error handling (e.g., if wa_id not found). For a get operation, mentioning the return object would improve completeness.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description adds meaning by explaining wa_id as 'WhatsApp ID, e.g. international phone number without +'. This compensates well for the schema gap, clarifying the expected format and value. A slight deduction for not providing explicit validation rules or examples.

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

Purpose5/5

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

The description clearly states it retrieves a single contact by wa_id, specifying the exact identifier format. This unambiguously distinguishes it from sibling tools like list_contacts (which lists all contacts) and create/update/delete 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 when you have a specific wa_id, but does not explicitly guide when to use this tool over alternatives or mention when not to use it. For example, it could advise using list_contacts when the wa_id is unknown. The guidance is minimal but not misleading.

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

get_conversationA
Read-only

Obtiene el hilo de mensajes con un contacto de WhatsApp (identificado por wa_id). Nota: no es un lookup por ID de conversación — el SDK identifica la conversación por contacto (wa_id). list_conversations no está implementado (SDK gap).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoNúmero de página para paginación del hilo de mensajes
wa_idYesWhatsApp ID del contacto (E.164 sin +). Devuelve el hilo de mensajes con ese contacto.
from_idNoFiltrar por número WhatsApp específico. Opcional si solo hay uno.

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; description adds context about SDK behavior (identifies by contact, not conversation ID) and a noted limitation. No contradiction, adds value beyond 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?

Two sentences, front-loaded with main purpose, includes a critical note. No superfluous text.

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 retrieval tool with no output schema, the description covers purpose, key parameter, and a limitation. Lacks pagination details but acceptable given the context signals.

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

Parameters3/5

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

Schema covers all 3 parameters (100% coverage). Description clarifies that wa_id is the contact identifier and from_id is optional, but doesn't add significant meaning beyond schema descriptions. Baseline 3.

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

Purpose5/5

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

Description clearly states the tool retrieves a message thread by WhatsApp contact ID ('Obtiene el hilo de mensajes con un contacto de WhatsApp'). It distinguishes from siblings by noting it's not a lookup by conversation ID and that list_conversations is not implemented. Specific verb and resource.

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 states when to use (to get conversation by contact wa_id) and when not (not by conversation ID). Also mentions that list_conversations is unavailable, providing clear guidance on alternatives.

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

get_conversations_next_pageA
Read-only

Obtiene la siguiente página de conversaciones usando el cursor devuelto por list_conversations.

ParametersJSON Schema
NameRequiredDescriptionDefault
datesNoRango de fechas YYYY-MM-DD,YYYY-MM-DD
queryNo
agentsNoIDs de agentes separados por coma
cursorYes
labelsNoIDs de etiquetas separados por coma
phonesNoIDs/teléfonos separados por coma
statusNo
per_pageNo
all_agentsNo
search_typeNo
open_optionsNo
without_labelsNo
order_conversationsNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context (uses cursor, returns a page). It does not disclose that optional parameters should match the original query, which is a notable omission.

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?

One concise sentence that front-loads the action and usage context. However, it may be too brief given the tool's complexity.

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

Completeness2/5

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

Given 13 parameters, no output schema, and only readOnlyHint annotation, the description lacks necessary context about parameter reuse, return format, and pagination behavior. It is insufficient for an agent to use correctly without additional inference.

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

Parameters2/5

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

With schema coverage only 31% and description not explaining any parameters beyond the cursor, the description fails to compensate. It does not clarify that optional parameters are filters inherited from list_conversations.

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

Purpose5/5

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

The description clearly states the specific action ('obtiene la siguiente página de conversaciones') and resource ('conversaciones'), and distinguishes it from siblings by specifying it uses a cursor from 'list_conversations'.

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 tells when to use (after getting a cursor from list_conversations) but does not mention when not to use or contrast with alternatives like get_conversation or list_conversations.

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

get_current_userA
Read-only

Obtiene los datos de la cuenta/usuario asociado a la API key actual.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds minimal transparency beyond confirming it's a read operation. It does not reveal additional behavioral traits like auth requirements or response format.

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

Conciseness5/5

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

The description is a single concise sentence with no superfluous text, front-loading the purpose effectively.

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

Completeness3/5

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

Given no output schema, the description could describe what data is returned but only says 'data'. It is somewhat vague for a complete understanding, though the tool is simple. A bit more detail on return fields would improve completeness.

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

Parameters4/5

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

There are no parameters, so the description does not need to add parameter details. Baseline score of 4 applies as no param info is necessary.

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

Purpose5/5

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

The description clearly states the tool retrieves data of the account/user associated with the current API key, using a specific verb and resource. It distinguishes the tool from siblings like 'list_users' which lists all users.

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

Usage Guidelines2/5

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

The description provides no indication of when to use this tool versus alternatives, nor any usage context or exclusions. It simply states what it does without guiding the agent on selection.

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

get_flow_assetsB
Read-only

Obtiene el detalle y los assets de un WhatsApp Flow (definición, pantallas, si usa data API).

ParametersJSON Schema
NameRequiredDescriptionDefault
flow_idYes
phone_idNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that it retrieves multiple aspects of a flow (definition, screens, data API usage), but does not disclose further behavioral traits like response structure or pagination.

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 that efficiently conveys the tool's purpose. However, it omits parameter details, which would be beneficial.

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

Completeness2/5

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

Given the lack of output schema and no parameter descriptions, the description is incomplete. It does not explain what the returned data looks like or how to interpret the assets retrieved.

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

Parameters1/5

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

The description provides no information about the parameters (flow_id, phone_id). With 0% schema description coverage, the description fails to compensate, leaving agents without meaning for parameter usage.

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

Purpose5/5

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

The description clearly states it retrieves the detail and assets of a WhatsApp Flow, listing specific components like definition, screens, and data API usage. This distinguishes it from sibling tools like get_flow_screens and get_flow_responses.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_flow_screens. Agents are left to infer from the description alone.

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

get_flow_responsesA
Read-only

Obtiene las respuestas que los usuarios enviaron a través de un WhatsApp Flow (paginado).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
flow_idYes
per_pageNo

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already provide readOnlyHint=true, indicating a safe read operation. The description adds the fact that results are paginated, which is behavioral context beyond annotations. However, it does not disclose other behavioral traits such as ordering, error handling, or limits.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the verb and resource. Every word contributes meaning with no fluff. It is appropriately sized for the tool's complexity.

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?

The description is minimal and does not cover the output structure or any additional context about the responses. Given no output schema, the agent lacks information about what fields are returned. For a paginated data retrieval tool, this omission is significant.

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

Parameters3/5

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

The schema coverage is 0%, so the description must compensate. It mentions 'paginado', which hints at the use of page and per_page parameters, but does not explicitly describe any of the three parameters (flow_id, page, per_page). This provides some semantic value beyond the schema but is incomplete.

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

Purpose5/5

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

The description clearly states the verb 'Obtiene' (gets) and the resource 'respuestas que los usuarios enviaron a través de un WhatsApp Flow', and includes 'paginado' indicating pagination. This distinguishes it from sibling tools like get_flow_assets and get_flow_screens, which retrieve different aspects of a flow.

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

Usage Guidelines3/5

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

The description implies usage for retrieving user responses from a WhatsApp Flow, but does not explicitly state when to use this tool versus alternatives, nor does it provide any when-not or context of prerequisites. The usage is implied by the tool name and context of siblings.

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

get_flow_screensB
Read-only

Lista las pantallas de un WhatsApp Flow (útil para elegir el parámetro screen de send_flow).

ParametersJSON Schema
NameRequiredDescriptionDefault
flow_idYes
phone_idNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's lack of additional behavioral traits is acceptable. It does not contradict annotations, and the read-only nature is clear from the description and title.

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

Conciseness4/5

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

Single sentence, front-loaded with purpose. No unnecessary words. However, parameter details are missing, which would improve conciseness if included.

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

Completeness2/5

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

Given no output schema and zero parameter documentation, the description is incomplete. It does not describe what the response looks like or parameter semantics, which are needed for correct invocation.

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

Parameters1/5

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 information about the parameters (flow_id and phone_id). It does not explain their meaning, format, or constraints, leaving the agent to guess.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing screens of a WhatsApp Flow, and explicitly mentions its utility for choosing the screen parameter of send_flow. This is specific and distinguishes it from sibling tools.

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

Usage Guidelines4/5

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

The description provides explicit context for when to use this tool: to pick the 'screen' parameter for send_flow. It does not mention alternatives or when not to use, but the hint is clear and actionable.

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

get_labelC
Read-only

Obtiene una etiqueta por su ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYes

TDQS

C2.9/5.0
Behavior3/5

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

The description aligns with the readOnlyHint annotation, but does not add any behavioral details beyond what the annotation already provides. No additional traits like response format or error conditions are disclosed.

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

Conciseness3/5

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

The description is concise with a single sentence, but it lacks structure and parameter details. While it is efficient, it is incomplete.

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

Completeness2/5

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

Given no output schema, the description should mention what label data is returned (e.g., name, color). It also fails to mention failure conditions or response structure, leaving the agent underinformed.

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

Parameters1/5

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

With 0% schema coverage, the description must explain the parameter, but it only implies an ID without describing the label_id field, its format, or purpose. The agent receives no semantic help.

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

Purpose5/5

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

The description clearly states the action (obtiene/gets) and the resource (etiqueta/label) along with the identifier (por su ID), effectively distinguishing it from sibling tools like create_label, update_label, delete_label, and search_labels.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_labels or search_labels. It does not mention any context, prerequisites, or exclusions.

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

get_messagesB
Read-only

Métrica: volumen de mensajes en un rango de fechas (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesFecha final del rango, formato YYYY-MM-DD
start_dateYesFecha inicial del rango, formato YYYY-MM-DD

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate read-only (readOnlyHint=true). Description adds that it returns a metric (volume), implying aggregation. However, it does not disclose the exact return format or any behavioral constraints (e.g., scope, pagination).

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

Conciseness5/5

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

Single sentence effectively conveys core purpose. Front-loaded with 'Métrica: volumen de mensajes' for immediate understanding. No wasted words.

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

Completeness3/5

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

Given the simplicity of the tool (2 scalar params, no output schema), the description is minimally adequate but lacks definition of what 'volume' means (e.g., count per day, total) and the expected return structure. With no output schema, more detail would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. Description adds minimal value by reinforcing the date range context, but does not provide additional semantic detail beyond what the schema offers.

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?

Description clearly states it measures message volume over a date range, but does not differentiate from sibling tool get_messages_bot which likely has similar purpose.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as get_messages_bot or other reporting tools. No mention of prerequisites or limitations.

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

get_messages_botA
Read-only

Métrica: volumen de mensajes enviados por el bot en un rango de fechas (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesFecha final del rango, formato YYYY-MM-DD
start_dateYesFecha inicial del rango, formato YYYY-MM-DD

TDQS

A3.9/5.0
Behavior4/5

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

While annotations already mark the tool as readOnly, the description adds that it returns a metric (volume), not raw messages, and requires a date range. This provides useful behavioral context beyond the annotation's simple read-only label.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately communicates the tool's purpose and scope without any extraneous words. It is optimally concise 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?

Given the absence of an output schema, the description should clarify the return format (e.g., total count, daily breakdown). It only states 'volumen', which is vague. However, for a simple metric tool with two parameters and no nested objects, it is moderately 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 coverage is 100% with clear parameter descriptions. The description reinforces the date range format (YYYY-MM-DD) but adds no new semantic information beyond what the schema already provides, meeting the baseline.

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

Purpose5/5

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

The description clearly states 'volumen de mensajes enviados por el bot en un rango de fechas', specifying both the verb (metric retrieval) and resource (bot messages). It distinguishes from the sibling 'get_messages' which likely covers all messages, making its purpose 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?

The description implies the tool is for bot message metrics but does not explicitly state when to use it over alternatives like 'get_messages' or other metric tools. No exclusions or scenario guidance is provided.

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

get_online_agentsB
Read-only

Métrica: lista de agentes actualmente en línea.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, so the description's minimal addition of 'currently online' is consistent. No extra behavioral details are given (e.g., how online status is determined, real-time nature), but the annotation covers the safety aspect.

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?

Extremely concise with one sentence. However, the 'Métrica:' prefix is unnecessary and could be removed for even tighter phrasing.

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

Completeness3/5

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

For a simple list tool with no parameters and readOnlyHint, the description is adequate but could be improved by hinting at the output format (e.g., agent names or IDs). Without an output schema, the agent has no info on return structure.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100%. The description does not need to add parameter meaning. Baseline 4 is appropriate.

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

Purpose4/5

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

The description clearly states it returns a list of currently online agents, matching the name and title. However, it uses 'Métrica:' which is slightly redundant and could be more explicit about what constitutes 'online' status.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_agent_performance_report or get_status_contacts. The description lacks context for appropriate usage.

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

get_satisfaction_survey_reportA
Read-only

Reporte de encuestas de satisfacción en un rango de fechas. agent_id es un filtro opcional.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idNoFiltra por agente; si se omite, cubre todos
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description does not add further behavioral context such as expected output format or any side effects, but it does not contradict 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?

Two sentences that are front-loaded and efficient: first sentence defines the tool's purpose, second clarifies the optional filter. No redundant information.

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

Completeness3/5

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

The description is adequate for a simple read tool, but lacks details about the report's output format or fields, which is important given no output schema. Could be more 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 coverage is 100% with detailed parameter descriptions in the schema. The description reiterates that agent_id is optional but adds no new semantic information beyond the schema.

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

Purpose5/5

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

The description clearly states it is a satisfaction survey report filtered by date range, with an optional agent filter. This verb+resource+scope differentiates it from sibling report tools like get_agent_performance_report.

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 specifies when to use (date range) and mentions optional agent_id, but does not explicitly state when not to use or provide alternatives. The context is clear enough.

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

get_status_contactsA
Read-only

Métrica: conteo de contactos por estado de conversación.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description does not need to cover safety. It adds context that the tool returns a 'metric' (count), aligning with behavioral expectations. However, it does not detail what 'conversation status' encompasses or if data is real-time.

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

Conciseness5/5

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

Single sentence, front-loaded purpose, no unnecessary words. Highly concise.

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?

The tool is simple with no parameters, but lacks an output schema. The description states it's a 'metric' but doesn't hint at the output structure (e.g., list of status-count pairs). Adequate for basic understanding but could be more 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?

No parameters exist, and schema coverage is 100%, so the baseline is 4. The description does not need to add parameter details.

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

Purpose5/5

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

The description clearly states the tool returns a count of contacts grouped by conversation status, which is a specific verb-resource combination. This distinguishes it from siblings like list_contacts (which lists individual contacts) and other metric tools.

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

Usage Guidelines3/5

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

The description implies usage for obtaining aggregated contact counts, but does not explicitly state when to use it over alternatives like list_contacts or other report tools. No mention of when not to use.

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

get_template_fieldsA
Read-only

Obtiene los campos/variables que acepta una plantilla (útil antes de enviar con send_template y body_vars).

ParametersJSON Schema
NameRequiredDescriptionDefault
template_uuidYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, confirming idempotency. Description adds that it returns field/variable info but does not disclose any potential errors, pagination, or detailed response structure. With annotations covering safety, this is adequate.

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

Conciseness5/5

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

Single sentence containing essential information. No redundancy, front-loaded with purpose and usage hint. Very efficient.

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

Completeness4/5

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

Given the simplicity (1 parameter, no output schema, readOnly annotations), the description covers purpose and usage context. It could mention that the output is a list of variable names, but the current description is sufficient for a minimal viable definition.

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

Parameters2/5

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

The only parameter, template_uuid, is not described in the description despite 0% schema coverage. The parameter name is self-explanatory, but the description should at least mention it expects a template UUID. The description references 'una plantilla' implicitly but doesn't explicitly map to the 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?

Description clearly states the tool retrieves fields/variables of a template, and explicitly relates it to send_template, distinguishing it from sibling tools like list_templates or send_template itself.

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?

Description says 'útil antes de enviar con send_template y body_vars', which tells when to use this tool (before sending a template). It implies a specific workflow step but does not provide when-not-to-use or explicit alternatives.

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

get_total_campaignsB
Read-only

Métrica: total de campañas en un rango de fechas (YYYY-MM-DD).

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesFecha final del rango, formato YYYY-MM-DD
start_dateYesFecha inicial del rango, formato YYYY-MM-DD

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds limited behavioral context. The term 'Métrica' implies an aggregated count, but it does not disclose other traits like performance implications or response structure. With annotations covering safety, a score of 3 is appropriate.

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

Conciseness4/5

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

The description is a single concise sentence that conveys the core functionality without wasted words. However, it could include more detail about the output without sacrificing brevity.

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?

The description lacks information about the return format (e.g., integer, object) and does not explain that the tool provides an aggregate count. Given no output schema, this omission reduces the agent's ability to process the result.

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

Parameters3/5

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

Schema coverage is 100% with both start_date and end_date described. The description adds no extra meaning beyond what the schema provides, so the baseline score 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 clearly states the tool's purpose: it returns the total number of campaigns within a date range. It specifies the verb (get total), resource (campaigns), and scope (date range), distinguishing it from siblings like list_campaigns (list all) and get_campaign (single campaign).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_campaigns or get_campaign. It does not mention any exclusions or prerequisites, leaving the agent without context for selection.

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

get_whatsapp_templateA
Read-only

Obtiene el detalle de una plantilla de WhatsApp por su UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
template_uuidYes

TDQS

A3.5/5.0
Behavior3/5

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

The description adds the behavioral context that this tool retrieves (read) a template's details, which aligns with the readOnlyHint annotation. However, it does not disclose any additional behavioral traits such as error handling, authorization needs, or rate limits. The annotation already indicates it's a safe read operation, so the description's contribution is minimal.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded with the verb and resource. Every word is essential, and there is no extraneous information. It efficiently communicates the tool's purpose.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is adequate but not complete. It does not describe the return value, such as the structure of the template details. Considering the low complexity, it is minimally sufficient but could be more informative.

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

Parameters3/5

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

The input schema has 0% description coverage for the parameter template_uuid. The description adds the meaning that it is a UUID identifier, which is valuable but still minimal. It does not describe the format, constraints, or source of the UUID. The schema provides minLength:1 but no further description, so the description partially compensates.

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

Purpose5/5

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

The description clearly states the verb (obtiene detalle) and the resource (plantilla de WhatsApp) and the identifier (UUID). It distinguishes the tool from sibling tools like list_whatsapp_templates and send_template by specifying it retrieves a single template's details.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or when not to use it. The context of retrieving a specific template by UUID is implied but not explicitly stated.

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

get_workflow_statusesC
Read-only

Lista los cambios de estado de conversaciones (workflow) con filtros opcionales por estado, teléfono, agente y rango de fechas.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
datesNoRango de fechas; formato YYYY-MM-DD,YYYY-MM-DD
phoneNo
actionNo
agent_idNo
per_pageNo

TDQS

C2.8/5.0
Behavior3/5

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

The readOnlyHint annotation covers the read-only nature. The description mentions listing status changes but does not disclose pagination behavior, rate limits, or response format. Since annotations already declare it safe, the description adds minimal behavioral context.

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

Conciseness3/5

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

The description is a single sentence, very concise but under-specified for a tool with 6 parameters. It lacks details on output or usage nuances.

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

Completeness2/5

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

Given the complexity (6 params, no output schema), the description is incomplete. It does not cover pagination, response structure, or what 'status changes' entail. The agent would need to infer behavior from schema alone.

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

Parameters2/5

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

With only 17% schema description coverage, the description should compensate. It lists filter categories (status, phone, agent, date range) but misses pagination parameters (page, per_page) and does not explain enum values for 'action'. This provides partial semantic help.

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 it lists status changes (cambios de estado) of conversations with optional filters, which differentiates it from sibling tools like get_conversation that get a single conversation. However, it does not specify the structure of the response.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like get_conversation or change_conversation_status. The description only states optional filters but does not exclude scenarios.

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

get_workflow_volume_reportC
Read-only

Reporte de volumen de workflow en un rango de fechas. from_id es un filtro opcional por número.

ParametersJSON Schema
NameRequiredDescriptionDefault
from_idNoFiltra por número de WhatsApp; si se omite, cubre todos
end_dateYesFecha final, formato YYYY-MM-DD
start_dateYesFecha inicial, formato YYYY-MM-DD

TDQS

C2.9/5.0
Behavior2/5

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

Annotations include readOnlyHint=true, indicating a safe read operation. The description does not add any behavioral information beyond what the annotations provide, such as authentication requirements or what the report contains.

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?

Extremely concise with two sentences: the first provides the core purpose, the second adds a filter detail. No unnecessary words or repetition.

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

Completeness2/5

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

Despite having no output schema, the description does not explain what the report returns (e.g., aggregated counts, per-day breakdown, format). This is insufficient for a report 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 description coverage is 100%, so parameters are well-documented in the schema. The description adds only a single sentence about from_id, which repeats schema content. No additional meaning is provided.

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 it's a workflow volume report in a date range, with an optional filter by number. It distinguishes from sibling report tools by focusing on 'workflow volume', but does not explicitly differentiate from similar reports like get_agent_volume_of_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?

No guidance is provided on when to use this tool versus other report tools (e.g., get_agent_performance_report, get_agent_volume_of_work). The description lacks context for selection.

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

list_campaignsA
Read-only

Lista todas las campañas de difusión de WhatsApp de la cuenta Wasapi.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, indicating safety. Description adds scope (all campaigns) and account context (Wasapi). However, no details on ordering, pagination, 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.

Conciseness5/5

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

Single sentence, directly states purpose. No wasted words. Front-loaded with action.

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 parameterless list-all tool with readOnly annotation and no output schema, the description is adequate. Could optionally mention return type but not necessary.

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

Parameters4/5

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

No parameters exist, and schema coverage is 100%. Description adds no parameter info, which is acceptable as there are none. Baseline of 4 per guidelines.

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

Purpose5/5

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

Clearly states it lists all WhatsApp broadcast campaigns from the Wasapi account. The verb 'list' and resource 'campañas de difusión de WhatsApp' are specific. Distinguishes from sibling 'get_campaign' which retrieves a single campaign.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Does not mention that 'get_campaign' should be used for a specific campaign. Usage context is only implicit.

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

list_contactsB
Read-only

Lista paginada de contactos de la cuenta Wasapi. Soporta búsqueda por texto o filtro por labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
labelsNo
searchNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description adds moderate value by specifying pagination and search/filter capabilities. However, it does not disclose default page size, sorting, or behavior for empty results, which would enhance transparency.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no redundant information, and front-loads the key purpose. Every word earns its place.

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

Completeness3/5

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

Given no output schema, the description minimally covers pagination and filters but omits details like return format, total count, or default pagination. For a list tool with 3 parameters, it is functional but not thorough.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate but only provides high-level hints: 'text search or filter by labels' loosely maps to search and labels parameters. The page parameter is unexplained, leaving a significant gap.

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

Purpose5/5

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

The description clearly states the tool lists contacts from the Wasapi account, highlighting pagination and support for text search or label filtering. This distinguishes it from sibling tools like get_contact (single contact) or search_contact_in_funnels (different context).

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives such as search_contact_in_funnels or list_labels. It only mentions supported filters but lacks explicit context for usage scenarios.

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

list_conversationsA
Read-only

Lista las conversaciones de la cuenta (paginado por cursor) con filtros opcionales por estado, texto, teléfonos, etiquetas, agentes y fechas. Distinto de get_conversation, que trae el hilo de mensajes con un contacto puntual.

ParametersJSON Schema
NameRequiredDescriptionDefault
datesNoRango de fechas YYYY-MM-DD,YYYY-MM-DD
queryNo
agentsNoIDs de agentes separados por coma
cursorNoCursor de paginación; normalmente usa get_conversations_next_page
labelsNoIDs de etiquetas separados por coma
phonesNoIDs/teléfonos separados por coma
statusNo
per_pageNo
all_agentsNo
search_typeNo
open_optionsNo
without_labelsNo
order_conversationsNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations include readOnlyHint=true, so read-only behavior is clear. Description adds pagination and filtering context, but does not disclose any additional behaviors like rate limits or response structure.

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

Conciseness5/5

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

Two concise sentences: first states purpose and key features, second differentiates from sibling. No unnecessary words.

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

Completeness3/5

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

Given 13 parameters and no output schema, the description provides adequate filter context but lacks guidance on pagination flow and output format. Could be more complete for a tool with this complexity.

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 low (38%). Description mentions filters for status, text, phones, labels, agents, and dates, which covers some parameters, but omits others like per_page, cursor, all_agents, search_type, etc. Partial compensation.

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

Purpose5/5

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

The description clearly states the tool lists conversations with cursor pagination and optional filters, and distinguishes it from the sibling get_conversation, which retrieves a specific conversation's message thread.

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?

Provides good differentiation from get_conversation, but does not mention related pagination flow with get_conversations_next_page, which is a sibling tool.

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

list_custom_fieldsA
Read-only

Lista todos los campos personalizados (custom fields) de la cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, indicating a safe read operation. The description adds no further behavioral details beyond that, so score is baseline 3.

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

Conciseness5/5

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

Single sentence, concise, and to the point with no wasted words. Front-loaded with the key action.

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 listing tool with no output schema, the description is mostly complete. It could be improved by explicitly stating what is returned (e.g., a list of custom field objects), but the basic purpose is clear.

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?

With 0 parameters and 100% schema coverage, the description adds no parameter info, but baseline for 0 params is 4. The description adequately covers that no parameters are needed.

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

Purpose5/5

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

Description clearly states the tool lists all custom fields of the account, using a specific verb and resource. It distinguishes from sibling tools like create_custom_field, delete_custom_field, and update_custom_field.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool vs alternatives such as list_labels or list_contacts. The description simply states what it does without usage context.

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

list_flowsB
Read-only

Lista todos los WhatsApp Flows de la cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

The description adds no behavioral details beyond the readOnlyHint annotation. It does not mention pagination, ordering, or any side effects, which are typical for a list operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. Every word contributes to the purpose.

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

Completeness2/5

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

Given no output schema and minimal annotations, the description should provide more context about what the tool returns (e.g., a list of flow objects). It is incomplete for a list-all 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?

The input schema has no parameters, and schema coverage is 100%. With zero parameters, the baseline is 4; the description does not need to add parameter info.

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 it lists all WhatsApp flows of the account, using the verb 'Lista' and specifying the resource. It is unambiguous, though it does not explicitly distinguish from sibling tools like list_flows_by_number.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusion criteria, leaving the agent to infer usage.

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

list_flows_by_numberA
Read-only

Lista los WhatsApp Flows disponibles para un número específico (from_id; usa el default si se omite).

ParametersJSON Schema
NameRequiredDescriptionDefault
from_idNo

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already indicate readOnlyHint=true, so the description's behavioral disclosure is minimal. It adds that omitting from_id uses a default, but does not elaborate on error cases or other behavioral traits. Given the annotation coverage, the description provides marginal added transparency.

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

Conciseness5/5

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

The description is a single, well-structured sentence that conveys all essential information without redundancy. Every word contributes to understanding, achieving high conciseness.

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 low complexity (one optional parameter, no output schema, read-only), the description is complete. It covers the tool's purpose and key parameter behavior, leaving no major gaps for an AI agent to use it 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?

With 0% schema description coverage, the description compensates by explaining that from_id specifies a number and can be omitted to use a default. This adds meaningful context beyond the schema's bare type definition. However, it could specify the default's origin or format for completeness.

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

Purpose4/5

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

The description clearly states the tool lists WhatsApp Flows for a specific number. The verb 'Lista' (list) and resource 'WhatsApp Flows' are specific, and the parameter from_id is mentioned. However, it does not explicitly differentiate from the sibling tool 'list_flows', which likely lists all flows, leaving some ambiguity.

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 context by specifying the parameter and noting that omitting it uses a default. However, it provides no explicit guidance on when to use this tool versus alternatives like 'list_flows', nor 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.

list_funnelsA
Read-only

Lista todos los embudos (funnels) de venta de la cuenta Wasapi, con sus etapas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

The description adds that stages are included in the listing, but otherwise the readOnlyHint annotation already covers the safety profile. No additional behavioral traits (e.g., pagination, ordering) are disclosed, so the description provides marginal added value beyond annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the verb and resource. Every word serves a purpose, with no extraneous 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?

Given the tool has no parameters and no output schema, the description adequately covers the core function. However, it could add details about ordering, pagination, or the exact structure of the stages, but these are not critical for a simple list operation.

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

Parameters4/5

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

The tool has no parameters, and schema description coverage is 100%. The description does not need to explain parameters, and it correctly conveys that the tool lists funnels with stages, which is consistent with the schema's empty properties.

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

Purpose5/5

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

The description clearly states the tool lists all sales funnels with their stages, using a specific verb ('lista') and resource ('embudos'). It distinguishes itself from sibling list tools by specifying 'de la cuenta Wasapi' and 'con sus etapas', making the purpose 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 description provides no guidance on when to use this tool versus alternatives like list_campaigns or list_labels. An agent must rely solely on the tool name, which may not be sufficient given many list tools exist.

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

list_labelsA
Read-only

Lista todas las etiquetas (labels) de la cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds no extra behavioral details beyond listing all labels, which is already covered by the name.

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

Conciseness5/5

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

Single sentence, no unnecessary words, fully front-loaded with the essential purpose.

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

Completeness5/5

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

For a simple list tool with no parameters and no output schema, the description is complete enough to convey what it does.

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

Parameters4/5

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

No parameters in input schema (100% coverage). Description adds no parameter info but none needed.

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

Purpose5/5

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

Description clearly states it lists all labels of the account, using a specific verb and resource. Distinguished from siblings like create_label, get_label, and search_labels.

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

Usage Guidelines4/5

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

Implied usage is clear (listing all labels) but no explicit guidance on when not to use or alternatives like search_labels for filtered listing.

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

list_templates_by_numberA
Read-only

Lista las plantillas disponibles para un número de WhatsApp específico (from_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
from_idYes

TDQS

A4.2/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint annotation, stating it lists templates. However, it adds no additional behavioral context such as error handling, rate limits, or authentication requirements beyond what annotations provide.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and includes the key parameter, making it efficient and clear.

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 list tool with one parameter and no output schema, the description provides adequate context. It could be improved by mentioning if the result list is paginated or ordered, but it covers the essential purpose.

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?

With 0% schema description coverage, the description compensates by explaining that 'from_id' is a specific WhatsApp number, providing meaning beyond the integer type and exclusiveMinimum constraint. However, it does not clarify the format or source of the number.

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

Purpose5/5

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

The description clearly states the verb ('Lista') and resource ('plantillas') with a specific condition ('para un número de WhatsApp específico'), effectively distinguishing it from sibling tools like 'list_whatsapp_templates' and 'get_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 Guidelines4/5

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

The description implies when to use this tool (when templates are needed for a specific number) but does not explicitly state when not to use or provide alternative tools, though the purpose is clear enough for an agent.

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

list_usersA
Read-only

Lista todos los usuarios (agentes) de la organización: nombre, email, rol, permisos y números de WhatsApp asignados. Útil para ver el equipo o decidir a quién asignar una conversación. Requiere el permiso 'view agents' en la cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault
with_sessionNoSi es true, incluye información de sesión de cada agente (si está en línea y su última actividad).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds the permission requirement and details about the with_session parameter (returns online status and last activity). No hidden 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.

Conciseness4/5

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

Two sentences: first lists output fields, second provides motivation and permission. Efficient and front-loaded. Could be slightly more structured but no fluff.

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 list tool with one optional parameter and no output schema, the description covers purpose, return fields, use case, and parameter effect. Sibling differentiation is implicit but sufficient.

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

Parameters4/5

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

Schema coverage is 100% with a description for with_session. The main description further clarifies what session info includes (online status, last activity), adding value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool lists all organization users (agents) with specific fields (name, email, role, permissions, WhatsApp numbers). It differentiates from siblings like list_contacts (contacts vs agents) and get_online_agents (subset).

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?

Provides use case ('view team, decide who to assign') and a prerequisite ('Requires view agents permission'). Does not explicitly mention when not to use or compare with alternatives like get_online_agents, but the context is clear enough.

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

list_whatsapp_numbersA
Read-only

Lista los números de WhatsApp conectados a la cuenta Wasapi. Devuelve los from_id disponibles para enviar mensajes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, establishing a read-only nature. The description adds useful context by specifying the returned data (from_ids) and their purpose for sending messages, going beyond the annotation.

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 consists of two concise sentences. The first sentence states the primary action, and the second explains the return value's purpose. No extraneous information, front-loaded with key facts.

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 list tool with no parameters and no output schema, the description adequately covers the tool's purpose and return value (from_ids). It could be improved by noting typical response structure or data format, but it is functionally 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?

The input schema has no parameters (0 params), so schema description coverage is 100%. The description does not need to add parameter info; it correctly omits any parameter details, earning a baseline 4 for 0-param tools.

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

Purpose5/5

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

The description clearly states it lists WhatsApp numbers connected to the Wasapi account and returns from_ids for sending messages. The name 'list_whatsapp_numbers' directly matches the action, and it is distinct from sibling tools like list_contacts or list_conversations.

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

Usage Guidelines3/5

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

The description implies the tool is used to obtain from_ids for message sending, but it does not explicitly guide when to use this tool versus alternatives like list_contacts. No exclusions or comparisons are provided.

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

Lista todas las plantillas de WhatsApp de la cuenta.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows it is a read operation. The description adds no further behavioral context beyond the annotation, meeting the baseline but not exceeding it.

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

Conciseness5/5

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

The description is a single, concise sentence that immediately conveys the tool's purpose with no extraneous words.

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

Completeness3/5

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

For a simple, parameterless, read-only tool, the description is minimally adequate. However, it lacks information about output format, pagination, or scope (account-wide vs. per number), which could affect agent decisions.

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

Parameters4/5

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

There are no parameters (0 params), and the schema coverage is 100%. The description does not need to add parameter details, and the baseline for zero parameters is 4.

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

Purpose5/5

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

The description clearly states the action (list) and resource (WhatsApp templates) in a straightforward manner. It distinguishes the tool from siblings like 'get_whatsapp_template' (singular) and 'list_templates_by_number' (filtered).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'list_templates_by_number' or 'get_whatsapp_template'. The description gives no context about prerequisites or exclusions.

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

move_contact_to_funnel_stageA
Destructive

Mueve un contacto a otra etapa de un embudo. Usa search_contact_in_funnels para obtener el funnel_contact_id y list_funnels para los IDs de etapa.

ParametersJSON Schema
NameRequiredDescriptionDefault
to_stage_idYes
funnel_contact_idYes

TDQS

A4.4/5.0
Behavior3/5

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

The description does not add significant behavioral context beyond what annotations already provide. Annotations already indicate destructiveHint=true, so the agent knows it is a mutation. The description simply says 'moves', which aligns but does not disclose side effects or error conditions.

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

Conciseness5/5

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

The description is extremely concise: two sentences, no redundant words. The first sentence states the purpose, the second provides actionable usage tips. It is front-loaded and efficient.

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, the description covers the essential purpose and parameter sourcing. However, it lacks details about what happens on failure, whether the contact must already be in the funnel, or any return values. The destructiveHint annotation partially compensates.

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?

Despite 0% schema description coverage, the description adds semantic value by telling the agent how to obtain each parameter: funnel_contact_id from search_contact_in_funnels, to_stage_id from list_funnels. This provides meaningful context beyond the bare 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 clear verb ('Mueve un contacto') and resource ('a otra etapa de un embudo'), directly stating the tool's action. It also distinguishes from siblings by referencing specific related tools (search_contact_in_funnels, list_funnels) which would be used to obtain required IDs.

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 description provides explicit guidance on when and how to use the tool: to move a contact to another funnel stage, and instructs the agent to first use search_contact_in_funnels and list_funnels to retrieve necessary IDs. This clearly indicates prerequisites and alternatives.

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

remove_label_from_contactA
Destructive

Quita una etiqueta (label) de un contacto. Usa contact_uuid (UUID del contacto) y label_id (número).

ParametersJSON Schema
NameRequiredDescriptionDefault
label_idYes
contact_uuidYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true. The description adds no further behavioral details beyond confirming the operation. It does not mention edge cases like non-existent contacts or labels.

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

Conciseness5/5

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

The description is extremely concise at two sentences, immediately states the action, and has no unnecessary words.

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

Completeness4/5

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

For a simple removal tool with no output schema, the description adequately covers purpose and parameters, but could mention that the label must exist or what happens upon failure.

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?

With 0% schema description coverage, the description clarifies that 'contact_uuid' is the contact's UUID and 'label_id' is a number, providing essential meaning beyond the raw schema types.

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

Purpose5/5

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

The description clearly states 'Removes a label from a contact' (specific verb and resource), and distinguishes from the sibling tool 'add_label_to_contact' which adds labels.

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

Usage Guidelines3/5

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

The description implies the tool is for removing a label, but does not provide explicit guidance on when to use it, prerequisites, or when alternatives like 'add_label_to_contact' might be more appropriate.

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

search_contact_in_funnelsA
Read-only

Busca un contacto dentro de los embudos por número de teléfono o por contact_uuid. Devuelve en qué embudo y etapa está.

ParametersJSON Schema
NameRequiredDescriptionDefault
contact_uuidNo
phone_numberNo

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the description adds that it returns funnel and stage. However, it does not disclose behavior for edge cases (e.g., no matching contact) or the response format beyond the stated return. The description adds some value but not extensive depth.

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

Conciseness5/5

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

The description is two sentences long, directly stating the action and result. It is front-loaded with the key information and contains no unnecessary details.

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 simple search functionality, annotations, and sibling tools, the description covers the main purpose and return value. It lacks explicit mention of what happens if no contact is found or whether multiple results can be returned, but for a search tool this is fairly 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 coverage is 0% (no parameter descriptions in schema). The description mentions the two parameters and that search can be by either phone or uuid, but it does not provide format, constraints, or which parameter is preferred. It adds minimal semantic value beyond the parameter names.

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

Purpose5/5

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

The description clearly specifies the verb 'search', the resource 'contact within funnels', and the search criteria (phone number or contact_uuid). It also states the return value (funnel and stage), distinguishing it from siblings like get_contact or list_funnels.

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

Usage Guidelines3/5

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

The description implies the tool is used to find a contact's funnel and stage by phone or uuid, but it does not explicitly mention when to use it versus alternatives (e.g., get_contact for contact details, move_contact_to_funnel_stage for moving) or any prerequisites or exclusion cases.

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

search_labelsA
Read-only

Busca una etiqueta por su nombre EXACTO (no es búsqueda parcial). Devuelve la etiqueta si el título coincide exactamente.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A4/5.0
Behavior3/5

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

States it returns label on exact match, but behavior on no match is unspecified. Also does not clarify case-sensitivity or trimming. Annotations indicate read-only, consistent.

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 succinct sentences, no extraneous information, front-loaded with key constraint.

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?

Adequate for a simple lookup tool with one parameter and read-only nature. No output schema but return expectation is clear.

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 0%, but description adds that the 'name' parameter refers to the label's exact name. Provides some context beyond schema but still minimal.

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

Purpose5/5

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

Clearly states it searches labels by exact name and returns the label. Differentiates from siblings like list_labels (lists all) and get_label (likely by ID).

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 mentions exact match, not partial, guiding correct usage. Lacks explicit mention of when to use alternatives or what to do if name unknown.

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

send_attachmentA
Destructive

Envía un archivo adjunto por WhatsApp desde una URL pública (imagen, video, audio o documento). El tipo se infiere de la extensión de la URL. from_id es opcional si WASAPI_FROM_ID está configurado.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYesWhatsApp ID del destinatario (E.164 sin +)
captionNoTexto descriptivo opcional para el adjunto
from_idNoID del número de WhatsApp emisor. Usa WASAPI_FROM_ID si se omite.
file_urlYesURL pública del archivo. El tipo (imagen/video/audio/documento) se infiere de la extensión de la URL; sin extensión reconocida se envía como documento.
filenameNoNombre con el que el destinatario recibe el archivo (útil para documentos)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=false and destructiveHint=true. The description adds behavioral context: the type is inferred from the URL extension, and from_id is optional if WASAPI_FROM_ID is configured. This goes beyond annotations without contradicting them.

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

Conciseness5/5

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

The description is extremely concise: two sentences covering the core action and key behavioral notes. No unnecessary words; every sentence is informative.

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 (5 parameters, 2 required), schema fully described, and annotations present, the description is complete enough. It covers the main purpose, type inference, and optional parameter behavior. Lack of output schema is mitigated by the clarity of the action.

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 baseline is 3. The description adds value by explaining that the file type is inferred from the URL extension and that from_id can be omitted if WASAPI_FROM_ID is set, which supplements the schema 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 clearly states the verb 'Envía' (sends), the resource 'archivo adjunto por WhatsApp' (attachment via WhatsApp), and the method 'desde URL pública' (from public URL). It distinguishes from sibling tools like send_message, send_template, etc. by specifying the attachment type and source.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: to send attachments from a public URL. It explains type inference and optional from_id with fallback. However, it does not explicitly state when not to use or mention alternatives, though the sibling list implies differentiation.

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

send_contact_cardC
Destructive

Envía una o más tarjetas de contacto (vCard) por WhatsApp a un destinatario.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYes
from_idNo
contactsYes
context_wam_idNo

TDQS

C2.6/5.0
Behavior2/5

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

Annotations (destructiveHint: true) already indicate potential destruction, but description adds no additional context, such as limits on number of contacts or side effects like overwriting existing vCards.

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?

One sentence is concise but too minimal for a tool with 4 parameters and complex nested objects. It could be slightly expanded without losing conciseness.

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

Completeness1/5

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

With no parameter descriptions, no output schema, and destructive annotations, the description is grossly inadequate for an agent to use the tool correctly and safely.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation of any parameter, not even the key 'contacts' parameter. Users must infer from the field names alone.

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

Purpose5/5

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

The description clearly states it sends vCard contact cards via WhatsApp, using the specific verb 'send' and resource 'contact cards', distinguishing it clearly from sibling tools like send_message, send_attachment, etc.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., send_message for plain messages). No mention of prerequisites or when not to use it.

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

send_flowB
Destructive

Envía un WhatsApp Flow interactivo a un contacto. Usa list_flows para descubrir flow_id y get_flow_screens para las pantallas.

ParametersJSON Schema
NameRequiredDescriptionDefault
ctaYesTexto del botón que abre el flow
wa_idYes
actionNo
screenYesPantalla inicial del flow (p.ej. WELCOME)
flow_idYes
messageYes
phone_idNo

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate destructiveHint=true, yet the description merely says 'send', which is common for sending actions. No additional behavioral details are provided, such as whether the action is reversible, costs involved, or permission requirements. The description adds minimal value beyond the annotation's destructive hint.

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 two sentences, concise and front-loaded with the core action. It could be slightly improved by including a brief list of required parameters, but it remains clear and non-redundant.

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

Completeness2/5

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

Given the tool has 7 parameters, 5 required, no output schema, and a destructive hint, the description is insufficient. It does not mention return values, error handling, the action parameter options (navigate/data_exchange), or the impact of the destructive operation. The hints for related tools are helpful but not enough for full contextual completeness.

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

Parameters1/5

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

Schema description coverage is only 29%, with only cta and screen described. The description does not explain any parameters, despite 5 required ones (wa_id, message, screen, flow_id, cta). It fails to compensate for low schema coverage, leaving an agent unsure about parameter details.

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

Purpose5/5

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

Description clearly states the tool sends an interactive WhatsApp Flow to a contact, distinguishing it from sibling tools like send_message or send_template which send plain messages. It also advises using list_flows and get_flow_screens for discovery, reinforcing the tool's specific role.

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 explicitly tells when to use this tool (to send an interactive flow) and provides helpful guidance to use list_flows and get_flow_screens to obtain necessary IDs. However, it does not explicitly state when not to use it or compare directly with alternative message-sending tools beyond the implicit distinction.

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

send_messageA
Destructive

Envía un mensaje de texto por WhatsApp. from_id es opcional si WASAPI_FROM_ID está configurado como variable de entorno.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYesWhatsApp ID of the recipient (E.164 without +, e.g. 5571999000000)
from_idNoWhatsApp number ID to send from. Falls back to WASAPI_FROM_ID env var. Use list_whatsapp_numbers to discover.
messageYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate destructiveHint=true. Description adds context about from_id fallback to env var, but does not disclose other behavioral traits like rate limits, error handling, or asynchronous nature.

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

Conciseness5/5

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

One concise sentence with essential info (purpose and from_id optionality). No redundant text.

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

Completeness4/5

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

No output schema, but description is sufficient for a simple send action. Does not mention return value or WhatsApp API prerequisites, but given tool's simplicity, completeness is adequate.

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

Parameters3/5

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

Schema coverage 67% (2/3 params described). Description adds context for from_id (fallback and discovery method). For wa_id and message, schema already covers format; description does not add beyond schema.

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

Purpose5/5

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

Clearly states 'Envía un mensaje de texto por WhatsApp' (Send a text message via WhatsApp), a specific verb+resource. Distinguishes from siblings like send_attachment, send_template.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. Only mentions from_id optionality via env var. Lacks when-not to use or comparison with send_template/send_flow.

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

send_templateA
Destructive

Envía una plantilla aprobada de WhatsApp a uno o más destinatarios. Soporta variables (body_vars/header_var/cta_var — consulta get_template_fields para conocerlas) y adjuntos por URL (url_file). from_id es opcional si WASAPI_FROM_ID está configurado.

ParametersJSON Schema
NameRequiredDescriptionDefault
cta_varNoVariable del botón CTA
from_idNo
agent_idNo
url_fileNoURL pública de archivo adjunto (imagen/video/documento/audio)
body_varsNoVariables del cuerpo de la plantilla
file_nameNo
header_varNoVariable del encabezado
recipientsYeswa_ids destino (E.164 sin +)
template_idYesUUID de la plantilla (ver list_whatsapp_templates)
contact_typeYes
chatbot_statusNo
conversation_statusNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=false and destructiveHint=true. The description adds behavioral context: variable support (with guidance to use get_template_fields), attachment by URL, and optional from_id depending on environment variable. This exceeds what annotations provide.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and each sentence adds distinct value: purpose first, then variable and attachment details. No redundant or superfluous text.

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

Completeness3/5

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

For a tool with 12 parameters and no output schema, the description covers key aspects (template, recipients, variables, attachments) but omits explanation of fields like agent_id, file_name, chatbot_status, conversation_status, and contact_type. The description is adequate but has clear gaps for full autonomous use.

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

Parameters3/5

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

Schema description coverage is about 58% (7/12 parameters have descriptions). The description adds semantic value for body_vars, header_var, cta_var (referencing get_template_fields), url_file, and from_id. However, other parameters like agent_id, file_name, and enum fields lack additional explanation beyond schema definitions.

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

Purpose5/5

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

The description clearly states the verb ('Envía'), resource ('una plantilla aprobada de WhatsApp'), and target ('uno o más destinatarios'). It differentiates from sibling send tools by specifying template-based sending with variable and attachment support.

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

Usage Guidelines3/5

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

The description implies usage for sending approved templates to multiple recipients with variables/attachments, but does not explicitly state when to use alternatives like send_message or send_attachment, nor when not to use this tool.

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

sync_meta_templatesA
Destructive

Sincroniza las plantillas desde Meta hacia Wasapi. Puede tardar; úsalo cuando creaste o editaste plantillas en Meta Business.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description adds that the operation may take time ('Puede tardar'), providing useful behavioral context beyond 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 sentences, front-loaded with the action and use case, with no unnecessary words. Every sentence adds value.

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

Completeness4/5

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

Given zero parameters and no output schema, the description adequately explains the tool's purpose and usage. It could mention return values or side effects, but the destructive hint covers safety aspects.

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

Parameters4/5

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

The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter info; it already explains the tool's action and when to use it.

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

Purpose5/5

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

The description clearly states the tool syncs templates from Meta to Wasapi, with a specific verb and resource. It differentiates from sibling tools like list_templates_by_number or get_whatsapp_template by focusing on synchronization.

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 explicitly says when to use it: after creating or editing templates in Meta Business. It does not provide when-not-to-use or alternatives, but the context is clear and sufficient.

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

toggle_bot_statusA
Destructive

Activa o desactiva el chatbot para un contacto. action: 'enable' lo activa, 'disable' lo desactiva temporalmente, 'disable_permanently' lo desactiva de forma permanente. from_id es opcional si WASAPI_FROM_ID está configurado.

ParametersJSON Schema
NameRequiredDescriptionDefault
wa_idYes
actionYes
from_idNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds behavioral nuance: the difference between temporary and permanent disable, and the optionality of from_id based on configuration. No contradictions.

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

Conciseness5/5

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

Single sentence delivers purpose, parameter meanings, and context. No fluff, every phrase adds value.

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

Completeness4/5

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

Given no output schema, the description covers action types and optional parameters. It lacks return value or side-effect details, but for a simple toggle, this is adequate.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries full burden. It explains the action enum and the optional from_id based on config. The wa_id parameter is not explicitly described but is obvious from context. Action semantics are well-covered.

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

Purpose5/5

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

The description clearly states the tool activates/deactivates the chatbot for a contact, specifying the exact actions (enable, disable, disable_permanently). It is distinct from sibling tools, which focus on contacts, conversations, agents, etc.

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 explains the three possible actions and their effects, providing context for usage. However, it does not explicitly state when to use this tool over alternatives, though sibling tools are unrelated.

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

update_contactA
Destructive

Actualiza un contacto existente. wa_id es requerido; los demás campos son opcionales.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNo
phoneNo
wa_idYes
last_nameNo
first_nameNo
country_codeNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide destructiveHint=true, so the description's lack of additional behavioral context (e.g., whether update is partial or full replacement, or side effects) is partially compensated. However, the description adds no extra transparency beyond the annotation, scoring a baseline 3.

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 one short sentence that conveys the core purpose and a key requirement (wa_id). It is efficient and front-loaded, though it could be slightly more structured (e.g., listing fields).

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

Completeness2/5

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

Given the tool has 6 parameters, no output schema, and is destructive, the description should address what happens on update, whether it returns the updated contact, and more behavioral details. It leaves many questions unanswered, making it incomplete.

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

Parameters2/5

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

With 0% schema description coverage, the description must provide meaning for each parameter. It only mentions that wa_id is required and others are optional, but does not explain what each field (e.g., email, phone, country_code) does or how they affect the contact. This is insufficient.

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

Purpose5/5

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

The description clearly states the action ('actualiza' = update) and the resource ('contacto existente'), and specifies that wa_id is required. This distinguishes it from sibling tools like create_contact or delete_contact.

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

Usage Guidelines4/5

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

The description implies usage by stating wa_id is required and other fields are optional, but it does not explicitly say when to use this tool versus alternatives (e.g., use create_contact if contact doesn't exist). Context is clear but lacks exclusion guidance.

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

update_custom_fieldC
Destructive

Actualiza el nombre de un campo personalizado existente.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
field_idYes

TDQS

C2.9/5.0
Behavior2/5

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

The description adds minimal behavioral context beyond the annotations. While annotations indicate destructiveHint=true, the description does not explain the implications of updating a custom field (e.g., irreversible changes, cascading effects).

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

Conciseness4/5

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

The description is a single sentence that front-loads the action. It is concise but could be more informative without adding 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?

Given the absence of an output schema and low parameter coverage, the description is incomplete. It does not state return values, error conditions, or idempotency. It is minimally functional but lacks completeness for an agent to use confidently.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate. It only mentions 'nombre' (name) but does not explain 'field_id' or how to obtain it, nor does it clarify the constraints or format of the parameters.

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

Purpose5/5

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

The description clearly states the tool updates the name of an existing custom field. It uses a specific verb ('update') and resource ('custom field name'), distinguishing it from sibling tools like create_custom_field and delete_custom_field.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. It does not mention scenarios where updating a custom field is appropriate, nor does it exclude cases where other tools (e.g., update_contact) should be used.

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

update_labelC
Destructive

Actualiza una etiqueta existente (título, color, descripción).

ParametersJSON Schema
NameRequiredDescriptionDefault
colorYes
titleYes
label_idYes
descriptionNo

TDQS

C2.7/5.0
Behavior2/5

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

The description only states 'Actualiza', which implies modification. Annotations include destructiveHint=true, which may suggest data destruction, but the description does not clarify the impact of updating (e.g., whether unspecified fields are cleared or kept). No mention of authorization, side effects, or behavior beyond the annotation. The description adds minimal value beyond 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?

The description is a single sentence, concise and front-loaded with the verb and resource. However, given the tool has 4 parameters and no output schema, the brevity may sacrifice necessary detail. It earns a 4 for efficiency but lacks structure.

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?

The tool has 4 parameters, no output schema, and annotations with destructiveHint=true. The description does not explain return values, error conditions, or the full effect of the operation (e.g., whether it overwrites or merges fields). It is incomplete given the complexity.

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

Parameters2/5

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

Schema coverage is 0%, meaning the description does not explain parameters. It vaguely mentions 'título, color, descripción' but omits the required label_id parameter and provides no details on constraints, formats, or behavior (e.g., what happens if description is omitted). The description fails to compensate for the lack of schema documentation.

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 'Actualiza una etiqueta existente (título, color, descripción)', which clearly indicates the verb (update) and resource (label). It mentions specific fields that can be updated, providing clarity. However, it does not explicitly differentiate from sibling tools like create_label or delete_label, but the word 'existente' helps distinguish from creation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as create_label, delete_label, or search_labels. The description does not specify prerequisites, scenarios, or exclusions, leaving the agent without context for proper selection.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, with detailed descriptions. Metrics tools like get_agent_time_in_conversation and get_agent_time_response are specific. However, the sheer number of tools (62) could still cause some confusion, and tools like list_conversations vs get_conversation serve different functions but may be misunderstood.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern with snake_case (e.g., get_contact, list_contacts, create_label). Minor deviations like change_conversation_status instead of update_conversation_status exist, but overall it's predictable and readable.

Tool Count3/5

With 62 tools, the count is high but arguably appropriate for a comprehensive WhatsApp API server covering contacts, conversations, campaigns, flows, templates, metrics, and more. However, it feels heavy for typical use, and some tools could be consolidated (e.g., multiple agent metrics).

Completeness4/5

The tool set covers CRUD operations for most entities (contacts, labels, custom fields, templates), sending various message types (text, attachment, flow, template), metrics, and workflow management. Missing: conversation deletion, campaign updates, and direct conversation ID lookup (get_conversation only by wa_id). Still, it's quite thorough.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables AI assistants to interact with WhatsApp through the WSAPI service, supporting comprehensive messaging, contact management, group operations, and account management functionality. Allows sending various media types, managing chats, and controlling WhatsApp sessions through natural language.
    100
    32
    3
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables interaction with WhatsApp through the Uazapi API, allowing users to send text and media messages, manage contacts, and list conversations through natural language.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage WhatsApp communications by sending messages, managing groups, and analyzing conversation patterns via the WaliChat API. It supports tasks like message scheduling, contact management, and automated business workflows through natural language commands.
    27
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vinix-Code-Dev/wasapi-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server