Hilo MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HILO_API_KEY | No | Your API key for Hilo. Use hilo_sbx_... for sandbox, hilo_... for production. | |
| HILO_BASE_URL | No | Base URL for the Hilo API. Default is https://api.hilo.cenzontle.cloud | https://api.hilo.cenzontle.cloud |
| HILO_TIMEOUT_MS | No | Timeout per request in milliseconds. | 30000 |
| HILO_ALLOW_PRODUCTION | No | Must be set to 'true' to accept a production API key. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hilo_diagnoseA | Revisa el estado de la conexión con Hilo y devuelve los siguientes pasos concretos. EJECÚTALA PRIMERO, antes de escribir código: te dice si hay credencial, si es de sandbox o productiva, si la API responde, si hay saldo y cuántas plantillas hay disponibles para enviar. Si falta la key, explica exactamente cómo pedirla. |
| hilo_webhook_sampleA | Devuelve un evento de estado idéntico a los que manda Hilo, junto con su header X-Hilo-Signature válido para el secreto que le pases. Sirve para probar TU handler sin exponer un endpoint público ni esperar un mensaje real: manda este cuerpo crudo y este header a tu servidor y comprueba que lo acepta. Prueba también con una firma alterada: tu handler DEBE responder 401. |
| hilo_verify_webhook_signatureA | Comprueba si una firma corresponde a un cuerpo y un secreto, con la misma fórmula que usa Hilo. Úsala para depurar cuando tu handler rechaza eventos legítimos: casi siempre es porque se firmó el JSON re-serializado en vez del cuerpo crudo. |
| hilo_check_webhook_endpointA | Comprueba que la URL de tu webhook cumple lo que Hilo exige antes de configurarla: HTTPS y host público. Hilo bloquea localhost y redes privadas por defensa anti-SSRF, así que para desarrollo hace falta un túnel. NO hace ninguna petición a la URL. |
| hilo_list_templatesA | Lista las plantillas disponibles para esta cuenta con su estado en Meta (APPROVED, PENDING, REJECTED). Solo se pueden enviar las APPROVED. Consúltala antes de enviar para usar el nombre exacto y saber qué variables espera. |
| hilo_get_templateA | Devuelve el estado y la estructura (componentes y variables) de una plantilla por nombre. |
| hilo_validate_sendA | Revisa un payload de POST /v1/messages contra la plantilla REAL del catálogo: formato del teléfono, existencia y estado de la plantilla, y que las variables del BODY y del HEADER sean exactamente las que espera. NO envía nada ni gasta créditos. Úsala con el payload que genera tu código antes de disparar un envío de verdad. |
| hilo_validate_broadcastA | Revisa un payload de POST /v1/broadcasts sin enviarlo: teléfonos duplicados o mal formados, variables faltantes por destinatario (considerando template_variables compartidas) y estado de la plantilla. Reporta también el costo en créditos. NO envía nada. Corre esto antes de cualquier envío masivo. |
| hilo_get_usageA | Devuelve el saldo de créditos, los mensajes facturados del periodo y el gasto estimado. Un crédito equivale a un mensaje. Consúltalo antes de un envío masivo: sin saldo suficiente los envíos quedan en failed con insufficient_credits. |
| hilo_send_messageA | Envía UNA plantilla de WhatsApp ya aprobada por Meta a un número. CUESTA UN CRÉDITO de la bolsa del cliente y le llega a una persona real: confirma el destinatario y el contenido antes de llamarla. Esta cuenta es de SANDBOX: solo puede enviar al número de prueba autorizado y no se cobra. Devuelve un |
| hilo_get_messageA | Devuelve el estado de entrega de un mensaje por su |
| hilo_list_messagesA | Lista los mensajes enviados, del más reciente al más antiguo. Se puede filtrar por broadcast, por estado y por metadata propia. |
| hilo_send_broadcastA | Envía una plantilla aprobada a MUCHOS destinatarios de una vez. CUESTA UN CRÉDITO POR DESTINATARIO y llega a personas reales: muestra la lista y el total a quien te lo pide, y espera su confirmación antes de llamarla. Usa |
| hilo_get_broadcastA | Devuelve el detalle de un broadcast con el conteo por estado ( |
| hilo_list_broadcastsA | Lista los broadcasts con su resumen por estado. Se puede filtrar por metadata propia. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| integrar_con_hilo | Plan completo para que el agente implemente y VERIFIQUE una integración con Hilo de punta a punta: credencial, plantillas, envío, webhook firmado y pruebas contra sandbox. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| api-reference | Endpoints, cuerpos, respuestas, estados y códigos de error de la API v1 de Hilo. |
| webhook-guide | Cómo recibir y verificar los eventos de entrega: firma HMAC sobre el cuerpo crudo, ejemplos en Node y Python, y las reglas de operación (5 s de timeout, sin reintentos). |
| integration-guide | Orden recomendado para integrarse, con qué verificar en cada paso y los errores que se repiten. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cnzontle/hilo-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server