pushengage-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PE_MCP_CLIENT_NAME | No | Label shown on the authorize screen as the requesting app. | AI assistant |
| PE_MCP_CONFIG_PATH | No | Path where the token is stored. Must be an absolute path. | ~/.pushengage/mcp.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pushengage_auth_loginA | Opens a browser window to the PushEngage dashboard. After you click Authorize, an access token is stored locally and used for subsequent calls; the expiry is shown in the result. Requires a browser on the local machine. In headless or SSH environments the authorization URL is printed to the terminal so it can be opened manually. |
| pushengage_auth_statusA | Returns the current login state: authenticated (bool), expires_at (token expiry ISO string), current_site_id, api_url, dashboard_url, and client_name. Use this to check whether pushengage_auth_login is needed before making other calls. |
| pushengage_auth_logoutA | Revokes the current PushEngage session on the server and deletes the locally stored token. After this call, all site-scoped tools require pushengage_auth_login before they can be used again. |
| pushengage_list_sitesA | Lists PushEngage sites the authenticated user can access. Returns site_id, site_name, site_url, and site_status. Also returns current_site_id so the assistant can see which site is already active without calling pushengage_auth_status. When the user asks to send a notification linking to their site's homepage, use site_url as the notification's url field. |
| pushengage_select_siteA | Sets the current site used by all site-scoped tools (pushengage_send_notification, pushengage_list_segments, pushengage_get_analytics_summary, pushengage_list_drip_campaigns, etc.) when no site_id is provided. Persists across MCP restarts. Call pushengage_list_sites first to get a valid site_id. |
| pushengage_get_site_detailsA | Returns the current site's details, matching the dashboard's Site Details page: name, URL, image, timezone, geolocation toggle, and the "Powered By PushEngage" branding toggle. |
| pushengage_update_site_detailsA | Updates the current site's details. Pass only the fields you want to change: site_name (Site Name), site_url (Site URL), timezone (Website Time Zone, an IANA name), enable_geolocation (Enable Geolocation), and/or remove_powered_by_pushengage (Remove "Powered By PushEngage", which needs a paid plan). Provide at least one field. Returns the updated site details. |
| pushengage_get_campaign_defaultsA | Returns the current site's campaign default settings: utm_parameters (enabled + source/medium/campaign/term/content), fallback_notification (title/message/url), fallback_attributes (city/country), and default_expiry (broken into total_seconds + days/hours/minutes). These are the defaults applied to push campaigns, matching the dashboard's Campaign Defaults page. |
| pushengage_update_campaign_defaultsA | Updates one or more of the current site's campaign default settings. Pass only the groups and fields you want to change: utm_parameters, fallback_notification, fallback_attributes, and/or default_expiry. The tool reads the current values and merges your changes, so partial edits are fine (e.g. change just utm_parameters.source, or set default_expiry to {days:7}). default_expiry is given as days/hours/minutes (omitted components count as 0; total must be between 1 minute and 28 days). When utm_parameters.enabled is true, source/medium/campaign must be non-empty after the merge. Provide at least one group. Returns the updated settings. |
| pushengage_get_service_worker_settingsA | Returns the current site's Service Worker Settings (from the Advanced Settings page), using the dashboard labels: enable_service_worker_registration ("Enable the service worker registration from PushEngage"), enable_service_worker_in_subfolder ("Enable addition of service worker in another sub-folder"), and service_worker_file_path ("Path for service worker file"). |
| pushengage_update_service_worker_settingsA | Updates the current site's Service Worker Settings. Pass only the fields you want to change: enable_service_worker_registration, enable_service_worker_in_subfolder, and/or service_worker_file_path. The tool reads the current values and merges your changes. When enable_service_worker_registration is true, service_worker_file_path must be non-empty after the merge. Provide at least one field. Returns the updated settings. |
| pushengage_list_segmentsA | Lists segments on the current site, paginated (response includes |
| pushengage_create_segmentA | Creates a new segment on the current site. Required: segment_name. Optionally pass segment_criteria with URL |
| pushengage_list_attributesA | Lists subscriber attributes (custom keys set on subscribers via the JS SDK) on the current site, paginated (response includes |
| pushengage_create_attributeA | Creates a new subscriber attribute on the current site. Required: |
| pushengage_list_audience_groupsA | Lists audience groups on the current site, paginated (response includes |
| pushengage_create_audience_groupA | Creates a new audience group on the current site. Required: |
| pushengage_list_notificationsA | Lists push notifications on the current site, newest first, paginated (response includes |
| pushengage_send_notificationA | Creates and sends a push notification on the current site. Required fields: title, message, url. Do not add optional fields (tags, image_url, utm_params, audience_groups, actions, etc.) unless the user explicitly asks for them — for example, do not infer tags from the notification topic. Delivery modes (mutually exclusive — pick AT MOST one): (a) status="schedule" + schedule_date for a one-shot scheduled send; (b) pass recurring_schedule { days, times, start_date, end_date } for a recurring/repeating notification — leave status at "sent" (default) to activate the recurrence, or use "draft" to save without activating; (c) when scheduling one-shot, optionally pass send_in_subscribers_timezone=true to deliver at the scheduled wall-clock time in each subscriber's local timezone (only when the user explicitly asks, e.g. "send at 9am in their timezone"). Otherwise the notification is sent immediately. Use status="draft" to save without sending or activating. Audience: by default sends to all subscribers. Pass |
| pushengage_send_ab_notificationA | Creates an A/B notification on the current site with two variants (variant_a and variant_b). Required: variant_a (title, message, url) and variant_b (title, message, url). By default (intelligent_ab_test omitted) both variants ship as-is to the audience — no automatic winner picking. Pass intelligent_ab_test to enable intelligent / auto-winner mode: each variant is sent to sent_limit_percentage% of subscribers, and after winner_delay_minutes the higher-CTR variant is automatically delivered to the remaining audience (up to sent_limit total). Only include intelligent_ab_test when the user explicitly asks for an intelligent / auto-winner test. Do not add other optional fields (tags, audience_groups, per-variant image_url, utm_params, actions, etc.) unless the user explicitly asks. Audience: by default sends to all subscribers. Pass |
| pushengage_get_analytics_summaryA | Returns the current site's all-time, site-wide totals: subscribers (current active count), notifications sent, views, clicks, and goal conversions/value. Not bounded by any date range — for trends over a period use pushengage_get_analytics_timeseries instead. |
| pushengage_get_analytics_timeseriesA | Returns a time series of the current site's analytics between start_date and end_date, bucketed by group_by. Each point has subscribers gained, notifications sent, views, clicks, ctr, and unsubscribes for that bucket. Use this for trends or metrics over a period; for all-time totals use pushengage_get_analytics_summary instead. |
| pushengage_list_drip_campaignsA | Lists the drip autoresponder campaigns on the current site, paginated (response includes |
| pushengage_list_triggered_campaignsA | Lists the triggered campaigns (Price Drop / Inventory Alert / Cart Abandonment / etc.) on the current site, paginated (response includes |
| pushengage_list_rss_campaignsA | Lists the RSS auto push campaigns on the current site, paginated (response includes |
| pushengage_list_workflowsA | Lists the workflow automations on the current site, paginated (response includes |
| pushengage_list_chat_widgetsA | Lists the chat widgets on the current site, paginated (response includes |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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