Evolution API WhatsApp MCP Server
This server provides a comprehensive WhatsApp integration via Evolution API, enabling complete management of WhatsApp instances and interactions.
Core Capabilities:
Instance Management: Create, connect, list, check status, and delete WhatsApp instances
Message Sending: Send text, media (images, videos, audio, documents), interactive buttons, and list messages
Template Management: Create, retrieve, update, delete, search, and send message templates with variable support
Contact & Group Operations: Verify WhatsApp numbers, list contacts/groups, create groups, manage participants
Chat Management: Retrieve chats and messages, mark messages as read
Server Monitoring: Check health status and retrieve server information
Provides comprehensive WhatsApp Business API integration through Evolution API, enabling management of WhatsApp instances, sending various message types (text, media, interactive buttons/lists), managing contacts and groups, and using dynamic message templates for common business scenarios like order confirmations, appointment reminders, and customer support.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Evolution API WhatsApp MCP Serversend order confirmation to 554198908495 with template variables: order number 12345, delivery date tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Evolution API MCP Server - Guía de Uso
Configuración Actual
URL del Servidor MCP: https://mcp-evolution-api-fixed-production.up.railway.app
URL de Evolution API: https://evolution-api-evolution-api.dqyvuv.easypanel.host
API Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24
Instancia: Luis2
Número de prueba: 554198908495
Related MCP server: WhatsApp Cloud API MCP Server
Endpoints Disponibles
1. Información del Servidor
curl https://mcp-evolution-api-fixed-production.up.railway.app/2. Estado de Salud
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/health \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"3. Listar Instancias
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/instances \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"4. Estado de una Instancia
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/instances/Luis2/status \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"5. Enviar Mensaje de Texto
curl -X POST https://mcp-evolution-api-fixed-production.up.railway.app/api/send/text \
-H "Content-Type: application/json" \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24" \
-d '{
"instanceName": "Luis2",
"number": "554198908495",
"text": "Hola! Este es un mensaje de prueba"
}'6. Verificar Números de WhatsApp
curl -X POST https://mcp-evolution-api-fixed-production.up.railway.app/api/check-numbers \
-H "Content-Type: application/json" \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24" \
-d '{
"instanceName": "Luis2",
"numbers": ["554198908495", "5541999999999"]
}'7. Listar Contactos
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/instances/Luis2/contacts \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"8. Listar Grupos
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/instances/Luis2/groups \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"9. Listar Chats
curl https://mcp-evolution-api-fixed-production.up.railway.app/api/instances/Luis2/chats \
-H "X-API-Key: BC10D87095B7-44E2-B1A4-F03BE2BECE24"Solución de Problemas
El mensaje no llega a WhatsApp
Verificar que la instancia esté conectada:
La instancia debe tener estado "open" o "connected"
Si no está conectada, necesitas escanear el código QR nuevamente
Formato del número:
Brasil: 55 + código de área + número (ejemplo: 554198908495)
Sin espacios, guiones o símbolos
Sin el símbolo + al inicio
Verificar si el número tiene WhatsApp:
Usa el endpoint
/api/check-numberspara verificar
Error "Access denied"
Verifica que estés enviando el header
X-API-Keycon el valor correctoEl API Key debe ser: BC10D87095B7-44E2-B1A4-F03BE2BECE24
Error de conexión
Verifica que Evolution API esté funcionando:
curl https://evolution-api-evolution-api.dqyvuv.easypanel.host/instance/fetchInstances \ -H "apikey: BC10D87095B7-44E2-B1A4-F03BE2BECE24"Si Evolution API no responde, el problema está en Easypanel
Scripts de Prueba
Hay dos scripts de prueba disponibles:
test-mcp.sh - Prueba el servidor MCP
test-evolution-direct.sh - Prueba directamente Evolution API
Para ejecutarlos en Windows, usa Git Bash:
bash test-mcp.sh
bash test-evolution-direct.shActualización del Código
Cuando hagas cambios en el código:
Commit y push a GitHub:
git add . git commit -m "Descripción del cambio" git push origin masterRailway detectará automáticamente los cambios y redesplegará
Verifica el estado del deployment en Railway:
Ve a https://railway.app
Entra al proyecto "MCP Servers"
Revisa el estado del deployment
Estructura del Proyecto
evolution-api-mcp-server/
├── src/
│ ├── index.ts # Archivo principal
│ ├── routes/
│ │ └── api.ts # Rutas HTTP de la API
│ ├── services/
│ │ ├── evolution-api.ts # Cliente de Evolution API
│ │ └── template-service.ts # Servicio de templates
│ └── types/
│ └── evolution.ts # Tipos TypeScript
├── package.json
├── tsconfig.json
├── Dockerfile
└── .env # Variables de entorno (local)Variables de Entorno en Railway
Las siguientes variables están configuradas en Railway:
EVOLUTION_API_URL: https://evolution-api-evolution-api.dqyvuv.easypanel.hostEVOLUTION_API_KEY: BC10D87095B7-44E2-B1A4-F03BE2BECE24MCP_SERVER_PORT: 3000NODE_ENV: production
Notas Importantes
Seguridad: Nunca expongas el API Key en código público
Rate Limiting: Evolution API puede tener límites de tasa
Sesión de WhatsApp: La sesión puede expirar y requerir nuevo escaneo de QR
Números bloqueados: WhatsApp puede bloquear números que envían muchos mensajes
Contacto y Soporte
Para problemas con:
Evolution API: Revisa la documentación en https://doc.evolution-api.com
Railway: https://railway.app/support
Easypanel: Panel de control de tu instancia
Última actualización: 14 de Septiembre de 2025
Available Tools
25 toolsadd_participantsC
Add participants to a group
| Name | Required | Description | Default |
|---|---|---|---|
| groupJid | Yes | Group JID | |
| instanceName | Yes | Instance name | |
| participants | Yes | Phone numbers to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits like authentication needs, rate limits, or what happens if participants already exist or are invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no waste. Perfectly concise for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool mutates state, has 3 required parameters, and no output schema or annotations, the description should provide more context (e.g., return value, side effects). It is too minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the parameter names and types (e.g., format of phone numbers or groupJid).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add participants') and the resource ('to a group'). It distinguishes from siblings like 'remove_participants' and 'create_group', though it could be more explicit about the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Sibling 'remove_participants' exists but is not mentioned. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_numberC
Check if phone numbers have WhatsApp
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name | |
| numbers | Yes | Phone numbers to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as required instance state, return format, rate limits, or side effects. This is a severe gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure and additional helpful information. It is minimally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two simple parameters and no output schema, the description is critically incomplete. It fails to explain the output, behavioral expectations, or any edge cases, leaving the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines both parameters. The description adds no additional meaning beyond what the schema provides, meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check if phone numbers have WhatsApp' uses a specific verb and resource, clearly indicating the action. However, it does not differentiate from sibling tools such as get_chats or list_contacts, which also deal with contacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or when not to use it. The description is too minimal to help an agent decide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_instanceC
Connect a WhatsApp instance
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name to connect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'Connect', which is vague; it does not describe whether this modifies state, requires authentication, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise but lacks necessary detail. It could be improved with a few more words to clarify the tool's operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, and the existence of multiple sibling tools for instance management, the description does not sufficiently explain what connecting entails, prerequisites, or expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter instanceName with a description. The tool description adds no additional meaning or context about the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Connect a WhatsApp instance' clearly states the action and resource. It distinguishes from siblings like create_instance or delete_instance, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as instance_status or list_instances. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupB
Create a new WhatsApp group
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | Group description | |
| instanceName | Yes | Instance name | |
| participants | Yes | Phone numbers of participants | |
| subject | Yes | Group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It only says 'Create a new WhatsApp group' without disclosing authentication requirements, side effects, or constraints like participant limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that is front-loaded and to the point. It does not waste words, though it could be slightly expanded for context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what the return value is (e.g., group ID) or that an active instance is required. More context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter names and descriptions. The tool description does not add any extra meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'a new WhatsApp group'. It distinguishes from sibling tools like 'add_participants' (modifies existing group) and 'list_groups' (lists groups).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a connected instance) or any when-not scenarios. Implicit only from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_instanceB
Create a new WhatsApp instance
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Name for the instance | |
| qrcode | No | Generate QR code for connection | |
| webhookUrl | No | Webhook URL for events |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it creates an instance but does not explain what that entails (e.g., if it triggers a connection, returns credentials, or requires authentication). This is insufficient for an agent to understand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one sentence that states the purpose. While efficient, it could include more detail without becoming verbose, but it has no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no output schema, no annotations), the description is incomplete. It lacks information about return values, side effects, and usage steps, which are important for a creation action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no extra meaning or context beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new WhatsApp instance' uses a specific verb and resource, clearly distinguishing it from sibling tools like connect_instance, delete_instance, and instance_status. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives (e.g., connect_instance for existing instances). There is no mention of prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_templateC
Create a new message template
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Template category | |
| description | No | Template description | |
| name | Yes | Template name | |
| tags | No | Template tags | |
| text | Yes | Template text with {{variables}} | |
| variables | No | List of variable names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'create' without explaining what happens on duplicate names, side effects, return values, or required permissions. This is inadequate for a creation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence, which is efficient. However, it lacks necessary detail, making it under-specified for an agent to use effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description should provide more context about the tool's behavior, return values, or error handling. It does not differentiate from siblings or address complexity, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. However, the description adds no additional meaning beyond the schema, such as usage hints or relationships between parameters. The baseline of 3 is reduced because the description offers no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and the resource 'message template', clearly indicating the action and object. It distinguishes from sibling tools like update_template, delete_template, and send_template, which have different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as update_template or send_template. There is no mention of prerequisites, context, or conditions for use, leaving the agent without direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_instanceB
Delete a WhatsApp instance
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'Delete a WhatsApp instance'. Does not disclose side effects like data loss, irreversibility, or prerequisites (e.g., instance must exist). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Appropriate length for a simple deletion tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 param, no output schema), description is minimal but sufficient for basic understanding. Could mention permanence or need for existing instance to improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the sole parameter 'instanceName' with description 'Instance name to delete'. Description adds no value beyond schema; baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Delete a WhatsApp instance' with specific verb (delete) and resource (WhatsApp instance). Distinguishes from siblings like create_instance, connect_instance, list_instances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as disabling an instance or removing in parts. Implied usage is straightforward, but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_templateC
Delete a custom template
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the action. It does not mention irreversibility, required permissions, or side effects (e.g., impact on existing messages or instances using the template). This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence, four words) with no wasted words. However, it could be slightly expanded to include a caution or context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete action, the description covers the basic purpose and required input. However, it lacks any mention of return value, confirmation, or potential consequences, so it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the parameter as 'Template ID to delete.' The tool description adds no additional meaning beyond that, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and resource (custom template), making the purpose obvious. It is distinct from sibling tools like create_template or list_templates, though it does not elaborate on what qualifies as a custom template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or caveats. There are no other delete tools, but the description misses context such as checking template usage before deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chatsC
Get all chats
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose if the operation is read-only, whether it returns paginated results, or any side effects. The burden falls entirely on the description which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (3 words), but this brevity sacrifices completeness. Appropriate for a simple concept, but could be slightly more descriptive without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only a minimal description, the agent lacks context on what 'chats' means, the return format, or any constraints. Given the complexity of sibling tools, more detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the schema already documents it. The description adds no additional semantics beyond 'Instance name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get all chats' clearly states the action and resource, but lacks specificity about scope or what constitutes a chat. It is distinguishable from siblings like 'get_messages' but minimal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_messages' or 'list_groups'. No context about 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_messagesC
Get messages from a chat
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name | |
| limit | No | Number of messages to retrieve | |
| remoteJid | Yes | Chat JID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description solely states the action. It does not disclose whether the operation is read-only, requires authentication, or has rate limits, which is critical for an AI agent selecting tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no fluff. While very brief, it conveys the essential purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool lacks an output schema and the description provides no information about return format, pagination, or risk. For a message retrieval tool with many siblings, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so all parameters are documented. The description adds no extra meaning beyond the schema, resulting in the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'get' and resource 'messages from a chat', making the core action obvious. However, it does not distinguish from siblings like 'read_message' (singular) or 'get_chats', leaving scope ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as read_message or send_text. There are no context markers, 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_templateB
Get a specific template by ID
| Name | Required | Description | Default |
|---|---|---|---|
| templateId | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'Get', omitting behavior on missing template, return format, or errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence, front-loaded with key information, no filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimally adequate for a simple get operation, but lacks details about return value, error handling, or prerequisites given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and schema already describes templateId; the description adds no extra meaning, just restates 'by ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'specific template by ID', distinguishing it from siblings like list_templates, create_template, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives; implied usage from the description but no exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instance_statusA
Get connection status of an instance
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits such as required permissions, rate limits, error behavior, or what the response contains. For a read operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is minimally acceptable. However, it lacks information about return values or error conditions, which would be helpful for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'instanceName', which already provides a basic description. The tool description does not add additional context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'connection status of an instance'. It effectively distinguishes this tool from sibling tools like create_instance, delete_instance, or send_text, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking connection status, but it does not provide explicit guidance on when to use this tool over alternatives (e.g., list_instances). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contactsC
List all contacts
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It only says 'List all contacts', with no mention of read-only nature, pagination, rate limits, or return value format. The safe read operation is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single brief sentence, making it front-loaded but under-specified. It lacks important details that could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter and no output schema, the description should at least hint at the return format or behavior. It does not, leaving the agent without complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter. The description adds no further meaning beyond what the schema provides ('Instance name'). Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List all contacts', clearly indicating the verb and resource. It distinguishes from sibling tools like list_groups or list_instances. However, the scope ('all contacts' vs. per instance) is ambiguous given the required instanceName parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives such as search or filter operations. No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_groupsC
List all groups
| Name | Required | Description | Default |
|---|---|---|---|
| getParticipants | No | Include participants list | |
| instanceName | Yes | Instance name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose any behavioral traits such as authentication, rate limits, or side effects. For a listing tool, information about return format or pagination is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, front-loading the core action. However, it could be expanded without losing conciseness to include important context like return type.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and the description does not explain what the tool returns. With two parameters and one optional, the description should clarify the effect of getParticipants but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for both parameters, so baseline is 3. The description adds no additional meaning beyond the schema, but does not need to since parameters are already described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all groups' clearly states the verb (list) and resource (groups), indicating the tool's purpose. However, it does not differentiate from sibling tools like list_contacts or create_group, but the distinction is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context for prerequisites or scenarios, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_instancesC
List all WhatsApp instances
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'List all WhatsApp instances', implying a read operation, but it does not specify safety, rate limits, or any side effects. The minimal description leaves uncertainty about the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise. However, it is overly terse and lacks explanatory value beyond restating the tool name. It could be slightly expanded to improve clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description should provide more context about what the tool returns or any limitations. It only states the action, leaving the user without a complete understanding of the tool's output or behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is 100%. With no parameters to document, the description does not need to add parameter-specific meaning. The baseline score of 4 is appropriate as there is no missing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all WhatsApp instances' clearly states the verb 'list' and the resource 'WhatsApp instances'. While it directly conveys the tool's function, it could benefit from more context about what constitutes an instance, especially given the sibling tools like list_contacts and list_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as list_contacts or list_groups. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesC
List all message templates
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category | |
| tags | No | Filter by tags |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior like read-only nature or return format. It only states 'list', which implies a read operation, but does not confirm it or describe side effects, pagination, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, making it efficient. However, it omits important details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and no output schema, the description should provide more context, such as return format or that it retrieves templates. It is too brief to be fully useful for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (tags, category) with descriptions. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all message templates' clearly states the verb (list) and resource (message templates), but does not differentiate from sibling tools like search_templates. It implies a broad listing, which is clear but lacks distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as search_templates or get_template. There is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messageC
Mark message as read
| Name | Required | Description | Default |
|---|---|---|---|
| fromMe | No | Is message from me | |
| id | No | Message ID | |
| instanceName | Yes | Instance name | |
| remoteJid | Yes | Chat JID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral context beyond the basic action. It does not disclose whether this is a write operation (mutation), required permissions, side effects, or return values. With no annotations, the description carries the full burden but provides minimal detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and clearly states the purpose. It earns its place but is extremely brief given the tool's complexity and lack of other metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It does not explain the effect on message state, required permissions, or how this relates to other tools like 'get_messages'. The complexity is moderate but not fully addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, which already describes each parameter. No extra context is provided for parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Mark message as read') and resource ('message'), indicating a specific verb and object. However, it does not distinguish this from sibling tools like 'get_messages' or 'send_text', which might also affect read status or message handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, scenarios (e.g., after reading a message), or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_participantsB
Remove participants from a group
| Name | Required | Description | Default |
|---|---|---|---|
| groupJid | Yes | Group JID | |
| instanceName | Yes | Instance name | |
| participants | Yes | Phone numbers to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description is too brief: it does not disclose that this is a destructive action, potential need for admin rights, connection requirements, or error behavior. Falls short for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, minimal. While concise, it lacks necessary detail to be fully useful. It is adequately structured but too sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 required parameters, no output schema, and no annotations, the description is insufficient. It omits prerequisites, return values, and error handling, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation coverage is 100%, so baseline is 3. The description adds no extra context beyond what the schema provides; it merely restates the purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove participants from a group', specifying the verb (remove) and resource (participants from a group). This distinguishes it from sibling 'add_participants'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'add_participants' or other group management tools. No mention of prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_templatesC
Search templates by text
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as partial match behavior, case sensitivity, pagination, or response format. For a search tool, these are critical gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient and front-loaded. No wasted words, but could be expanded without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simple schema, the description lacks context on what fields are searched (name, content?), how results are presented, and any limitations. With no output schema, more details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'query' described as 'Search query'. Tool description adds no further meaning beyond that, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states verb 'search', resource 'templates', and method 'by text'. It distinguishes from siblings like list_templates (list all) and get_template (by ID), though could be more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use search_templates versus list_templates or get_template. Does not mention that search is text-based and filtering differs from listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_buttonsD
Send message with buttons
| Name | Required | Description | Default |
|---|---|---|---|
| buttons | Yes | Array of buttons | |
| description | No | Message description | |
| footer | No | Message footer | |
| instanceName | Yes | Instance name | |
| number | Yes | Recipient phone number | |
| title | No | Message title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It fails to disclose any behavioral traits such as whether the action is destructive, requires authentication, or has side effects. The description provides no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words), but this is due to under-specification rather than conciseness. It lacks structured information and misses key details that would help an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters and no output schema or annotations, the description is grossly incomplete. It fails to provide essential context such as expected behavior, return data, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what is in the schema, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the basic action (send a message with buttons), but it is vague and does not distinguish from sibling tools like send_text, send_list, or send_media. A more specific verb and resource description would improve clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_listC
Send interactive list message
| Name | Required | Description | Default |
|---|---|---|---|
| buttonText | No | Button text | |
| description | No | List description | |
| instanceName | Yes | Instance name | |
| number | Yes | Recipient phone number | |
| sections | Yes | List sections | |
| title | No | List title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, prerequisites, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant information. Concisely conveys the tool's action, though more detail could be added without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and no context on return values or error scenarios. For a tool with multiple parameters and siblings, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents parameters. The description adds no additional meaning or usage hints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sends an interactive list message, which is specific to this tool. However, it does not differentiate from sibling tools like send_buttons, which also send interactive messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like send_buttons, send_template, or send_text. The description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_mediaC
Send media (image, video, audio, document)
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Media caption | |
| fileName | No | File name for documents | |
| instanceName | Yes | Instance name | |
| media | Yes | Media URL or base64 | |
| mediatype | Yes | Type of media | |
| number | Yes | Recipient phone number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavior. It only states the basic action, failing to mention authorization needs, rate limits, side effects (e.g., instance must be connected), or the format of the 'media' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase), but it does not provide structured information. It is not verbose, but it sacrifices completeness for brevity. It could be improved with a sentence or two.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters and no output schema, the description is insufficient. It does not explain return values, error scenarios, or prerequisites (e.g., instance must be connected). A more complete description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains all parameters. The description adds no extra meaning beyond listing media types, which is already in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send media') and lists the supported media types (image, video, audio, document). However, it does not differentiate from sibling tools like send_text or send_buttons, which also send messages. The purpose is clear but lacks distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool compared to alternatives such as send_buttons, send_list, or send_template. There are no usage context or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_templateC
Send a message using a template
| Name | Required | Description | Default |
|---|---|---|---|
| instanceName | Yes | Instance name | |
| number | Yes | Recipient phone number | |
| templateId | Yes | Template ID | |
| variables | Yes | Variables to replace in template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as whether templates must be approved, how variables are substituted, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise at 6 words, but lacks necessary detail to be fully useful. Front-loads the core action, but misses context for agent decision-making.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and multiple sibling tools, the description is incomplete. It does not explain template usage, variable format, or when to prefer this over other send tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions, so baseline is 3. The description adds no extra meaning beyond 'send using template', which is already implied by the tool name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'send' and resource 'message using a template', distinguishing it from siblings like send_text and send_media. However, it does not elaborate on what a template is or imply the pre-approved nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like send_text, send_list, or send_buttons. The description lacks any context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_textC
Send a text message
| Name | Required | Description | Default |
|---|---|---|---|
| delay | No | Delay in milliseconds | |
| instanceName | Yes | Instance name | |
| number | Yes | Recipient phone number | |
| text | Yes | Message text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits such as required authentication, message length limits, or side effects. It only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no waste, but it is too brief given the complexity and sibling context. It does not earn its place fully as it lacks valuable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and minimal description leave many questions: what is returned? Any validation? For a 4-parameter tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, but the description adds no additional meaning beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Send a text message' which clearly names the action and resource, but does not differentiate from sibling tools like send_media or send_list. It lacks specificity about the platform or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. With many sibling messaging tools, explicit usage context is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_templateB
Update an existing template
| Name | Required | Description | Default |
|---|---|---|---|
| description | No | New description | |
| name | No | New name | |
| templateId | Yes | Template ID | |
| text | No | New text | |
| variables | No | New variables list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits, but it only says 'Update' without explaining merge vs replace behavior, required permissions, or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and directly states the purpose, but it could be slightly more informative without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is insufficiently complete, lacking details on return values or partial update behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters; the description adds no extra value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('an existing template'), distinguishing it from siblings like 'create_template' and 'delete_template'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or any prerequisites; the description is too minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
v1.0.0- First observed
add_participants - First observed
check_number - First observed
connect_instance - First observed
create_group - First observed
create_instance - First observed
create_template - First observed
delete_instance - First observed
delete_template - First observed
get_chats - First observed
get_messages - First observed
get_template - First observed
instance_status - First observed
list_contacts - First observed
list_groups - First observed
list_instances - First observed
list_templates - First observed
read_message - First observed
remove_participants - First observed
search_templates - First observed
send_buttons - First observed
send_list - First observed
send_media - First observed
send_template - First observed
send_text - First observed
update_template
TDQS
Scored across 25 tools
Most tools have clearly distinct purposes targeting specific WhatsApp operations like instance management, messaging, group handling, and template management. However, there is some potential overlap between 'send_text', 'send_template', 'send_buttons', 'send_list', and 'send_media' as they all involve sending messages, though their descriptions differentiate them by message type.
Tool names follow a highly consistent verb_noun pattern throughout, such as 'create_group', 'list_contacts', 'send_media', and 'update_template'. All tools use snake_case with clear, descriptive verbs aligned with their actions, making the set predictable and easy to understand.
With 25 tools, the count is on the higher end for an MCP server, bordering on heavy. While it covers a broad range of WhatsApp functionalities comprehensively, it may feel overwhelming or redundant in some areas, such as multiple message-sending tools, which could have been consolidated.
The tool set provides extensive coverage for WhatsApp operations, including instance lifecycle (create, connect, delete, status), messaging (text, media, templates, interactive), group management (create, add/remove participants, list), and template CRUD (create, get, update, delete, list, search). No obvious gaps are present for the domain.
Maintenance
Related MCP Connectors
Send and schedule SMS and WhatsApp messages, manage contacts and templates, and track delivery.
Run WhatsApp Business campaigns from any AI assistant: contacts, segments, and broadcasts.
WhatsApp CRM for AI agents: search contacts, read chats, manage the sales pipeline, send messages.
WhatsApp for your app or AI agent over OAuth2 — the same connections WASync runs inside your CRM.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables WhatsApp integration through Evolution API, allowing users to send messages, manage media, track conversations, and control presence status directly from Claude.MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to send WhatsApp messages, templates, and retrieve media through the WhatsApp Cloud API. Provides webhook handling and seamless integration with Meta's WhatsApp Business platform.23-
- AlicenseBqualityDmaintenanceEnables sending WhatsApp Business messages including text, media, interactive lists/buttons, and template management through the WhatsApp Business API via Nango integration.11MIT
- FlicenseBqualityBmaintenanceEnables WhatsApp messaging and management through the Evolution API, supporting sending texts, checking numbers, listing contacts and groups, and more.25-