pushengage-mcp
Servidor MCP oficial para PushEngage. Consulte campanhas, gerencie segmentos e automatize notificações push por meio de qualquer assistente de IA compatível com MCP usando linguagem natural.
Documentação
@pushengage/mcp
Gerencie sua conta PushEngage por meio de qualquer assistente de IA, em linguagem natural.
PushEngage é uma plataforma de notificações push para web push, push de aplicativos móveis, WhatsApp e widgets de chat no site, usada para aumentar assinantes e recuperar receita (abandono de carrinho, queda de preço, volta ao estoque e muito mais).
Este pacote é um servidor Model Context Protocol (MCP). Ele conecta assistentes compatíveis com MCP, como Claude Desktop, Claude Code e Cursor, à sua conta PushEngage para que você possa enviar e agendar notificações, executar testes A/B, criar públicos, analisar métricas e gerenciar configurações do site apenas pedindo, sem sair do chat.
Você faz login uma vez pelo navegador; o assistente então age em seu nome no site PushEngage que você selecionar.
Conteúdo
- O que você pode fazer
- Requisitos
- Instalação
- Primeira execução: login
- Ferramentas
- Configuração
- Segurança e armazenamento de tokens
- Solução de problemas
- Licença
O que você pode fazer
Depois de conectado, basta descrever o que você quer. Alguns exemplos:
Enviar e agendar
- "Envie uma notificação intitulada 'A venda termina hoje à noite', mensagem 'Última chamada, 50% de desconto', com link para https://example.com/sale."
- "Agende isso para as 9h no fuso horário local de cada assinante."
- "Configure um resumo recorrente toda segunda e quinta às 8h até o fim do mês."
- "Execute um teste A/B de dois títulos e publique automaticamente o vencedor pela taxa de cliques."
Segmentar as pessoas certas
- "Crie um segmento para visitantes de /pricing."
- "Monte um público de clientes do plano gold nos EUA e envie apenas para eles."
Entender o desempenho
- "Quantos assinantes eu tenho e qual foi minha taxa de cliques nos últimos 30 dias?"
- "Liste minhas campanhas de gotejamento ativas com estatísticas de envio, visualização e cliques."
Configurar um site
- "Defina o prazo de validade padrão das minhas notificações para 7 dias."
- "Altere o fuso horário do meu site para Asia/Kolkata e ative a geolocalização."
Requisitos
- Uma conta PushEngage (gratuita ou paga) com pelo menos um site.
- Node.js 18 ou mais recente (o assistente executa o servidor via
npx). - Um cliente compatível com MCP (Claude Desktop, Claude Code, Cursor ou qualquer outro).
Instalação
Adicione o servidor à configuração MCP do seu cliente. Não é necessária instalação global; o npx o busca sob demanda.
Claude Desktop (pacote de um clique)
O caminho mais fácil no Claude Desktop é o MCP Bundle:
- Baixe o arquivo
pushengage-mcp-<version>.mcpbmais recente na página de releases do GitHub. - Abra-o com o Claude Desktop (clique duas vezes ou arraste-o para a janela) e clique em Instalar.
Tudo está incluído — não é necessário editar JSON. A caixa de diálogo de instalação permite opcionalmente definir o rótulo exibido na tela de autorização do PushEngage e um caminho personalizado para o arquivo de token (para executar várias contas).
Claude Desktop (configuração manual)
Edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou o equivalente na sua plataforma:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}
Reinicie o Claude Desktop. O servidor "pushengage" deve aparecer na sua lista de ferramentas.
Cursor
Edite ~/.cursor/mcp.json:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}
Outros clientes MCP
Qualquer cliente que fale MCP via stdio funciona. Configure-o para executar o comando npx -y @pushengage/mcp.
Primeira execução: login
A autenticação é baseada no navegador, então suas credenciais nunca tocam o assistente.
- Peça: "Faça login no PushEngage para mim." O servidor abre uma aba do navegador na página de autorização do PushEngage.
- Clique em Autorizar. A aba confirma o sucesso e um token de acesso é salvo localmente.
- Peça: "Mostre meus sites PushEngage" e depois "Use o site 12345" para escolher o site com o qual trabalhar. A seleção é lembrada entre reinicializações.
Toda ferramenta com escopo de site age no site atual, a menos que você passe um site_id explícito. Quando o token expirar, você verá uma mensagem de AUTH_EXPIRED; basta pedir para fazer login novamente.
Ferramentas
Todas as ferramentas com escopo de site usam o site atual por padrão.
Autenticação e sites
| Ferramenta | Finalidade |
|---|---|
pushengage_auth_login | Abre o navegador no PushEngage e armazena o token em caso de sucesso. |
pushengage_auth_status | Mostra se você está autenticado e qual site está selecionado. |
pushengage_auth_logout | Exclui o token armazenado localmente. |
pushengage_list_sites | Lista os sites PushEngage aos quais você tem acesso. |
pushengage_select_site | Define o site atual usado pelas outras ferramentas. |
Configurações do site
| Ferramenta | Finalidade |
|---|---|
pushengage_get_site_details / pushengage_update_site_details | Nome do site, URL, fuso horário, geolocalização e o alternador de marca "Powered By PushEngage". |
pushengage_get_campaign_defaults / pushengage_update_campaign_defaults | Parâmetros UTM, notificação de fallback, atributos de fallback e prazo de validade padrão da notificação. As atualizações são mescladas sobre os valores atuais, então edições parciais funcionam. |
pushengage_get_service_worker_settings / pushengage_update_service_worker_settings | Registro do service worker, suporte a subpastas e caminho do arquivo do worker. |
Públicos
| Ferramenta | Finalidade |
|---|---|
pushengage_list_segments / pushengage_create_segment | Segmentos de assinantes baseados em regras de URL. |
pushengage_list_audience_groups / pushengage_create_audience_group | Grupos de segmentação salvos (dispositivo, país, segmento, engajamento, datas, atributos). Referenciados pelo audience_groups das ferramentas de envio. |
pushengage_list_attributes / pushengage_create_attribute | Chaves de atributos personalizados de assinantes usadas nas regras de grupos de público (máx. 50 por site). |
Campanhas e automações
| Ferramenta | Finalidade |
|---|---|
pushengage_list_drip_campaigns | Autorespondedores de gotejamento. Filtre por status; defina include_analytics para estatísticas por campanha. |
pushengage_list_triggered_campaigns | Campanhas acionadas (abandono de carrinho/navegação, queda de preço etc.). Filtre por status; análises opcionais. |
pushengage_list_rss_campaigns | Campanhas automáticas de push via RSS. Filtre por status. |
pushengage_list_workflows | Automações de fluxo de trabalho. Filtre por status; defina include_analytics para estatísticas de entrada/ativa/concluída/falha e metas. |
Widgets de chat
| Ferramenta | Finalidade |
|---|---|
pushengage_list_chat_widgets | O widget no site que exibe WhatsApp, Messenger e outros canais. Mostra status, canais, dispositivos, restrição de horário comercial e segmentação. |
Análises
| Ferramenta | Finalidade |
|---|---|
pushengage_get_analytics_summary | Totais vitalícios: assinantes, notificações enviadas, visualizações, cliques e contagem/valor de metas. |
pushengage_get_analytics_timeseries | Assinantes, envios, visualizações, cliques, CTR e cancelamentos por intervalo (dia/semana/mês) em um período de datas. |
Envio de notificações
| Ferramenta | Finalidade |
|---|---|
pushengage_list_notifications | Lista notificações enviadas, agendadas e rascunhos, das mais recentes primeiro. Filtre por status (semântica de abas do painel), intervalo de datas de envio ou tags; defina include_analytics para estatísticas consolidadas de A/B e envio por fuso horário. |
pushengage_send_notification | Envia ou agenda uma notificação. Uma ferramenta, três modos de entrega: enviar agora, agendamento único (opcionalmente por fuso horário do assinante) e recorrente. audience_groups opcional para segmentação; caso contrário, todos os assinantes. |
pushengage_send_ab_notification | Uma notificação A/B com duas variantes. Passe intelligent_ab_test para amostrar cada variante, escolher o vencedor pela taxa de cliques após um atraso e publicar o vencedor para o restante. |
Configuração
Nenhuma configuração é necessária — o servidor fala com a API de produção do PushEngage imediatamente. Estas variáveis de ambiente estão disponíveis para configurações menos comuns:
| Variável de ambiente | Padrão | Finalidade |
|---|---|---|
PE_MCP_CLIENT_NAME | AI assistant | Rótulo exibido na tela de autorização como o aplicativo solicitante. Defina-o se quiser um rótulo específico, ex.: "Claude Desktop". |
PE_MCP_CONFIG_PATH | ~/.pushengage/mcp.json | Onde o token é armazenado. Defina-o para executar mais de uma conta PushEngage lado a lado (veja abaixo). Deve ser um caminho absoluto — é usado exatamente como fornecido, sem expansão de ~. |
Executando várias contas PushEngage lado a lado
Registre o servidor sob dois nomes diferentes, cada um com seu próprio PE_MCP_CONFIG_PATH para que os tokens não colidam:
{
"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)"
}
}
}
}
Peça ao assistente para fazer login em cada nome de servidor separadamente; cada um autoriza na conta PushEngage que você escolher no navegador.
Segurança e armazenamento de tokens
- O login é baseado no navegador. O assistente nunca vê sua senha do PushEngage.
- O painel envia o token ao servidor como uma solicitação POST, então ele nunca aparece em uma URL, histórico do navegador ou log de acesso.
- O token é armazenado em
~/.pushengage/mcp.jsoncom permissões0600(legível apenas por você). Sua expiração é definida pelo PushEngage e exibida porpushengage_auth_status. - Para revogá-lo, execute
pushengage_auth_logoutou saia de todas as sessões no PushEngage em Configurações → Segurança.
Solução de problemas
O servidor não conecta de jeito nenhum ("Connection closed")
Se npx -y @pushengage/mcp funciona normalmente quando você digita diretamente em um terminal, mas seu cliente (Claude Desktop, Cursor etc.) mostra o servidor como desconectado ou registra algo como MCP error -32000: Connection closed, isso quase sempre é um problema de PATH, não um bug no servidor.
Esses clientes são iniciados pelo Dock/Finder, não por um terminal, então nunca carregam os arquivos de inicialização do seu shell (.zshrc, .zprofile etc.). Se o Node foi instalado via um gerenciador de versões (nvm, fnm, volta, ...), essas ferramentas só adicionam node/npx ao PATH dentro desses arquivos de inicialização — então o cliente não consegue encontrar npx de forma alguma, o processo do servidor nunca inicia e você recebe um erro genérico de conexão em vez de um claro "command not found".
Correção: aponte o cliente para o caminho absoluto de npx (isso ignora a busca por PATH para encontrá-lo) e também passe a mesma pasta como PATH em env (para que o shebang #!/usr/bin/env node do próprio npx consiga encontrar node quando ele se reexecuta). Execute which npx no seu terminal para obter o caminho e use-o na configuração do seu 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"
}
}
}
}
Reinicie o cliente após editar. Se which npx em vez disso imprimir algo sob /usr/local/bin ou /opt/homebrew/bin, sua instalação do Node não é baseada em gerenciador de versões e este provavelmente não é o seu problema — verifique os logs MCP do próprio cliente para o erro real.
Outros erros
AUTH_EXPIRED— seu token expirou. Peça ao assistente para fazer login novamente.NO_SITE_SELECTED— chamepushengage_list_sitese depois peça para usar um dos sites retornados antes de usar uma ferramenta com escopo de site.- O navegador não abre — isso acontece em sessões headless ou remotas (ex.: SSH). A URL de autorização é impressa no terminal que executa o servidor; abra-a manualmente.
- Outra coisa — todo erro retornado pelo servidor começa com uma tag
[CODE]e uma explicação em linguagem simples; compartilhe isso com o suporte se precisar de ajuda.