Skip to main content
Glama
SMS-Masivos

SMS Masivos MCP Server

Official
by SMS-Masivos

@smsmasivos/mcp-server

npm version License: MIT

MCP server para SMS Masivos — plataforma de envio de SMS masivos en Mexico.

Conecta tu asistente de IA con SMS Masivos para enviar mensajes, gestionar contactos, verificar numeros y consultar campanas usando lenguaje natural.

Features

  • 30 tools — SMS, campanas, contactos, agendas CRUD, webhooks, reports, payment requests, verificacion OTP v2 (send/verify/status/delete), lealtad, monederos y metricas

  • FAQ integrado — 6 recursos de ayuda accesibles desde tu asistente

  • Prompts guiados — 4 flujos paso a paso para tareas comunes

  • Telemetria — metricas de uso por sesion (latencia, errores, sandbox vs produccion)

  • Sandbox — prueba sin enviar mensajes reales ni gastar creditos

  • Compatible — funciona con Claude, Cursor, Windsurf y cualquier cliente MCP

Related MCP server: ReadySMS MCP Server

Quick Start

Necesitas una API key de SMS Masivos. Obtenla en tu panel.

Opcion 1: Remoto (recomendado — sin instalar nada)

Agrega esta configuracion a tu herramienta de IA y listo:

{
  "mcpServers": {
    "smsmasivos": {
      "type": "http",
      "url": "https://mcp.smsmasivos.com.mx/mcp",
      "headers": {
        "Authorization": "Bearer tu-api-key"
      }
    }
  }
}

Opcion 2: Local (requiere Node.js)

npx @smsmasivos/mcp-server
{
  "mcpServers": {
    "smsmasivos": {
      "command": "npx",
      "args": ["-y", "@smsmasivos/mcp-server"],
      "env": {
        "SMSMASIVOS_API_KEY": "tu-api-key"
      }
    }
  }
}

Configuracion por herramienta

Claude Desktop

Agrega a tu archivo de configuracion:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Remoto (recomendado):

{
  "mcpServers": {
    "smsmasivos": {
      "type": "http",
      "url": "https://mcp.smsmasivos.com.mx/mcp",
      "headers": {
        "Authorization": "Bearer tu-api-key"
      }
    }
  }
}

Local:

{
  "mcpServers": {
    "smsmasivos": {
      "command": "npx",
      "args": ["-y", "@smsmasivos/mcp-server"],
      "env": {
        "SMSMASIVOS_API_KEY": "tu-api-key"
      }
    }
  }
}

Claude Code

Remoto (recomendado):

claude mcp add smsmasivos --transport http https://mcp.smsmasivos.com.mx/mcp -H "Authorization: Bearer tu-api-key"

Local:

claude mcp add smsmasivos -e SMSMASIVOS_API_KEY=tu-api-key -- npx -y @smsmasivos/mcp-server

Cursor

Agrega a .cursor/mcp.json en tu proyecto:

Remoto (recomendado):

{
  "mcpServers": {
    "smsmasivos": {
      "type": "http",
      "url": "https://mcp.smsmasivos.com.mx/mcp",
      "headers": {
        "Authorization": "Bearer tu-api-key"
      }
    }
  }
}

Local:

{
  "mcpServers": {
    "smsmasivos": {
      "command": "npx",
      "args": ["-y", "@smsmasivos/mcp-server"],
      "env": {
        "SMSMASIVOS_API_KEY": "tu-api-key"
      }
    }
  }
}

Windsurf

Agrega a ~/.codeium/windsurf/mcp_config.json — misma configuracion que Cursor (remoto o local).

Tools disponibles

SMS y campanas

Tool

Descripcion

check_balance

Consulta creditos SMS disponibles

send_sms

Envia SMS a uno o varios numeros (max 500)

list_campaigns

Lista campanas con filtros por fecha

get_campaign_stats

Estadisticas de entrega de una campana

Contactos y agendas

Tool

Descripcion

list_agendas

Lista agendas de contactos

find_agenda

Busca agendas por nombre (parcial). Paginado por página: page (default 1), limit (default 20, max 100). Si la respuesta indica has_more, vuelve a invocar con el next_page sugerido

create_agenda

Crea una nueva agenda

rename_agenda

Cambia el nombre de una agenda

delete_agenda

Elimina una agenda y sus contactos (DESTRUCTIVO)

get_contacts

Obtiene contactos de una agenda

add_contact

Agrega contacto a una agenda

update_contact

Actualiza datos de un contacto existente

duplicate_contact

Copia un contacto entre agendas

delete_contact

Elimina un contacto de una agenda

Verificacion OTP

Tool

Descripcion

send_otp

Genera y envia el codigo OTP (SMS, voz o WhatsApp). Repetir la llamada lo reenvia (cooldown 30s); con otro channel sale por el canal nuevo; code_rotate: true genera uno nuevo

verify_otp

Verifica el codigo OTP que ingreso el usuario (code)

get_otp_status

Consulta el estado de la verificacion sin efectos (read-only)

delete_otp

Invalida la verificacion activa (no envia nada)

Programa de lealtad

Tool

Descripcion

list_loyalty_cards

Lista tarjetas de lealtad de tu cuenta

add_loyalty_contact

Agrega contacto a una tarjeta de lealtad

get_loyalty_contact

Consulta sellos y canjes de un contacto

ℹ️ register_loyalty_sale no está disponible en esta versión. Para registrar ventas de lealtad, usa el panel web.

Monedero electronico

Tool

Descripcion

list_wallets

Lista monederos de tu cuenta

add_wallet_contact

Agrega contacto a un monedero

get_wallet_contact

Consulta saldo de un contacto

update_wallet_balance

Agrega o resta saldo a un contacto

Webhooks

Tool

Descripcion

manage_webhook

Gestiona el webhook de la cuenta. Acciones: list, add, toggle, delete. URLs https obligatorias.

manage_webhook consolida las 4 operaciones en una sola tool vía el campo action:

action

Parámetros

Efecto

list

Devuelve el webhook configurado y su estado

add

url (https), status ("1"/"0")

Registra o reemplaza el webhook

toggle

status ("1"/"0")

Activa/desactiva sin cambiar la URL

delete

Elimina el webhook (DESTRUCTIVO)

Solo se permite un webhook por cuenta. Las URLs deben ser https://; se rechazan IPs privadas, loopback e IPv6 link-local.

Reports

Tool

Descripcion

generate_report

Reporte detallado por rango de fechas (max 7 dias)

get_report_details

Agregados rapidos (entregados/fallidos/efectividad) por campaign_id

Solicitudes de pago

Tool

Descripcion

send_payment_request

Envia solicitud de pago a un cliente via SMS usando un template configurado

Utilidades

Tool

Descripcion

get_metrics

Metricas de uso de la sesion (latencia, errores, sandbox vs prod)

FAQ Resources

El servidor incluye 6 recursos de ayuda accesibles via MCP resources:

Resource

Descripcion

getting-started

Como obtener tu API key y configurar el server

common-errors

Errores frecuentes y como solucionarlos

limits-and-pricing

Limites de la API y precios

sandbox-mode

Como usar el modo sandbox para pruebas

tool-examples

Ejemplos de uso de cada tool

v1-changes

Cambios breaking y tools nuevas en v1.0.0

Prompts guiados

Flujos paso a paso que tu asistente puede ejecutar:

Prompt

Descripcion

enviar-campana

Verificar saldo, enviar SMS y consultar estadisticas

consultar-lealtad

Listar tarjetas y consultar sellos de clientes

gestionar-contactos

Ver agendas, contactos y agregar nuevos

verificar-numero

Enviar codigo OTP y validarlo

Ejemplos

Una vez configurado, puedes pedirle a tu asistente:

  • "Cuantos creditos me quedan?"

  • "Envia un SMS al 5512345678 con el texto: Tu cita es manana a las 10am"

  • "Muestrame mis ultimas campanas"

  • "Como fue la entrega de la campana 12345?"

  • "Verifica el numero 5598765432 por WhatsApp"

  • "Agrega a Juan (5512345678) a mi agenda de recordatorios"

  • "Muestrame mis tarjetas de lealtad"

  • "Cuantos sellos tiene el cliente 5512345678?"

  • "Agrega $50 al monedero del cliente 5598765432"

Desarrollo

git clone https://github.com/SMS-Masivos/mcp-server.git
cd mcp-server
npm install
npm run build
npm test

Publicación (mantenedores)

La publicación a npm es manual (npm publish, requiere permisos de mantenedor).

Licencia

MIT

Available Tools

30 tools
add_contactA

Agrega un nuevo contacto a una agenda existente en SMS Masivos. Requiere el list_key de la agenda y el número de teléfono. Si el número ya existe en la agenda, se actualiza.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda donde agregar el contacto
numberYesNúmero de teléfono del contacto (10-15 dígitos)
nameNoNombre del contacto
emailNoEmail del contacto
country_codeNoCódigo de país (default: 52 México)52
custom_field_1NoCampo personalizado 1
custom_field_2NoCampo personalizado 2
custom_field_3NoCampo personalizado 3
custom_field_4NoCampo personalizado 4
birthday_dateNoFecha de cumpleaños en formato YYYY-MM-DD

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It reveals the upsert behavior (updates if number exists). But it does not disclose authorization requirements, rate limits, or error conditions. The behavioral info is minimal beyond the basic functionality.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, followed by key behavior (upsert). No wasted words. All sentences are necessary.

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

Completeness2/5

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

The tool has 10 parameters, no output schema, and no annotations. The description is too sparse to fully inform an agent. It lacks details about return values, error handling, and the behavior of optional fields. More context is needed for an agent to use it confidently.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description does not add new meaning to any parameter beyond what the schema already provides. It only reiterates that list_key and number are required.

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

Purpose5/5

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

The description clearly states the action: adds a new contact to an existing agenda. It specifies the verb 'agrega' and the resource 'contacto a una agenda'. Also mentions update behavior if number exists, distinguishing it from mere insertion.

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

Usage Guidelines3/5

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

The description lists required fields (list_key and number), which is a basic prerequisite. However, it does not provide guidance on when to use this tool versus siblings like add_loyalty_contact or add_wallet_contact, nor does it mention when not to use it.

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

add_loyalty_contactC

Agrega un contacto a una tarjeta de lealtad. Requiere loyalty_key y número de teléfono del cliente.

ParametersJSON Schema
NameRequiredDescriptionDefault
loyalty_keyYesClave única de la tarjeta de lealtad. Obtenla con list_loyalty_cards.
phoneYesNúmero de teléfono del contacto (10-15 dígitos)
customer_nameYesNombre del cliente (requerido por el API)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states the basic operation and required fields, but lacks details on idempotency, error handling, authentication requirements, or what happens on duplicate additions. This is insufficient for behavioral understanding.

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

Conciseness4/5

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

The description is a single, short sentence that is front-loaded with the main action. It is concise but could benefit from a brief structure (e.g., separate requirement info).

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

Completeness2/5

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

Given no output schema and no annotations, the description should provide more context about behavior, error cases, or return value. It only covers the most basic usage, leaving agents underinformed for robust execution.

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

Parameters2/5

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

Schema coverage is 100%, so the schema already describes all parameters. The description adds that loyalty_key comes from list_loyalty_cards (already in schema) and phone format (already in schema). However, it omits the required customer_name parameter, which could mislead an agent into thinking only two parameters are needed.

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

Purpose4/5

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

The description clearly states the action (adds a contact to a loyalty card) and mentions required inputs (loyalty_key and phone). It distinguishes from sibling tools like add_contact and add_wallet_contact by specifying the loyalty card context.

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

Usage Guidelines3/5

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

The description implies when to use (adding a contact to a loyalty card) but does not provide explicit guidance on when not to use or alternatives. Sibling tool names give context, but no direct comparison is made.

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

add_wallet_contactB

Agrega un contacto a un monedero electrónico. Requiere wallet_key, teléfono, nombre del cliente y usertool_id (obtenlo de list_wallets).

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_keyYesClave única del monedero. Obtenla con list_wallets.
phoneYesNúmero de teléfono del contacto (10-15 dígitos)
customer_nameYesNombre del cliente
usertool_idYesID de la herramienta de usuario (obtenlo de list_wallets)

TDQS

B3.2/5.0
Behavior2/5

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 only lists required parameters and does not mention side effects, idempotency, permissions, or error conditions, leaving significant gaps.

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

Conciseness5/5

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

The description is extremely concise with two sentences: the first states the purpose, the second lists requirements. No unnecessary words, and critical information is front-loaded.

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

Completeness2/5

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

Given no output schema and no annotations, the description lacks behavioral and outcome details (e.g., what happens on success, duplicate handling, return data). This undermines the agent's ability to fully understand the tool's effect.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents each parameter. The description adds a usage hint to obtain wallet_key and usertool_id from list_wallets, which provides minor added context but does not substantially enhance semantic understanding beyond the schema.

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

Purpose4/5

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

The description clearly states 'agrega un contacto a un monedero electrónico' (add a contact to an electronic wallet), specifying the verb and resource. It distinguishes from sibling tools like 'add_contact' or 'add_loyalty_contact' by mentioning the wallet context, but does not explicitly contrast them.

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

Usage Guidelines3/5

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

The description implies when to use the tool (requires wallet_key and usertool_id from list_wallets), but does not provide explicit guidance on when not to use it or how it compares to alternatives like add_contact or add_loyalty_contact.

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

check_balanceA

Consulta el saldo de créditos SMS disponibles en tu cuenta de SMS Masivos. Cada SMS consume 1 crédito. Usa esta herramienta para verificar saldo antes de enviar mensajes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

The description notes each SMS consumes 1 credit, adding behavioral context beyond the tool name. Without annotations, it provides relevant safety information (read-only, non-destructive) and explains the credit consumption model.

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

Conciseness5/5

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

Two concise sentences convey purpose, consumption relationship, and usage recommendation with no wasted words. The key action is front-loaded.

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

Completeness4/5

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

For a parameterless tool with no output schema, the description covers the core functionality and usage context. It could mention the return format (e.g., number of credits) but remains adequate for selection and invocation.

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

Parameters4/5

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

With no parameters and 100% schema coverage, the description adds no param details but doesn't need to. The baseline of 4 is appropriate as the description sufficiently clarifies the tool's purpose.

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

Purpose5/5

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

The description clearly states the tool checks the balance of available SMS credits, specifying the resource (SMS credits) and the action (consulta). It distinguishes itself from sibling tools like send_sms or verify_phone, which have different purposes.

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

Usage Guidelines4/5

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

The description explicitly advises using this tool before sending messages to verify balance, providing clear when-to-use guidance. It does not exclude alternative uses, but no sibling tool duplicates this functionality.

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

check_verificationB

Verifica un código OTP previamente enviado a un número de teléfono con verify_phone. Ingresa el mismo número, código de país y el código que el usuario recibió.

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesNúmero de teléfono que recibió el código
country_codeNoCódigo de país52
verification_codeYesCódigo de verificación ingresado por el usuario

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must bear full burden. Only states it 'verifies', missing details like whether the code is consumed, allowed attempts, or error handling. No output schema to clarify return behavior.

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

Conciseness4/5

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

Two sentences, front-loaded with purpose and immediate context. Efficient for the information provided.

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

Completeness2/5

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

Given no output schema and a simple verification flow, the description lacks critical information about tool behavior (e.g., output on success/failure, whether it invalidates the code). Incomplete for an agent to invoke correctly without guessing.

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

Parameters3/5

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

Schema descriptions cover parameters (100% coverage). The description adds that the same number and country code must match those used in verify_phone, marginally adding context beyond schema. Baseline of 3 is appropriate.

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

Purpose4/5

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

Clearly states the tool verifies an OTP code sent to a phone number. References the companion tool 'verify_phone', distinguishing it as the post-send verification step. However, could be more explicit about the result of verification.

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

Usage Guidelines3/5

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

Implies usage after verify_phone by mentioning 'previamente enviado... con verify_phone', but does not explicitly state when to use this tool versus alternatives like resend_verification or reset_verification.

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

create_agendaA

Crea una nueva agenda (lista de contactos) en SMS Masivos. Devuelve el list_key que necesitas para agregar contactos con add_contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
agenda_nameYesNombre de la nueva agenda
agenda_descriptionNoDescripción opcional de la agenda
custom_field_1NoEtiqueta de campo personalizado 1 (ej: 'Empresa')
custom_field_2NoEtiqueta de campo personalizado 2
custom_field_3NoEtiqueta de campo personalizado 3
custom_field_4NoEtiqueta de campo personalizado 4

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool creates a new agenda and returns a key, but it does not mention potential side effects (e.g., whether duplicate names are allowed, idempotency, or any limits). For a creation operation, this is adequate but not rich.

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

Conciseness5/5

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

Two sentences: the first states the purpose, the second explains the output and its usage with a sibling tool. No superfluous information, front-loaded with key action.

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

Completeness4/5

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

The description covers the core function and links to the next step (add_contact). It does not detail error conditions or edge cases, but for a simple creation tool with a clear output, it is reasonably complete. The lack of an output schema is compensated by the explicit mention of list_key.

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

Parameters3/5

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

Schema coverage is 100% as all parameters have descriptions in the input schema. The description does not add any additional meaning beyond what the schema already provides; it only references the returned key. Baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states it creates an agenda (contact list) and returns a list_key needed for adding contacts via add_contact. The verb 'crear' and resource 'agenda' are specific, and the mention of returning the key distinguishes it from sibling tools like list_agendas or add_contact.

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

Usage Guidelines4/5

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

The description implies that this tool should be used before add_contact by linking the returned list_key to that operation. It provides context on the workflow but does not explicitly state when not to use this tool or compare it to alternatives like rename_agenda or delete_agenda.

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

delete_agendaA

Elimina una agenda y TODOS sus contactos de forma permanente. OPERACIÓN DESTRUCTIVA E IRREVERSIBLE — pide confirmación explícita al humano antes de invocar. Si la agenda está vinculada a tarjetas de lealtad o monederos, el API la rechaza.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda a eliminar

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description bears full responsibility. It clearly communicates that the operation is destructive and irreversible, requires human confirmation, and may be rejected under certain conditions. This fully discloses the tool's behavioral traits.

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

Conciseness5/5

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

The description consists of two short sentences, front-loading the core action and consequence, then adding necessary warnings and conditions with no superfluous words.

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

Completeness5/5

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

For a destructive tool with one parameter and no output schema, the description is complete: it states the action, all-side effects, required human confirmation, and a failure condition. No gaps.

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

Parameters3/5

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

The input schema has 100% description coverage for the single parameter 'list_key', describing it as 'Clave única de la agenda a eliminar'. The description does not add additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool deletes an agenda and all its contacts permanently. It uses a specific verb ('eliminar') and resource ('agenda y TODOS sus contactos'), distinguishing it from siblings like delete_contact.

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

Usage Guidelines5/5

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

The description explicitly advises when to use this tool (to permanently delete an agenda) and provides strong caution: 'OPERACIÓN DESTRUCTIVA E IRREVERSIBLE — pide confirmación explícita al humano antes de invocar.' It also notes a condition when the API rejects the operation (linked to loyalty cards or wallets), giving clear usage guidance.

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

delete_contactA

Elimina un contacto de una agenda. OPERACIÓN IRREVERSIBLE — el contacto se elimina permanentemente. Requiere list_key de la agenda y número de teléfono.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda de donde eliminar el contacto
numberYesNúmero de teléfono del contacto a eliminar
emailNoEmail del contacto (opcional, para identificación adicional)

TDQS

A3.9/5.0
Behavior3/5

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

The description warns about irreversibility ('OPERACIÓN IRREVERSIBLE — el contacto se elimina permanentemente'), which is critical behavioral info. However, it does not cover other behavioral aspects like authentication requirements, side effects, or error handling. With no annotations, the description partially fulfills the transparency burden.

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

Conciseness5/5

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

Two sentences, each earning its place: first states the action, second highlights irreversibility and required inputs. No fluff, front-loaded essential information.

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

Completeness3/5

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

Given no output schema, the description is silent on return values or success/failure indicators. It also does not mention idempotency or behavior for non-existent contacts. For a delete tool, basic completeness is adequate but could be expanded.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description mentions only the two required parameters (list_key and number), which matches the schema but adds no extra meaning beyond what the schema provides. The optional email parameter is omitted from the description.

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

Purpose5/5

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

The description clearly states 'Elimina un contacto de una agenda' (deletes a contact from an agenda), providing a specific verb and resource. It distinguishes this tool from siblings like add_contact or update_contact by emphasizing deletion and irreversibility.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool (to delete a contact) and lists required inputs (list_key and phone number). It does not explicitly exclude alternative scenarios, but the context from sibling tools makes the usage clear.

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

duplicate_contactA

Copia un contacto de una agenda a otra. El contacto debe existir en current_list_key y NO existir todavía en new_list_key. Útil para mover prospectos calificados entre listas sin re-tipear datos.

ParametersJSON Schema
NameRequiredDescriptionDefault
current_list_keyYesClave única de la agenda origen del contacto
new_list_keyYesClave única de la agenda destino
contact_idYesID del contacto a duplicar (obténlo de get_contacts)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the tool copies a contact and the required conditions, but does not mention side effects, permissions, rate limits, or error behavior. For a mutation tool, more behavioral details would be beneficial, but the description provides the core logic.

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

Conciseness5/5

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

The description is two concise sentences in Spanish, each earning its place. The first sentence states the core action, and the second adds the precondition and use case. No redundancy or fluff.

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

Completeness4/5

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

Given the 3 required parameters, full schema coverage, and no output schema, the description adequately explains the purpose and precondition. However, it lacks information about the return value (e.g., success indicator or duplicated contact ID) and error handling, which would make it more complete for an agent invoking the tool.

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

Parameters3/5

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

The input schema already provides 100% coverage with descriptions for all three parameters. The description adds context about the precondition and use case but does not add new semantics for individual parameters beyond what the schema offers. Baseline is 3, and this meets it.

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

Purpose5/5

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

The description clearly states the verb 'copiar' and the resource 'contacto de una agenda a otra', specifying the source and destination lists. It distinguishes itself from siblings by highlighting its specific use case of moving qualified prospects between lists without re-typing data, which differs from other contact-related tools like 'add_contact' or 'update_contact'.

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

Usage Guidelines4/5

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

The description explicitly states the precondition that the contact must exist in the source list and must not exist in the destination list. It also provides a clear use case ('mover prospectos calificados'), implying when to use the tool. However, it does not explicitly name alternative tools or state when not to use, which prevents a perfect score.

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

find_agendaA

Busca agendas por nombre (búsqueda parcial, case-insensitive). Paginado por número de página: default page=1, limit=20 (max 100). Si la respuesta dice has_more=true, vuelve a invocar con el next_page indicado.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesTexto a buscar en el nombre de las agendas (búsqueda parcial, case-insensitive)
pageNoNúmero de página (1-indexed). Default 1. Si la respuesta indica has_more=true, invoca de nuevo con next_page.
limitNoResultados por página (default 20, max 100)

TDQS

A3.9/5.0
Behavior4/5

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

Despite no annotations, the description discloses pagination behavior: default page=1, limit=20 (max 100), and response fields has_more and next_page for iterative fetching. This goes beyond the schema and aids agent decision-making.

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

Conciseness5/5

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

Two efficient sentences in Spanish. First sentence states the core purpose, second covers pagination. No redundant words; every sentence earns its place.

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

Completeness3/5

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

Covers pagination and defaults adequately, but lacks description of the response format (e.g., what fields each agenda object contains). Without an output schema, the description should include this to be fully complete.

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

Parameters4/5

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

Schema already documents all three parameters with descriptions, so baseline is 3. The description adds default values and pagination logic (next_page) that are not in the schema, providing meaningful usage context.

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

Purpose5/5

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

Description clearly states the tool searches agendas by name with partial, case-insensitive matching. The verb 'Busca' combined with the resource 'agendas' and qualifiers makes the purpose unambiguous and distinct from sibling tools like list_agendas.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus siblings like list_agendas or other search tools. The description focuses on pagination internals but does not help an agent choose between alternatives.

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

generate_reportA

Genera un reporte detallado de mensajes enviados en un rango de fechas (MÁXIMO 7 DÍAS). Devuelve cada mensaje individual con destinatario, status, operador y referencia. Para agregados rápidos por campaña usa get_report_details. La operación puede tardar hasta 5 minutos en cuentas con alto volumen. El API tiene límite de 4 reportes por usuario antes de bloquear.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateYesFecha de inicio del rango (formato YYYY-MM-DD)
end_dateYesFecha de fin del rango (formato YYYY-MM-DD)
sandboxNo'1' para reportes de sandbox, '0' o omitido para producción

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses non-obvious behaviors: max 7 days, operation can take up to 5 minutes, API has usage limit of 4 reports per user. Does not explicitly state read-only, but report generation implies no mutation.

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

Conciseness4/5

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

Description is a single paragraph with four sentences. First sentence states core purpose, then alternative, then caveats. No redundancy, but could be slightly trimmed. For a report tool, length is acceptable.

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

Completeness4/5

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

Given no output schema, description explains return format (individual message with recipient, status, operator, reference). Covers parameter constraints and limitations. Missing error handling details, but sufficient for typical use.

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

Parameters3/5

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

Schema coverage is 100% (all parameters described). Description adds value by re-emphasizing max 7-day range and explaining 'sandbox' parameter purpose. Not significantly beyond schema, so baseline 3 is appropriate.

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

Purpose5/5

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

Description uses specific verb 'Genera' (generates) and noun 'reporte detallado de mensajes' with scope 'en un rango de fechas (MÁXIMO 7 DÍAS)'. It distinguishes from sibling 'get_report_details' by stating returns individual messages vs. aggregates.

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

Usage Guidelines4/5

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

Explicitly states when to use this tool (for detailed individual messages) and when to use alternative 'get_report_details' (for quick aggregates). Provides constraints: max 7 days, API limit of 4 reports per user, and potential 5-minute wait. No explicit 'when not to use' but alternative covers it.

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

get_campaign_statsA

Obtiene las estadísticas de entrega de una campaña SMS por su ID. Muestra: efectividad (%), entregados, fallidos, pendientes y no cobrados. Funciona para campañas enviadas o completadas. Detecta automáticamente si la campaña es sandbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID de la campaña SMS. Obtenlo del resultado de send_sms (campo campaignId).
sandboxNo'1' si la campaña fue enviada en modo sandbox

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the read-only nature, auto-detection of sandbox mode, and the list of returned metrics. Lacks mention of permissions or side effects, but for a read operation the transparency is adequate.

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

Conciseness4/5

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

Two sentences plus a bullet list showing metrics. Front-loaded with purpose. Could be more structured but is concise and to the point without fluff.

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

Completeness4/5

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

Covers input parameters well and lists output fields despite no output schema. Does not mention error handling or performance, but for a simple stats retrieval tool it provides sufficient context for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, baseline 3. Description adds value by instructing to get campaign_id from send_sms result and noting auto-detection of sandbox, though the sandbox parameter's necessity is ambiguous. Overall adds meaningful guidance beyond schema.

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

Purpose5/5

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

The description starts with a clear verb ('Obtiene') and specific resource ('estadísticas de entrega de una campaña SMS'), listing the exact metrics. It clearly distinguishes itself from sibling tools like send_sms or list_campaigns by focusing on post-delivery statistics.

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

Usage Guidelines4/5

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

States it works for 'campañas enviadas o completadas', providing clear context on when to use. Does not explicitly state when not to use or name alternatives, but the context is sufficient for an agent to infer appropriate usage.

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

get_contactsA

Obtiene todos los contactos de una agenda específica usando su list_key. Usa list_agendas primero para obtener el list_key.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda (list_key). Obtenla con list_agendas.

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It states the tool retrieves all contacts, implying a read-only operation, but does not explicitly confirm it has no side effects or describe the output format. The description is adequate but minimally transparent.

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

Conciseness5/5

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

The description is only two sentences, both front-loaded with the primary purpose and usage hint. Every word serves a purpose, with zero redundancy or unnecessary detail.

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

Completeness4/5

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

Given a single parameter, no output schema, and a clear context from sibling tools, the description is mostly complete. It explains what the tool does and a prerequisite, but lacks details about the return format or any limitations (e.g., no pagination). It meets the needs for a simple retrieval tool.

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

Parameters4/5

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

The schema already describes the list_key parameter with 100% coverage. The description adds value by specifying that this key is obtained via list_agendas, which provides context beyond the schema definition.

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

Purpose5/5

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

The description uses the verb 'Obtiene' (gets) and specifically identifies the resource as 'todos los contactos de una agenda específica' (all contacts of a specific agenda). This clearly distinguishes it from sibling tools like add_contact, delete_contact, etc., which perform other operations.

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

Usage Guidelines5/5

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

The description explicitly instructs to use list_agendas first to obtain the list_key, providing clear prerequisite guidance. This helps the agent understand the correct invocation order and use case for this tool.

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

get_loyalty_contactA

Consulta los datos de un contacto en una tarjeta de lealtad: sellos acumulados, canjes, etc. Si omites el teléfono, retorna todos los contactos.

ParametersJSON Schema
NameRequiredDescriptionDefault
loyalty_keyYesClave única de la tarjeta de lealtad
phoneNoNúmero de teléfono. Si se omite, retorna todos los contactos.

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the data returned and phone condition, but lacks details on authentication, error handling, or edge cases.

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

Conciseness5/5

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

Two concise sentences with no wasted words, front-loading the core purpose and a key usage condition.

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

Completeness3/5

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

Given no output schema, the description outlines return content but lacks structure details, error info, or performance notes. Adequate for a simple query tool but not exhaustive.

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

Parameters4/5

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

Schema coverage is 100% with descriptions. The tool description adds context by explaining the return data and the conditional effect of the phone parameter beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool queries loyalty contact data (sellos, canjes) and specifies the conditional behavior when phone is omitted, distinguishing it from siblings like get_contacts or add_loyalty_contact.

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

Usage Guidelines4/5

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

The description provides a usage hint about the phone parameter's effect, but does not explicitly compare to alternative tools or state when not to use it.

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

get_metricsA

Muestra las métricas de uso del MCP en la sesión actual: llamadas por tool, errores, latencia promedio y p95, uso sandbox vs producción.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so the description carries the full burden. It describes the output metrics but does not explicitly state the tool is read-only or non-destructive. The implication is clear, but without annotations, more explicit disclosure would improve transparency.

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

Conciseness5/5

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

The description is a single sentence with a clear list, no fluff. Every word contributes to understanding the tool's purpose and output.

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

Completeness5/5

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

For a tool with no parameters, no output schema, and low complexity, the description is complete. It explains exactly what metrics are returned, making it self-contained for an agent to invoke.

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

Parameters4/5

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

With 0 parameters and 100% schema coverage, the description does not need to add parameter info. It adds value by explaining the output, which is sufficient for a parameterless tool.

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

Purpose5/5

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

The description clearly states the tool shows MCP usage metrics for the current session, listing specific metrics (calls, errors, latency, sandbox vs production). It distinguishes from siblings which focus on individual resources (contacts, campaigns, etc.).

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

Usage Guidelines3/5

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

The description implies usage for viewing session-level metrics, but lacks explicit guidance on when to use this tool versus alternatives (e.g., for debugging vs. getting entity-specific stats). No when-not-to-use or alternative references.

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

get_report_detailsA

Devuelve agregados rápidos por campaña: total enviados, entregados, fallidos, pendientes, no cobrados y % de efectividad. Mucho más rápido que generate_report cuando solo necesitas KPIs. Requiere campaign_id (obténlo de list_campaigns o send_sms).

ParametersJSON Schema
NameRequiredDescriptionDefault
campaign_idYesID de la campaña a consultar (obténlo de list_campaigns o send_sms)
sandboxNo'1' si la campaña fue enviada en modo sandbox

TDQS

A4.5/5.0
Behavior4/5

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

Without annotations, the description bears full burden. It indicates the tool is a fast, read-only query. No contradictions; discloses that it returns aggregates. Could mention idempotency or safety, but for a simple retrieval tool this is sufficient.

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

Conciseness5/5

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

Three concise sentences: first declares function, second provides use-case guidance, third specifies prerequisite. No wasted words, all value-adding.

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

Completeness5/5

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

Given no output schema, the description lists all returned fields. It provides speed comparison, prerequisite hints, and context about sibling tool. Complete for a simple query tool with two parameters.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes both parameters. The description adds only the source for campaign_id, which is helpful but not essential beyond schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it returns quick aggregates (total sent, delivered, etc.) by campaign. It distinguishes from the sibling 'generate_report' by emphasizing speed and KPI focus, making the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool: 'Much faster than generate_report when you only need KPIs'. Also instructs where to obtain the required campaign_id ('from list_campaigns or send_sms'), providing clear usage context.

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

get_wallet_contactA

Consulta el saldo de un contacto en un monedero electrónico. Si omites el teléfono, retorna todos los contactos con sus saldos.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_keyYesClave única del monedero
phoneNoNúmero de teléfono. Si se omite, retorna todos los contactos.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It discloses the conditional behavior (returning all contacts if phone omitted) but does not explicitly state that the tool is read-only, does not modify data, or require any specific authentication. It also lacks details on response format or potential errors.

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

Conciseness5/5

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

Two concise sentences with no unnecessary words. The primary action is stated first, followed by the conditional behavior. Every sentence adds relevant information.

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

Completeness4/5

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

Given no output schema, the description adequately explains the tool's return behavior (balance for a specific contact or list of contacts with balances). It covers the main functionality but could be improved by mentioning the output structure or format. It is complete for a simple query tool.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. The tool description adds value by explaining the effect of omitting 'phone' (returns all contacts with balances), which goes beyond the schema's mention of its optionality. This clarifies the functional difference in invocation.

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

Purpose4/5

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

The description clearly states the tool consults a contact's balance in an electronic wallet, and distinguishes behavior when phone is omitted (returns all contacts with balances). It uses a specific verb 'consulta' and resource 'saldo de un contacto'. However, it does not explicitly differentiate from sibling tools like 'check_balance' or 'get_contacts'.

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

Usage Guidelines3/5

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

The description provides guidance on when to omit the phone parameter to get all contacts with balances. It does not mention when not to use the tool or suggest alternatives among sibling tools, but the conditional behavior is clearly explained.

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

list_agendasA

Lista todas las agendas (listas de contactos) de tu cuenta en SMS Masivos. Cada agenda tiene un list_key único que necesitas para obtener contactos o agregar nuevos.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description must convey behavior. It indicates a read-only list operation and explains the importance of the list_key in the output. It does not detail pagination or exact output structure, but for a zero-parameter list tool, this is sufficient and adds value beyond a minimal description.

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

Conciseness5/5

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

The description is concise with two sentences. It front-loads the core action ('Lista todas las agendas') and immediately adds valuable context about the list_key. Every word serves a purpose, with no repetition or filler.

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

Completeness4/5

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

Given the tool's simplicity (no parameters, no output schema, many siblings), the description covers the essential: listing all agendas and the critical role of the list_key. It could mention output fields or pagination, but it provides enough context for an agent to use the tool effectively.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. The description does not need to add parameter semantics, and it correctly refers to the schema's coverage (trivially 100%). No additional parameter information is necessary.

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

Purpose5/5

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

The description uses the verb 'Lista' (Lists) and specifies the resource 'agendas (listas de contactos)', clearly stating what the tool does. It distinguishes from sibling tools like create/delete/find by focusing on listing all items, and adds context about the list_key for further operations.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool (to obtain the list_key needed for adding contacts or retrieving contacts). However, it does not explicitly mention when not to use it or name alternative tools for specific needs like searching, so it slightly misses the full 'exclusions' criterion.

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

list_campaignsA

Lista las campañas SMS de tu cuenta, ordenadas de más reciente a más antigua. Puedes filtrar por rango de fechas. Usa el ID de campaña con get_campaign_stats para ver estadísticas de entrega.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoFecha de inicio en formato YYYY-MM-DD
end_dateNoFecha de fin en formato YYYY-MM-DD
sandboxNo'1' para listar campañas de sandbox
limitNoCantidad máxima de campañas a retornar (default: 50, max: 100)

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions ordering and filtering but omits pagination, rate limits, or default behavior beyond what the schema covers.

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

Conciseness5/5

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

Two concise sentences, front-loading the core purpose and adding a practical next step. No redundant information.

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

Completeness4/5

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

For a list tool with 4 optional params and no output schema, the description covers the main functionality, sorting, filtering, and a use case. Could mention sandbox filtering or pagination limits, but schema covers those.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no significant meaning beyond the schema; it only reiterates date filtering.

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

Purpose5/5

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

The description clearly states the tool lists SMS campaigns sorted by most recent, with optional date filtering. It distinguishes from siblings like get_campaign_stats by focusing on listing.

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

Usage Guidelines4/5

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

The description guides the user to use campaign IDs with get_campaign_stats for delivery statistics, providing context for subsequent actions. It doesn't explicitly exclude other uses, but the guidance is clear.

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

list_loyalty_cardsA

Lista todas las tarjetas de lealtad de tu cuenta. Cada tarjeta tiene un loyalty_key que necesitas para gestionar contactos y registrar ventas.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It only says it lists cards, missing details like whether it requires authentication, pagination, ordering, or if it returns all cards. The behavior is simple, so a 3 is appropriate.

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

Conciseness5/5

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

Two sentences, both essential, front-loaded with the action and a key insight about the result's use. No wasted words.

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

Completeness5/5

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

For a simple list tool with no parameters and no output schema, the description is complete. It explains the purpose and the value of the output (loyalty_key) for subsequent operations.

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

Parameters4/5

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

There are zero parameters, so baseline is 4. The description does not need to add parameter info, and it correctly implies no input needed.

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

Purpose4/5

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

The description clearly states it lists all loyalty cards ('Lista todas las tarjetas de lealtad'), which is a specific verb and resource. While it does not explicitly distinguish from sibling tools, the context of listing vs adding/managing contacts is implicit.

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

Usage Guidelines3/5

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

The description implies usage by stating the loyalty_key is needed for managing contacts and recording sales, suggesting this tool is a prerequisite. However, it does not explicitly state when to use this tool over alternatives or provide conditions for use.

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

list_walletsA

Lista todos los monederos electrónicos de tu cuenta. Cada monedero tiene un wallet_key y usertool_id que necesitas para gestionar contactos y saldos.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits such as pagination, sorting, or side effects. It only states the basic functionality.

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

Conciseness5/5

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

Two concise sentences with no fluff. Action verb 'Lista' is front-loaded, and every sentence provides useful information.

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

Completeness4/5

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

For a parameterless list tool with no output schema, the description adequately explains purpose and output fields. Could mention error scenarios or empty list behavior, but overall complete enough.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds value by explaining the output structure (wallet_key, usertool_id), which is helpful given no output schema.

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

Purpose5/5

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

The description clearly states it lists all wallets of your account, and mentions the key fields (wallet_key, usertool_id) that are essential for other operations. This distinguishes it from sibling tools like list_agendas.

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

Usage Guidelines3/5

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

Implicitly suggests the tool is a prerequisite for managing contacts/balances, but does not explicitly state when to use vs alternatives. No exclusion criteria or context provided.

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

manage_webhookA

Gestiona el webhook configurado para tu cuenta (uno por usuario). Acciones: 'list' (ver), 'add' (registrar o reemplazar), 'toggle' (cambiar estado), 'delete' (eliminar — DESTRUCTIVO, pide confirmación al humano antes). El webhook recibe eventos de entrega de SMS. URL debe ser https; rechaza IPs privadas y localhost.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesOperación: 'list' (ver), 'add' (registrar/reemplazar), 'toggle' (cambiar estado), 'delete' (eliminar — DESTRUCTIVO).
urlNoSolo para action='add'. URL https que recibirá los eventos.
statusNoSolo para action='add' o 'toggle'. '1' activo, '0' inactivo.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses destructive delete with human confirmation, URL restrictions (https, no private IPs), and that the webhook receives SMS delivery events. It could mention error handling or what happens if no webhook exists, but overall strong.

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

Conciseness5/5

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

The description is concise with no wasted sentences. It front-loads the purpose, lists actions with explanations, and adds important constraints. Every sentence earns its place.

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

Completeness3/5

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

The description lacks any mention of return values or output, which would be helpful given no output schema. It covers the tool's behavior well but misses what the agent can expect back from actions like 'list' or 'add'. Adequate but incomplete.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by noting that URL must be https and rejects private IPs/localhost, which is not in the schema. This extra constraint justifies a 4.

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

Purpose5/5

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

The description clearly states it manages a webhook (one per user) with specific actions (list, add, toggle, delete). It distinguishes from sibling tools as no other tool manages webhooks, making its purpose unique and well-defined.

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

Usage Guidelines4/5

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

The description explains the actions and constraints (one webhook per user, destructive delete with human confirmation) but does not explicitly state when not to use this tool or compare to alternatives. Since no alternative exists, the guidance is sufficient.

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

rename_agendaA

Cambia el nombre de una agenda existente. Requiere el list_key (obténlo con list_agendas).

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda a renombrar (obténla con list_agendas)
agenda_nameYesNuevo nombre para la agenda

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries burden. Only states mutation (rename) without disclosing side effects, auth needs, or reversibility. Minimal detail.

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

Conciseness5/5

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

Single sentence, front-loaded with action, no waste. Ideal conciseness.

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

Completeness3/5

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

No output schema, no behavioral details beyond basic action. Adequate for a simple rename but missing return value explanation and constraints.

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

Parameters3/5

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

Schema covers both parameters fully (100%). Description repeats schema's list_key instruction but adds no new meaning beyond the schema. Baseline 3 applies.

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

Purpose5/5

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

Description clearly states 'Cambia el nombre de una agenda existente', a specific verb+resource. It distinguishes from siblings like create_agenda and delete_agenda.

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

Usage Guidelines4/5

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

Explicitly requires list_key obtained via list_agendas, a clear prerequisite. Does not explicitly exclude other tools but context with siblings implies appropriate usage.

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

resend_verificationA

Reenvía un código OTP a un número que ya tenía una verificación activa con verify_phone. Útil cuando el usuario reporta que no le llegó el SMS. Por default reenvía el mismo código; pasa reset_code='1' para regenerar uno nuevo.

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesNúmero de teléfono al que se reenvía el código (mismo usado en verify_phone)
country_codeNoCódigo de país52
companyYesNombre de la empresa que envía la verificación (máx 40 caracteres)
reset_codeNo'1' para regenerar un código nuevo. Default '0' reenvía el código existente.
code_typeNoTipo de código si se regenera: 'numeric' o 'alphanumeric'
expiration_dateNoNueva fecha de expiración del código en formato 'YYYY-MM-DD HH:mm:ss'
voiceNo'1' para reenviar por llamada de voz
whatsappNo'1' para reenviar por WhatsApp

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses key behaviors: resending OTP, default same code, option to regenerate with reset_code, and channels like voice and WhatsApp. It could mention prerequisites (active verification) or side effects, but overall it is sufficiently transparent.

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

Conciseness5/5

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

The description is concise with four sentences in Spanish. It is front-loaded with the core action and uses no unnecessary words. Every sentence contributes meaningful information.

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

Completeness4/5

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

Given the tool has 8 parameters (2 required), no output schema, and no annotations, the description covers the main use case and key parameter behavior. It could be more complete by mentioning that the verification must be active or what happens on failure, but it is adequate for most scenarios.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the default behavior of reusing the same code and the effect of reset_code='1' to generate a new one. This contextualizes the parameters beyond their schema descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Reenvía' (resends) and the resource 'código OTP a un número que ya tenía una verificación activa con verify_phone'. It distinguishes from siblings by referencing the prerequisite verify_phone, making its purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context: it is useful when the user reports not receiving the SMS, and it explains the default behavior versus using reset_code='1'. However, it does not explicitly state when not to use this tool or mention alternatives like reset_verification, which is a sibling tool.

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

reset_verificationA

Resetea el estado de una verificación de teléfono — limpia los intentos fallidos y opcionalmente genera un código nuevo. Úsalo cuando el usuario excedió los intentos o el código expiró y quieres permitirle reintentar sin crear una verificación nueva con verify_phone.

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesNúmero de teléfono cuya verificación se resetea
country_codeNoCódigo de país52
reset_codeNo'1' para generar un código nuevo. Default '0' mantiene el código existente y solo limpia los intentos.
code_typeNoTipo de código si se regenera: 'numeric' o 'alphanumeric'

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description must bear full burden. It mentions resetting state and optional code generation but does not disclose return values, success/failure conditions, or any side effects beyond what is stated. For a simple mutation, it's adequate but not rich.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and every sentence adds value. No fluff.

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

Completeness3/5

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

No output schema is provided, and the description does not mention return values. For a mutation tool, this leaves some uncertainty about what the agent will receive. However, the context of usage and parameters is well covered.

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

Parameters3/5

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

The input schema has 100% description coverage, so each parameter is already documented. The description adds little beyond the schema, except for the mention of optional code generation. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb (reset), the resource (phone verification state), and what it does (clear failed attempts, optionally generate new code). It also distinguishes from the sibling verify_phone by explicitly mentioning it avoids creating a new verification.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: when the user exceeded attempts or code expired, and you want to allow retry without creating a new verification. It also names the alternative tool verify_phone.

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

send_payment_requestB

Envía una solicitud de pago a un cliente vía SMS usando un template configurado en la cuenta. El template debe existir y estar activo en la sección de Solicitudes de Pago. El cliente recibe un SMS con link corto a la página de pago.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateYesToken del template de solicitud de pago configurado en tu cuenta
numberYesNúmero de teléfono del cliente que recibirá la solicitud
amountNoMonto a cobrar (si el template no tiene monto fijo)
emailNoEmail del cliente
nameNoNombre del cliente
customNoID propio para tracking (opcional)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It describes that the client receives an SMS with a short link, but lacks details on error handling (e.g., missing template, invalid number) or side effects. The behavior is partially transparent but not comprehensive.

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

Conciseness4/5

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

The description is two sentences, front-loading the action and prerequisite. It is clear and concise, though it could be slightly more compressed without losing meaning.

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

Completeness3/5

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

Given no output schema, the description does not explain return values or success/error responses. It provides enough to understand the client experience, but misses details on what the API returns, which is important for a payment tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description does not add extra context beyond what is in the schema descriptions, meeting the baseline for high coverage.

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

Purpose5/5

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

The description clearly states the action (sends a payment request via SMS), the target (client), and the prerequisite (configured template). It distinguishes from siblings like send_sms by specifying it's for payment requests.

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

Usage Guidelines3/5

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

The description mentions the template must exist and be active, providing a precondition. However, it does not explicitly state when to use this tool over alternatives like send_sms, nor does it give guidance on when not to use it.

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

send_smsA

Envía uno o varios mensajes SMS a través de SMS Masivos. Requiere números de teléfono (separados por coma, máximo 500), texto del mensaje y código de país. Usa sandbox='1' para pruebas sin envío real. El código de país por defecto es 52 (México).

ParametersJSON Schema
NameRequiredDescriptionDefault
numbersYesNúmeros de teléfono separados por coma, sin código de país (ej: '5512345678,5598765432'). Máximo 500.
messageYesTexto del mensaje SMS (máx. 1600 caracteres / 10 segmentos)
country_codeNoCódigo de país (ej: '52' para México, '1' para USA)52
sandboxNoEnviar en modo sandbox (no envía realmente, no consume créditos). '1' para activar.
senderNoRemitente personalizado (si tu cuenta lo permite, máx. 11 chars)
dateNoFecha de envío programado en formato 'YYYY-MM-DD HH:mm:ss' (hora de México)
shorten_urlNo'1' para acortar automáticamente URLs en el mensaje
flashNo'1' para enviar como SMS flash (se muestra sin guardar)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It mentions sandbox mode behavior (no real send, no credit consumption) and character limits. But it does not discuss error handling, return values, or potential side effects like billing for real sends.

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

Conciseness4/5

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

The description is a single paragraph but remains concise and covers key points. It could be more structured (e.g., bullet points), but it is not verbose and front-loads the essential information.

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

Completeness3/5

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

The tool has no output schema, but the description does not explain what the tool returns (e.g., success status, message ID). Given the complexity of 8 parameters and no output description, it lacks completeness for a sending tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that numbers should be without country code, clarifying the message length context (1600 chars = 10 segments), and detailing the date format (Mexico time) and flash/SMS semantics.

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

Purpose5/5

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

The description clearly states the tool sends SMS messages via SMS Masivos, specifying required elements (phone numbers, message, country code). It differentiates from siblings like send_payment_request and get_contacts by its specific focus on SMS sending.

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

Usage Guidelines4/5

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

The description provides guidance on using sandbox='1' for testing without real sending and notes the default country code (52 for Mexico). However, it does not explicitly list when to avoid using the tool or alternatives among siblings.

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

update_contactA

Actualiza los datos de un contacto existente en una agenda. Identifica al contacto por list_key + number. Si el contacto no existe en esa agenda, sugiere usar add_contact en su lugar.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_keyYesClave única de la agenda donde está el contacto
numberYesNúmero de teléfono actual del contacto a actualizar
emailNoEmail actual del contacto (opcional, para identificación adicional)
nameNoNuevo nombre del contacto
new_emailNoNuevo email del contacto
custom_field_1NoNuevo valor del campo personalizado 1
custom_field_2NoNuevo valor del campo personalizado 2
custom_field_3NoNuevo valor del campo personalizado 3
custom_field_4NoNuevo valor del campo personalizado 4
birthday_dateNoNueva fecha de cumpleaños (formato YYYY-MM-DD)

TDQS

A3.9/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only mentions update action and identification, but lacks details on whether updates are partial or full, what happens to omitted fields, authorization needs, or idempotency. Minimal transparency beyond the action itself.

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

Conciseness5/5

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

Two sentences, efficient and front-loaded with the core action. No unnecessary words or repetition.

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

Completeness3/5

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

With 10 parameters and no output schema, the description is brief. It covers identification and fallback but lacks information on partial updates, response behavior, or required permissions. Adequate for a simple tool but could be more complete.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning beyond what the schema already provides for each parameter; it only reiterates list_key and number for identification.

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

Purpose5/5

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

The description clearly states it updates existing contact data, identifies the contact by list_key + number, and differentiates from add_contact by suggesting its use when the contact does not exist.

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

Usage Guidelines5/5

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

Explicitly says when to use (update existing contact) and when not to (contact does not exist, use add_contact instead). Provides clear alternative.

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

update_wallet_balanceA

Agrega o resta saldo en el monedero de un contacto. transaction_type '1' = agregar, '2' = restar. Requiere wallet_key, teléfono, monto y usertool_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
wallet_keyYesClave única del monedero
phoneYesNúmero de teléfono del cliente
transaction_typeYesTipo de transacción: '1' para agregar saldo, '2' para restar saldo
transaction_amountYesMonto de la transacción (valor positivo)
usertool_idYesID de la herramienta de usuario (obtenlo de list_wallets)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It explains that transaction_type '1' adds and '2' subtracts, and requires specific fields. However, it omits details such as whether the operation is reversible, authorization requirements, or error behavior, which are important for a financial mutation.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, followed by key detail on transaction_type and required fields. No extraneous text.

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

Completeness3/5

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

Given 5 required params and no output schema, the description covers the basic purpose and transaction type logic. However, it lacks information on return values, error conditions, or validation rules beyond the schema constraints, which is minimally adequate.

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

Parameters4/5

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

Schema coverage is 100% (each parameter has a description). The description adds value by summarizing required params and explaining transaction_type values ('1' for add, '2' for subtract) and noting that amount (monto) is positive. This goes beyond the schema descriptions.

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

Purpose5/5

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

The description explicitly states the tool adds or subtracts balance from a contact's wallet, using a clear verb and resource. It distinguishes from sibling tools like check_balance (read-only) and list_wallets (list operation).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like send_payment_request or get_wallet_contact. The description only lists required parameters but does not specify use cases, prerequisites, or when to avoid.

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

verify_phoneA

Inicia una verificación de número de teléfono enviando un código OTP por SMS. Opcionalmente puede enviarse por llamada de voz o WhatsApp. Después usa check_verification para verificar el código que ingrese el usuario.

ParametersJSON Schema
NameRequiredDescriptionDefault
phone_numberYesNúmero de teléfono sin código de país (ej: '5512345678')
country_codeNoCódigo de país (default: 52 México)52
companyYesNombre de la empresa que envía la verificación (máx 40 caracteres)
code_typeNoTipo de código: 'numeric' (solo dígitos) o 'alphanumeric'
expiration_dateNoFecha de expiración del código en formato 'YYYY-MM-DD HH:mm:ss'
voiceNo'1' para enviar el código por llamada de voz
whatsappNo'1' para enviar el código por WhatsApp
sandboxNoEnviar en modo sandbox (no envía realmente, no consume créditos). '1' para activar.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description takes full burden. It discloses optional channels (voice, WhatsApp), sandbox mode, and implies expiration through a parameter. No contradictions or hidden behaviors.

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

Conciseness5/5

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

Two sentences, no filler. Front-loaded with main action and optional methods, then subsequent step. Perfectly concise.

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

Completeness4/5

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

Tool has 8 parameters and no output schema, but description covers the overall flow. Could include response format or error conditions, but sufficient given sibling tools support the process.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are documented in the schema. Description adds only high-level context (e.g., optional delivery methods) but no extra semantics beyond what schema provides.

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

Purpose5/5

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

Description uses specific verb 'Inicia una verificación de número de teléfono' and specifies resource (phone number), distinguishing it from siblings like check_verification or send_sms. It clearly states the action and optional delivery methods.

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

Usage Guidelines4/5

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

Explicitly directs to use check_verification afterward, establishing the workflow. Lacks explicit exclusions or alternatives but clear enough for the specific task.

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

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a distinct purpose: contact management, agenda operations, loyalty, wallets, SMS sending, verification, reporting, webhooks, etc. No two tools appear to do the same thing, even within verification (initiate, check, resend, reset are clearly differentiated).

Naming Consistency5/5

All tools use a consistent verb_noun pattern with snake_case (e.g., add_contact, list_agendas, send_sms, verify_phone). No mixing of styles like camelCase or inconsistent verb choices.

Tool Count4/5

30 tools is on the higher side but each serves a concrete feature of the SMS platform (contacts, loyalty, wallets, sending, reporting, verification, webhooks, metrics). The scope justifies the count, though it could be slightly trimmed.

Completeness5/5

The tool surface covers nearly every aspect of the SMS Masivos platform: complete CRUD for contacts and agendas, sending with campaign stats, detailed reports, loyalty and wallet management, phone verification, webhook configuration, balance checking, and usage metrics. No obvious gaps for the stated domain.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI agents to send, receive, schedule, and manage SMS and MMS messages using the Twilio Programmable Messaging API. It provides comprehensive tools for handling bulk messaging, conversation threads, and real-time inbox monitoring through a secure, production-grade architecture.
    16
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI models to send SMS, check delivery status, and perform Mexican Mobile Number Portability (MNP) carrier lookups via the N3T Mobile CPaaS Gateway.
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to purchase virtual phone numbers, retrieve SMS verification codes, and manage activations through natural language by wrapping the VirtualSMS Consumer API.
    18
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SMS-Masivos/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server