pushengage-mcp
This MCP server connects AI assistants to your PushEngage account, letting you manage push notifications, audiences, campaigns, and site settings using plain language.
Key capabilities:
Authentication & Site Management: Log in/out via browser OAuth, check auth status, list and switch between multiple PushEngage sites.
Site Settings: View and update site details (name, URL, timezone, geolocation, branding), campaign defaults (UTM parameters, fallback notifications, expiry), and service worker configuration.
Audience Management: Create and manage URL-based subscriber segments, custom attributes, and audience groups for targeted campaigns (filters by device, country, engagement, subscription date, etc.).
Campaign & Automation Overview: List drip, triggered, RSS auto-push, and workflow automations, with optional per-campaign analytics (sent, views, clicks, CTR, goals).
Chat Widgets: View configured on-site chat widgets (e.g., WhatsApp, Messenger).
Analytics: Get all-time totals (subscribers, sends, views, clicks, goals) and time-series trends over custom date ranges, grouped by day, week, or month.
Send Notifications:
Send immediate or scheduled one-shot notifications, optionally targeted to audience groups.
Schedule per-subscriber timezone delivery.
Create recurring notifications.
Save drafts.
Run A/B tests with two variants (title, message, URL, images, buttons) and optional intelligent auto-winner based on CTR.
Include rich media and actions.
List existing notifications with per-notification analytics (A/B stats, timezone stats, goals).
Configuration: Optional environment variables for token storage and client label; works out-of-the-box.
@pushengage/mcp
Manage your PushEngage account from any AI assistant, in plain language.
PushEngage is a push notification platform for web push, mobile app push, WhatsApp, and on-site chat widgets, used to grow subscribers and recover revenue (cart abandonment, price drops, back-in-stock, and more).
This package is a Model Context Protocol (MCP) server. It connects MCP-capable assistants such as Claude Desktop, Claude Code, and Cursor to your PushEngage account so you can send and schedule notifications, run A/B tests, build audiences, inspect analytics, and manage site settings just by asking, without leaving your chat.
You log in once through your browser; the assistant then acts on your behalf against whichever PushEngage site you select.
Contents
Related MCP server: Campaign Monitor MCP
What you can do
Once connected, just describe what you want. A few examples:
Send and schedule
"Send a notification titled 'Sale ends tonight', message 'Last call, 50% off', linking to https://example.com/sale."
"Schedule that for 9 AM in each subscriber's local timezone."
"Set up a recurring digest every Monday and Thursday at 8 AM through the end of the month."
"Run an A/B test of two headlines and auto-roll-out the winner by click rate."
Target the right people
"Create a segment for visitors of /pricing."
"Build an audience of gold-plan customers in the US and send only to them."
Understand performance
"How many subscribers do I have, and what was my click rate over the last 30 days?"
"List my active drip campaigns with their sent, seen, and clicked stats."
Configure a site
"Set my default notification expiry to 7 days."
"Change my site timezone to Asia/Kolkata and turn on geolocation."
Requirements
A PushEngage account (free or paid) with at least one site.
Node.js 18 or newer (the assistant runs the server via
npx).An MCP-capable client (Claude Desktop, Claude Code, Cursor, or any other).
Install
Add the server to your client's MCP config. No global install is needed; npx fetches it on demand.
Claude Desktop (one-click bundle)
The easiest path on Claude Desktop is the MCP Bundle:
Download the latest
pushengage-mcp-<version>.mcpbfile from the GitHub releases page.Open it with Claude Desktop (double-click it, or drag it onto the window) and click Install.
Everything is bundled — no JSON editing needed. The install dialog optionally lets you set the label shown on the PushEngage authorize screen and a custom token file path (for running multiple accounts).
Claude Desktop (manual config)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your platform:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}Restart Claude Desktop. The "pushengage" server should appear in your tool list.
Cursor
Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"pushengage": {
"command": "npx",
"args": ["-y", "@pushengage/mcp"]
}
}
}Other MCP clients
Any client that speaks MCP over stdio works. Configure it to run the command npx -y @pushengage/mcp.
First run: logging in
Authentication is browser-based, so your credentials never touch the assistant.
Ask: "Log me into PushEngage." The server opens a browser tab to the PushEngage authorize page.
Click Authorize. The tab confirms success and an access token is saved locally.
Ask: "Show my PushEngage sites," then "Use site 12345" to pick the site to work with. The selection is remembered across restarts.
Every site-scoped tool acts on this current site unless you pass an explicit site_id. When the token expires you will see an AUTH_EXPIRED message; just ask to log in again.
Tools
All site-scoped tools default to the current site.
Authentication and sites
Tool | Purpose |
| Opens the browser to PushEngage and stores the token on success. |
| Shows whether you are authenticated and which site is selected. |
| Deletes the locally stored token. |
| Lists the PushEngage sites you can access. |
| Sets the current site used by the other tools. |
Site settings
Tool | Purpose |
| Site name, URL, timezone, geolocation, and the "Powered By PushEngage" branding toggle. |
| UTM parameters, fallback notification, fallback attributes, and default notification expiry. Updates merge over current values, so partial edits work. |
| Service worker registration, sub-folder support, and the worker file path. |
Audiences
Tool | Purpose |
| URL-rule based subscriber segments. |
| Saved targeting groups (device, country, segment, engagement, dates, attributes). Referenced by the send tools' |
| Custom subscriber attribute keys used in audience-group rules (max 50 per site). |
Campaigns and automations
Tool | Purpose |
| Drip autoresponders. Filter by status; set |
| Triggered campaigns (cart/browse abandonment, price drop, etc.). Filter by status; optional analytics. |
| RSS auto push campaigns. Filter by status. |
| Workflow automations. Filter by status; set |
Chat widgets
Tool | Purpose |
| The on-site widget that surfaces WhatsApp, Messenger, and other channels. Shows status, channels, devices, business-hours restriction, and targeting. |
Analytics
Tool | Purpose |
| Lifetime totals: subscribers, notifications sent, views, clicks, and goal count/value. |
| Per-bucket (day/week/month) subscribers, sends, views, clicks, CTR, and unsubscribes over a date range. |
Sending notifications
Tool | Purpose |
| Lists sent, scheduled, and draft notifications, newest first. Filter by status (dashboard-tab semantics), sent-date range, or tags; set |
| Sends or schedules a notification. One tool, three delivery modes: send now, one-shot schedule (optionally per-subscriber timezone), and recurring. Optional |
| An A/B notification with two variants. Pass |
Configuration
No configuration is required — the server talks to PushEngage's production API out of the box. These environment variables are available for less common setups:
Env var | Default | Purpose |
|
| Label shown on the authorize screen as the requesting app. Set it if you want a specific label, e.g. |
|
| Where the token is stored. Set this to run more than one PushEngage account side by side (see below). Must be an absolute path — it's used exactly as given, with no |
Running multiple PushEngage accounts side by side
Register the server under two different names, each with its own PE_MCP_CONFIG_PATH so the tokens don't collide:
{
"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)"
}
}
}
}Ask the assistant to log in under each server name separately; each authorizes against whichever PushEngage account you choose in the browser.
Security and token storage
Login is browser-based. The assistant never sees your PushEngage password.
The dashboard sends the token to the server as a POST request, so it never appears in a URL, browser history, or access log.
The token is stored at
~/.pushengage/mcp.jsonwith0600permissions (readable only by you). Its expiry is set by PushEngage and is shown bypushengage_auth_status.To revoke it, run
pushengage_auth_logoutor log out of all sessions in PushEngage under Settings → Security.
Troubleshooting
The server won't connect at all ("Connection closed")
If npx -y @pushengage/mcp runs fine when you type it directly in a terminal, but your client (Claude Desktop, Cursor, etc.) shows the server as disconnected or logs something like MCP error -32000: Connection closed, this is almost always a PATH problem, not a bug in the server.
These clients are launched from your Dock/Finder, not from a terminal, so they never load your shell's startup files (.zshrc, .zprofile, etc). If Node was installed via a version manager (nvm, fnm, volta, ...), those tools only add node/npx to PATH from inside those startup files — so the client can't find npx at all, the server process never starts, and you get a generic connection error instead of a clear "command not found."
Fix: point the client at the absolute path to npx (this skips the PATH lookup for finding it) and also pass that same folder as PATH in env (so npx's own #!/usr/bin/env node shebang can find node when it re-execs). Run which npx in your terminal to get the path, then use it in your client's config:
{
"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"
}
}
}
}Restart the client after editing. If which npx instead prints something under /usr/local/bin or /opt/homebrew/bin, your Node install isn't version-manager-based and this likely isn't your issue — check the client's own MCP logs for the actual error instead.
Other errors
AUTH_EXPIRED— your token expired. Ask the assistant to log you in again.NO_SITE_SELECTED— callpushengage_list_sitesand then ask to use one of the returned sites before using a site-scoped tool.Browser doesn't open — this happens in headless or remote (e.g. SSH) sessions. The authorize URL is printed to the terminal running the server; open it manually.
Something else — every error the server returns starts with a
[CODE]tag and a plain-language explanation; share that with support if you need help.
License
Maintenance
Related MCP Servers
- Flicense-qualityFmaintenanceEnables AI assistants to manage OneSignal push notifications, email, SMS, and user management through natural language. Supports multi-channel messaging, segmentation, templates, analytics, and iOS Live Activities with 50+ tools for complete OneSignal API coverage.1
- FlicenseBqualityDmaintenanceEnables management of email campaigns, subscribers, lists, segments, journeys, templates, transactional email, and client/account settings through the Campaign Monitor API via natural language.1001

OneSignal MCP Serverofficial
Alicense-qualityBmaintenanceEnables OneSignal push notification workflows in Cursor, including message sending, segment management, template creation, Journeys, custom events, and mobile SDK setup.MIT- FlicenseBqualityCmaintenanceEnables programmatic Reddit growth campaign management via the Engain API, including task scheduling, upvote/downvote orders, opportunity discovery, and account management.29
Related MCP Connectors
Send transactional email, run campaigns, manage contacts and automations, audit deliverability.
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
Send notifications, manage templates, and configure integrations with Courier.
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/awesomemotive/pushengage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server