create_alias_by_subscription
ChatGPTCreate or update identity aliases for the user who owns a given subscription. The onesignal_id alias is read-only and must not be included.
create_or_update_alias
ChatGPTCreate or update identity aliases for a user identified by alias. The onesignal_id alias is read-only and must not be included.
create_segment
ChatGPTCreate a new audience segment with filter conditions. Maximum 200 filter entries.
create_subscription
ChatGPTCreate a new subscription and attach it to a user. Set type to the channel ("Email", "SMS", "iOSPush", "AndroidPush", etc.) and token to the email address, E.164 phone number, or push token.
create_template
ChatGPTCreate a new notification template for a OneSignal app.
create_user
ChatGPTCreate a new user in a OneSignal app. Provide an identity (e.g. {"external_id": "user-123"}) so the user can be referenced later by alias. Optionally attach properties (tags, language, country) and subscriptions (email, SMS, or push channels). The identity field is required to prevent orphaned users.
export_audience_activity_csv
ChatGPTExport audience activity for a notification to CSV. WARNING: Only 1 concurrent export is allowed per account — if a 409 or 429 is returned, a previous export is still running.
export_subscriptions_csv
ChatGPTExport all subscriptions for a OneSignal app to CSV. WARNING: Only 1 concurrent export is allowed per account — if a 409 or 429 is returned, a previous export is still running.
get_segment
ChatGPTRetrieve a single audience segment by ID. By default, includes full segment metadata and filters (payload object with id, name, created_at, source, and filters). Set include_segment_detail to false to return only the subscriber count. Note: the API returns 400 for user-based segments (those using custom_event or message_event filters).
get_template
ChatGPTRetrieve a single notification template by ID.
get_user_identity
ChatGPTRetrieve all identity aliases associated with a user. Identify the user by alias_label (typically "external_id") and alias_id.
get_user_identity_by_subscription
ChatGPTRetrieve the identity aliases for the user who owns a given subscription.
list_apps
ChatGPTList OneSignal apps accessible to the authenticated account.
list_messages
ChatGPTList push notifications for a OneSignal app. Use limit (default 50, max ~250) and offset for pagination. Avoid large offsets — this endpoint has known performance degradation at high page numbers.
list_segments
ChatGPTList audience segments for a OneSignal app. Maximum 300 segments per page.
list_templates
ChatGPTList notification templates for a OneSignal app. Maximum 50 per page.
onesignal_config
ChatGPTReturn the current OneSignal MCP server configuration and connected app details.
onesignal_health
ChatGPTCheck the health status of the OneSignal MCP server.
onesignal_reference_overview
ChatGPTReturn an overview of the OneSignal REST API reference, including available endpoints and rate limits.
send_message
ChatGPTSend a push notification, email, or SMS via the OneSignal API. TIER 3 — HIGH IMPACT: confirmation is required before sending. Rate limited to 10 requests per minute. The filters array is limited to 200 entries; max 20,000 users per call. For push: set contents. For email: set email_subject + email_body (or use template_id). For SMS: set contents + target_channel = "sms".
start_live_activity
ChatGPTStart an iOS Live Activity and deliver it to a specific device subscription.
transfer_subscription
ChatGPTTransfer a subscription to a different user within the same app. Cross-app transfers are not supported. Rate limited to 1 request per second per subscription.
unsubscribe_email
ChatGPTUnsubscribe an email address using the token from an email unsubscribe link. This endpoint uses token-based auth (no REST API key required).
update_live_activity
ChatGPTUpdate or end an active iOS Live Activity.
update_segment
ChatGPTUpdate an existing audience segment's name and/or filter conditions. name is always required even if not changing it (max 128 characters). When filters is provided it replaces all existing filters; omit to keep existing filters intact. Maximum 200 filter entries.
update_subscription
ChatGPTUpdate an existing subscription (token, enabled status, or test type).
update_subscription_by_token
ChatGPTUpdate a subscription identified by its channel type and token. Provide subscription_type and token to identify the subscription, then pass the fields to update in subscription.
update_template
ChatGPTUpdate an existing notification template. The name field is required even if you are not changing it.
update_user
ChatGPTUpdate an existing user identified by alias. Use properties to set tags, language, or country. Use deltas to increment session counts or append purchase records (these add to existing values rather than overwriting). Returns 202 — the update is processed asynchronously.
view_message
ChatGPTRetrieve a single notification by ID.
view_outcomes
ChatGPTRetrieve outcome statistics for a OneSignal app (e.g. click counts, session duration). Note: data retention is approximately 30 days.
view_user
ChatGPTRetrieve a user and their properties by alias. Use alias_label "external_id" with the user's external ID, or another alias label you have configured.