pushengage-mcp
Servidor MCP oficial para PushEngage. Consulta campañas, gestiona segmentos y automatiza notificaciones push mediante cualquier asistente de IA compatible con MCP a través de lenguaje natural.
Documentación
@pushengage/mcp
Gestiona tu cuenta de PushEngage desde cualquier asistente de IA, en lenguaje natural.
PushEngage es una plataforma de notificaciones push para web push, push de aplicaciones móviles, WhatsApp y widgets de chat en el sitio, utilizada para aumentar suscriptores y recuperar ingresos (abandono de carrito, caídas de precio, reposición de stock y más).
Este paquete es un servidor Model Context Protocol (MCP). Conecta asistentes compatibles con MCP como Claude Desktop, Claude Code y Cursor a tu cuenta de PushEngage para que puedas enviar y programar notificaciones, ejecutar pruebas A/B, crear audiencias, consultar análisis y gestionar la configuración del sitio simplemente preguntando, sin salir de tu chat.
Inicias sesión una vez a través de tu navegador; el asistente actúa en tu nombre sobre el sitio de PushEngage que selecciones.
Contenido
- Lo que puedes hacer
- Requisitos
- Instalación
- Primera ejecución: iniciar sesión
- Herramientas
- Configuración
- Seguridad y almacenamiento de tokens
- Solución de problemas
- Licencia
Lo que puedes hacer
Una vez conectado, solo describe lo que quieres. Algunos ejemplos:
Enviar y programar
- "Envía una notificación titulada 'La oferta termina esta noche', mensaje 'Última llamada, 50% de descuento', enlazando a https://example.com/sale."
- "Programa eso para las 9 AM en la zona horaria local de cada suscriptor."
- "Configura un resumen recurrente todos los lunes y jueves a las 8 AM hasta fin de mes."
- "Ejecuta una prueba A/B de dos titulares y despliega automáticamente el ganador según la tasa de clics."
Segmenta a las personas adecuadas
- "Crea un segmento para visitantes de /pricing."
- "Crea una audiencia de clientes del plan gold en EE. UU. y envía solo a ellos."
Comprende el rendimiento
- "¿Cuántos suscriptores tengo y cuál fue mi tasa de clics en los últimos 30 días?"
- "Lista mis campañas de goteo activas con sus estadísticas de enviados, vistos y clics."
Configura un sitio
- "Establece la caducidad predeterminada de mis notificaciones en 7 días."
- "Cambia la zona horaria de mi sitio a Asia/Kolkata y activa la geolocalización."
Requisitos
- Una cuenta de PushEngage (gratuita o de pago) con al menos un sitio.
- Node.js 18 o superior (el asistente ejecuta el servidor mediante
npx). - Un cliente compatible con MCP (Claude Desktop, Claude Code, Cursor o cualquier otro).
Instalación
Añade el servidor a la configuración MCP de tu cliente. No se necesita instalación global; npx lo descarga bajo demanda.
Claude Desktop (paquete de un clic)
La forma más sencilla en Claude Desktop es el paquete MCP:
- Descarga el archivo
pushengage-mcp-<version>.mcpbmás reciente desde la página de lanzamientos de GitHub. - Ábrelo con Claude Desktop (haz doble clic o arrástralo a la ventana) y haz clic en Instalar.
Todo está incluido: no es necesario editar JSON. El diálogo de instalación opcionalmente te permite establecer la etiqueta que se muestra en la pantalla de autorización de PushEngage y una ruta personalizada para el archivo de token (para ejecutar varias cuentas).
Claude Desktop (configuración manual)
Edita ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o el equivalente en tu plataforma:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}
Reinicia Claude Desktop. El servidor "pushengage" debería aparecer en tu lista de herramientas.
Cursor
Edita ~/.cursor/mcp.json:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}
Otros clientes MCP
Cualquier cliente que hable MCP sobre stdio funciona. Configúralo para ejecutar el comando npx -y @pushengage/mcp.
Primera ejecución: iniciar sesión
La autenticación se basa en el navegador, por lo que tus credenciales nunca llegan al asistente.
- Pregunta: "Inicia sesión en PushEngage." El servidor abre una pestaña del navegador en la página de autorización de PushEngage.
- Haz clic en Autorizar. La pestaña confirma el éxito y se guarda un token de acceso localmente.
- Pregunta: "Muestra mis sitios de PushEngage" y luego "Usa el sitio 12345" para elegir el sitio con el que trabajar. La selección se recuerda entre reinicios.
Cada herramienta con ámbito de sitio actúa sobre este sitio actual a menos que pases un site_id explícito. Cuando el token caduque, verás un mensaje de AUTH_EXPIRED; solo pide iniciar sesión de nuevo.
Herramientas
Todas las herramientas con ámbito de sitio usan por defecto el sitio actual.
Autenticación y sitios
| Herramienta | Propósito |
|---|---|
pushengage_auth_login | Abre el navegador en PushEngage y guarda el token al tener éxito. |
pushengage_auth_status | Muestra si estás autenticado y qué sitio está seleccionado. |
pushengage_auth_logout | Elimina el token almacenado localmente. |
pushengage_list_sites | Lista los sitios de PushEngage a los que puedes acceder. |
pushengage_select_site | Establece el sitio actual utilizado por las demás herramientas. |
Configuración del sitio
| Herramienta | Propósito |
|---|---|
pushengage_get_site_details / pushengage_update_site_details | Nombre del sitio, URL, zona horaria, geolocalización y el interruptor de marca "Powered By PushEngage". |
pushengage_get_campaign_defaults / pushengage_update_campaign_defaults | Parámetros UTM, notificación de respaldo, atributos de respaldo y caducidad predeterminada de notificaciones. Las actualizaciones se fusionan sobre los valores actuales, por lo que las ediciones parciales funcionan. |
pushengage_get_service_worker_settings / pushengage_update_service_worker_settings | Registro del service worker, soporte de subcarpetas y ruta del archivo del worker. |
Audiencias
| Herramienta | Propósito |
|---|---|
pushengage_list_segments / pushengage_create_segment | Segmentos de suscriptores basados en reglas de URL. |
pushengage_list_audience_groups / pushengage_create_audience_group | Grupos de segmentación guardados (dispositivo, país, segmento, interacción, fechas, atributos). Referenciados por el audience_groups de las herramientas de envío. |
pushengage_list_attributes / pushengage_create_attribute | Claves de atributos personalizados de suscriptores utilizadas en las reglas de grupos de audiencia (máx. 50 por sitio). |
Campañas y automatizaciones
| Herramienta | Propósito |
|---|---|
pushengage_list_drip_campaigns | Autorespondedores de goteo. Filtra por estado; establece include_analytics para estadísticas por campaña. |
pushengage_list_triggered_campaigns | Campañas activadas (abandono de carrito/navegación, caída de precio, etc.). Filtra por estado; análisis opcionales. |
pushengage_list_rss_campaigns | Campañas de push automático RSS. Filtra por estado. |
pushengage_list_workflows | Automatizaciones de flujo de trabajo. Filtra por estado; establece include_analytics para estadísticas de entradas/activas/completadas/fallidas y de objetivos. |
Widgets de chat
| Herramienta | Propósito |
|---|---|
pushengage_list_chat_widgets | El widget en el sitio que muestra WhatsApp, Messenger y otros canales. Muestra estado, canales, dispositivos, restricción de horario comercial y segmentación. |
Análisis
| Herramienta | Propósito |
|---|---|
pushengage_get_analytics_summary | Totales de por vida: suscriptores, notificaciones enviadas, vistas, clics y recuento/valor de objetivos. |
pushengage_get_analytics_timeseries | Suscriptores por segmento (día/semana/mes), envíos, vistas, clics, CTR y bajas en un rango de fechas. |
Envío de notificaciones
| Herramienta | Propósito |
|---|---|
pushengage_list_notifications | Lista notificaciones enviadas, programadas y borradores, de más reciente a más antiguo. Filtra por estado (semántica de pestañas del panel), rango de fecha de envío o etiquetas; establece include_analytics para estadísticas agregadas de A/B y envíos por zona horaria. |
pushengage_send_notification | Envía o programa una notificación. Una herramienta, tres modos de entrega: enviar ahora, programación única (opcionalmente por zona horaria del suscriptor) y recurrente. Segmentación opcional con audience_groups; de lo contrario, todos los suscriptores. |
pushengage_send_ab_notification | Una notificación A/B con dos variantes. Pasa intelligent_ab_test para muestrear cada variante, elige al ganador por tasa de clics después de un retraso y despliega al ganador al resto. |
Configuración
No se requiere configuración: el servidor se comunica con la API de producción de PushEngage de forma predeterminada. Estas variables de entorno están disponibles para configuraciones menos comunes:
| Variable de entorno | Predeterminado | Propósito |
|---|---|---|
PE_MCP_CLIENT_NAME | AI assistant | Etiqueta mostrada en la pantalla de autorización como la aplicación solicitante. Configúrala si quieres una etiqueta específica, p. ej. "Claude Desktop". |
PE_MCP_CONFIG_PATH | ~/.pushengage/mcp.json | Dónde se almacena el token. Configúralo para ejecutar más de una cuenta de PushEngage en paralelo (ver más abajo). Debe ser una ruta absoluta: se usa exactamente como se indica, sin expansión de ~. |
Ejecutar varias cuentas de PushEngage en paralelo
Registra el servidor con dos nombres diferentes, cada uno con su propio PE_MCP_CONFIG_PATH para que los tokens no colisionen:
{
"mcpServers": {
"pushengage-client-a": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"],
"env": {
"PE_MCP_CONFIG_PATH": "/Users/you/.pushengage/mcp-client-a.json",
"PE_MCP_CLIENT_NAME": "Claude Desktop (Client A)"
}
},
"pushengage-client-b": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"],
"env": {
"PE_MCP_CONFIG_PATH": "/Users/you/.pushengage/mcp-client-b.json",
"PE_MCP_CLIENT_NAME": "Claude Desktop (Client B)"
}
}
}
}
Pide al asistente que inicie sesión con cada nombre de servidor por separado; cada uno autoriza contra la cuenta de PushEngage que elijas en el navegador.
Seguridad y almacenamiento de tokens
- El inicio de sesión se basa en el navegador. El asistente nunca ve tu contraseña de PushEngage.
- El panel envía el token al servidor como una solicitud POST, por lo que nunca aparece en una URL, historial del navegador o registro de acceso.
- El token se almacena en
~/.pushengage/mcp.jsoncon permisos0600(legible solo por ti). Su caducidad la establece PushEngage y la muestrapushengage_auth_status. - Para revocarlo, ejecuta
pushengage_auth_logouto cierra sesión en todas las sesiones de PushEngage en Configuración → Seguridad.
Solución de problemas
El servidor no se conecta en absoluto ("Conexión cerrada")
Si npx -y @pushengage/mcp funciona bien cuando lo escribes directamente en una terminal, pero tu cliente (Claude Desktop, Cursor, etc.) muestra el servidor como desconectado o registra algo como MCP error -32000: Connection closed, casi siempre es un problema de PATH, no un error del servidor.
Estos clientes se inician desde tu Dock/Finder, no desde una terminal, por lo que nunca cargan los archivos de inicio de tu shell (.zshrc, .zprofile, etc.). Si Node se instaló mediante un administrador de versiones (nvm, fnm, volta, ...), esas herramientas solo añaden node/npx a PATH desde esos archivos de inicio, por lo que el cliente no puede encontrar npx en absoluto, el proceso del servidor nunca se inicia y obtienes un error de conexión genérico en lugar de un claro "comando no encontrado".
Solución: apunta el cliente a la ruta absoluta de npx (esto omite la búsqueda de PATH para encontrarlo) y también pasa esa misma carpeta como PATH en env (para que el shebang #!/usr/bin/env node de npx pueda encontrar node cuando se re-ejecute). Ejecuta which npx en tu terminal para obtener la ruta y luego úsala en la configuración de tu cliente:
{
"mcpServers": {
"pushengage": {
"command": "/absolute/path/from/which-npx",
"args": ["-y", "@pushengage/mcp"],
"env": {
"PATH": "/absolute/folder/containing/that/npx:/usr/bin:/bin:/usr/sbin:/sbin"
}
}
}
}
Reinicia el cliente después de editar. Si which npx en su lugar imprime algo bajo /usr/local/bin o /opt/homebrew/bin, tu instalación de Node no se basa en un administrador de versiones y probablemente este no sea tu problema: revisa los registros MCP del propio cliente para ver el error real.
Otros errores
AUTH_EXPIRED— tu token ha caducado. Pide al asistente que inicie sesión de nuevo.NO_SITE_SELECTED— llama apushengage_list_sitesy luego pide usar uno de los sitios devueltos antes de usar una herramienta con ámbito de sitio.- El navegador no se abre — esto ocurre en sesiones headless o remotas (p. ej. SSH). La URL de autorización se imprime en la terminal que ejecuta el servidor; ábrela manualmente.
- Algo más — cada error que devuelve el servidor comienza con una etiqueta
[CODE]y una explicación en lenguaje sencillo; compártela con el soporte si necesitas ayuda.