Servidor MCP - Que los agentes de IA te avisen o te llamen
Conecta Claude Code, Codex, Cursor, ChatGPT y otros agentes de IA al servidor MCP oficial de Echobell para que te envíen un push o te llamen.
Echobell ofrece un servidor oficial de Model Context Protocol (MCP). Conéctalo a tu agente de IA —Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude, ChatGPT o cualquier otro cliente MCP— y el agente tendrá una herramienta, notify, que envía una notificación a través de uno de tus canales de Echobell.
Lanza una refactorización larga, una batería de tests o un despliegue, vete a hacer otra cosa y pide al agente que te avise cuando termine. Tu teléfono vibra cuando el trabajo acaba, muestra una alerta urgente cuando el agente te necesita o suena como una llamada cuando algo sale muy mal.
Cómo funciona
- Es un servidor MCP remoto en
https://mcp.echobell.one/mcp, con el transporte Streamable HTTP. No hay nada que instalar: ni paquete npm, ninpx, ni procesos locales. - Cada URL de MCP pertenece a un canal. Cuando el agente llama a
notify, todos los suscriptores de ese canal reciben la notificación, cada uno con el tipo de notificación que eligió. - La credencial es el token de activación del canal: el mismo token con el que termina la URL del webhook del canal. El servidor MCP funciona como el webhook del canal, pero con una herramienta que el agente sabe usar.
Crea un canal dedicado para tus agentes, por ejemplo "AI Agents", y suscríbete a él con el tipo Llamada. Así tus agentes pueden elegir cualquier nivel hasta una llamada, y puedes compartir el canal con compañeros que quieran recibir las mismas alertas.
Obtén tu URL de MCP
Desde la app
- Abre la app de Echobell y toca el canal que quieres que use tu agente.
- En los detalles del canal, busca la sección Conectar agente de IA.
- Copia la URL del servidor MCP o el fragmento de configuración ya preparado para tu agente.
Desde la URL del webhook
La URL de MCP usa el mismo token que la URL del webhook del canal. Toma el token del final de la URL del webhook y ponlo después de https://mcp.echobell.one/mcp/:
Webhook URL: https://hook.echobell.one/t/<channel-token>
MCP URL: https://mcp.echobell.one/mcp/<channel-token>
La URL de MCP contiene el token de activación de tu canal. Cualquiera que la tenga puede enviar notificaciones a los suscriptores del canal, así que guárdala con el mismo cuidado que una contraseña. Consulta Seguridad.
Configura tu agente
Todos los fragmentos de abajo usan la forma con URL. Sustituye <channel-token> por el token de activación de tu canal, o pega el fragmento que te da la app, que ya lo incluye.
Claude Code
claude mcp add --transport http echobell https://mcp.echobell.one/mcp/<channel-token>
Añade --scope user para que el servidor esté disponible en todos tus proyectos, no solo en el actual.
Codex
Añade esto a ~/.codex/config.toml:
[mcp_servers.echobell]
url = "https://mcp.echobell.one/mcp/<channel-token>"
Cursor
Añade esto a ~/.cursor/mcp.json, o a .cursor/mcp.json dentro de un proyecto:
{
"mcpServers": {
"echobell": {
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
VS Code (GitHub Copilot)
Añade esto a .vscode/mcp.json en tu espacio de trabajo y usa la herramienta desde Copilot Chat en modo agente:
{
"servers": {
"echobell": {
"type": "http",
"url": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Si .vscode/mcp.json está en tu repositorio, usa mejor la forma con cabecera y una solicitud de entrada, para que el token no quede en el archivo.
Windsurf
Añade esto a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"echobell": {
"serverUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Gemini CLI
Añade esto a ~/.gemini/settings.json:
{
"mcpServers": {
"echobell": {
"httpUrl": "https://mcp.echobell.one/mcp/<channel-token>"
}
}
}
Claude Desktop y claude.ai
- Abre Settings → Connectors.
- Elige Add custom connector.
- Escribe el nombre
Echobelly la URLhttps://mcp.echobell.one/mcp/<channel-token>, y añádelo.
El conector está disponible tanto en Claude para web como en la app de escritorio.
ChatGPT
- Activa el modo desarrollador en los ajustes de ChatGPT.
- Abre Settings → Connectors y elige Create.
- Escribe la URL
https://mcp.echobell.one/mcp/<channel-token>y configura la autenticación como No authentication: el token de la URL es la credencial.
Otros clientes MCP
Funciona cualquier cliente compatible con el transporte Streamable HTTP. Dale la URL https://mcp.echobell.one/mcp/<channel-token> o usa la forma con cabecera que se explica a continuación.
Forma con cabecera
En lugar de poner el token en la URL, puedes enviarlo en una cabecera Authorization. Las dos formas son equivalentes.
URL: https://mcp.echobell.one/mcp
Authorization: Bearer <channel-token>
Con Claude Code:
claude mcp add --transport http echobell https://mcp.echobell.one/mcp \
--header "Authorization: Bearer <channel-token>"
En VS Code, una solicitud de entrada (input) mantiene el token fuera de .vscode/mcp.json, así que puedes subir el archivo al repositorio sin problema. VS Code te pide el token la primera vez que arranca el servidor y lo guarda de forma segura:
{
"inputs": [
{
"type": "promptString",
"id": "echobell-token",
"description": "Echobell channel trigger token",
"password": true
}
],
"servers": {
"echobell": {
"type": "http",
"url": "https://mcp.echobell.one/mcp",
"headers": {
"Authorization": "Bearer ${input:echobell-token}"
}
}
}
}
La herramienta notify
El servidor expone una única herramienta, notify. Tu agente decide cómo rellenarla a partir de tu prompt.
| Argumento | Tipo | Obligatorio | Descripción |
|---|---|---|---|
title | string | Sí | Título de la notificación. |
body | string | No | Cuerpo de la notificación. |
link | string (URL) | No | Un enlace que se abre al tocar la notificación, como una pull request, el log de un build o un dashboard. |
urgency | string | No | normal, time-sensitive o calling. Omítelo para usar el nivel de cada suscriptor. Consulta Urgencia. |
Urgencia
Cada persona que se suscribe a un canal elige para él un tipo de notificación en la app: Normal, Urgente o Llamada. Esa elección es el nivel más alto con el que el canal puede avisarle.
- Si el agente omite
urgency, cada suscriptor recibe el nivel que eligió. - Si el agente envía
urgency, solo puede bajar el nivel de un suscriptor, nunca subirlo. Si te suscribiste con Llamada,"urgency": "normal"llega como una notificación normal. Si te suscribiste con Normal,"urgency": "calling"sigue llegando como una notificación normal.
Así un solo canal sirve para todo. Suscríbete con Llamada y pide al agente que envíe las novedades rutinarias como normal y que use calling solo cuando algo esté roto.
A diferencia de notificationType en las peticiones webhook, urgency también funciona en canales con plantilla personalizada.
Las llamadas requieren Echobell Premium
Las notificaciones de llamada son una función de Echobell Premium. Cuando el agente pide calling, un suscriptor sin Premium recibe en su lugar una notificación urgente (time-sensitive), igual que ocurre con la app y los webhooks.
Una llamada por minuto en cada canal
Un canal llama a cada suscriptor como máximo una vez por minuto. Si el agente pide otra llamada dentro de ese minuto (por ejemplo, porque se ha quedado atascado reintentando), el suscriptor recibe en su lugar una notificación urgente, que aun así atraviesa los modos de concentración. Los webhooks y los activadores de correo siguen la misma regla.
El agente se entera en ambos casos. El resultado de la herramienta enumera cada degradación de nivel, así que el agente sabe que el teléfono no sonó y puede decírtelo en vez de dar por hecho que te llamó.
Qué recibe el agente
Cada llamada a notify devuelve un breve resumen en texto para el agente y datos estructurados:
{
"notificationTriggered": true,
"reason": null,
"requestedUrgency": "calling",
"recipients": 1,
"deliveredUrgency": { "normal": 0, "time-sensitive": 1, "calling": 0 },
"fallbacks": [
{
"from": "calling",
"to": "time-sensitive",
"reason": "premium-required",
"recipients": 1
}
]
}
| Campo | Significado |
|---|---|
notificationTriggered | true cuando se envió una notificación. |
reason | Por qué no se envió nada: conditions-not-met (las condiciones del canal no se cumplieron) o no-subscribers (nadie está suscrito al canal). null cuando se envió una notificación. |
requestedUrgency | La urgency que pidió el agente, o null si la omitió. |
recipients | Cuántos suscriptores recibieron la notificación. |
deliveredUrgency | Cuántos suscriptores recibieron cada nivel. |
fallbacks | Suscriptores que recibieron un nivel más bajo que el pedido, y por qué: premium-required (las llamadas requieren Premium), subscriber-setting (el nivel que el suscriptor eligió para el canal es más bajo) o call-cooldown (el canal ya llamó a ese suscriptor en el último minuto). |
Canales de paso directo y canales con plantilla
El servidor MCP funciona con los dos tipos de canal:
- Los canales de paso directo (la opción por defecto) muestran el
titley elbodytal como los envía el agente. - Los canales con plantilla (con Plantilla personalizada activada en Configuraciones avanzadas) construyen la notificación a partir de tus plantillas.
title,body,link,externalLinkyurgencyestán disponibles como variables de plantilla, y las condiciones del canal se siguen aplicando. Si las condiciones no se cumplen, no se envía nada y el agente recibereason: "conditions-not-met".
Ejemplos de prompts
Con el servidor conectado, pide las notificaciones con lenguaje natural:
- "Ejecuta toda la batería de tests y avísame con Echobell cuando termines."
- "Refactoriza el módulo de pagos. Envíame una alerta urgente de Echobell si necesitas que tome una decisión."
- "Despliega en staging. Llámame si el despliegue falla; si no, envíame una notificación normal con la URL."
- "Cuando termine la migración, avísame con un resumen y un enlace a la pull request."
Para convertirlo en costumbre, añade una línea como esta al archivo de instrucciones de tu agente (CLAUDE.md, AGENTS.md, .cursorrules, etc.):
When a task takes longer than a few minutes, call the Echobell notify tool when it finishes.
Use urgency "calling" only when something is broken and needs me right away.
Seguridad
- El token es la credencial. Quien tenga la URL de MCP (o el token) puede enviar notificaciones a los suscriptores del canal. No puede leer nada ni cambiar tu cuenta: lo único que puede hacer es notificar.
- Mantenlo fuera de archivos compartidos. No subas al repositorio un archivo de configuración que contenga la forma con URL. Para la configuración a nivel de proyecto, usa la forma con cabecera con una solicitud de entrada o una variable de entorno.
- Revoca el acceso restableciendo el token de activación. Abre el canal en la app y restablece su token de activación. La URL de MCP antigua deja de funcionar al instante (las peticiones reciben
401 Unauthorized), igual que la URL del webhook antigua. Actualiza tus agentes y los servicios que llaman al webhook con el nuevo token.
Límites y errores
- Límite de frecuencia: cada token acepta hasta 120 peticiones MCP por minuto. Las peticiones MCP tienen su propio cupo, independiente de las peticiones al webhook del canal.
- 401 Unauthorized: falta el token, es incorrecto o se ha restablecido.
Relacionado
- Webhooks: activa el mismo canal desde scripts, CI y otros servicios
- Tipos de notificación: en qué se diferencian Normal, Urgente y Llamada
- Plantillas y Condiciones: da forma a las notificaciones y fíltralas