Skip to main content
Glama
awesomemotive

pushengage-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PE_MCP_CLIENT_NAMENoLabel shown on the authorize screen as the requesting app.AI assistant
PE_MCP_CONFIG_PATHNoPath 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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 has_more). Each item carries segment_id, name, current subscriber count, status, and any URL matching criteria.

pushengage_create_segmentA

Creates a new segment on the current site. Required: segment_name. Optionally pass segment_criteria with URL include and/or exclude rules to define what subscribers belong to the segment — each rule is { rule: "start" | "exact" | "contains", value: "<url>" }. By default, segment criteria are evaluated only when a visitor subscribes to push notifications. Set add_segment_on_page_load=true (Segment on Page Visit) to evaluate those criteria on every page visit instead, so segment membership can change as subscribers browse the site. Only include segment_criteria and add_segment_on_page_load when the user explicitly describes the matching rules.

pushengage_list_attributesA

Lists subscriber attributes (custom keys set on subscribers via the JS SDK) on the current site, paginated (response includes has_more). Use this to discover attribute key values before constructing an audience-group filter rule with field="attributes".

pushengage_create_attributeA

Creates a new subscriber attribute on the current site. Required: name (human-readable label, e.g. "Customer Plan") and key (machine identifier, e.g. "plan"). The key must start with a letter and contain only letters, numbers, hyphens, and underscores. The created key becomes a usable value for audience-group rules with field="attributes" (the rule's key property). PushEngage caps each site at 50 attributes; the API returns 422 if the limit is exceeded.

pushengage_list_audience_groupsA

Lists audience groups on the current site, paginated (response includes has_more). Use this to look up audience-group IDs when the user references a group by name; those IDs are what pushengage_send_notification / pushengage_send_ab_notification accept in their audience_groups field.

pushengage_create_audience_groupA

Creates a new audience group on the current site. Required: name and filter. The filter is a subscriber-filter expression — { op: "or" | "and" (default "or"), value: 2-D array of rule groups }. Each rule is { field, op, value?, key? }. Rules WITHIN a group are AND-ed; groups in value are combined with the top-level op. See the inputSchema field descriptions for the supported field and op enums. Common patterns: "Mobile subscribers" → filter={ op: "or", value: [[{ field: "device", op: "in", value: ["mobile"] }]] }. "Subscribed in the last 7 days" → filter={ op: "or", value: [[{ field: "ts_created", op: "ts_elapsed_lt", value: 604800 }]] }. "Highly engaged" (≥20 sent AND ≥2 clicks) → filter={ op: "or", value: [[{ field: "sent_count", op: "gt", value: 20 }, { field: "click_count", op: "gt", value: 2 }]] }. Only set description and complex filters when the user explicitly describes them.

pushengage_list_notificationsA

Lists push notifications on the current site, newest first, paginated (response includes has_more). Use this to discover notification IDs and review past or upcoming sends. Set include_analytics=true only when the user asks for stats — it costs an extra lookup and adds rolled-up counts and goal conversions to each row. Each item carries content, status, targeting criteria, and delivery stats; the criteria.audience_groups ids are reusable as the send tools' audience_groups input, and absent criteria means the notification went to all subscribers.

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 audience_groups (array of 1-20 predefined audience-group IDs) only when the user mentions a saved/predefined audience group. When the user asks to use the site URL, call pushengage_list_sites and use the current site's site_url.

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 audience_groups (1-20 predefined audience-group IDs) only when the user mentions a saved/predefined audience group. Use status="schedule" with schedule_date to schedule for later, or status="draft" to save without sending.

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 has_more). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: sent, seen, clicked, ctr, goal_count, goal_value.

pushengage_list_triggered_campaignsA

Lists the triggered campaigns (Price Drop / Inventory Alert / Cart Abandonment / etc.) on the current site, paginated (response includes has_more). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: sent, seen, clicked, ctr, goal_count, goal_value.

pushengage_list_rss_campaignsA

Lists the RSS auto push campaigns on the current site, paginated (response includes has_more). Each item includes the feed_url. Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs.

pushengage_list_workflowsA

Lists the workflow automations on the current site, paginated (response includes has_more). Optionally filter by status (default "all" = every status), mirroring the dashboard filter tabs. Set include_analytics=true only when the user asks for stats/performance (it costs an extra analytics lookup per page). Each item then also carries an analytics object: entered, active, completed, failed (user counts), goal_count, goal_value.

pushengage_list_chat_widgetsA

Lists the chat widgets on the current site, paginated (response includes has_more). A chat widget is the floating button that surfaces support channels (WhatsApp, Messenger, Email, etc.) on the site. Each item carries the configured channels, target devices, business-hours restriction, and a country/page targeting summary.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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