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

pushengage-mcp MCP server

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

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:

  1. Descarga el archivo pushengage-mcp-<version>.mcpb más reciente desde la página de lanzamientos de GitHub.
  2. Á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.

  1. Pregunta: "Inicia sesión en PushEngage." El servidor abre una pestaña del navegador en la página de autorización de PushEngage.
  2. Haz clic en Autorizar. La pestaña confirma el éxito y se guarda un token de acceso localmente.
  3. 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

HerramientaPropósito
pushengage_auth_loginAbre el navegador en PushEngage y guarda el token al tener éxito.
pushengage_auth_statusMuestra si estás autenticado y qué sitio está seleccionado.
pushengage_auth_logoutElimina el token almacenado localmente.
pushengage_list_sitesLista los sitios de PushEngage a los que puedes acceder.
pushengage_select_siteEstablece el sitio actual utilizado por las demás herramientas.

Configuración del sitio

HerramientaPropósito
pushengage_get_site_details / pushengage_update_site_detailsNombre del sitio, URL, zona horaria, geolocalización y el interruptor de marca "Powered By PushEngage".
pushengage_get_campaign_defaults / pushengage_update_campaign_defaultsPará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_settingsRegistro del service worker, soporte de subcarpetas y ruta del archivo del worker.

Audiencias

HerramientaPropósito
pushengage_list_segments / pushengage_create_segmentSegmentos de suscriptores basados en reglas de URL.
pushengage_list_audience_groups / pushengage_create_audience_groupGrupos 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_attributeClaves de atributos personalizados de suscriptores utilizadas en las reglas de grupos de audiencia (máx. 50 por sitio).

Campañas y automatizaciones

HerramientaPropósito
pushengage_list_drip_campaignsAutorespondedores de goteo. Filtra por estado; establece include_analytics para estadísticas por campaña.
pushengage_list_triggered_campaignsCampañas activadas (abandono de carrito/navegación, caída de precio, etc.). Filtra por estado; análisis opcionales.
pushengage_list_rss_campaignsCampañas de push automático RSS. Filtra por estado.
pushengage_list_workflowsAutomatizaciones de flujo de trabajo. Filtra por estado; establece include_analytics para estadísticas de entradas/activas/completadas/fallidas y de objetivos.

Widgets de chat

HerramientaPropósito
pushengage_list_chat_widgetsEl 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

HerramientaPropósito
pushengage_get_analytics_summaryTotales de por vida: suscriptores, notificaciones enviadas, vistas, clics y recuento/valor de objetivos.
pushengage_get_analytics_timeseriesSuscriptores por segmento (día/semana/mes), envíos, vistas, clics, CTR y bajas en un rango de fechas.

Envío de notificaciones

HerramientaPropósito
pushengage_list_notificationsLista 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_notificationEnví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_notificationUna 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 entornoPredeterminadoPropósito
PE_MCP_CLIENT_NAMEAI assistantEtiqueta 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.jsonDó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.json con permisos 0600 (legible solo por ti). Su caducidad la establece PushEngage y la muestra pushengage_auth_status.
  • Para revocarlo, ejecuta pushengage_auth_logout o 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 a pushengage_list_sites y 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.

Licencia

MIT