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 "Install 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?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a write operation ('add') but doesn't disclose permissions needed, rate limits, error conditions, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
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 zero waste. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks crucial context like required permissions, what the response contains, error handling, or how it interacts with sibling tools (e.g., 'remove_participants').
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 parameters are documented in the schema. The description adds no additional meaning beyond implying 'participants' are added to a 'group', which is already clear from the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('add') and resource ('participants to a group'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'remove_participants' or 'create_group', which would require mentioning it's for existing groups only.
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. It doesn't mention prerequisites (e.g., group must exist), exclusions (e.g., cannot add participants to non-existent groups), or related tools like 'remove_participants' or 'create_group'.
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, so the description carries full burden. It doesn't disclose behavioral traits like whether this is a read-only operation, what permissions are needed, how results are returned, rate limits, or what 'checking' actually involves (e.g., real-time verification vs cached data). The description is too minimal for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that states the core purpose without any wasted words. It's front-loaded with the essential information and earns its place efficiently.
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 annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., boolean results per number, status details), error conditions, or how it interacts with the WhatsApp system. For a verification tool in a WhatsApp API context, 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 description coverage is 100%, so the schema already documents both parameters (instanceName and numbers). The description doesn't add any meaning beyond what's in the schema - it doesn't explain format requirements for phone numbers or what 'instanceName' refers to in this context.
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 tool's purpose: checking if phone numbers have WhatsApp. It uses a specific verb ('check') and resource ('phone numbers'), but doesn't differentiate from siblings like 'list_contacts' or 'get_chats' which might provide related contact information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. There's no mention of prerequisites (like needing an active instance), comparison to sibling tools, or context about what 'checking' entails beyond the basic purpose.
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 carries full burden but offers minimal behavioral insight. 'Connect' implies a state-changing operation, but it doesn't disclose if this requires authentication, affects instance availability, involves network calls, or has side effects like session initiation. For a mutation tool with zero annotation coverage, this is a significant gap in safety and operational 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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loaded with the core action, though its brevity contributes to vagueness in other dimensions.
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 likely complexity (connecting an instance suggests state changes or network operations), lack of annotations, no output schema, and minimal description, it's incomplete. The agent lacks critical context on behavior, outcomes, error conditions, or how this fits with sibling tools, making it inadequate for reliable use.
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%, with the parameter 'instanceName' documented as 'Instance name to connect'. The description adds no additional meaning beyond this, such as format examples, naming conventions, or how it relates to other tools (e.g., if it must match an existing instance). Baseline 3 is appropriate since the schema does the heavy lifting.
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' states the basic action (connect) and resource (WhatsApp instance), but is vague about what 'connect' means operationally. It doesn't differentiate from siblings like 'create_instance' or 'instance_status', leaving ambiguity about whether this establishes a new connection, reconnects an existing one, or performs authentication.
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. With siblings like 'create_instance', 'delete_instance', and 'instance_status', the description doesn't clarify prerequisites (e.g., must an instance exist first?), context (e.g., after creation or for reconnection), or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupC
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?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose permissions needed, whether creation is reversible, rate limits, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
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 zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or dependencies (e.g., instance must be connected). Given the complexity and lack of structured data, more context is needed for effective use.
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 parameters are well-documented in the schema itself. The description adds no additional parameter semantics beyond implying a WhatsApp context, which the schema already covers with parameter descriptions like 'Group description'. Baseline 3 is appropriate as the schema does the heavy lifting.
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 ('Create') and resource ('new WhatsApp group'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_groups' or specify what distinguishes this creation from other group-related operations, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites like needing an active instance (implied by 'instanceName' parameter) or how it relates to sibling tools like 'add_participants' for modifying existing groups, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_instanceC
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 provided, the description carries the full burden of behavioral disclosure. It states the tool creates something, implying a write/mutation operation, but doesn't disclose critical behaviors: whether this requires specific permissions, what happens on success/failure (e.g., returns an instance ID), if it's idempotent, or any rate limits. The description is minimal and lacks operational 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 a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable. Every word ('Create', 'new', 'WhatsApp instance') earns its place by conveying essential information without redundancy.
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 complexity of creating a WhatsApp instance (a write operation with potential side effects), no annotations, and no output schema, the description is incomplete. It doesn't explain what constitutes a 'WhatsApp instance' in this system, what the tool returns (e.g., instance ID, status), or error conditions. For a mutation tool with 3 parameters, this leaves significant gaps for the 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?
Schema description coverage is 100%, so the schema fully documents all three parameters (instanceName, qrcode, webhookUrl) with their types and purposes. The description adds no parameter information beyond what the schema provides, maintaining the baseline score of 3. It doesn't explain interactions between parameters (e.g., how qrcode relates to instance creation).
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 ('Create') and resource ('new WhatsApp instance'), making the purpose immediately understandable. It distinguishes from siblings like 'connect_instance' (which implies connecting to an existing instance) and 'delete_instance' (which removes an instance). However, it doesn't specify what a 'WhatsApp instance' entails beyond the basic concept.
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. It doesn't mention prerequisites (e.g., needing authentication), when not to use it (e.g., if an instance already exists), or how it relates to siblings like 'connect_instance' or 'list_instances'. The agent must infer usage from context alone.
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 carries full burden for behavioral disclosure. While 'Create' implies a write operation, it doesn't specify permissions needed, whether templates are immediately available for use, error conditions, or what happens on success/failure. For a creation tool with zero annotation coverage, 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 a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero wasted verbiage.
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 creation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't address behavioral aspects like permissions, idempotency, or response format. While the schema covers parameters well, the description should provide more context about the creation operation itself given the lack of structured metadata.
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 parameters are fully documented in the schema. The description adds no additional parameter information beyond the basic purpose. It doesn't explain relationships between parameters (e.g., how 'variables' relates to 'text' placeholders) or provide usage examples, so it meets the baseline for high schema coverage.
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 ('Create') and resource ('new message template'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'update_template' or 'send_template', which would require mentioning it's for initial creation rather than modification or usage.
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. With siblings like 'update_template', 'delete_template', 'get_template', and 'search_templates', there's no indication of prerequisites, appropriate contexts, or distinctions between creation and other template operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_instanceC
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 are provided, so the description carries the full burden of behavioral disclosure. While 'Delete' implies a destructive operation, the description doesn't specify whether this action is reversible, what permissions are required, whether it affects associated data (like chats or messages), or what happens on success/failure. This is a significant gap for a destructive tool with zero annotation coverage.
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 zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context such as the consequences of deletion, error handling, or return values. Given the complexity of deletion operations and the absence of structured safety hints, more behavioral 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?
The schema description coverage is 100%, with the single parameter 'instanceName' clearly documented as 'Instance name to delete'. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score 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?
The description clearly states the action ('Delete') and the resource ('a WhatsApp instance'), providing specific verb+resource pairing. However, it doesn't differentiate from sibling tools like 'remove_participants' or 'delete_template', which also perform deletion operations on different resources.
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. There's no mention of prerequisites (like needing an existing instance), exclusions, or comparison with similar tools such as 'remove_participants' (which removes participants from groups) or 'delete_template' (which deletes message templates).
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 provided, the description carries full burden but only states the action without behavioral details. It doesn't disclose if deletion is permanent, requires specific permissions, has side effects (e.g., affecting related instances), or rate limits, which is inadequate for a destructive 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 a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks critical context like irreversible effects, error handling, or return values, which are essential for safe agent invocation given the tool's complexity and potential impact.
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 description coverage is 100%, with the single parameter 'templateId' clearly documented in the schema. The description adds no additional meaning beyond what's in the schema (e.g., format examples or constraints), so it meets the baseline for high coverage without 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 'Delete a custom template' clearly states the action (delete) and the resource (custom template), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'delete_instance' or 'update_template' that also involve template operations, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing template), exclusions, or comparisons to siblings like 'delete_instance' or 'update_template', leaving the agent with 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.
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 are provided, so the description carries the full burden. 'Get all chats' implies a read operation, but it doesn't disclose behavioral traits such as whether this requires authentication, how results are returned (e.g., pagination, format), rate limits, or error conditions. This leaves significant gaps for a tool with no annotation coverage.
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 ('Get all chats'), which is efficient for a simple tool. However, it's under-specified rather than appropriately sized—it lacks necessary details for clarity and usage, so it doesn't earn a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a read operation with one parameter) and no annotations or output schema, the description is incomplete. It doesn't explain what 'chats' entails, how results are structured, or any limitations, making it inadequate for an agent to use effectively without additional 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?
The input schema has 100% description coverage, with 'instanceName' clearly documented. The description adds no parameter semantics beyond what the schema provides, so it meets the baseline of 3 where the schema does the heavy lifting.
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 verb ('Get') and resource ('chats'), but it's vague about scope and doesn't differentiate from sibling tools like 'get_messages' or 'list_contacts'. It doesn't specify what 'all' means in context (e.g., all chats for a user, instance, or globally).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_messages' or 'list_contacts'. The description doesn't mention prerequisites, exclusions, or contextual factors that would help an agent choose appropriately among the many sibling tools.
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 are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get messages') but does not describe key behaviors such as whether this is a read-only operation, if it requires authentication, how messages are ordered, if there are rate limits, or what the output format looks like (e.g., list of messages with metadata). This leaves significant gaps for an agent to understand 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, efficient sentence ('Get messages from a chat') that is front-loaded with the core action. It avoids unnecessary words and gets straight to the point, making it easy to parse quickly. Every word earns its place by conveying the essential purpose without redundancy.
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 complexity of a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., read-only nature, authentication needs), usage context, and output expectations. While the schema covers parameters well, the overall context for safe and effective use by an AI agent is insufficient, especially for a data retrieval tool in a messaging system.
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, with clear parameter descriptions (e.g., 'Instance name', 'Number of messages to retrieve', 'Chat JID'). The description does not add any meaning beyond this, such as explaining what a 'Chat JID' is or how the 'limit' parameter behaves (e.g., default values or constraints). With high schema coverage, the baseline score of 3 is appropriate, as the schema handles the heavy lifting.
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 messages from a chat' clearly states the verb ('Get') and resource ('messages from a chat'), making the purpose understandable. However, it lacks specificity about scope (e.g., recent messages, all messages, or filtered by criteria) and does not differentiate from sibling tools like 'get_chats' or 'read_message', which might retrieve chat metadata or mark messages as read, respectively.
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. It does not mention prerequisites (e.g., needing an active instance), exclusions (e.g., not for group chats if that applies), or comparisons to siblings like 'get_chats' (for chat lists) or 'read_message' (for marking as read). Usage is implied only by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_templateC
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?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits like read-only status, error handling, authentication needs, or rate limits. It lacks details on what 'Get' entails beyond the minimal 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 a single, efficient sentence with no wasted words, making it easy to parse and front-loaded with the core purpose. It earns its place by directly stating the tool's function.
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 output schema, the description is incomplete for a retrieval tool. It doesn't explain return values, error cases, or behavioral context, leaving significant gaps for an agent to understand full usage.
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 fully documents the 'templateId' parameter. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, meeting the baseline for high coverage.
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 ('Get') and resource ('a specific template by ID'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_templates' or 'search_templates', which would require explicit scope clarification for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'list_templates' or 'search_templates'. The description implies usage for retrieving a single template by ID but offers no context about prerequisites, exclusions, or comparisons to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instance_statusC
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Get' which implies a read operation, but doesn't specify if this requires authentication, what the output format might be, or any rate limits. This is a significant gap for a tool with zero annotation coverage.
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, clear sentence with no wasted words. It's front-loaded with the core purpose, making it highly efficient and easy to parse for an AI 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'connection status' entails (e.g., online/offline, last seen), the return format, or error conditions. For a tool with no structured behavioral data, this leaves critical 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 schema description coverage is 100%, with the parameter 'instanceName' fully documented in the schema. The description doesn't add any additional meaning or context about the parameter beyond what the schema provides, so it meets the baseline for high schema coverage.
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 ('Get') and resource ('connection status of an instance'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'connect_instance' or 'list_instances' beyond the basic function, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'connect_instance' or 'list_instances'. The description only states what it does, not the context or prerequisites for its use, leaving the agent to infer usage scenarios.
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 are provided, so the description carries the full burden of behavioral disclosure. 'List all contacts' implies a read-only operation, but it doesn't specify whether this is paginated, what the output format is, if there are rate limits, or any authentication requirements. This leaves significant gaps for a tool with no annotation coverage.
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 'List all contacts' is extremely concise—three words that directly convey the core action. It's front-loaded with no wasted words, making it easy to parse quickly, though this brevity contributes to gaps in other dimensions.
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 output schema, the description is incomplete. It doesn't explain what 'contacts' entails, the return format, or behavioral aspects like pagination. For a tool with no structured support, more context is needed to guide effective use.
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, with 'instanceName' documented as 'Instance name'. The description adds no additional meaning about this parameter, such as what an instance represents or how it affects the listing. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.
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 contacts' clearly states the verb ('List') and resource ('contacts'), making the basic purpose understandable. However, it lacks specificity about what 'all' means (e.g., scope, filters) and doesn't distinguish from potential sibling tools like 'get_chats' or 'get_messages' that might involve contact-related data, leaving it somewhat vague.
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. It doesn't mention prerequisites (e.g., needing an 'instanceName'), exclusions, or comparisons to sibling tools like 'list_groups' or 'get_chats', leaving the agent to 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.
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 provided, so the description carries the full burden. It only states the action ('List all groups') without disclosing behavioral traits such as pagination, rate limits, authentication needs, error handling, or what 'list' entails (e.g., returns metadata only). This is inadequate for a tool with no annotation coverage.
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 ('List all groups') with zero wasted words, making it front-loaded and easy to parse. Every word earns its place, though this brevity contributes to gaps in other dimensions.
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 annotations, no output schema, and a simple input schema, the description is incomplete. It lacks context on what 'groups' are, how they relate to instances or participants, and what the output includes, making it insufficient for an agent to use the tool effectively without external knowledge.
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 description coverage is 100%, with clear parameter descriptions in the schema (e.g., 'Include participants list' for getParticipants). The description adds no parameter semantics beyond the schema, so it meets the baseline of 3 for high schema coverage without compensating 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 'List all groups' states a clear verb ('List') and resource ('groups'), but it's vague about scope and lacks differentiation from sibling tools like 'list_contacts' or 'list_instances'. It doesn't specify what 'all' entails (e.g., all groups in a workspace, instance, or globally).
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. It doesn't mention prerequisites (e.g., needing an instance), exclusions, or comparisons to siblings like 'get_chats' or 'list_contacts', leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_instancesB
List all WhatsApp instances
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'List all WhatsApp instances' implies a read-only operation, but it doesn't specify whether this requires authentication, returns paginated results, includes inactive instances, or has rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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, efficient sentence with zero wasted words. It is front-loaded with the core action ('List all WhatsApp instances'), making it easy to parse. Every word earns its place by conveying essential information without redundancy.
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 (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks context about behavior, output format, or usage scenarios. For a listing tool with no structured metadata, more detail on return values or constraints would 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?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it correctly doesn't mention any. A baseline of 4 is appropriate for a parameterless tool with complete schema coverage.
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 resource ('WhatsApp instances'), making the tool's purpose immediately understandable. It distinguishes from siblings like 'instance_status' (which checks status) or 'create_instance' (which creates). However, it doesn't specify scope or filtering details that might differentiate it from similar listing tools.
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. It doesn't mention prerequisites (e.g., needing an active connection), exclusions (e.g., not for filtered lists), or comparisons to siblings like 'get_chats' or 'list_contacts'. The agent must 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.
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 provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, if there are rate limits, authentication requirements, pagination behavior, or what the return format looks like. For a list operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
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 just four words, with zero wasted language. It's front-loaded with the core action and resource, making it immediately understandable without any unnecessary elaboration.
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 output schema, the description is incomplete for effective tool use. It doesn't explain what 'list all' means in practice (e.g., pagination, limits), how results are structured, or how it differs from 'search_templates'. For a tool with filtering parameters and sibling alternatives, 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 schema description coverage is 100%, with both parameters ('category' and 'tags') well-documented in the input schema. The description doesn't add any additional meaning about these parameters beyond what's already in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.
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'), making the tool's purpose immediately understandable. However, it doesn't differentiate from the sibling tool 'search_templates', which suggests there might be overlapping functionality without clear boundaries.
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 like 'search_templates' or 'get_template'. There's no mention of prerequisites, context for filtering, or any exclusions that would help an agent choose appropriately among similar tools.
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?
No annotations are provided, so the description carries full burden. 'Mark message as read' implies a mutation (changing message status), but it doesn't disclose behavioral traits like required permissions, whether this action is reversible, rate limits, or what happens on success/failure. The description is minimal and lacks crucial context 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, efficient sentence with zero waste. It's front-loaded with the core action ('Mark message as read'), making it easy to parse. Every word earns its place, and there's no unnecessary elaboration.
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 (a mutation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, error conditions, or return values, leaving significant gaps for an AI agent to understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no meaning beyond the schema—it doesn't explain parameter relationships (e.g., how 'id' relates to 'remoteJid') or usage context. Baseline 3 is appropriate as the schema handles parameter documentation.
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 'Mark message as read' clearly states the action (mark as read) and resource (message), but it's vague about scope and doesn't differentiate from siblings like 'get_messages' or 'send_text'. It specifies what the tool does without being tautological, but lacks detail about what 'read' means in this 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a message ID), exclusions, or relationships to sibling tools like 'get_messages' (which might retrieve messages before marking them as read). Usage 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.
remove_participantsC
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?
With no annotations, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits such as required permissions, whether removal is reversible, error conditions (e.g., invalid participants), or side effects (e.g., notifications to group).
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, clear sentence with zero waste. It's appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary elaboration.
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 annotations, no output schema, and a mutation tool with potential side effects, the description is incomplete. It lacks details on behavior, outcomes, or error handling, leaving significant gaps for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are documented in the schema. The description adds no additional meaning beyond implying 'group' and 'participants' as targets, which the schema already covers with 'groupJid' and 'participants'.
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 ('Remove') and resource ('participants from a group'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'add_participants' beyond the verb difference, missing explicit comparison.
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. It doesn't mention prerequisites (e.g., needing an existing group), exclusions, or how it relates to sibling tools like 'add_participants' or 'create_group'.
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?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It doesn't disclose whether this is a read-only operation, how results are returned (e.g., pagination, sorting), error conditions, or performance characteristics like rate limits. The phrase 'by text' hints at content searching but lacks 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 extremely concise with just three words, making it front-loaded and efficient. However, it may be overly terse, potentially sacrificing clarity for brevity, as it lacks necessary context for effective use.
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 annotations, no output schema, and a simple input schema, the description is incomplete. It fails to explain what 'templates' refer to in this context (e.g., message templates, document templates), how results are structured, or any prerequisites. For a search tool, this leaves significant gaps in 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%, with the 'query' parameter documented as 'Search query'. The description adds no additional meaning beyond this, such as query syntax, examples, or search scope (e.g., partial matches, case sensitivity). Baseline 3 is appropriate since the schema does the heavy lifting.
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 'Search templates by text' clearly states the verb (search) and resource (templates), but it's vague about scope and lacks differentiation from sibling tools like 'list_templates' or 'get_template'. It doesn't specify whether this searches content, metadata, or both.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_templates' (which might list all templates without search) or 'get_template' (which retrieves a specific template by ID). The description implies text-based searching but doesn't clarify use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_buttonsC
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 provided, so the description carries the full burden of behavioral disclosure. 'Send message with buttons' implies a write operation that transmits data, but it doesn't disclose critical behaviors: whether this requires authentication (implied by instanceName), rate limits, what happens on success/failure, if buttons trigger actions, or any side effects. For a mutation tool with zero annotation coverage, this is a significant gap in 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?
The description is extremely concise with just three words: 'Send message with buttons.' It's front-loaded with the core action and resource, with zero wasted words. Every element earns its place by directly stating the tool's function without redundancy or fluff.
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 complexity of a 6-parameter mutation tool with no annotations and no output schema, the description is incomplete. It lacks context about the messaging platform, behavioral traits (e.g., what sending entails, error handling), and doesn't explain the return values or how to interpret results. For a tool that likely interacts with an external system (e.g., WhatsApp API), more detail is needed to guide effective use.
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%, with all 6 parameters documented in the schema (e.g., buttons, description, footer, instanceName, number, title). The description adds no parameter semantics beyond what the schema provides—it doesn't explain button functionality, format constraints, or how parameters interact. Baseline is 3 since the schema does the heavy lifting, but the description doesn't compensate with additional insights.
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 'Send message with buttons' states a verb ('send') and resource ('message with buttons'), making the basic purpose clear. However, it lacks specificity about what kind of message system this is (WhatsApp, messaging platform) and doesn't distinguish from siblings like send_text, send_media, send_template, or send_list, which all send different types of messages. The purpose is vague beyond the basic action.
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. With siblings like send_text (plain text), send_media (media files), send_template (predefined templates), and send_list (list messages), there's no indication that this tool is specifically for interactive button-based messages or when it's preferred over other send methods. No context 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.
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?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Send interactive list message' implies a write/mutation operation but provides no information about authentication requirements, rate limits, error conditions, what happens on success/failure, or whether this is a synchronous/asynchronous operation. The description doesn't mention any behavioral traits beyond the basic action implied 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just three words that directly state the tool's function. There's zero wasted language, and it's front-loaded with the essential information. While it could be more informative, as a standalone statement it's maximally efficient.
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 that this is a mutation tool (sending messages implies writing/changing state) with no annotations and no output schema, the description is insufficiently complete. The agent needs to understand what this tool does beyond the basic action - what authentication is required, what the response looks like, error conditions, etc. With multiple similar message-sending tools and no behavioral context, this description leaves significant gaps for proper tool selection and invocation.
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 all parameters have descriptions in the schema. The tool description adds no parameter information beyond what's already documented in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description. The description doesn't compensate but doesn't need to given the comprehensive 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 'Send interactive list message' clearly states the action (send) and the resource type (interactive list message), which is better than a tautology. However, it doesn't differentiate this from sibling tools like 'send_buttons', 'send_media', 'send_template', or 'send_text' - all of which also send messages but with different content types. The purpose is clear at a basic level but lacks sibling differentiation.
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. With multiple message-sending siblings (send_buttons, send_media, send_template, send_text), the agent receives no indication that this tool is specifically for list-style interactive messages versus other interactive formats. There's no mention of prerequisites, context, or comparison to similar tools.
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 provided, so the description carries full burden. 'Send' implies a write/mutation operation, but the description doesn't disclose behavioral traits like whether this requires authentication, what happens on failure, rate limits, or side effects (e.g., media storage). It mentions media types but not operational details like supported formats or size limits. For a mutation tool with zero annotation coverage, this is inadequate.
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 single sentence with no wasted words. It front-loads the core purpose ('Send media') and efficiently enumerates media types in parentheses. Every word earns its place, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects (auth, errors, side effects), output expectations, or usage context. While schema coverage is high, the description fails to compensate for the lack of annotations and output schema, leaving critical gaps for agent decision-making.
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 parameters are well-documented in the schema. The description adds minimal value beyond the schema by listing media types (which are already in the enum for 'mediatype'). It doesn't explain parameter interactions (e.g., 'fileName' is only for documents) or provide context beyond what's in schema descriptions. Baseline 3 is appropriate given high schema coverage.
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') and resource ('media') with specific media types enumerated (image, video, audio, document). It distinguishes from sibling tools like send_text, send_template, send_buttons, and send_list by focusing on media files rather than text or structured messages. However, it doesn't specify the destination or platform context beyond what's implied by sibling tools.
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 versus alternatives like send_text or send_template. The description implies it's for sending media files, but doesn't clarify prerequisites (e.g., instance must be connected), constraints (e.g., file size limits), or when other media-related tools might be more appropriate. Usage is inferred from the name and parameter context alone.
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?
With no annotations, the description carries full burden but only states the action without disclosing behavioral traits. It doesn't mention permissions, rate limits, side effects (e.g., message delivery status), or response format, which are critical for a send operation with potential mutations.
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 wasted words. It's front-loaded and clear, though slightly under-specified given the tool's complexity. It earns a 4 for brevity but loses a point for lacking necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects, usage context, or output expectations, leaving significant gaps for an agent to understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are documented in the schema. The description adds no meaning beyond the schema, such as explaining how variables map to templates or format requirements. Baseline 3 is appropriate as the schema handles parameter documentation.
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 'Send a message using a template' clearly states the action (send) and resource (message/template), but it's vague about scope and doesn't differentiate from siblings like send_text, send_buttons, or send_list. It lacks specificity about what type of message or platform is involved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like send_text or send_media. The description implies template-based messaging but doesn't specify prerequisites (e.g., needing a pre-defined template) or exclusions, leaving usage context unclear.
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?
With no annotations provided, the description carries full burden for behavioral disclosure. 'Send a text message' implies a write operation but doesn't address permissions, rate limits, side effects, error conditions, or what happens on success. For a mutation tool with zero annotation coverage, this is inadequate.
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 just three words, front-loading the core purpose with zero wasted language. Every word earns its place, making it efficient for quick scanning.
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 this is a mutation tool with no annotations, no output schema, and multiple sibling alternatives, the description is incomplete. It doesn't explain what the tool returns, how it differs from other send_* tools, or any behavioral constraints. The agent would need to guess about important operational aspects.
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%, with all parameters documented in the schema. The description adds no additional parameter information beyond what's already in the structured fields. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
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 'Send a text message' clearly states the verb ('send') and resource ('text message'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like send_buttons, send_list, send_media, or send_template, which all involve sending different types of messages through the same system.
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 like send_buttons, send_list, send_media, or send_template. There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_templateC
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?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Update' which implies mutation, but doesn't cover critical aspects like required permissions, whether updates are partial or full, idempotency, error conditions, or response format. This leaves significant gaps 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, efficient sentence with no wasted words. It's appropriately sized for a basic tool description and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 5 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens during updates (e.g., partial vs. full updates), what the response contains, or error handling. The context demands more completeness than provided.
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 all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema. This meets the baseline for high schema coverage but doesn't provide additional 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 'Update an existing template' clearly states the action (update) and resource (template), distinguishing it from sibling tools like create_template, delete_template, get_template, and search_templates. However, it doesn't specify what aspects of a template can be updated, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a templateId), contrast with create_template for new templates, or specify use cases like modifying template content versus metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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
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
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
- AlicenseAqualityCmaintenanceProvides comprehensive WhatsApp Business API functionality with 18 tools for sending messages, media, interactive buttons/lists, templates, reactions, and managing message status through the PyWA library.183MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/luiso2/mcp-evolution-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server