Mirlo MCP Server
OfficialMirlo MCP Server connects you to Mirlo CRM, enabling natural language management of deals, contacts, accounts, tickets, tasks, messaging, and voice calls across 21 tools.
Deals/Opportunities
List deals with filters (status, amount, pipeline, stage, owner, time in stage)
Get full deal details including stage history, contacts, and conversations
Create, update, and move deals between pipeline stages
List all pipelines and their stages
Contacts & Accounts
List and search contacts by name, email, or phone; filter by owner or account
Get a specific contact by ID
Create new contacts with name, email, phone, and linked account
List accounts/companies filtered by name, domain, industry, or lifecycle stage
Create new accounts with company details
Tickets
List support tickets filtered by state, priority, owner, or excluding closed tickets
Create new support tickets with title, description, priority, and assignee
Tasks
List tasks filtered by type (call, email, meeting, follow-up, to-do), status, due date, priority, or associated CRM entity
Create tasks linked to deals, tickets, contacts, or accounts
Mark tasks as completed
Messaging
Send WhatsApp or SMS messages to a phone number
Send pre-approved WhatsApp template messages with custom parameters
List recent conversations across channels
Voice
List phone calls filtered by direction (inbound/outbound)
Retrieve AI-generated transcripts of specific phone calls
Allows sending WhatsApp messages (including templates) via Mirlo's messaging API, as well as listing conversations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mirlo MCP Serverlist my deals in the sales pipeline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mirlo para Claude
Conectá tu CRM de Mirlo con Claude para consultar y gestionar oportunidades, contactos, tickets y tareas usando lenguaje natural.
¿Qué puedo hacer?
Preguntale a Claude cosas como:
"¿Cuántos deals abiertos tengo arriba de $100k?"
"Creame un ticket de soporte con prioridad alta"
"¿Qué tareas tengo vencidas?"
"Dame los contactos de la empresa Farmacias del Ahorro"
"¿Cuáles oportunidades cierran esta semana?"
"Creá una tarea para llamar al cliente mañana"
Related MCP server: Bellink MCP Server
Configuración paso a paso
Paso 1: Obtené tu API Key de Mirlo
Ingresá a app.mirlo.com
Andá a Mi Organización → API Keys
Hacé click en + Crear API Key
Copiá la key (empieza con
sk_live_)
Paso 2: Instalá Node.js (si no lo tenés)
Descargá e instalá Node.js desde nodejs.org. Elegí la versión LTS (recomendada).
Para verificar que está instalado, abrí la Terminal y escribí:
node --versionDebería mostrar algo como v22.x.x.
Paso 3: Configurá Claude Desktop
Abrí Claude Desktop
Andá a Settings (Configuración) → Developer → Edit Config
Se abre un archivo. Reemplazá el contenido con:
{
"mcpServers": {
"mirlo": {
"command": "npx",
"args": ["-y", "@mirlo/mcp", "--api-key=TU_API_KEY_AQUI"]
}
}
}Reemplazá
TU_API_KEY_AQUIcon tu API key de Mirlo (la que copiaste en el Paso 1)Guardá el archivo y reiniciá Claude Desktop
Paso 4: ¡Listo!
Abrí una nueva conversación en Claude y preguntá algo sobre tu CRM:
"¿Cuántos tickets abiertos tengo?"
Claude va a usar las herramientas de Mirlo automáticamente para responder.
Configuración con Claude Code (CLI)
Si usás Claude Code en la terminal:
# Agregar el MCP server
claude mcp add mirlo npx -y @mirlo/mcp --api-key=sk_live_xxx¿Qué puede hacer?
CRM — Oportunidades
Acción | Ejemplo |
Listar deals | "Dame las oportunidades abiertas ordenadas por monto" |
Buscar deals | "¿Hay deals que cierran esta semana?" |
Crear deal | "Creá una oportunidad para Acme Corp por $50,000" |
Mover de etapa | "Mové el deal de Acme a Negociación" |
Filtrar por tiempo | "¿Qué deals llevan más de 24 horas en Prospecto?" |
CRM — Contactos y Cuentas
Acción | Ejemplo |
Buscar contactos | "Buscame los contactos de la empresa Café Digital" |
Crear contacto | "Creá un contacto: Ana García, ana@empresa.com" |
Listar cuentas | "¿Qué cuentas tenemos en la industria Tecnología?" |
CRM — Tickets
Acción | Ejemplo |
Ver tickets abiertos | "¿Cuántos tickets abiertos hay?" |
Crear ticket | "Creá un ticket urgente: Error en la integración" |
Filtrar por prioridad | "Mostrá los tickets de prioridad alta" |
CRM — Tareas
Acción | Ejemplo |
Ver tareas pendientes | "¿Qué tareas tengo para hoy?" |
Tareas vencidas | "¿Hay tareas vencidas?" |
Crear tarea | "Creá una tarea para llamar a Ana García mañana" |
Completar tarea | "Marcá como completada la tarea de llamar a Ana" |
Messaging
Acción | Ejemplo |
Enviar mensaje | "Mandá un WhatsApp a +52 55 1234 5678 diciendo: Hola, te contacto de Mirlo" |
Ver conversaciones | "Mostrá las últimas conversaciones" |
Voz
Acción | Ejemplo |
Ver llamadas | "¿Cuántas llamadas entrantes hubo hoy?" |
Transcripción | "Dame la transcripción de la última llamada" |
Solución de problemas
"Claude no encuentra las herramientas de Mirlo"
Verificá que reiniciaste Claude Desktop después de editar la configuración
Verificá que tu API Key es válida en app.mirlo.com → API Keys
"Error de autenticación"
Tu API Key puede haber expirado. Generá una nueva en Mi Organización → API Keys
"npx no se encuentra"
Instalá Node.js desde nodejs.org
Soporte
¿Necesitás ayuda? Contactanos en mirlo.com o por WhatsApp.
Para desarrolladores
Instalación manual
npm install -g @mirlo/mcp
mirlo-mcp --api-key=sk_live_xxxVariables de entorno
MIRLO_API_KEY=sk_live_xxx # API key (requerida)
MIRLO_BASE_URL=https://... # URL base (opcional, default: api.mirlo.com)Herramientas disponibles (21 tools)
CRM: mirlo_list_deals, mirlo_get_deal, mirlo_create_deal, mirlo_update_deal, mirlo_move_deal_stage, mirlo_list_contacts, mirlo_get_contact, mirlo_create_contact, mirlo_list_accounts, mirlo_create_account, mirlo_list_tickets, mirlo_create_ticket, mirlo_list_tasks, mirlo_create_task, mirlo_complete_task, mirlo_list_pipelines
Messaging: mirlo_send_message, mirlo_send_template, mirlo_list_conversations
Voice: mirlo_list_calls, mirlo_get_call_transcript
Licencia
MIT
Available Tools
21 toolsmirlo_complete_taskB
Mark a task as completed.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Task UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It merely states the action but does not explain if the completion is reversible, triggers side effects (e.g., notifications, status changes), or requires specific permissions. This lack of detail leaves the agent unaware of consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words, but it is also under-informative. It is concise but sacrifices necessary detail for brevity, earning a neutral score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description lacks critical contextual information such as the effect on the task record, any preconditions, or error conditions. The absence of behavioral transparency makes it incomplete for reliable agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'task_id' described as 'Task UUID' in the schema. The description adds no additional meaning beyond the schema, so it meets the baseline but does not improve understanding of the parameter's usage or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Mark a task as completed' clearly states the action (mark/completed) and the resource (task), which distinguishes it from sibling tools like mirlo_create_task (create) and mirlo_list_tasks (list). The verb+resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs. alternatives, such as updating a task's status or deleting it. No context about prerequisites, typical usage scenarios, or scenarios where this tool should be avoided is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_create_accountC
Create a new account/company.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| name | Yes | Company name | |
| No | |||
| phone | No | ||
| domain | No | Company domain | |
| country | No | ||
| industry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description does not disclose any behavioral traits such as side effects, idempotency, permissions, or return behavior. For a creation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence), but it sacrifices informativeness. It is front-loaded but lacks necessary details to be truly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description is woefully incomplete. It does not explain what an 'account' is, what fields are critical, or what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (29%, only name and domain have descriptions). The description adds no parameter meaning beyond the schema. Six parameters (city, email, phone, country, industry) are explained neither in schema nor description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new account/company' clearly states the verb and resource. It is distinct from sibling creation tools (contact, deal, etc.) but does not explicitly differentiate scope or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., mirlo_list_accounts to check existing accounts). No prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_create_contactB
Create a new contact.
| Name | Required | Description | Default |
|---|---|---|---|
| full_name | Yes | Full name | |
| last_name | No | ||
| account_id | No | Account UUID to link | |
| first_name | No | ||
| primary_email | No | Email address | |
| primary_phone | No | Phone number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'create' which implies a mutation, but fails to mention permissions, side effects, required fields beyond the schema, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no unnecessary words. It is front-loaded and concise; however, it could be slightly expanded to include key constraints without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 6-parameter schema and no output schema, the description is insufficient. It does not mention return values, required permissions, or any constraints beyond the schema, leaving the agent without critical execution context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. Schema description coverage is 67% (4/6 parameters have descriptions), but the tool description does not clarify the two undocumented parameters (first_name, last_name) or provide any additional semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new contact,' which clearly identifies the function as creating a contact resource. This distinguishes it from sibling tools like mirlo_create_account or mirlo_create_deal, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the resource name (contact), but provides no explicit guidance on when to use this tool versus alternatives like mirlo_create_account or mirlo_create_deal. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_create_dealB
Create a new deal/opportunity in a pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Deal name | |
| amount | No | Deal amount | |
| currency | No | Currency code (default MXN) | MXN |
| owner_id | No | Owner member UUID | |
| stage_id | Yes | Initial stage UUID | |
| account_id | No | Account UUID | |
| pipeline_id | Yes | Pipeline UUID | |
| expected_close_date | No | Expected close date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose side effects, permissions, idempotency, or whether the created deal is returned. This is minimal behavioral disclosure for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no waste. However, it could be slightly expanded with contextual details without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Only one sentence; no output schema. The tool has 8 parameters (3 required), but the description does not explain return values, errors, or post-creation behavior. Lacks completeness for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all 8 parameters. The description adds no additional meaning beyond the schema, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Create' and resource 'deal/opportunity in a pipeline', distinguishing it from sibling tools like update, list, or move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use instructions. The context is straightforward, but the description does not mention prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_create_taskC
Create a task, optionally associated to a deal, ticket, contact, or account.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | to_do | |
| notes | No | ||
| title | Yes | Task title | |
| deal_id | No | ||
| due_date | No | Due date ISO 8601 | |
| owner_id | No | Assignee member UUID | |
| priority | No | normal | |
| ticket_id | No | ||
| contact_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the creation is destructive, idempotent, or requires specific permissions. It does not explain side effects or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. However, it could be slightly more structured by separating core purpose from optional associations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description is insufficient. It does not explain return values, error conditions, or constraints on associations (e.g., required fields for association types).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and while the description adds context about optional associations (deal, ticket, contact), it does not explain parameter details like the meaning of enum values for 'type' and 'priority' or the format of 'due_date'. The mention of 'account' contradicts the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create) and resource (task), and mentions optional associations to deal, ticket, contact, or account, which helps distinguish it from other creation tools. However, the mention of 'account' is inaccurate as the schema lacks an account_id parameter, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like mirlo_complete_task or mirlo_create_deal. The description does not specify prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_create_ticketB
Create a support ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Ticket title | |
| owner_id | No | Assignee member UUID | |
| priority | No | normal | |
| body_html | No | Ticket description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist; description only states 'Create a support ticket', adding no behavioral insight beyond the obvious mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description lacks context about outcome, relation to other entities, and required fields beyond schema; insufficient for an agent to fully understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 75% of parameters with descriptions; the tool description adds no additional semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Create a support ticket' with a specific verb and resource, clearly distinguishing from sibling tools like mirlo_create_task or mirlo_create_deal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_get_call_transcriptA
Get the AI-generated transcript of a phone call.
| Name | Required | Description | Default |
|---|---|---|---|
| call_id | Yes | Call UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the basic operation without disclosing behavioral traits like read-only nature, authentication requirements, or any side effects. It is minimally informative for behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource. Every word is necessary, with no wasted information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description is adequate but fails to hint at the return format (e.g., plain text, JSON). It leaves some ambiguity about what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single parameter 'call_id' is already described as 'Call UUID' in the input schema. The description adds no further meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Get' and resource 'AI-generated transcript of a phone call', clearly distinguishing from sibling tools like mirlo_list_calls (lists calls) or mirlo_get_contact (gets a contact).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to get a transcript) but provides no when-not or alternative guidance. It's clear enough for a simple read operation, but lacks explicit exclusions or context for sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_get_contactA
Get a contact by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| contact_id | Yes | Contact UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It correctly indicates a read operation, but does not elaborate on return format, error handling, or expectation that the contact exists. The behavior is straightforward but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the essential purpose. It is front-loaded with the verb and resource, containing no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and no output schema, the description is adequate but minimal. It does not describe what is returned (e.g., full contact object) or any edge cases, leaving some room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with contact_id described as 'Contact UUID'. The description adds no additional meaning beyond what the schema already provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'contact', and the parameter 'by ID'. It distinguishes from sibling tools like mirlo_create_contact and mirlo_list_contacts by specifying retrieval of a single contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific contact ID is known, but provides no explicit guidance on when to use this tool versus alternatives (e.g., mirlo_list_contacts for listing, mirlo_create_contact for creation). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_get_dealA
Get a deal by ID with full details including stage times, contacts, and conversations.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the response includes 'full details' and specific fields (stage times, contacts, conversations), but lacks behavioral context such as idempotency, authentication requirements, or any side effects. This is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys all essential information without redundancy or extraneous details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description adequately covers the return value by listing key included details. For a simple single-resource retrieval tool, this is fairly complete, though a more exhaustive list of returned fields would be ideal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter deal_id is well-described in the schema. The description adds no additional meaning beyond what the schema already provides, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'deal by ID', and explicitly lists included details (stage times, contacts, conversations). This distinguishes it from sibling tools like list (returns multiple deals) and update (modifies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not mention that for listing deals, one should use mirlo_list_deals, or that this is a read-only operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_accountsC
List accounts/companies with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| search | No | Search by name or domain | |
| industry | No | ||
| lifecycle_stage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination behavior, sorting defaults, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but under-specifies the tool's functionality for a 5-parameter list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and 5 parameters, the description lacks completeness—no mention of return format, pagination, or result set limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, and the description merely mentions 'optional filters' without explaining the meaning of parameters like industry or lifecycle_stage, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'accounts/companies', distinguishing it from sibling tools like mirlo_list_contacts or mirlo_list_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., search vs. filter) or any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_callsC
List phone calls with filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| direction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states a generic 'List phone calls with filters.' and does not mention read-only nature, authentication requirements, pagination behavior, or what happens when no filters are applied. This is minimally informative for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it is under-specified. While brevity is valued, it sacrifices necessary detail. The sentence earns its place but fails to convey sufficient information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 0% schema coverage, the description is inadequate. It does not address pagination, ordering, return format, or error conditions. For a tool with only two simple parameters, the description should provide a clearer picture of its behavior and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It only says 'with filters' without linking to the parameters (limit, direction). It does not explain that limit controls pagination or that direction filters by inbound/outbound. No additional context is provided beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'phone calls', and mentions 'filters' which hints at parameter usage. However, it does not distinguish this tool from sibling tools like mirlo_list_conversations or mirlo_list_tasks, limiting its clarity for an AI agent selecting among similar list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., mirlo_get_call_transcript for specific calls, or other list tools). The description lacks context about prerequisites, exclusions, or recommended use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_contactsC
List contacts with optional search and filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| search | No | Search by name, email, or phone | |
| owner_id | No | Filter by owner | |
| account_id | No | Filter by account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only mentions search and filters but fails to disclose pagination, sorting, or performance implications, leaving behavior unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficiently conveying the tool's basic purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward listing tool with optional filters, the description is minimally complete. However, it lacks details on pagination, result order, or error cases, which would be helpful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 60%, yet the description adds no detail about parameters beyond the schema's own descriptions. It does not compensate for undocumented parameters like limit and offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists contacts and mentions optional search and filters, effectively conveying its purpose and distinguishing it from single-contact retrieval (e.g., mirlo_get_contact).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool over alternatives like mirlo_get_contact or other list tools. The description omits context for choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_conversationsC
List recent conversations across channels.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | Filter by status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks behavioral details such as read-only nature, permissions, rate limits, or what 'recent' means. Adds minimal value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but under-specified; while front-loaded with purpose, it omits necessary details for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and two parameters, the description is incomplete; lacks information on output format, parameter usage, and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Two parameters with 50% schema description coverage; the tool description adds no explanation of 'limit' or 'status' beyond what is in the schema, failing to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List' and resource 'conversations across channels,' distinguishing it from sibling tools that list other entities like accounts or calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; no mention of when not to use or which sibling to choose instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_dealsA
List deals/opportunities with optional filters. Returns paginated results with total count.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| offset | No | Pagination offset | |
| search | No | Search by deal name | |
| status | No | Filter by status | |
| owner_id | No | Filter by owner member UUID | |
| stage_id | No | Filter by stage UUID | |
| account_id | No | Filter by account UUID | |
| amount_max | No | Maximum deal amount | |
| amount_min | No | Minimum deal amount | |
| pipeline_id | No | Filter by pipeline UUID | |
| min_stage_hours | No | Minimum hours in current stage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes pagination and optional filters, but lacks information on side effects, required permissions, rate limits, or default behavior like sorting order.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core action and key features, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with many parameters but no output schema, the description covers the main purpose and pagination, though missing details like default sort order or total count explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions, so the description adds little beyond stating 'optional filters'. No new parameter meaning is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'deals/opportunities', which is specific and distinguishes it from sibling list tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like mirlo_get_deal or other list tools. The description only implies listing multiple deals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_pipelinesA
List all pipelines with their stages. Useful for getting pipeline/stage IDs before creating deals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must stand alone. It describes a read-only listing operation without mentioning destructive effects or authentication needs. While it is clear that it retrieves data, it does not explicitly state the non-destructive nature or any behavioral traits beyond the listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. The purpose is front-loaded, and every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description adequately explains what it returns (pipelines with stages and IDs) and why it is useful. However, it does not specify the exact structure or field names of the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so baseline is 4. The description adds meaning beyond the schema by explaining the purpose (getting pipeline/stage IDs for deal creation) and the output content (pipelines with stages), which helps the agent understand what will be returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all pipelines with their stages, using a specific verb and resource. Distinguishes itself from sibling list tools by focusing on pipelines, and provides a concrete use case for getting IDs before creating deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions that it is useful before creating deals, which gives clear context for when to use it. However, it does not provide explicit when-not-to-use instructions or alternatives, though the use case is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_tasksA
List tasks with filters. Supports filtering by assignee, status, due date, and associated entities.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| deal_id | No | ||
| overdue | No | Only overdue tasks | |
| owner_id | No | Filter by assignee | |
| priority | No | ||
| ticket_id | No | ||
| is_completed | No | true=completed, false=pending |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. Description indicates a read operation but does not mention pagination, sorting, rate limits, or any behavioral traits beyond listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise, no fluff. All words add value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description is too minimal. Missing details on pagination, sorting, default behavior, and response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 38% (3 of 8 params described). Description mentions filter types (assignee, status, due date, entities) adding context to some params (e.g., owner_id, is_completed) but leaves others (type, limit, priority, deal_id, ticket_id) without extra meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'tasks', and distinguishes from siblings (create, complete). Mentions filtering by assignee, status, due date, and associated entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use when needing to list tasks with filters. No explicit when not to use or alternatives among siblings provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_list_ticketsC
List support tickets with filters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | Filter by specific state | |
| offset | No | ||
| search | No | ||
| owner_id | No | ||
| priority | No | ||
| exclude_closed | No | Set to true to get only open tickets (excludes closed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as pagination, default ordering, rate limits, or what happens when no filters are applied. The description is too minimal to guide appropriate use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
At only 5 words, it is extremely concise but lacks structure and essential information. It does not front-load key details like the fact that results are paginated or that it can filter by state, priority, etc.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is incomplete. It fails to mention pagination, ordering, or the behavior of the search parameter, making it insufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 29% (low), the description should compensate by explaining parameters. Instead, it merely says 'with filters' without detailing any parameter semantics. The agent gains no insight into how to use the available parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists support tickets with filters, distinguishing it from sibling list tools for other entities (accounts, contacts, etc.). However, it does not elaborate on what 'filters' means, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other list tools (e.g., mirlo_list_conversations). There are no exclusions or context indicating prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_move_deal_stageB
Move a deal to a different pipeline stage.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | Deal UUID | |
| stage_id | Yes | Target stage UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose what happens on success/failure, whether permissions are required, or any side effects. The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description does not hint at return values or behavior. Missing behavioral context for a mutation tool. Does not differentiate from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (move) and the resource (deal to a different pipeline stage). It is specific and distinguishes from sibling tools like mirlo_create_deal or mirlo_update_deal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like mirlo_update_deal. No mention of prerequisites or context for stage changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_send_messageC
Send a WhatsApp or SMS message to a phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number (E.164 format) | |
| body | Yes | Message text | |
| channel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It does not mention authentication, rate limits, delivery status, cost, or side effects. 'Send a message' implies a write operation, but no details about response or errors are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a short single sentence (10 words) without redundancy. While concise, it sacrifices completeness; however, every word serves purpose, making it efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (3 params, no output schema, no annotations), but the description omits critical context such as return value, error handling, consent requirements, or recipient validation. It is insufficient for an agent to use correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with channel lacking a description. The tool description adds 'WhatsApp or SMS' which mirrors the channel enum, offering no additional meaning. For to and body, schema format hints are not expanded; thus the description does not compensate for missing param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a WhatsApp or SMS message to a phone number, specifying the exact action (Send), resource (message), and target (phone number). It is distinct from sibling tools like mirlo_send_template, which sends templates, and others focused on accounts, contacts, or deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as mirlo_send_template, or any prerequisites like requiring a valid contact or consent. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_send_templateC
Send a pre-approved WhatsApp template message.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient phone number | |
| params | No | Template parameters | |
| template_id | Yes | Template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure but only states 'pre-approved' without explaining prerequisites, side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of completeness; does not provide sufficient context for effective tool selection or usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks information about expected outcomes, errors, and practical usage details, given the absence of output schema and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter, so the baseline is 3; the description does not add extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send') and resource ('pre-approved WhatsApp template message'), distinguishing it from regular message sending via sibling tool mirlo_send_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit context for when to use this tool versus alternatives like mirlo_send_message; missing prerequisites or conditions for using template messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mirlo_update_dealC
Update an existing deal. Only provided fields are updated.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| amount | No | ||
| status | No | ||
| deal_id | Yes | Deal UUID | |
| owner_id | No | ||
| account_id | No | ||
| expected_close_date | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It only mentions partial update behavior, but omits side effects, authorization requirements, rate limits, or response details. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (5 words) but at the cost of completeness. It front-loads the key point but omits necessary context, making it under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 0 output schema, low schema coverage, and no annotations, the description is grossly incomplete. It fails to address return values, required permissions, error scenarios, or behavior when missing fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only deal_id has a description). The description adds no parameter-specific information, leaving 6 parameters completely undocumented in terms of meaning or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Update) and the resource (existing deal), and adds the partial update behavior ('Only provided fields are updated'). This distinguishes it from create operations, though it does not explicitly differentiate from move_deal_stage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like mirlo_move_deal_stage or mirlo_create_deal. No when-not or prerequisite information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
21 tool updates
v1.0.0- First observed
mirlo_complete_task - First observed
mirlo_create_account - First observed
mirlo_create_contact - First observed
mirlo_create_deal - First observed
mirlo_create_task - First observed
mirlo_create_ticket - First observed
mirlo_get_call_transcript - First observed
mirlo_get_contact - First observed
mirlo_get_deal - First observed
mirlo_list_accounts - First observed
mirlo_list_calls - First observed
mirlo_list_contacts - First observed
mirlo_list_conversations - First observed
mirlo_list_deals - First observed
mirlo_list_pipelines - First observed
mirlo_list_tasks - First observed
mirlo_list_tickets - First observed
mirlo_move_deal_stage - First observed
mirlo_send_message - First observed
mirlo_send_template - First observed
mirlo_update_deal
TDQS
Scored across 21 tools
Each tool targets a distinct action on a specific entity (e.g., create contact vs. list contacts, send message vs. send template). No two tools have overlapping purposes, and descriptions clearly differentiate them.
All tools follow a consistent 'mirlo_verb_noun' pattern with snake_case (e.g., mirlo_create_contact, mirlo_list_deals). No mixing of conventions or styles.
21 tools is slightly above the typical 3-15 range, but the CRM/communications domain covers many entities (accounts, contacts, deals, tasks, tickets, calls, messages), so the count is reasonable and each tool earns its place.
The tool set covers core CRUD for deals and tasks, but lacks update for contacts, accounts, and tickets, and lacks delete operations entirely. These gaps may cause agent failures in workflows that require full lifecycle management.
Maintenance
Related MCP Connectors
- RevensiOAuthcom.revensi
Connect your AI assistant to Revensi OS agents, workflows, and business data.
Connect AI assistants to Stellary projects, boards, documents, and governed agent workflows.
- TriloOAuthchat.trilo
Connect AI tools to Trilo workspaces — manage tasks, messages, pages, calendars, meetings, and more.
Connect AI assistants to HiveClaw — manage projects, talk to AI agents, and more.
Related MCP Servers
- AlicenseAqualityDmaintenanceConnects AI assistants to the official Meta WhatsApp Cloud API for managing conversations and sending various message types through natural language. It provides tools for media management, template messages, and real-time webhook processing without the risk of account bans.186 npm23MIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to over 30 business tools like Gmail, Slack, and Airtable through a single unified interface. It enables users to perform actions across multiple platforms using natural language without managing individual API integrations.9 npmMIT
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to your Brivvy workspace so they can use your brand voices, templates, and glossary for on-brand content.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage social media accounts and CRM operations, including posting, analytics, inbox management, and customer management.22Apache 2.0